Files
Superalgos/Projects/Governance/UI/Utilities/CommonTables.js
T

126 lines
4.5 KiB
JavaScript

function newGovernanceUtilitiesCommonTables() {
let thisObject = {
addHTML: addHTML
}
return thisObject
function addHTML(
table,
nodeType,
hierarchyHeadsType,
tabIndex,
filters
) {
/*
Setup Filters
*/
let filtersObject
if (filters !== undefined) {
try {
filtersObject = JSON.parse(filters)
} catch (err) { }
}
let tableRecords = []
let tableRecordDefinition = {
"properties": [
{
"name": "name",
"label": "Name",
"type": "string",
"order": "ascending",
"textAlign": "left"
},
{
"name": "tokensReward",
"label": "Tokens Reward",
"type": "number",
"order": "descending",
"textAlign": "center",
"format": "integer"
},
{
"name": "rewardInBTC",
"label": "Reward In BTC",
"type": "number",
"order": "descending",
"textAlign": "center",
"format": "8 decimals"
},
{
"name": "weight",
"label": "Weight",
"type": "number",
"order": "descending",
"textAlign": "center",
"format": "percentage"
},
{
"name": "weightPower",
"label": "Weight Power",
"type": "number",
"order": "descending",
"textAlign": "center",
"format": "2 decimals"
}
]
}
/*
Here we get from the workspace all User Profiles.
*/
let nodes = UI.projects.foundations.spaces.designSpace.workspace.getNodesByTypeAndHierarchyHeadsType(nodeType, hierarchyHeadsType)
/*
Transform the result array into table records.
*/
for (let j = 0; j < nodes.length; j++) {
let node = nodes[j]
let name = ''
if (node.payload.parentNode !== undefined) {
if (node.payload.parentNode.payload.parentNode !== undefined) {
if (node.payload.parentNode.payload.parentNode.payload.parentNode !== undefined) {
if (node.payload.parentNode.payload.parentNode.payload.parentNode.payload.parentNode !== undefined) {
name = name + node.payload.parentNode.payload.parentNode.payload.parentNode.payload.parentNode.name + ' - '
}
name = name + node.payload.parentNode.payload.parentNode.payload.parentNode.name + ' - '
}
name = name + node.payload.parentNode.payload.parentNode.name + ' - '
}
name = name + node.payload.parentNode.name + ' - '
}
name = name + node.name
let tableRecord = {
"name": name,
"tokensReward": node.payload.tokens | 0,
"rewardInBTC": UI.projects.governance.utilities.conversions.estimateSATokensInBTC(node.payload.tokens | 0),
"weight": node.payload.weight,
"weightPower": node.payload.votingProgram.votes | 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: 'tokensReward',
order: 'descending'
}
sortingOrder = UI.projects.governance.spaces.reportsSpace.tablesSortingOrders[table]
}
return UI.projects.governance.utilities.tables.addHTML(
table,
tableRecords,
tableRecordDefinition,
sortingOrder,
tabIndex
)
}
}