This commit is contained in:
2021-02-04 16:41:09 +00:00
parent e4ad614570
commit 24285fe1c8
2 changed files with 94 additions and 173 deletions

View File

@@ -15,9 +15,8 @@ LISTVIEW REPLACE CURRENT <----HERE not THERE ---v
CLIENT
Translation keys
Add the missing keys to server or find a suitable one to use
Reset, SaveCopy
pore over the translation keys in the filter manager, datatable and filter control
there are definitely some extra ones in there

View File

@@ -599,8 +599,12 @@ export default {
ObjectType: ayaType,
selectedRowIds: selectedRowIds,
dataListKey: vm.dataListKey,
listView: untokenizeListView(vm.listView),
clientCriteria: vm.clientCriteria
// listView: untokenizeListView(vm.listView),
filterId: vm.activeFilterId,
clientCriteria: vm.clientCriteria,
clientTimeStamp: window.$gz.locale.clientLocalZoneTimeStamp(
vm.timeZoneName
)
};
},
handleSelectChange() {
@@ -726,7 +730,7 @@ export default {
}
try {
let res = await window.$gz.api.upsert("data-list", {
let res = await window.$gz.api.post("data-list", {
offset: listOptions.Offset,
limit: listOptions.Limit,
dataListKey: vm.dataListKey,
@@ -787,6 +791,8 @@ export default {
vm.getDataFromApi();
},
beforeUpdate() {
//WTF is beforeUpdate doing and what is resetlistview doing??
console.log("data-table: BEFORE UPDATE CALLED");
if (this.clientCriteria != null && this.activeFilterId != 0) {
this.resetListView();
}
@@ -1098,60 +1104,15 @@ async function fetchSavedFilterList(vm) {
}
}
// //////////////////////////////////////////////////////////
// //
// // Fetch and cache list view
// //
// async function fetchListView(vm) {
// if (!vm.activeFilterId) {
// return;
// }
// let res = await window.$gz.api.get("data-list-view/" + vm.activeFilterId);
// if (res.error) {
// if (res.error.code && res.error.code == "2010") {
// //list not found, probably deleted by another user
// //or on another browser and this one still had it as the last used list view
// vm.activeFilterId = 0; //indicate no list view
// return;
// } else {
// vm.formState.serverError = res.error;
// window.$gz.form.setErrorBoxErrors(vm);
// }
// // window.$gz.errorHandler.handleFormError(res.error, vm);
// } else {
// vm.listView = res.data.listView;
// }
// }
////////////////////
//
function saveFormSettings(vm) {
let unsavedlv = vm.listView;
let cachedlv = vm.listView;
if (vm.activeFilterId == 0) {
//we aren't using any listview
unsavedlv = undefined;
cachedlv = undefined;
}
if (vm.activeFilterId == -1) {
//we have an unsaved one in use so there is no need for a cached one
cachedlv = undefined;
}
if (vm.activeFilterId > 0) {
//we are using a saved lv so save cached one and clear anything in unsaved one
unsavedlv = undefined;
}
window.$gz.form.setFormSettings(vm.formKey, {
temp: { page: vm.dataTablePagingOptions.page, cachedListView: cachedlv },
temp: { page: vm.dataTablePagingOptions.page },
saved: {
itemsPerPage: vm.dataTablePagingOptions.itemsPerPage,
dataTable: {
activeFilterId: vm.activeFilterId,
unsavedListView: unsavedlv
activeFilterId: vm.activeFilterId
}
}
});
@@ -1168,30 +1129,12 @@ function loadFormSettings(vm) {
vm.dataTablePagingOptions.itemsPerPage = formSettings.saved.itemsPerPage;
}
if (formSettings.saved.dataTable.activeFilterId != null) {
console.log(
"data-table:loadFormSettings, has activeFilterId saved and is:",
formSettings.saved.dataTable.activeFilterId
);
vm.activeFilterId = formSettings.saved.dataTable.activeFilterId;
}
// if (vm.activeFilterId == 0) {
// //default view, not unsaved and not saved
// vm.listView = undefined;
// }
// if (vm.activeFilterId == -1) {
// //-1 is code for unsaved list view
// //check if there is a local copy of a listview vm was edited but not saved
// if (formSettings.saved.dataTable.unsavedListView != null) {
// //add UNSAVED FILTER if -1
// vm.selectLists.savedFilters.unshift({
// name: vm.$ay.t("FilterUnsaved"),
// id: -1
// });
// vm.listView = formSettings.saved.dataTable.unsavedListView;
// } else {
// //activeFilterId is for unsaved but we have no unsaved so fix that up
// vm.listView = undefined;
// vm.activeFilterId = 0;
// }
// }
}
//process TEMP form settings
@@ -1199,113 +1142,92 @@ function loadFormSettings(vm) {
if (formSettings.temp && formSettings.temp.page) {
vm.dataTablePagingOptions.page = formSettings.temp.page;
}
// //check for cached local copy of saved list view in use
// if (vm.activeFilterId > 0) {
// //0=no list view, -1=unsaved list view so any number greater than zero means there sb a cached local copy of a saved list view
// if (formSettings.temp && formSettings.temp.cachedListView != null) {
// vm.listView = formSettings.temp.cachedListView;
// } else {
// //fetch it and cache it
// return fetchListView(vm, vm.activeFilterId);
// }
// }
}
/*//EXAMPLE FROM INTEGRATION TEST OF BETWEEN TWO DATES
// dynamic fitem = new JObject();
// fitem.op = Util.OpGreaterThanOrEqualTo;
// fitem.value = new DateTime(2019, 3, 12, 10, 0, 0).ToOffsetAdjustedUniversalTime();
// items.Add(fitem);
// ////////////////////
// //
// function untokenizeListView(lvJson) {
// //if it has one or more tokens
// //iterate the array and build a new array with substituted tokens with the correct date and time in them
// fitem = new JObject();
// fitem.op = Util.OpLessThanOrEqualTo;
// fitem.value = new DateTime(2019, 3, 12, 11, 0, 0).ToOffsetAdjustedUniversalTime();
// items.Add(fitem); */
////////////////////
//
function untokenizeListView(lvJson) {
//if it has one or more tokens
//iterate the array and build a new array with substituted tokens with the correct date and time in them
// //format of a date token filter
// //[{"fld":"widgetname"},{"fld":"widgetstartdate","filter":{"items":[{"op":"=","value":"*past90days*","token":true}]}},{"fld":"widgetenddate"}]
// if (lvJson == null) {
// return lvJson;
// }
// //See if it has any date tokens
// if (lvJson.indexOf('"token":true') == -1) {
// return lvJson;
// }
//format of a date token filter
//[{"fld":"widgetname"},{"fld":"widgetstartdate","filter":{"items":[{"op":"=","value":"*past90days*","token":true}]}},{"fld":"widgetenddate"}]
if (lvJson == null) {
return lvJson;
}
//See if it has any date tokens
if (lvJson.indexOf('"token":true') == -1) {
return lvJson;
}
// //we have one or more tokens, substitute them in the filter array
// let ret = [];
// let lv = JSON.parse(lvJson);
//we have one or more tokens, substitute them in the filter array
let ret = [];
let lv = JSON.parse(lvJson);
// //iterate the incoming and copy to the outgoing directly
// //except if a date token filter then substitute our own filter object in place
// for (let ilv = 0; ilv < lv.length; ilv++) {
// //listview object
// let lvo = lv[ilv];
// //instantiate return object
// let reto = {};
// //copy over field name to return object
// reto.fld = lvo.fld;
// //sort?
// if (lvo.sort) {
// reto.sort = lvo.sort;
// }
// //does it have a filter?
// if (lvo.filter) {
// //yes, so copy / transform as required
//iterate the incoming and copy to the outgoing directly
//except if a date token filter then substitute our own filter object in place
for (let ilv = 0; ilv < lv.length; ilv++) {
//listview object
let lvo = lv[ilv];
//instantiate return object
let reto = {};
//copy over field name to return object
reto.fld = lvo.fld;
//sort?
if (lvo.sort) {
reto.sort = lvo.sort;
}
//does it have a filter?
if (lvo.filter) {
//yes, so copy / transform as required
// //create an empty filter items array on return object
// reto.filter = { items: [] };
//create an empty filter items array on return object
reto.filter = { items: [] };
// //"any" property set?
// if (lvo.filter.any) {
// reto.filter.any = true;
// }
//"any" property set?
if (lvo.filter.any) {
reto.filter.any = true;
}
// //iterate the filter items in the source lvo object
// for (let j = 0; j < lvo.filter.items.length; j++) {
// //get this filter item
// let fi = lvo.filter.items[j];
// //no token shortcut
// if (!fi.token) {
// //just copy it out
// reto.filter.items.push(fi);
// } else {
// //it has a date token so let's build it out
// //filter item value contains the token, op is always equals
// let filterDates = relativeDatefilterCalculator.tokenToDates(fi.value);
// //create and add a new filter item for each not undefined value
// //{ after: undefined, before: undefined }
// //AFTER DATE?
// if (filterDates.after) {
// reto.filter.items.push({
// op: ">", //was GreaterThanOrEqualTo but that doesn't make sense, it's only greater than was seeing wrong return data as relative date filter already adjusts for boundaries
// value: filterDates.after
// });
// }
// //BEFORE DATE?
// if (filterDates.before) {
// reto.filter.items.push({
// op: "<", //was LessThanOrEqualTo but see above for after ===-----^
// value: filterDates.before
// });
// }
// }
// }
//iterate the filter items in the source lvo object
for (let j = 0; j < lvo.filter.items.length; j++) {
//get this filter item
let fi = lvo.filter.items[j];
//no token shortcut
if (!fi.token) {
//just copy it out
reto.filter.items.push(fi);
} else {
//it has a date token so let's build it out
//filter item value contains the token, op is always equals
let filterDates = relativeDatefilterCalculator.tokenToDates(fi.value);
//create and add a new filter item for each not undefined value
//{ after: undefined, before: undefined }
//AFTER DATE?
if (filterDates.after) {
reto.filter.items.push({
op: ">", //was GreaterThanOrEqualTo but that doesn't make sense, it's only greater than was seeing wrong return data as relative date filter already adjusts for boundaries
value: filterDates.after
});
}
//BEFORE DATE?
if (filterDates.before) {
reto.filter.items.push({
op: "<", //was LessThanOrEqualTo but see above for after ===-----^
value: filterDates.before
});
}
}
}
// //end of has filter if condition
// }
//end of has filter if condition
}
// //push the return object into the return array
// ret.push(reto);
// //end of iterate lv loop
// }
//push the return object into the return array
ret.push(reto);
//end of iterate lv loop
}
return JSON.stringify(ret);
} //[{"fld":"widgetname"},{"fld":"widgetstartdate","filter":{"items":[{"op":"=","value":"*past90days*","token":true}]}},{"fld":"widgetenddate"}]
// return JSON.stringify(ret);
// } //[{"fld":"widgetname"},{"fld":"widgetstartdate","filter":{"items":[{"op":"=","value":"*past90days*","token":true}]}},{"fld":"widgetenddate"}]
</script>