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 + ''