facetFilter
HTML
<script src="http://cdn.sencha.com/ext/gpl/4.2.1/ext-all-dev.js"></script>
<link rel="stylesheet" href="http://cdn.sencha.com/ext/gpl/4.2.1/resources/css/ext-all.css">
JavaScript
Ext.define('BCS.grid.plugin.FacetFilter', {
extend: 'Ext.AbstractPlugin',
alias: 'plugin.facetFilter',
lockableScope: 'both',
init: function (grid) {
var me = this;
me.grid = grid;
debugger;
me.callParent(arguments);
},
setShowMenuBy: function (grid) {
grid.headerCt.showMenuBy = function (t, header) {
var args = Ext.callback(me.setFacetFilter, this, [t, header]),
newHeader = args[1];
Ext.callback(oldFn, newHeader, args);
};
},
setFacetFilter: function (t, header) {
var menu = header.getMenu(),
facetfilter = menu.down('facetfilter'),
sep = facetfilter.prev();
if (header.filterable === false) {
sep.hide();
facetfilter.hide();
} else {
sep.show();
facetfilter.show();
}
return [t, header];
}
});
Ext.create('Ext.data.Store', {
storeId:'simpsonsStore',
fields:['name', 'email', 'phone'],
data:{'items':[
{"name":"Lisa", "email":"[email protected]", "phone":"555-111-1224"},
{"name":"Bart", "email":"[email protected]", "phone":"555-222-1234"},
{"name":"Homer", "email":"[email protected]", "phone":"555-222-1244"},
{"name":"Marge", "email":"[email protected]", "phone":"555-222-1254"}
]},
proxy: {
type: 'memory',
reader: {
type: 'json',
root: 'items'
}
}
});
Ext.create('Ext.grid.Panel', {
title: 'Simpsons',
store: Ext.data.StoreManager.lookup('simpsonsStore'),
columns: [
{header: 'Name', dataIndex: 'name', editor: 'textfield', lockable:false, locked:true},
{header: 'Email', dataIndex: 'email', flex:1,
editor: {
xtype: 'textfield',
allowBlank: false
}
},
{header: 'Phone', dataIndex: 'phone'}
],
selType: 'rowmodel',
// plugins: [
// ...