diff --git a/Client/WebServer/css/docs.css b/Client/WebServer/css/docs.css index 789a75e4b..1a89cbee8 100644 --- a/Client/WebServer/css/docs.css +++ b/Client/WebServer/css/docs.css @@ -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; } diff --git a/Client/WebServer/css/governance.css b/Client/WebServer/css/governance.css index 9ec56be1d..24af73dad 100644 --- a/Client/WebServer/css/governance.css +++ b/Client/WebServer/css/governance.css @@ -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; } diff --git a/Projects/Education/UI/Spaces/Docs-Space/SearchResultsPage.js b/Projects/Education/UI/Spaces/Docs-Space/SearchResultsPage.js index 94b5ecbb3..cf9aec50b 100644 --- a/Projects/Education/UI/Spaces/Docs-Space/SearchResultsPage.js +++ b/Projects/Education/UI/Spaces/Docs-Space/SearchResultsPage.js @@ -217,7 +217,7 @@ function newFoundationsDocsSearchResultsPage() { let checked = ' checked=""' for (let i = 0; i < tabs.length; i++) { let tab = tabs[i] - HTML = HTML + '' + HTML = HTML + '' checked = '' } diff --git a/Projects/Governance/UI/Spaces/Reports-Space/Referrals.js b/Projects/Governance/UI/Spaces/Reports-Space/Referrals.js new file mode 100644 index 000000000..8bda1814d --- /dev/null +++ b/Projects/Governance/UI/Spaces/Reports-Space/Referrals.js @@ -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 + ) + } +} \ No newline at end of file diff --git a/Projects/Governance/UI/Spaces/Reports-Space/ReportsPage.js b/Projects/Governance/UI/Spaces/Reports-Space/ReportsPage.js index 0700b9625..9b4924daf 100644 --- a/Projects/Governance/UI/Spaces/Reports-Space/ReportsPage.js +++ b/Projects/Governance/UI/Spaces/Reports-Space/ReportsPage.js @@ -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 + '
' 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 + '' + HTML = HTML + '' 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 + '' 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 + } } } } \ No newline at end of file diff --git a/Projects/Governance/UI/Spaces/Reports-Space/ReportsSpace.js b/Projects/Governance/UI/Spaces/Reports-Space/ReportsSpace.js index 6f3e4abac..15d7f8005 100644 --- a/Projects/Governance/UI/Spaces/Reports-Space/ReportsSpace.js +++ b/Projects/Governance/UI/Spaces/Reports-Space/ReportsSpace.js @@ -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() { diff --git a/Projects/Governance/UI/Spaces/Reports-Space/UserProfiles.js b/Projects/Governance/UI/Spaces/Reports-Space/UserProfiles.js index 885c88fdf..565805914 100644 --- a/Projects/Governance/UI/Spaces/Reports-Space/UserProfiles.js +++ b/Projects/Governance/UI/Spaces/Reports-Space/UserProfiles.js @@ -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 + ) } } \ No newline at end of file diff --git a/Projects/Governance/UI/Utilities/BonusProgram.js b/Projects/Governance/UI/Utilities/BonusProgram.js index 16030d2a2..30424c290 100644 --- a/Projects/Governance/UI/Utilities/BonusProgram.js +++ b/Projects/Governance/UI/Utilities/BonusProgram.js @@ -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 } diff --git a/Projects/Governance/UI/Utilities/DecendentProgram.js b/Projects/Governance/UI/Utilities/DecendentProgram.js index dce2a35ac..92845a712 100644 --- a/Projects/Governance/UI/Utilities/DecendentProgram.js +++ b/Projects/Governance/UI/Utilities/DecendentProgram.js @@ -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) { diff --git a/Projects/Governance/UI/Utilities/Tables.js b/Projects/Governance/UI/Utilities/Tables.js index af9928cbd..fca6f0da4 100644 --- a/Projects/Governance/UI/Utilities/Tables.js +++ b/Projects/Governance/UI/Utilities/Tables.js @@ -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 + '' + '' + property.label + ' ' + orderArrow + '' + '' + HTML = HTML + '' + '' + property.label + ' ' + orderArrow + '' + '' } HTML = HTML + '' HTML = HTML + ''