diff --git a/ayanova/src/views/ay-data-list-view.vue b/ayanova/src/views/ay-data-list-view.vue index d7ed1a43..e5af9b2a 100644 --- a/ayanova/src/views/ay-data-list-view.vue +++ b/ayanova/src/views/ay-data-list-view.vue @@ -437,6 +437,7 @@ export default { TODO: DataTAble needs to pre-process filter to substitute tokens on the fly before sending to the server */ var filterItem = { op: null, value: null }; + var filterItemSet = false; //DATE relative token? if (item.uiFieldDataType === 1) { //some kind of relative date token? @@ -444,8 +445,7 @@ export default { //special relative token filterItem.op = "="; //equality filterItem.value = item.tempFilterToken; - item.filter.items.push(filterItem); - return; + filterItemSet = true; } } @@ -453,22 +453,28 @@ export default { if (item.tempFilterOperator == "*NOVALUE*") { filterItem.op = "="; filterItem.value = "*NULL*"; - item.filter.items.push(filterItem); - return; + filterItemSet = true; } if (item.tempFilterOperator == "*HASVALUE*") { filterItem.op = "!="; filterItem.value = "*NULL*"; - item.filter.items.push(filterItem); - return; + filterItemSet = true; } //JUST REGULAR FILTER ITEM if (item.tempFilterOperator && item.tempFilterValue) { filterItem.op = item.tempFilterOperator; filterItem.value = item.tempFilterValue; - item.filter.items.push(filterItem); + filterItemSet = true; + } + + if (filterItemSet) { + //add only if not already in the collection (accidental double click) + if (!window.$gz._.find(item.filter.items, filterItem)) { + item.filter.items.push(filterItem); + } + return; } }, form() {