From 0d509eb97736e1fe5fb19607bfef8e14d86aab6d Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Wed, 3 Feb 2021 16:10:36 +0000 Subject: [PATCH] --- .../components/data-table-filter-control.vue | 105 +++++++++++++++++- 1 file changed, 101 insertions(+), 4 deletions(-) diff --git a/ayanova/src/components/data-table-filter-control.vue b/ayanova/src/components/data-table-filter-control.vue index 1fa6c4ba..4ffcb4fe 100644 --- a/ayanova/src/components/data-table-filter-control.vue +++ b/ayanova/src/components/data-table-filter-control.vue @@ -337,6 +337,7 @@ export default { methods: { open(tableColumnData) { this.tableColumnData = tableColumnData; + initEditItem(this); this.isVisible = true; return new Promise((resolve, reject) => { this.resolve = resolve; @@ -359,7 +360,7 @@ async function initForm(vm) { await populateFieldDefinitions(vm); // await fetchTranslatedFieldNames(vm); // await setEffectiveListView(vm); - await initEditItem(vm); + // await fetchEnums(vm); } @@ -641,15 +642,15 @@ function initEditItem(vm) { "ay-data-list::initEditItem - fieldDefinitions are not set" ); } - - let fld = vm.fieldDefinitions.find(z => z.fieldKey == tableColumnData.fk); + + let fld = vm.fieldDefinitions.find(z => z.fieldKey == vm.tableColumnData.fk); let o = { key: fld.fieldKey, isFilterable: fld.isFilterable, enumType: fld.enumType, uiFieldDataType: fld.uiFieldDataType, isCustomField: fld.isCustomField, - filter: lveditItem.filter || { any: false, items: [] }, + filter: { any: false, items: [] }, tempFilterOperator: null, tempFilterToken: null, tempFilterValue: null @@ -676,4 +677,100 @@ function initEditItem(vm) { //eoc } + +////////////////////////////////////////////////////////// +// +// Convert filter properties to translated / displayable +// used when making new filter and loading existing +// +function getDisplayForFilter( + vm, + uiFieldDataType, + filterOperator, + filterValue, + enumType +) { + //BLANKS FILTER + if (filterOperator == "=" && filterValue == "*NULL*") { + //de-lodash + // return window.$gz. _.find(vm.selectLists.stringFilterOperators, { + // id: "*NOVALUE*" + // }).name; + return vm.selectLists.stringFilterOperators.find(z => z.id == "*NOVALUE*") + .name; + } + // NONBLANKS FILTER + if (filterOperator == "!=" && filterValue == "*NULL*") { + //de-lodash + // return window.$gz. _.find(vm.selectLists.stringFilterOperators, { + // id: "*HASVALUE*" + // }).name; + return vm.selectLists.stringFilterOperators.find(z => z.id == "*HASVALUE*") + .name; + } + + //DATE RELATIVE TOKEN FILTER + if (uiFieldDataType === 1 && filterValue[0] == "*") { + //de-lodash + // let valueDisplay = window.$gz. _.find(vm.selectLists.dateFilterTokens, { + // id: filterValue + // }).name; + + let valueDisplay = vm.selectLists.dateFilterTokens.find( + z => z.id == filterValue + ).name; + + return filterOperator + " " + valueDisplay; + } + + //VALUE FILTER + //Nothing more to do if there isn't both a value AND an operator at this point + if (filterOperator == null || filterValue == null) { + // if (window.$gz.dev) { + // throw new Error( + // "ay-data-list-column-view::getDisplayForFilter Value filter missing one ore more of Operator, Value" + // ); + // } + return ""; + } + + let valueDisplay = "selected value"; + switch (uiFieldDataType) { + case 1: //date translate + valueDisplay = window.$gz.locale.utcDateToShortDateAndTimeLocalized( + filterValue + ); + break; + case 8: //currency translate + valueDisplay = window.$gz.locale.currencyLocalized(filterValue); + break; + case 7: //decimal translate + valueDisplay = window.$gz.locale.decimalLocalized(filterValue); + break; + case 6: //BOOL translate + let tKey = filterValue ? "True" : "False"; + valueDisplay = vm.$ay.t(tKey); + break; + case 10: //ENUM translate + valueDisplay = window.$gz.enums.get(enumType, filterValue); + break; + default: + valueDisplay = filterValue; + break; + } + + //Operator + //de-lodash + // let opDisplay = window.$gz. _.find(vm.selectLists.stringFilterOperators, { + // id: filterOperator + // }).name; + + let opDisplay = vm.selectLists.stringFilterOperators.find( + z => z.id == filterOperator + ).name; + + return opDisplay + ' "' + valueDisplay + '"'; + + //eoc +}