From 072cca8e6b6942e28e0b18eabe3220ecf56026a3 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Fri, 16 Jul 2021 18:58:54 +0200 Subject: [PATCH] Filters at Utilities --- .../UI/Spaces/Reports-Space/UserProfiles.js | 29 +-------------- Projects/Governance/UI/Utilities/Filters.js | 37 +++++++++++++++++++ Projects/ProjectsSchema.json | 5 +++ 3 files changed, 43 insertions(+), 28 deletions(-) create mode 100644 Projects/Governance/UI/Utilities/Filters.js diff --git a/Projects/Governance/UI/Spaces/Reports-Space/UserProfiles.js b/Projects/Governance/UI/Spaces/Reports-Space/UserProfiles.js index c6be35f48..eaaa33a19 100644 --- a/Projects/Governance/UI/Spaces/Reports-Space/UserProfiles.js +++ b/Projects/Governance/UI/Spaces/Reports-Space/UserProfiles.js @@ -83,34 +83,7 @@ function newGovernanceReportsUserProfiles() { "tokenPower": userProfile.payload.tokenPower | 0 } - /* 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 - } - } - - if (passedFilters === true) { + if (UI.projects.governance.utilities.filters.applyFilters(filters, filtersObject, tableRecord) === true) { tableRecords.push(tableRecord) } } diff --git a/Projects/Governance/UI/Utilities/Filters.js b/Projects/Governance/UI/Utilities/Filters.js new file mode 100644 index 000000000..5a9d930e3 --- /dev/null +++ b/Projects/Governance/UI/Utilities/Filters.js @@ -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 + } +} \ No newline at end of file diff --git a/Projects/ProjectsSchema.json b/Projects/ProjectsSchema.json index 4ae62a5fc..a99271cf1 100644 --- a/Projects/ProjectsSchema.json +++ b/Projects/ProjectsSchema.json @@ -1083,6 +1083,11 @@ "name": "Common Tables", "propertyName": "commonTables", "functionName": "newGovernanceUtilitiesCommonTables" + }, + { + "name": "Filters", + "propertyName": "filters", + "functionName": "newGovernanceUtilitiesFilters" } ], "spaces": [