table ordering working
This commit is contained in:
1 parent
35f4d49289
commit
0358d48454
2 files changed
+65
-18
No files matched your search
@@ -67,12 +67,7 @@ function newGobernanceReportsSpace() {
|
||||
|
||||
setupSidePanelTab()
|
||||
|
||||
thisObject.tablesSortingOrders = {
|
||||
userProfiles: {
|
||||
property: 'name',
|
||||
order: 'ascending'
|
||||
}
|
||||
}
|
||||
thisObject.tablesSortingOrders = {}
|
||||
|
||||
isInitialized = true
|
||||
|
||||
@@ -133,7 +128,9 @@ function newGobernanceReportsSpace() {
|
||||
}
|
||||
|
||||
function changeTableSortingOrder(table, property, order){
|
||||
|
||||
thisObject.tablesSortingOrders[table].property = property
|
||||
thisObject.tablesSortingOrders[table].order = order
|
||||
thisObject.reportsPage.render()
|
||||
}
|
||||
|
||||
function onOpening() {
|
||||
|
||||
@@ -21,32 +21,42 @@ function newGovernanceReportsUserProfiles() {
|
||||
thisObject.resultCounter = 0
|
||||
let HTML = ''
|
||||
let tableRecords = []
|
||||
let table = 'userProfiles'
|
||||
let tableRecordDefinition = {
|
||||
"properties": [
|
||||
{
|
||||
"name": "name",
|
||||
"label": "Name",
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"order": "ascending"
|
||||
},
|
||||
{
|
||||
"name": "blockchainPower",
|
||||
"label": "Blockchain Power",
|
||||
"type": "number"
|
||||
"type": "number",
|
||||
"order": "descending"
|
||||
},
|
||||
{
|
||||
"name": "delegatedPower",
|
||||
"label": "Name",
|
||||
"type": "number"
|
||||
"type": "number",
|
||||
"order": "descending"
|
||||
},
|
||||
{
|
||||
"name": "tokenPower",
|
||||
"label": "Token Power",
|
||||
"type": "number"
|
||||
"type": "number",
|
||||
"order": "descending"
|
||||
}
|
||||
]
|
||||
}
|
||||
/*
|
||||
Here we get from the workspace all the nodes representing User Profiles.
|
||||
*/
|
||||
let resultsArary = 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]
|
||||
|
||||
@@ -59,13 +69,24 @@ function newGovernanceReportsUserProfiles() {
|
||||
|
||||
tableRecords.push(tableRecord)
|
||||
}
|
||||
|
||||
/*
|
||||
Apply the sorting order for this table.
|
||||
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 sortingOrder = UI.projects.governance.spaces.reportsSpace.tablesSortingOrders['userProfiles']
|
||||
let propertyType
|
||||
|
||||
for (let i = 0; i < tableRecordDefinition.properties.length; i++) {
|
||||
let property = tableRecordDefinition.properties[i]
|
||||
if (property.name === sortingOrder.property) {
|
||||
@@ -73,7 +94,9 @@ function newGovernanceReportsUserProfiles() {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Apply the sorting order for this table.
|
||||
*/
|
||||
switch (propertyType) {
|
||||
case 'string': {
|
||||
switch (sortingOrder.order) {
|
||||
@@ -103,6 +126,9 @@ function newGovernanceReportsUserProfiles() {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Build the HTML
|
||||
*/
|
||||
let odd = false
|
||||
|
||||
HTML = HTML + '<table class="governance-info-table">'
|
||||
@@ -110,7 +136,31 @@ function newGovernanceReportsUserProfiles() {
|
||||
HTML = HTML + '<tr>'
|
||||
for (let i = 0; i < tableRecordDefinition.properties.length; i++) {
|
||||
let property = tableRecordDefinition.properties[i]
|
||||
HTML = HTML + '<th>' + '<a href="#" onClick="UI.projects.governance.spaces.reportsSpace.changeTableSortingOrder(\'' + property.name + '\')">' + property.label + '</a>' + '</th>'
|
||||
let newOrder
|
||||
/*
|
||||
If the property is the one defining the order, then the new order will be
|
||||
the opossite order.
|
||||
*/
|
||||
if (property.name === sortingOrder.property) {
|
||||
if (sortingOrder.order === 'ascending') {
|
||||
newOrder = 'descending'
|
||||
} else {
|
||||
newOrder = 'ascending'
|
||||
}
|
||||
} else {
|
||||
/*
|
||||
If the property is not the current defininf the order, then the new order will
|
||||
be the default order for that property.
|
||||
*/
|
||||
for (let i = 0; i < tableRecordDefinition.properties.length; i++) {
|
||||
let propertyDefinition = tableRecordDefinition.properties[i]
|
||||
if (property.name === propertyDefinition.name) {
|
||||
newOrder = propertyDefinition.order
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
HTML = HTML + '<th>' + '<a href="#" onClick="UI.projects.governance.spaces.reportsSpace.changeTableSortingOrder(\'' + table + '\',\'' + property.name + '\',\'' + newOrder + '\')">' + property.label + '</a>' + '</th>'
|
||||
}
|
||||
HTML = HTML + '</tr>'
|
||||
HTML = HTML + '<thead>'
|
||||
|
||||
Reference in new issue
Block a user