manager/assets/modext/widgets/element/modx.grid.tv.template.js
/**
* Loads a grid of TVs assigned to the Template.
*
* @class MODx.grid.TemplateVarTemplate
* @extends MODx.grid.Grid
* @param {Object} config An object of options.
* @xtype modx-grid-tv-template
*/
MODx.grid.TemplateVarTemplate = function(config) {
config = config || {};
var tt = new Ext.ux.grid.CheckColumn({
header: _('access')
,dataIndex: 'access'
,width: 50
,sortable: true
});
Ext.applyIf(config,{
id: 'modx-grid-tv-template'
,url: MODx.config.connector_url
,fields: ['id','templatename','category','category_name','description','access','menu']
,baseParams: {
action: 'element/tv/template/getList'
,tv: config.tv
}
,saveParams: {
tv: config.tv
}
,width: 800
,paging: true
,plugins: tt
,remoteSort: true
,columns: [{
header: _('name')
,dataIndex: 'templatename'
,width: 150
,sortable: true
,renderer: Ext.util.Format.htmlEncode
},{
header: _('category')
,dataIndex: 'category_name'
,width: 300
},{
header: _('description')
,dataIndex: 'description'
,width: 300
},tt]
,tbar: ['->',{
xtype: 'modx-combo-category'
,name: 'filter_category'
,hiddenName: 'filter_category'
,id: 'modx-tvtemp-filter-category'
,emptyText: _('filter_by_category')
,value: ''
,allowBlank: true
,width: 150
,listeners: {
'select': {fn: this.filterByCategory, scope:this}
}
},'-',{
xtype: 'textfield'
,name: 'query'
,id: 'modx-tvtemp-search'
,emptyText: _('search_ellipsis')
,listeners: {
'change': {fn: this.search, scope: this}
,'render': {fn: function(cmp) {
new Ext.KeyMap(cmp.getEl(), {
key: Ext.EventObject.ENTER
,fn: this.blur
,scope: cmp
});
},scope:this}
}
},{
xtype: 'button'
,id: 'modx-filter-clear'
,text: _('filter_clear')
,listeners: {
'click': {fn: this.clearFilter, scope: this},
'mouseout': { fn: function(evt){
this.removeClass('x-btn-focus');
}
}
}
}]
});
MODx.grid.TemplateVarTemplate.superclass.constructor.call(this,config);
};
Ext.extend(MODx.grid.TemplateVarTemplate,MODx.grid.Grid,{
filterByCategory: function(cb,rec,ri) {
this.getStore().baseParams['category'] = cb.getValue();
this.getBottomToolbar().changePage(1);
//this.refresh();
}
,search: function(tf,newValue,oldValue) {
var nv = newValue || tf;
this.getStore().baseParams.query = Ext.isEmpty(nv) || Ext.isObject(nv) ? '' : nv;
Ext.getCmp('modx-tvtemp-filter-category').setValue('');
this.getBottomToolbar().changePage(1);
//this.refresh();
return true;
}
,clearFilter: function() {
this.getStore().baseParams = {
action: 'element/tv/template/getList'
};
Ext.getCmp('modx-tvtemp-filter-category').reset();
Ext.getCmp('modx-tvtemp-search').setValue('');
this.getBottomToolbar().changePage(1);
//this.refresh();
}
});
Ext.reg('modx-grid-tv-template',MODx.grid.TemplateVarTemplate);