Merge pull request #1307 from Luis-Fernando-Molina/develop
Contribution: Filters Implemented
This commit is contained in:
16 files changed
+211
-36
No files matched your search
@@ -793,7 +793,7 @@
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.governance-search-input {
|
||||
.governance-filter-input {
|
||||
width: 95%;
|
||||
height: 45px;
|
||||
margin: 0 20px;
|
||||
|
||||
@@ -15,12 +15,13 @@ function newGovernanceReportsAssets() {
|
||||
|
||||
}
|
||||
|
||||
function addHTML(tabIndex) {
|
||||
function addHTML(tabIndex, filters) {
|
||||
return UI.projects.governance.utilities.commonTables.addHTML(
|
||||
'assets',
|
||||
'Asset',
|
||||
'Assets',
|
||||
tabIndex
|
||||
tabIndex,
|
||||
filters
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -15,12 +15,13 @@ function newGovernanceReportsFeatures() {
|
||||
|
||||
}
|
||||
|
||||
function addHTML(tabIndex) {
|
||||
function addHTML(tabIndex, filters) {
|
||||
return UI.projects.governance.utilities.commonTables.addHTML(
|
||||
'features',
|
||||
'Feature',
|
||||
'Features',
|
||||
tabIndex
|
||||
tabIndex,
|
||||
filters
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
function newGovernanceReportsFiltersHeader() {
|
||||
let thisObject = {
|
||||
addFilterHeader: addFilterHeader,
|
||||
detectEnterOnFiltersBox: detectEnterOnFiltersBox,
|
||||
setFocusOnFiltersBox: setFocusOnFiltersBox,
|
||||
render: render,
|
||||
initialize: initialize,
|
||||
finalize: finalize
|
||||
}
|
||||
|
||||
let lastFilters = ''
|
||||
|
||||
return thisObject
|
||||
|
||||
function initialize() {
|
||||
|
||||
}
|
||||
|
||||
function finalize() {
|
||||
|
||||
}
|
||||
|
||||
function render() {
|
||||
let HTML = ''
|
||||
HTML = HTML + '<div id="governance-search-page-div">'
|
||||
HTML = HTML + '<center><img src="Images/superalgos-logo.png" class="governance-image-logo-search" width=400></center>'
|
||||
HTML = HTML + '<center><div class="governance-font-normal governance-search-box"><input class="governance-filter-input" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></input></div></center>'
|
||||
HTML = HTML + '</div>'
|
||||
let docsContentDiv = document.getElementById('governance-content-div')
|
||||
docsContentDiv.innerHTML = HTML + UI.projects.education.spaces.docsSpace.footer.addFooter()
|
||||
|
||||
UI.projects.governance.spaces.reportsSpace.filtersHeader.detectEnterOnFiltersBox()
|
||||
UI.projects.governance.spaces.reportsSpace.filtersHeader.setFocusOnFiltersBox()
|
||||
}
|
||||
|
||||
function addFilterHeader() {
|
||||
let HTML = ''
|
||||
// Logo & Search Box
|
||||
HTML = HTML + '<div class="governance-report-page-header">'
|
||||
HTML = HTML + '<div class="governance-image-logo-report-page"><img src="Images/superalgos-logo.png" width=200></div>'
|
||||
HTML = HTML + '<div class="governance-report-page-box">'
|
||||
HTML = HTML + '<input class="governance-filter-input" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></input>'
|
||||
HTML = HTML + '</div>'
|
||||
HTML = HTML + '</div>'
|
||||
|
||||
return HTML
|
||||
}
|
||||
|
||||
function detectEnterOnFiltersBox() {
|
||||
const element = document.getElementsByClassName("governance-filter-input")[0]
|
||||
if (UI.projects.education.spaces.docsSpace.commandInterface.command !== undefined) {
|
||||
element.value = UI.projects.education.spaces.docsSpace.commandInterface.command
|
||||
}
|
||||
element.addEventListener("keyup", function (event) {
|
||||
if (event.key === "Enter" || event.keyCode === 13) {
|
||||
lastFilters = element.value.trim()
|
||||
UI.projects.governance.spaces.reportsSpace.reportsPage.render(undefined, lastFilters)
|
||||
/*
|
||||
UI.projects.education.spaces.docsSpace.commandInterface.command = element.value.trim()
|
||||
UI.projects.education.spaces.docsSpace.commandInterface.detectCommands()
|
||||
*/
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function setFocusOnFiltersBox() {
|
||||
const element = document.getElementsByClassName("governance-filter-input")[0]
|
||||
element.value = lastFilters
|
||||
element.focus()
|
||||
}
|
||||
}
|
||||
@@ -15,12 +15,13 @@ function newGovernanceReportsMentors() {
|
||||
|
||||
}
|
||||
|
||||
function addHTML(tabIndex) {
|
||||
function addHTML(tabIndex, filters) {
|
||||
return UI.projects.governance.utilities.decendentTables.addHTML(
|
||||
'mentors',
|
||||
'Mentorship Program',
|
||||
'mentorshipProgram',
|
||||
tabIndex
|
||||
tabIndex,
|
||||
filters
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -15,12 +15,13 @@ function newGovernanceReportsPools() {
|
||||
|
||||
}
|
||||
|
||||
function addHTML(tabIndex) {
|
||||
function addHTML(tabIndex, filters) {
|
||||
return UI.projects.governance.utilities.commonTables.addHTML(
|
||||
'pools',
|
||||
'Pool',
|
||||
'Pools',
|
||||
tabIndex
|
||||
tabIndex,
|
||||
filters
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -15,12 +15,13 @@ function newGovernanceReportsPositions() {
|
||||
|
||||
}
|
||||
|
||||
function addHTML(tabIndex) {
|
||||
function addHTML(tabIndex, filters) {
|
||||
return UI.projects.governance.utilities.commonTables.addHTML(
|
||||
'positions',
|
||||
'Position',
|
||||
'Positions',
|
||||
tabIndex
|
||||
tabIndex,
|
||||
filters
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -15,12 +15,13 @@ function newGovernanceReportsReferrals() {
|
||||
|
||||
}
|
||||
|
||||
function addHTML(tabIndex) {
|
||||
function addHTML(tabIndex, filters) {
|
||||
return UI.projects.governance.utilities.decendentTables.addHTML(
|
||||
'referrals',
|
||||
'Referral Program',
|
||||
'referralProgram',
|
||||
tabIndex
|
||||
tabIndex,
|
||||
filters
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@ function newGovernanceReportsReportsPage() {
|
||||
finalize: finalize
|
||||
}
|
||||
|
||||
let lastTabIndex
|
||||
return thisObject
|
||||
|
||||
function initialize() {
|
||||
@@ -15,8 +16,15 @@ function newGovernanceReportsReportsPage() {
|
||||
|
||||
}
|
||||
|
||||
function render(tabIndex) {
|
||||
|
||||
function render(tabIndex, filters) {
|
||||
|
||||
/* Setup tabIndex */
|
||||
if (tabIndex === undefined) {
|
||||
tabIndex = lastTabIndex
|
||||
} else {
|
||||
lastTabIndex = tabIndex
|
||||
}
|
||||
|
||||
let resultsArary = []
|
||||
let initialTime = new Date()
|
||||
buildHTML()
|
||||
@@ -25,7 +33,7 @@ function newGovernanceReportsReportsPage() {
|
||||
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()
|
||||
HTML = HTML + UI.projects.governance.spaces.reportsSpace.filtersHeader.addFilterHeader()
|
||||
|
||||
// Tabs
|
||||
HTML = HTML + '<div class="governance-report-page-header-tabs-container">'
|
||||
@@ -49,49 +57,49 @@ function newGovernanceReportsReportsPage() {
|
||||
|
||||
switch (tab) {
|
||||
case 'Profiles': {
|
||||
let response = UI.projects.governance.spaces.reportsSpace.userProfiles.addHTML(1)
|
||||
let response = UI.projects.governance.spaces.reportsSpace.userProfiles.addHTML(1, filters)
|
||||
HTML = HTML + response.HTML
|
||||
resultCounter = response.resultCounter
|
||||
break
|
||||
}
|
||||
case 'Referrals': {
|
||||
let response = UI.projects.governance.spaces.reportsSpace.referrals.addHTML(2)
|
||||
let response = UI.projects.governance.spaces.reportsSpace.referrals.addHTML(2, filters)
|
||||
HTML = HTML + response.HTML
|
||||
resultCounter = response.resultCounter
|
||||
break
|
||||
}
|
||||
case 'Supporters': {
|
||||
let response = UI.projects.governance.spaces.reportsSpace.supports.addHTML(3)
|
||||
let response = UI.projects.governance.spaces.reportsSpace.supports.addHTML(3, filters)
|
||||
HTML = HTML + response.HTML
|
||||
resultCounter = response.resultCounter
|
||||
break
|
||||
}
|
||||
case 'Mentors': {
|
||||
let response = UI.projects.governance.spaces.reportsSpace.mentors.addHTML(4)
|
||||
let response = UI.projects.governance.spaces.reportsSpace.mentors.addHTML(4, filters)
|
||||
HTML = HTML + response.HTML
|
||||
resultCounter = response.resultCounter
|
||||
break
|
||||
}
|
||||
case 'Pools': {
|
||||
let response = UI.projects.governance.spaces.reportsSpace.pools.addHTML(5)
|
||||
let response = UI.projects.governance.spaces.reportsSpace.pools.addHTML(5, filters)
|
||||
HTML = HTML + response.HTML
|
||||
resultCounter = response.resultCounter
|
||||
break
|
||||
}
|
||||
case 'Assets': {
|
||||
let response = UI.projects.governance.spaces.reportsSpace.assets.addHTML(6)
|
||||
let response = UI.projects.governance.spaces.reportsSpace.assets.addHTML(6, filters)
|
||||
HTML = HTML + response.HTML
|
||||
resultCounter = response.resultCounter
|
||||
break
|
||||
}
|
||||
case 'Features': {
|
||||
let response = UI.projects.governance.spaces.reportsSpace.features.addHTML(7)
|
||||
let response = UI.projects.governance.spaces.reportsSpace.features.addHTML(7, filters)
|
||||
HTML = HTML + response.HTML
|
||||
resultCounter = response.resultCounter
|
||||
break
|
||||
}
|
||||
case 'Positions': {
|
||||
let response = UI.projects.governance.spaces.reportsSpace.positions.addHTML(8)
|
||||
let response = UI.projects.governance.spaces.reportsSpace.positions.addHTML(8, filters)
|
||||
HTML = HTML + response.HTML
|
||||
resultCounter = response.resultCounter
|
||||
break
|
||||
@@ -123,8 +131,8 @@ function newGovernanceReportsReportsPage() {
|
||||
|
||||
docsContentDiv.innerHTML = HTML + UI.projects.governance.spaces.reportsSpace.footer.addFooter()
|
||||
|
||||
UI.projects.education.spaces.docsSpace.mainSearchPage.detectEnterOnSearchBox()
|
||||
UI.projects.education.spaces.docsSpace.mainSearchPage.setFocusOnSearchBox()
|
||||
UI.projects.governance.spaces.reportsSpace.filtersHeader.detectEnterOnFiltersBox()
|
||||
UI.projects.governance.spaces.reportsSpace.filtersHeader.setFocusOnFiltersBox()
|
||||
|
||||
// If there is a tabIndex we will switch to that tab here.
|
||||
if (tabIndex !== undefined) {
|
||||
|
||||
@@ -6,6 +6,7 @@ function newGobernanceReportsSpace() {
|
||||
sidePanelTab: undefined,
|
||||
reportsPage: undefined,
|
||||
footer: undefined,
|
||||
filtersHeader: undefined,
|
||||
userProfiles: undefined,
|
||||
referrals: undefined,
|
||||
supports: undefined,
|
||||
@@ -52,6 +53,9 @@ function newGobernanceReportsSpace() {
|
||||
thisObject.footer.finalize()
|
||||
thisObject.footer = undefined
|
||||
|
||||
thisObject.filtersHeader.finalize()
|
||||
thisObject.filtersHeader = undefined
|
||||
|
||||
thisObject.userProfiles.finalize()
|
||||
thisObject.userProfiles = undefined
|
||||
|
||||
@@ -95,6 +99,7 @@ function newGobernanceReportsSpace() {
|
||||
|
||||
thisObject.reportsPage = newGovernanceReportsReportsPage()
|
||||
thisObject.footer = newGovernanceReportsFooter()
|
||||
thisObject.filtersHeader = newGovernanceReportsFiltersHeader()
|
||||
thisObject.userProfiles = newGovernanceReportsUserProfiles()
|
||||
thisObject.referrals = newGovernanceReportsReferrals()
|
||||
thisObject.supports = newGovernanceReportsSupports()
|
||||
@@ -106,6 +111,7 @@ function newGobernanceReportsSpace() {
|
||||
|
||||
thisObject.reportsPage.initialize()
|
||||
thisObject.footer.initialize()
|
||||
thisObject.filtersHeader.initialize()
|
||||
thisObject.userProfiles.initialize()
|
||||
thisObject.referrals.initialize()
|
||||
thisObject.mentors.initialize()
|
||||
|
||||
@@ -15,12 +15,13 @@ function newGovernanceReportsSupports() {
|
||||
|
||||
}
|
||||
|
||||
function addHTML(tabIndex) {
|
||||
function addHTML(tabIndex, filters) {
|
||||
return UI.projects.governance.utilities.decendentTables.addHTML(
|
||||
'supports',
|
||||
'Support Program',
|
||||
'supportProgram',
|
||||
tabIndex
|
||||
tabIndex,
|
||||
filters
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -15,8 +15,20 @@ function newGovernanceReportsUserProfiles() {
|
||||
|
||||
}
|
||||
|
||||
function addHTML(tabIndex) {
|
||||
function addHTML(tabIndex, filters) {
|
||||
|
||||
/*
|
||||
Setup Filters
|
||||
*/
|
||||
let filtersObject
|
||||
if (filters !== undefined) {
|
||||
try {
|
||||
filtersObject = JSON.parse(filters)
|
||||
} catch (err) { }
|
||||
}
|
||||
/*
|
||||
Other Variables
|
||||
*/
|
||||
let tableRecords = []
|
||||
let table = 'userProfiles'
|
||||
let tableRecordDefinition = {
|
||||
@@ -71,7 +83,9 @@ function newGovernanceReportsUserProfiles() {
|
||||
"tokenPower": userProfile.payload.tokenPower | 0
|
||||
}
|
||||
|
||||
tableRecords.push(tableRecord)
|
||||
if (UI.projects.governance.utilities.filters.applyFilters(filters, filtersObject, tableRecord) === true) {
|
||||
tableRecords.push(tableRecord)
|
||||
}
|
||||
}
|
||||
/*
|
||||
Get the sorting order for this table.
|
||||
|
||||
@@ -9,8 +9,18 @@ function newGovernanceUtilitiesCommonTables() {
|
||||
table,
|
||||
nodeType,
|
||||
hierarchyHeadsType,
|
||||
tabIndex
|
||||
tabIndex,
|
||||
filters
|
||||
) {
|
||||
/*
|
||||
Setup Filters
|
||||
*/
|
||||
let filtersObject
|
||||
if (filters !== undefined) {
|
||||
try {
|
||||
filtersObject = JSON.parse(filters)
|
||||
} catch (err) { }
|
||||
}
|
||||
let tableRecords = []
|
||||
let tableRecordDefinition = {
|
||||
"properties": [
|
||||
@@ -60,11 +70,13 @@ function newGovernanceUtilitiesCommonTables() {
|
||||
let tableRecord = {
|
||||
"name": node.name,
|
||||
"tokensReward": node.payload.tokens | 0,
|
||||
"weight": node.payload.weight ,
|
||||
"weightPower": node.payload.votingProgram.votes
|
||||
"weight": node.payload.weight,
|
||||
"weightPower": node.payload.votingProgram.votes
|
||||
}
|
||||
|
||||
tableRecords.push(tableRecord)
|
||||
if (UI.projects.governance.utilities.filters.applyFilters(filters, filtersObject, tableRecord) === true) {
|
||||
tableRecords.push(tableRecord)
|
||||
}
|
||||
}
|
||||
/*
|
||||
Get the sorting order for this table.
|
||||
|
||||
@@ -9,8 +9,21 @@ function newGovernanceUtilitiesDecendentTables() {
|
||||
table,
|
||||
programName,
|
||||
programPropertyName,
|
||||
tabIndex
|
||||
tabIndex,
|
||||
filters
|
||||
) {
|
||||
/*
|
||||
Setup Filters
|
||||
*/
|
||||
let filtersObject
|
||||
if (filters !== undefined) {
|
||||
try {
|
||||
filtersObject = JSON.parse(filters)
|
||||
} catch (err) { }
|
||||
}
|
||||
/*
|
||||
Other Variables
|
||||
*/
|
||||
let tableRecords = []
|
||||
let tableRecordDefinition = {
|
||||
"properties": [
|
||||
@@ -87,7 +100,9 @@ function newGovernanceUtilitiesDecendentTables() {
|
||||
"tokensBonus": program.payload[programPropertyName].bonus.tokens | 0
|
||||
}
|
||||
|
||||
tableRecords.push(tableRecord)
|
||||
if (UI.projects.governance.utilities.filters.applyFilters(filters, filtersObject, tableRecord) === true) {
|
||||
tableRecords.push(tableRecord)
|
||||
}
|
||||
}
|
||||
/*
|
||||
Get the sorting order for this table.
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
function newGovernanceUtilitiesFilters() {
|
||||
let thisObject = {
|
||||
applyFilters: applyFilters
|
||||
}
|
||||
|
||||
return thisObject
|
||||
|
||||
function applyFilters(filters, filtersObject, tableRecord) {
|
||||
/* Apply Filters */
|
||||
let passedFilters = true
|
||||
if (filtersObject !== undefined) {
|
||||
for (var property in tableRecord) {
|
||||
if (Object.prototype.hasOwnProperty.call(tableRecord, property)) {
|
||||
let fiter = filtersObject[property]
|
||||
if (fiter === undefined) { continue }
|
||||
let value = tableRecord[property]
|
||||
let condition = eval(fiter)
|
||||
if (condition === false) {
|
||||
passedFilters = false
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/*
|
||||
We will assume the filter is a string and that needs to be applied to the property name.
|
||||
*/
|
||||
if (
|
||||
filters !== undefined &&
|
||||
filters !== "" &&
|
||||
tableRecord.name.indexOf(filters) < 0
|
||||
) {
|
||||
passedFilters = false
|
||||
}
|
||||
}
|
||||
return passedFilters
|
||||
}
|
||||
}
|
||||
@@ -1083,6 +1083,11 @@
|
||||
"name": "Common Tables",
|
||||
"propertyName": "commonTables",
|
||||
"functionName": "newGovernanceUtilitiesCommonTables"
|
||||
},
|
||||
{
|
||||
"name": "Filters",
|
||||
"propertyName": "filters",
|
||||
"functionName": "newGovernanceUtilitiesFilters"
|
||||
}
|
||||
],
|
||||
"spaces": [
|
||||
|
||||
Reference in new issue
Block a user