diff --git a/ayanova/src/components/data-table-filter-control.vue b/ayanova/src/components/data-table-filter-control.vue index d3d60769..1fa6c4ba 100644 --- a/ayanova/src/components/data-table-filter-control.vue +++ b/ayanova/src/components/data-table-filter-control.vue @@ -6,11 +6,298 @@ data-cy="dataTableFilterControl" > - {{ columnItem.text }} + {{ tableColumnData.text }} - {{ columnItem }} - {{ fieldDefinitions }} + + {{ @@ -30,8 +317,9 @@ export default { isVisible: false, resolve: null, reject: null, - columnItem: {}, + tableColumnData: {}, fieldDefinitions: [], + editItem: {}, selectLists: { dateFilterOperators: [], dateFilterTokens: [], @@ -47,8 +335,8 @@ export default { dataListKey: String }, methods: { - open(columnItem) { - this.columnItem = columnItem; + open(tableColumnData) { + this.tableColumnData = tableColumnData; this.isVisible = true; return new Promise((resolve, reject) => { this.resolve = resolve; @@ -71,7 +359,7 @@ async function initForm(vm) { await populateFieldDefinitions(vm); // await fetchTranslatedFieldNames(vm); // await setEffectiveListView(vm); - // await initDataObject(vm); + await initEditItem(vm); // await fetchEnums(vm); } @@ -344,4 +632,48 @@ function populateSelectionLists(vm) { ] ); } + +//////////////////// +// +function initEditItem(vm) { + if (vm.fieldDefinitions == null) { + throw new Error( + "ay-data-list::initEditItem - fieldDefinitions are not set" + ); + } + + let fld = vm.fieldDefinitions.find(z => z.fieldKey == 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: [] }, + tempFilterOperator: null, + tempFilterToken: null, + tempFilterValue: null + }; + + //If it's a tag and it's not been set yet it needs to have an empty array to stat with for the picker + if (o.uiFieldDataType == 9 && o.tempFilterValue == null) { + o.tempFilterValue = []; + } + + //Add display text for filter item (same as in addFilterCondition) + for (let j = 0; j < o.filter.items.length; j++) { + let fi = o.filter.items[j]; + fi.display = getDisplayForFilter( + vm, + o.uiFieldDataType, + fi.op, + fi.value, + o.enumType + ); + } + + vm.editItem = o; + + //eoc +}