vue-tables-2
Version:
Vue.js 2 grid components
44 lines (32 loc) • 1.13 kB
JavaScript
var merge = require('merge');
module.exports = function (filter) {
var sendRequest = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
if (!this.opts.filterable) {
console.warn("vue-tables-2: Unable to set filter. Filtering is disabled (filterable: false)");
return;
}
;
if (this.opts.filterByColumn && typeof filter === 'string') {
console.warn("vue-tables-2: Unable to set filter. Filter value must be an object (`filterByColumn` is set to `true`)");
return;
}
;
if (!this.opts.filterByColumn && typeof filter !== 'string') {
console.warn("vue-tables-2: Unable to set filter. Filter value must be a string (`filterByColumn` is set to `false`)");
return;
}
;
var mergedFilter = this.opts.filterByColumn ? merge(true, this.query, filter) : filter;
if (this.vuex) {
this.commit('SET_FILTER', mergedFilter);
} else {
this.query = mergedFilter;
this.setPage(1, true);
}
this.updateState('query', mergedFilter);
this._setFiltersDOM(filter);
if (this.source == 'server' && sendRequest) {
this.getData();
}
};
;