UserPreferenceGrid.js (1891B)
1 Ext.define('PartKeepr.UserPreferenceGrid', { 2 extend: 'PartKeepr.BaseGrid', 3 4 columnLines: true, 5 6 columns: [ 7 { 8 header: i18n("Key"), 9 dataIndex: 'preferenceKey', 10 flex: 0.3, 11 minWidth: 200, 12 renderer: Ext.util.Format.htmlEncode 13 }, { 14 header: i18n("Value"), 15 dataIndex: 'preferenceValue', 16 flex: 0.7, 17 minWidth: 200, 18 renderer: Ext.util.Format.htmlEncode 19 } 20 ], 21 userId: null, 22 23 initComponent: function () 24 { 25 this.deleteButton = Ext.create("Ext.button.Button", { 26 text: i18n('Delete'), 27 disabled: true, 28 itemId: 'delete', 29 scope: this, 30 iconCls: 'web-icon delete', 31 handler: this.onDeleteClick 32 }); 33 34 this.dockedItems = [ 35 { 36 xtype: 'toolbar', 37 items: [ 38 this.deleteButton 39 ] 40 } 41 ]; 42 this.store = Ext.create("Ext.data.Store", { 43 model: 'PartKeepr.AuthBundle.Entity.UserPreference', 44 remoteFilter: true, 45 pageSize: 999999999 46 }); 47 48 this.callParent(); 49 50 this.getSelectionModel().on('selectionchange', this.onSelectChange, this); 51 }, 52 onDeleteClick: function () 53 { 54 var selection = this.getView().getSelectionModel().getSelection()[0]; 55 56 if (selection) { 57 selection.getProxy().callCollectionAction(null, "DELETE", { 58 "preferenceKey": selection.get("preferenceKey") 59 }, Ext.bind(this.onPreferenceDeleted, this)); 60 } 61 }, 62 onPreferenceDeleted: function () 63 { 64 this.store.load(); 65 }, 66 onSelectChange: function (selModel, selections) 67 { 68 this.deleteButton.setDisabled(selections.length === 0); 69 } 70 });