Merge pull request #1300 from Luis-Fernando-Molina/develop
Contribution: Referrals Report Working
This commit is contained in:
10 files changed
+223
-62
No files matched your search
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
|
||||
@@ -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>'
|
||||
|
||||
Reference in new issue
Block a user