This commit is contained in:
@@ -429,6 +429,99 @@ namespace AyaNova.DataList
|
||||
|
||||
|
||||
/*
|
||||
|
||||
###################################################################################################
|
||||
Javascript version of this taken from most recent grid code:
|
||||
|
||||
// ////////////////////
|
||||
// //
|
||||
// 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;
|
||||
// }
|
||||
|
||||
// //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
|
||||
|
||||
// //create an empty filter items array on return object
|
||||
// reto.filter = { items: [] };
|
||||
|
||||
// //"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
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// //end of has filter if condition
|
||||
// }
|
||||
|
||||
// //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"}]
|
||||
|
||||
#############################################################################################################################################################
|
||||
|
||||
Last working server date token filter code from revision 2612 feb 7 2020
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user