This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user