--- /dev/null
+Ext.override(Ext.view.Table, {
+ afterRender: function() {
+ var me = this;
+
+ me.callParent();
+ me.mon(me.el, {
+ scroll: me.fireBodyScroll,
+ scope: me
+ });
+ if (!me.featuresMC ||
+ (me.featuresMC.findIndex('ftype', 'selectable') < 0)) {
+ me.el.unselectable();
+ }
+
+ me.attachEventsForFeatures();
+ }
+});
+
+Ext.define('PVE.grid.SelectFeature', {
+ extend: 'Ext.grid.feature.Feature',
+ alias: 'feature.selectable',
+
+ mutateMetaRowTpl: function(metaRowTpl) {
+ var tpl, i,
+ ln = metaRowTpl.length;
+
+ for (i = 0; i < ln; i++) {
+ tpl = metaRowTpl[i];
+ tpl = tpl.replace(/x-grid-row/, 'x-grid-row x-selectable');
+ tpl = tpl.replace(/x-grid-cell-inner x-unselectable/g, 'x-grid-cell-inner');
+ tpl = tpl.replace(/unselectable="on"/g, '');
+ metaRowTpl[i] = tpl;
+ }
+ }
+});