Merge pull request #1300 from Luis-Fernando-Molina/develop

Contribution: Referrals Report Working
This commit is contained in:
Luis Fernando Molina authored and GitHub committed 2021-07-15 11:56:14 -04:00
commit ff5a649cd6
10 files changed
+223 -62

No files matched your search

+8 -8
View File
@@ -870,14 +870,14 @@ align-content: left;
display: none;
}
#tab1:checked ~ .docs-search-result-content #content1,
#tab2:checked ~ .docs-search-result-content #content2,
#tab3:checked ~ .docs-search-result-content #content3,
#tab4:checked ~ .docs-search-result-content #content4,
#tab5:checked ~ .docs-search-result-content #content5,
#tab6:checked ~ .docs-search-result-content #content6,
#tab7:checked ~ .docs-search-result-content #content7,
#tab8:checked ~ .docs-search-result-content #content8 {
#docs-tab1:checked ~ .docs-search-result-content #content1,
#docs-tab2:checked ~ .docs-search-result-content #content2,
#docs-tab3:checked ~ .docs-search-result-content #content3,
#docs-tab4:checked ~ .docs-search-result-content #content4,
#docs-tab5:checked ~ .docs-search-result-content #content5,
#docs-tab6:checked ~ .docs-search-result-content #content6,
#docs-tab7:checked ~ .docs-search-result-content #content7,
#docs-tab8:checked ~ .docs-search-result-content #content8 {
display: block;
}
+8 -8
View File
@@ -873,14 +873,14 @@
display: none;
}
#tab1:checked ~ .governance-search-result-content #content1,
#tab2:checked ~ .governance-search-result-content #content2,
#tab3:checked ~ .governance-search-result-content #content3,
#tab4:checked ~ .governance-search-result-content #content4,
#tab5:checked ~ .governance-search-result-content #content5,
#tab6:checked ~ .governance-search-result-content #content6,
#tab7:checked ~ .governance-search-result-content #content7,
#tab8:checked ~ .governance-search-result-content #content8 {
#governance-tab1:checked ~ .governance-search-result-content #content1,
#governance-tab2:checked ~ .governance-search-result-content #content2,
#governance-tab3:checked ~ .governance-search-result-content #content3,
#governance-tab4:checked ~ .governance-search-result-content #content4,
#governance-tab5:checked ~ .governance-search-result-content #content5,
#governance-tab6:checked ~ .governance-search-result-content #content6,
#governance-tab7:checked ~ .governance-search-result-content #content7,
#governance-tab8:checked ~ .governance-search-result-content #content8 {
display: block;
}
@@ -217,7 +217,7 @@ function newFoundationsDocsSearchResultsPage() {
let checked = ' checked=""'
for (let i = 0; i < tabs.length; i++) {
let tab = tabs[i]
HTML = HTML + '<input id="tab' + (i + 1) + '" type="radio" name="tabs"' + checked + '><label for="tab' + (i + 1) + '">' + tab + '</label>'
HTML = HTML + '<input id="docs-tab' + (i + 1) + '" type="radio" name="tabs"' + checked + '><label for="docs-tab' + (i + 1) + '">' + tab + '</label>'
checked = ''
}
@@ -0,0 +1,110 @@
function newGovernanceReportsReferrals() {
let thisObject = {
addHTML: addHTML,
initialize: initialize,
finalize: finalize
}
return thisObject
function initialize() {
}
function finalize() {
}
function addHTML(tabIndex) {
let tableRecords = []
let table = 'referrals'
let tableRecordDefinition = {
"properties": [
{
"name": "name",
"label": "User Profile",
"type": "string",
"order": "ascending"
},
{
"name": "ownPower",
"label": "Own Power",
"type": "number",
"order": "descending"
},
{
"name": "incoming",
"label": "Incoming",
"type": "number",
"order": "descending"
},
{
"name": "tokensAwarded",
"label": "Awarded",
"type": "number",
"order": "descending"
},
{
"name": "decendants",
"label": "Descendants",
"type": "number",
"order": "descending"
},
{
"name": "tokensBonus",
"label": "Bonus",
"type": "number",
"order": "descending"
}
]
}
/*
Here we get from the workspace all User Profiles.
*/
let userProfiles = UI.projects.foundations.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('User Profile')
/*
Transform the result array into table records.
*/
for (let j = 0; j < userProfiles.length; j++) {
let userProfile = userProfiles[j]
if (userProfile.tokenPowerSwitch === undefined) { continue }
let program = UI.projects.governance.utilities.validations.onlyOneProgram(userProfile, 'Referral Program')
if (program === undefined) { continue }
if (program.payload === undefined) { continue }
let tableRecord = {
"name": userProfile.name,
"ownPower": program.payload.referralProgram.ownPower | 0,
"incoming": program.payload.referralProgram.incomingPower | 0,
"tokensAwarded": program.payload.referralProgram.awarded.tokens | 0,
"decendants": program.payload.referralProgram.awarded.count | 0,
"tokensBonus": program.payload.referralProgram.bonus.tokens | 0
}
tableRecords.push(tableRecord)
}
/*
Get the sorting order for this table.
*/
let sortingOrder = UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table]
/*
Set the default sorting order for this table.
*/
if (sortingOrder === undefined) {
UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table] = {
property: 'tokensAwarded',
order: 'descending'
}
sortingOrder = UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table]
}
return UI.projects.governance.utilities.tables.addHTML(
table,
tableRecords,
tableRecordDefinition,
sortingOrder,
tabIndex
)
}
}
@@ -15,14 +15,14 @@ function newGovernanceReportsReportsPage() {
}
function render() {
function render(tabIndex) {
let resultsArary = []
let initialTime = new Date()
buildHTML()
function buildHTML() {
const tabs = ['Profiles', 'Referrals', 'Mentors', 'Supporters', 'Pools', 'Assets', 'Features', 'Positions']
const tabs = ['Profiles', 'Referrals', 'Supporters', 'Mentors', 'Pools', 'Assets', 'Features', 'Positions']
let HTML = ''
HTML = HTML + '<section id="governance-report-page-div" class="governance-search-page-container">'
HTML = HTML + UI.projects.education.spaces.docsSpace.mainSearchPage.addSearchHeader()
@@ -32,7 +32,7 @@ function newGovernanceReportsReportsPage() {
let checked = ' checked=""'
for (let i = 0; i < tabs.length; i++) {
let tab = tabs[i]
HTML = HTML + '<input id="tab' + (i + 1) + '" type="radio" name="tabs"' + checked + '><label for="tab' + (i + 1) + '">' + tab + '</label>'
HTML = HTML + '<input id="governance-tab' + (i + 1) + '" type="radio" name="tabs"' + checked + '><label for="governance-tab' + (i + 1) + '">' + tab + '</label>'
checked = ''
}
@@ -49,13 +49,19 @@ function newGovernanceReportsReportsPage() {
switch (tab) {
case 'Profiles': {
let response = UI.projects.governance.spaces.reportsSpace.userProfiles.addHTML()
let response = UI.projects.governance.spaces.reportsSpace.userProfiles.addHTML(1)
HTML = HTML + response.HTML
resultCounter = response.resultCounter
break
}
case 'Referrals': {
let response = UI.projects.governance.spaces.reportsSpace.referrals.addHTML(2)
HTML = HTML + response.HTML
resultCounter = response.resultCounter
break
}
}
HTML = HTML + '</div>'
totalResults.set(tab, resultCounter)
}
@@ -78,10 +84,17 @@ function newGovernanceReportsReportsPage() {
}
let docsContentDiv = document.getElementById('governance-content-div')
docsContentDiv.innerHTML = HTML + UI.projects.governance.spaces.reportsSpace.footer.addFooter()
UI.projects.education.spaces.docsSpace.mainSearchPage.detectEnterOnSearchBox()
UI.projects.education.spaces.docsSpace.mainSearchPage.setFocusOnSearchBox()
// If there is a tabIndex we will switch to that tab here.
if (tabIndex !== undefined) {
let tab = document.getElementById('governance-tab' + tabIndex)
tab.checked = true
}
}
}
}
@@ -7,6 +7,7 @@ function newGobernanceReportsSpace() {
reportsPage: undefined,
footer: undefined,
userProfiles: undefined,
referrals: undefined,
tablesSortingOrders: undefined,
changeTableSortingOrder,
physics: physics,
@@ -48,6 +49,9 @@ function newGobernanceReportsSpace() {
thisObject.userProfiles.finalize()
thisObject.userProfiles = undefined
thisObject.referrals.finalize()
thisObject.referrals = undefined
isInitialized = false
}
@@ -68,10 +72,12 @@ function newGobernanceReportsSpace() {
thisObject.reportsPage = newGovernanceReportsReportsPage()
thisObject.footer = newGovernanceReportsFooter()
thisObject.userProfiles = newGovernanceReportsUserProfiles()
thisObject.referrals = newGovernanceReportsReferrals()
thisObject.reportsPage.initialize()
thisObject.footer.initialize()
thisObject.userProfiles.initialize()
thisObject.referrals.initialize()
setupSidePanelTab()
@@ -143,10 +149,10 @@ function newGobernanceReportsSpace() {
}
}
function changeTableSortingOrder(table, property, order) {
function changeTableSortingOrder(table, property, order, tabIndex) {
thisObject.tablesSortingOrders[table].property = property
thisObject.tablesSortingOrders[table].order = order
thisObject.reportsPage.render()
thisObject.reportsPage.render(tabIndex)
}
function onOpening() {
@@ -15,7 +15,7 @@ function newGovernanceReportsUserProfiles() {
}
function addHTML() {
function addHTML(tabIndex) {
let tableRecords = []
let table = 'userProfiles'
@@ -23,7 +23,7 @@ function newGovernanceReportsUserProfiles() {
"properties": [
{
"name": "name",
"label": "Name",
"label": "User Profile",
"type": "string",
"order": "ascending"
},
@@ -48,24 +48,44 @@ function newGovernanceReportsUserProfiles() {
]
}
/*
Here we get from the workspace all the nodes representing User Profiles.
Here we get from the workspace all User Profiles.
*/
let resultsArary = UI.projects.foundations.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('User Profile')
let userProfiles = UI.projects.foundations.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('User Profile')
/*
Transform the result array into table records.
*/
for (let j = 0; j < resultsArary.length; j++) {
let node = resultsArary[j]
for (let j = 0; j < userProfiles.length; j++) {
let userProfile = userProfiles[j]
let tableRecord = {
"name": node.name,
"blockchainPower": node.payload.blockchainTokens | 0,
"delegatedPower": node.payload.tokenPower - node.payload.blockchainTokens | 0,
"tokenPower": node.payload.tokenPower | 0
"name": userProfile.name,
"blockchainPower": userProfile.payload.blockchainTokens | 0,
"delegatedPower": userProfile.payload.tokenPower - userProfile.payload.blockchainTokens | 0,
"tokenPower": userProfile.payload.tokenPower | 0
}
tableRecords.push(tableRecord)
}
return UI.projects.governance.utilities.tables.addHTML(table, tableRecords, tableRecordDefinition)
/*
Get the sorting order for this table.
*/
let sortingOrder = UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table]
/*
Set the default sorting order for this table.
*/
if (sortingOrder === undefined) {
UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table] = {
property: 'name',
order: 'ascending'
}
sortingOrder = UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table]
}
return UI.projects.governance.utilities.tables.addHTML(
table,
tableRecords,
tableRecordDefinition,
sortingOrder,
tabIndex
)
}
}
@@ -73,9 +73,17 @@ function newGovernanceUtilitiesBonusProgram() {
function resetProgram(node) {
if (node === undefined) { return }
if (node.payload === undefined) { return }
node.payload[programPropertyName] = {
bonusPower: 0,
bonus: {
if (node.payload[programPropertyName] === undefined) {
node.payload[programPropertyName] = {
bonusPower: 0,
bonus: {
tokens: 0,
percentage: 0
}
}
} else {
node.payload[programPropertyName].bonusPower = 0
node.payload[programPropertyName].bonus = {
tokens: 0,
percentage: 0
}
@@ -84,13 +84,25 @@ function newGovernanceUtilitiesDecendentProgram() {
function resetProgram(node) {
if (node === undefined) { return }
if (node.payload === undefined) { return }
node.payload[programPropertyName] = {
count: 0,
percentage: 0,
outgoingPower: 0,
ownPower: 0,
incomingPower: 0,
awarded: {
if (node.payload[programPropertyName] === undefined) {
node.payload[programPropertyName] = {
count: 0,
percentage: 0,
outgoingPower: 0,
ownPower: 0,
incomingPower: 0,
awarded: {
tokens: 0,
percentage: 0
}
}
} else {
node.payload[programPropertyName].count = 0
node.payload[programPropertyName].percentage = 0
node.payload[programPropertyName].outgoingPower = 0
node.payload[programPropertyName].ownPower = 0
node.payload[programPropertyName].incomingPower = 0
node.payload[programPropertyName].awarded = {
tokens: 0,
percentage: 0
}
@@ -345,7 +357,7 @@ function newGovernanceUtilitiesDecendentProgram() {
node.payload.uiObject.statusAngleOffset = 0
node.payload.uiObject.statusAtAngle = false
node.payload.uiObject.setStatus(ownPowerText + ' Own Power' + ' + ' + incomingPowerText + ' Incoming ' + programPowerName)
node.payload.uiObject.setStatus(ownPowerText + ' Own Power' + ' + ' + incomingPowerText + ' Incoming ' + programPowerName)
}
if (node.tokensAwarded !== undefined && node.tokensAwarded.payload !== undefined) {
+8 -16
View File
@@ -5,24 +5,16 @@ function newGovernanceUtilitiesTables() {
return thisObject
function addHTML(table, tableRecords, tableRecordDefinition) {
function addHTML(
table,
tableRecords,
tableRecordDefinition,
sortingOrder,
tabIndex
) {
let HTML = ''
let resultCounter = 0
/*
Get the sorting order for this table.
*/
let sortingOrder = UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table]
/*
Set the default sorting order for this table.
*/
if (sortingOrder === undefined) {
UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table] = {
property: 'name',
order: 'ascending'
}
sortingOrder = UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table]
}
/*
Get the property type for the current sorting order.
*/
let propertyType
@@ -106,7 +98,7 @@ function newGovernanceUtilitiesTables() {
}
}
}
HTML = HTML + '<th>' + '<a href="#" onClick="UI.projects.governance.spaces.reportsSpace.changeTableSortingOrder(\'' + table + '\',\'' + property.name + '\',\'' + newOrder + '\')">' + property.label + ' ' + orderArrow + '</a>' + '</th>'
HTML = HTML + '<th>' + '<a href="#" onClick="UI.projects.governance.spaces.reportsSpace.changeTableSortingOrder(\'' + table + '\',\'' + property.name + '\',\'' + newOrder + '\',\'' + tabIndex + '\')">' + property.label + ' ' + orderArrow + '</a>' + '</th>'
}
HTML = HTML + '</tr>'
HTML = HTML + '<thead>'