Merge pull request #4449 from guerler/fix_grid_search

Fixes for advanced grid search
This commit is contained in:
Martin Cech
2017-08-17 15:09:52 -04:00
committed by GitHub
11 changed files with 26 additions and 24 deletions
+7 -7
View File
@@ -36,22 +36,22 @@ return Backbone.Model.extend({
new_val;
if (cur_val === null || cur_val === undefined) {
new_val = value;
}
else if (typeof(cur_val) == 'string') {
if (cur_val == 'All') {
} else if (typeof(cur_val) == 'string') {
if (cur_val == 'All' || cur_val == value) {
new_val = value;
} else {
// Replace string with array.
var values = [];
values[0] = cur_val;
values[1] = value;
new_val = values;
new_val = values;
}
}
else {
} else {
// Current value is an array.
new_val = cur_val;
new_val.push(value);
if ( new_val.indexOf( value ) === -1 ) {
new_val.push(value);
}
}
this.attributes.filters[key] = new_val;
}
+5 -3
View File
@@ -18,6 +18,7 @@ return Backbone.View.extend({
// Initialize
initialize: function(grid_config) {
this.grid = new GridModel();
this.dict_format = grid_config.dict_format;
var self = this;
window.add_tag_to_grid_filter = function( tag_name, tag_value ){
@@ -43,7 +44,7 @@ return Backbone.View.extend({
url : grid_config.url_base + '?' + $.param( url_data ),
success : function( response ) {
response.embedded = grid_config.embedded;
response.filters = grid_config.filters;
response.filters = grid_config.filters || {};
self.init_grid( response );
}
});
@@ -77,8 +78,7 @@ return Backbone.View.extend({
// Initialize
init_grid: function(grid_config) {
// link grid model
this.grid = new GridModel(grid_config);
this.grid.set( grid_config );
// get options
var options = this.grid.attributes;
@@ -632,6 +632,7 @@ return Backbone.View.extend({
// backup
var embedded = self.grid.get('embedded');
var insert = self.grid.get('insert');
var advanced_search = self.$el.find('#advanced-search').is(':visible');
// request new configuration
var json = self.dict_format ? response_text : $.parseJSON(response_text);
@@ -639,6 +640,7 @@ return Backbone.View.extend({
// update
json.embedded = embedded;
json.insert = insert;
json.advanced_search = advanced_search;
// Initialize new grid config
self.init_grid(json);
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"grid-model.js","sources":["../../../src/mvc/grid/grid-model.js"],"names":["define","Backbone","Model","extend","defaults","url_base","async","async_ops","categorical_filters","filters","sort_key","show_item_checkboxes","advanced_search","cur_page","num_pages","operation","undefined","item_ids","can_async_op","op","_","indexOf","this","attributes","add_filter","key","value","append","new_val","cur_val","values","push","remove_filter","condition","condition_index","get_url_data","url_data","sort","page","id","self","each","pairs","k","get_url","args","get","$","param"],"mappings":"AACAA,UAAW,WAGX,MAAOC,UAASC,MAAMC,QAClBC,UACIC,SAAU,GACVC,OAAO,EACPC,aACAC,uBACAC,WACAC,SAAU,KACVC,sBAAsB,EACtBC,iBAAiB,EACjBC,SAAU,EACVC,UAAW,EACXC,UAAWC,OACXC,SAAUD,QAMdE,aAAc,SAASC,GACnB,MAAoD,KAA7CC,EAAEC,QAAQC,KAAKC,WAAWhB,UAAWY,IAMhDK,WAAY,SAASC,EAAKC,EAAOC,GAE7B,GAAIA,EAAQ,CAER,GACIC,GADAC,EAAUP,KAAKC,WAAWd,QAAQgB,EAEtC,IAAgB,OAAZI,GAAgCb,SAAZa,EACpBD,EAAUF,MAET,IAAuB,gBAAb,GACX,GAAe,OAAXG,EACAD,EAAUF,MACP,CAEH,GAAII,KACJA,GAAO,GAAKD,EACZC,EAAO,GAAKJ,EACZE,EAAUE,MAKdF,GAAUC,EACVD,EAAQG,KAAKL,EAEjBJ,MAAKC,WAAWd,QAAQgB,GAAOG,MAI/BN,MAAKC,WAAWd,QAAQgB,GAAOC,GAOvCM,cAAe,SAASP,EAAKQ,GACzB,GAAIJ,GAAUP,KAAKC,WAAWd,QAAQgB,EACtC,IAAgB,OAAZI,GAAgCb,SAAZa,EACpB,OAAO,CAGX,IAAwB,gBAAd,GAENP,KAAKC,WAAWd,QAAQgB,GAAO,OAC5B,CAEH,GAAIS,GAAkBd,EAAEC,QAAQQ,EAASI,EACjB,MAApBC,IACAL,EAAQK,GAAmB,MAQvCC,aAAc,WACV,GAAIC,IACA9B,MAAOgB,KAAKC,WAAWjB,MACvB+B,KAAMf,KAAKC,WAAWb,SACtB4B,KAAMhB,KAAKC,WAAWV,SACtBF,qBAAsBW,KAAKC,WAAWZ,qBACtCC,gBAAiBU,KAAKC,WAAWX,gBAIjCU,MAAKC,WAAWR,YAChBqB,EAASrB,UAAYO,KAAKC,WAAWR,WAErCO,KAAKC,WAAWN,WAChBmB,EAASG,GAAKjB,KAAKC,WAAWN,SAIlC,IAAIuB,GAAOlB,IAIX,OAHAF,GAAEqB,KAAKrB,EAAEsB,MAAMF,EAAKjB,WAAWd,SAAU,SAASkC,GAC9CP,EAAS,KAAOO,EAAE,IAAMA,EAAE,KAEvBP,GAIXQ,QAAS,SAAUC,GACf,MAAOvB,MAAKwB,IAAI,YAAc,IAAMC,EAAEC,MAAM1B,KAAKa,gBAAkB,IAAMY,EAAEC,MAAMH"}
{"version":3,"file":"grid-model.js","sources":["../../../src/mvc/grid/grid-model.js"],"names":["define","Backbone","Model","extend","defaults","url_base","async","async_ops","categorical_filters","filters","sort_key","show_item_checkboxes","advanced_search","cur_page","num_pages","operation","undefined","item_ids","can_async_op","op","_","indexOf","this","attributes","add_filter","key","value","append","new_val","cur_val","values","push","remove_filter","condition","condition_index","get_url_data","url_data","sort","page","id","self","each","pairs","k","get_url","args","get","$","param"],"mappings":"AACAA,UAAW,WAGX,MAAOC,UAASC,MAAMC,QAClBC,UACIC,SAAU,GACVC,OAAO,EACPC,aACAC,uBACAC,WACAC,SAAU,KACVC,sBAAsB,EACtBC,iBAAiB,EACjBC,SAAU,EACVC,UAAW,EACXC,UAAWC,OACXC,SAAUD,QAMdE,aAAc,SAASC,GACnB,MAAoD,KAA7CC,EAAEC,QAAQC,KAAKC,WAAWhB,UAAWY,IAMhDK,WAAY,SAASC,EAAKC,EAAOC,GAE7B,GAAIA,EAAQ,CAER,GACIC,GADAC,EAAUP,KAAKC,WAAWd,QAAQgB,EAEtC,IAAgB,OAAZI,GAAgCb,SAAZa,EACpBD,EAAUF,MACP,IAAuB,gBAAb,GACb,GAAe,OAAXG,GAAoBA,GAAWH,EAC/BE,EAAUF,MACP,CAEH,GAAII,KACJA,GAAO,GAAKD,EACZC,EAAO,GAAKJ,EACZE,EAAUE,MAIdF,GAAUC,EACwB,KAA7BD,EAAQP,QAASK,IAClBE,EAAQG,KAAKL,EAGrBJ,MAAKC,WAAWd,QAAQgB,GAAOG,MAI/BN,MAAKC,WAAWd,QAAQgB,GAAOC,GAOvCM,cAAe,SAASP,EAAKQ,GACzB,GAAIJ,GAAUP,KAAKC,WAAWd,QAAQgB,EACtC,IAAgB,OAAZI,GAAgCb,SAAZa,EACpB,OAAO,CAGX,IAAwB,gBAAd,GAENP,KAAKC,WAAWd,QAAQgB,GAAO,OAC5B,CAEH,GAAIS,GAAkBd,EAAEC,QAAQQ,EAASI,EACjB,MAApBC,IACAL,EAAQK,GAAmB,MAQvCC,aAAc,WACV,GAAIC,IACA9B,MAAOgB,KAAKC,WAAWjB,MACvB+B,KAAMf,KAAKC,WAAWb,SACtB4B,KAAMhB,KAAKC,WAAWV,SACtBF,qBAAsBW,KAAKC,WAAWZ,qBACtCC,gBAAiBU,KAAKC,WAAWX,gBAIjCU,MAAKC,WAAWR,YAChBqB,EAASrB,UAAYO,KAAKC,WAAWR,WAErCO,KAAKC,WAAWN,WAChBmB,EAASG,GAAKjB,KAAKC,WAAWN,SAIlC,IAAIuB,GAAOlB,IAIX,OAHAF,GAAEqB,KAAKrB,EAAEsB,MAAMF,EAAKjB,WAAWd,SAAU,SAASkC,GAC9CP,EAAS,KAAOO,EAAE,IAAMA,EAAE,KAEvBP,GAIXQ,QAAS,SAAUC,GACf,MAAOvB,MAAKwB,IAAI,YAAc,IAAMC,EAAEC,MAAM1B,KAAKa,gBAAkB,IAAMY,EAAEC,MAAMH"}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,2 +1,2 @@
define([],function(){return Backbone.Model.extend({defaults:{url_base:"",async:!1,async_ops:[],categorical_filters:[],filters:{},sort_key:null,show_item_checkboxes:!1,advanced_search:!1,cur_page:1,num_pages:1,operation:void 0,item_ids:void 0},can_async_op:function(a){return-1!==_.indexOf(this.attributes.async_ops,a)},add_filter:function(a,b,c){if(c){var d,e=this.attributes.filters[a];if(null===e||void 0===e)d=b;else if("string"==typeof e)if("All"==e)d=b;else{var f=[];f[0]=e,f[1]=b,d=f}else d=e,d.push(b);this.attributes.filters[a]=d}else this.attributes.filters[a]=b},remove_filter:function(a,b){var c=this.attributes.filters[a];if(null===c||void 0===c)return!1;if("string"==typeof c)this.attributes.filters[a]="";else{var d=_.indexOf(c,b);-1!==d&&(c[d]="")}},get_url_data:function(){var a={async:this.attributes.async,sort:this.attributes.sort_key,page:this.attributes.cur_page,show_item_checkboxes:this.attributes.show_item_checkboxes,advanced_search:this.attributes.advanced_search};this.attributes.operation&&(a.operation=this.attributes.operation),this.attributes.item_ids&&(a.id=this.attributes.item_ids);var b=this;return _.each(_.pairs(b.attributes.filters),function(b){a["f-"+b[0]]=b[1]}),a},get_url:function(a){return this.get("url_base")+"?"+$.param(this.get_url_data())+"&"+$.param(a)}})});
define([],function(){return Backbone.Model.extend({defaults:{url_base:"",async:!1,async_ops:[],categorical_filters:[],filters:{},sort_key:null,show_item_checkboxes:!1,advanced_search:!1,cur_page:1,num_pages:1,operation:void 0,item_ids:void 0},can_async_op:function(a){return-1!==_.indexOf(this.attributes.async_ops,a)},add_filter:function(a,b,c){if(c){var d,e=this.attributes.filters[a];if(null===e||void 0===e)d=b;else if("string"==typeof e)if("All"==e||e==b)d=b;else{var f=[];f[0]=e,f[1]=b,d=f}else d=e,-1===d.indexOf(b)&&d.push(b);this.attributes.filters[a]=d}else this.attributes.filters[a]=b},remove_filter:function(a,b){var c=this.attributes.filters[a];if(null===c||void 0===c)return!1;if("string"==typeof c)this.attributes.filters[a]="";else{var d=_.indexOf(c,b);-1!==d&&(c[d]="")}},get_url_data:function(){var a={async:this.attributes.async,sort:this.attributes.sort_key,page:this.attributes.cur_page,show_item_checkboxes:this.attributes.show_item_checkboxes,advanced_search:this.attributes.advanced_search};this.attributes.operation&&(a.operation=this.attributes.operation),this.attributes.item_ids&&(a.id=this.attributes.item_ids);var b=this;return _.each(_.pairs(b.attributes.filters),function(b){a["f-"+b[0]]=b[1]}),a},get_url:function(a){return this.get("url_base")+"?"+$.param(this.get_url_data())+"&"+$.param(a)}})});
//# sourceMappingURL=../../../maps/mvc/grid/grid-model.js.map
File diff suppressed because one or more lines are too long