From bb2de43dec1b3d2448da3aa070abfabb0e43a8bd Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Mon, 19 Jul 2021 16:18:36 +0200 Subject: [PATCH] Mining Calculations implemented. --- Client/WebServer/css/governance.css | 3 +- .../UI/Spaces/Reports-Space/Mining.js | 117 ++++++++++++++++++ .../UI/Spaces/Reports-Space/ReportsPage.js | 8 +- .../UI/Spaces/Reports-Space/ReportsSpace.js | 6 + .../UI/Spaces/Reports-Space/UserProfiles.js | 4 +- 5 files changed, 134 insertions(+), 4 deletions(-) create mode 100644 Projects/Governance/UI/Spaces/Reports-Space/Mining.js diff --git a/Client/WebServer/css/governance.css b/Client/WebServer/css/governance.css index 6f2c547e8..198c2feb0 100644 --- a/Client/WebServer/css/governance.css +++ b/Client/WebServer/css/governance.css @@ -884,7 +884,8 @@ #governance-tab9:checked ~ .governance-search-result-content #content9, #governance-tab10:checked ~ .governance-search-result-content #content10, #governance-tab11:checked ~ .governance-search-result-content #content11, - #governance-tab12:checked ~ .governance-search-result-content #content12 { + #governance-tab12:checked ~ .governance-search-result-content #content12, + #governance-tab13:checked ~ .governance-search-result-content #content13 { display: block; } diff --git a/Projects/Governance/UI/Spaces/Reports-Space/Mining.js b/Projects/Governance/UI/Spaces/Reports-Space/Mining.js new file mode 100644 index 000000000..dbf468705 --- /dev/null +++ b/Projects/Governance/UI/Spaces/Reports-Space/Mining.js @@ -0,0 +1,117 @@ +function newGovernanceReportsMining() { + let thisObject = { + addHTML: addHTML, + initialize: initialize, + finalize: finalize + } + + return thisObject + + function initialize() { + + } + + function finalize() { + + } + + function addHTML(tabIndex, filters) { + + /* + Setup Filters + */ + let filtersObject + if (filters !== undefined) { + try { + filtersObject = JSON.parse(filters) + } catch (err) { } + } + /* + Other Variables + */ + let tableRecords = [] + let table = 'mining' + let tableRecordDefinition = { + "properties": [ + { + "name": "name", + "label": "User Profile", + "type": "string", + "order": "ascending", + "textAlign": "left" + }, + { + "name": "tokensAwarded", + "label": "Tokens Awarded", + "type": "number", + "order": "descending", + "textAlign": "center", + "format": "2 decimals" + }, + { + "name": "tokensBonus", + "label": "Tokens Bonus", + "type": "number", + "order": "descending", + "textAlign": "center", + "format": "2 decimals" + }, + { + "name": "tokensMined", + "label": "Tokens Mined", + "type": "number", + "order": "descending", + "textAlign": "center", + "format": "2 decimals" + } + ] + } + /* + 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.payload === undefined) { continue } + if (userProfile.tokensMined === undefined) { continue } + if (userProfile.tokensMined.payload === undefined) { continue } + if (userProfile.tokensMined.payload.tokensMined === undefined) { continue } + + let tableRecord = { + "name": userProfile.name, + "tokensAwarded": userProfile.tokensMined.payload.tokensMined.awarded | 0, + "tokensBonus": userProfile.tokensMined.payload.tokensMined.bonus | 0, + "tokensMined": userProfile.tokensMined.payload.tokensMined.total | 0 + } + + if (UI.projects.governance.utilities.filters.applyFilters(filters, filtersObject, tableRecord) === true) { + 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: 'tokensMined', + 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 d2d4bea6e..d21e3d7ce 100644 --- a/Projects/Governance/UI/Spaces/Reports-Space/ReportsPage.js +++ b/Projects/Governance/UI/Spaces/Reports-Space/ReportsPage.js @@ -30,7 +30,7 @@ function newGovernanceReportsReportsPage() { buildHTML() function buildHTML() { - const tabs = ['Profiles', 'Referrals', 'Supporters', 'Mentors', 'Claims', 'Votes', 'Staking', 'Delegation', 'Pools', 'Assets', 'Features', 'Positions'] + const tabs = ['Profiles', 'Referrals', 'Supporters', 'Mentors', 'Claims', 'Votes', 'Staking', 'Delegation', 'Pools', 'Assets', 'Features', 'Positions', 'Mining'] let HTML = '' HTML = HTML + '
' HTML = HTML + UI.projects.governance.spaces.reportsSpace.filtersHeader.addFilterHeader() @@ -128,6 +128,12 @@ function newGovernanceReportsReportsPage() { resultCounter = response.resultCounter break } + case 'Mining': { + let response = UI.projects.governance.spaces.reportsSpace.mining.addHTML(13, filters) + HTML = HTML + response.HTML + resultCounter = response.resultCounter + break + } } HTML = HTML + '' diff --git a/Projects/Governance/UI/Spaces/Reports-Space/ReportsSpace.js b/Projects/Governance/UI/Spaces/Reports-Space/ReportsSpace.js index 76abd71fe..29a701975 100644 --- a/Projects/Governance/UI/Spaces/Reports-Space/ReportsSpace.js +++ b/Projects/Governance/UI/Spaces/Reports-Space/ReportsSpace.js @@ -19,6 +19,7 @@ function newGobernanceReportsSpace() { assets: undefined, features: undefined, positions: undefined, + mining: undefined, tablesSortingOrders: undefined, changeTableSortingOrder, physics: physics, @@ -96,6 +97,9 @@ function newGobernanceReportsSpace() { thisObject.positions.finalize() thisObject.positions = undefined + thisObject.mining.finalize() + thisObject.mining = undefined + isInitialized = false } @@ -128,6 +132,7 @@ function newGobernanceReportsSpace() { thisObject.assets = newGovernanceReportsAssets() thisObject.features = newGovernanceReportsFeatures() thisObject.positions = newGovernanceReportsPositions() + thisObject.mining = newGovernanceReportsMining() thisObject.reportsPage.initialize() thisObject.footer.initialize() @@ -143,6 +148,7 @@ function newGobernanceReportsSpace() { thisObject.assets.initialize() thisObject.features.initialize() thisObject.positions.initialize() + thisObject.mining.initialize() setupSidePanelTab() diff --git a/Projects/Governance/UI/Spaces/Reports-Space/UserProfiles.js b/Projects/Governance/UI/Spaces/Reports-Space/UserProfiles.js index eaaa33a19..29ef1bc84 100644 --- a/Projects/Governance/UI/Spaces/Reports-Space/UserProfiles.js +++ b/Projects/Governance/UI/Spaces/Reports-Space/UserProfiles.js @@ -96,8 +96,8 @@ function newGovernanceReportsUserProfiles() { */ if (sortingOrder === undefined) { UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table] = { - property: 'name', - order: 'ascending' + property: 'blockchainPower', + order: 'descending' } sortingOrder = UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table] }