]>
git.proxmox.com Git - pmg-gui.git/blob - js/form/FilterField.js
1 Ext
.define('PMG.form.FilterField', {
2 extend
: 'Ext.form.field.Text',
3 alias
: 'widget.pmgFilterField',
6 // optional, if not given the first parent grids store will be used
9 // a list of fields of the records that will be searched
10 // a field can be a string (dataIndex) or an object with 'name' and 'renderer'
11 // the renderer will be used before testing the field
14 fieldLabel
: gettext('Filter'),
19 cls
: 'pmx-clear-trigger',
24 me
.triggers
.clear
.setVisible(false);
30 change: function(field
, value
) {
32 let grid
= me
.up('grid');
34 me
.store
= grid
.getStore();
37 me
.store
.clearFilter();
38 field
.triggers
.clear
.setVisible(value
.length
> 0);
41 me
.store
.filterBy((rec
) => me
.filteredFields
.some((fieldDef
) => {
42 let fieldname
= fieldDef
, renderer
= Ext
.identityFn
;
43 if (Ext
.isObject(fieldDef
)) {
44 fieldname
= fieldDef
.name
;
45 renderer
= fieldDef
.renderer
;
47 let testedValue
= renderer(rec
.data
[fieldname
]);
48 return testedValue
.toString().toLowerCase().indexOf(value
.toLowerCase()) !== -1;