RowActions_wev8.js
3.43 KB
Ext.ns("Ext.ux.grid");Ext.ux.grid.RowActions=function(a){Ext.apply(this,a);this.addEvents("beforeaction","action","beforegroupaction","groupaction");Ext.ux.grid.RowActions.superclass.constructor.call(this)};Ext.extend(Ext.ux.grid.RowActions,Ext.util.Observable,{actionEvent:"click",autoWidth:true,header:"",menuDisabled:true,sortable:false,tplGroup:'<tpl for="actions"><div class="ux-grow-action-item<tpl if="\'right\'===align"> ux-action-right</tpl> {cls}" style="{style}" qtip="{qtip}">{text}</div></tpl>',tplRow:'<div class="ux-row-action"><tpl for="actions"><div class="ux-row-action-item {cls} <tpl if="text">ux-row-action-text</tpl>" style="{hide}{style}" qtip="{qtip}"><tpl if="text"><span qtip="{qtip}">{text}</span></tpl></div></tpl></div>',widthIntercept:4,widthSlope:21,init:function(c){this.grid=c;if(!this.tpl){this.tpl=this.processActions(this.actions)}if(this.autoWidth){this.width=this.widthSlope*this.actions.length+this.widthIntercept;this.fixed=true}var b=c.getView();var a={scope:this};a[this.actionEvent]=this.onClick;c.on({render:{scope:this,fn:function(){b.mainBody.on(a)}}});if(!this.renderer){this.renderer=function(h,d,e,i,g,f){d.css+=(d_wev8.css?" ":"")+"ux-row-action-cell";return this.tpl.apply(this.getData(h,d,e,i,g,f))}.createDelegate(this)}if(b.groupTextTpl&&this.groupActions){b.interceptMouse=b.interceptMouse.createInterceptor(function(d){if(d.getTarget(".ux-grow-action-item")){return false}});b.groupTextTpl='<div class="ux-grow-action-text">'+b.groupTextTpl+"</div>"+this.processActions(this.groupActions,this.tplGroup).apply()}},getData:function(e,a,b,f,d,c){return b.data||{}},processActions:function(d,c){var a=[];Ext.each(d,function(e,f){if(e.iconCls&&"function"===typeof(e.callback||e.cb)){this.callbacks=this.callbacks||{};this.callbacks[e.iconCls]=e.callback||e.cb}var g={cls:e.iconIndex?"{"+e.iconIndex+"}":(e.iconCls?e.iconCls:""),qtip:e.qtipIndex?"{"+e.qtipIndex+"}":(e.tooltip||e.qtip?e.tooltip||e.qtip:""),text:e.textIndex?"{"+e.textIndex+"}":(e.text?e.text:""),hide:e.hideIndex?'<tpl if="'+e.hideIndex+'">visibility:hidden;</tpl>':(e.hide?"visibility:hidden;":""),align:e.align||"right",style:e.style?e.style:""};a.push(g)},this);var b=new Ext.XTemplate(c||this.tplRow);return new Ext.XTemplate(b.apply({actions:a}))},onClick:function(g,h){var i=this.grid.getView();var c=false;var m=g.getTarget(".x-grid3-row");var a=i.findCellIndex(h.parentNode.parentNode);var l=g.getTarget(".ux-row-action-item");if(l){c=l.className.replace(/ux-row-action-item /,"");if(c){c=c.replace(/ ux-row-action-text/,"");c=c.trim()}}if(false!==m&&false!==a&&false!==c){var f=this.grid.store.getAt(m.rowIndex);if(this.callbacks&&"function"===typeof this.callbacks[c]){this.callbacks[c](this.grid,f,c,m.rowIndex,a)}if(true!==this.eventsSuspended&&false===this.fireEvent("beforeaction",this.grid,f,c,m.rowIndex,a)){return}else{if(true!==this.eventsSuspended){this.fireEvent("action",this.grid,f,c,m.rowIndex,a)}}}l=g.getTarget(".ux-grow-action-item");if(l){var j=i.findGroup(h);var d=j?j.id.replace(/ext-gen[0-9]+-gp-/,""):null;var b;if(d){var k=new RegExp(d);b=this.grid.store.queryBy(function(e){return e._groupId.match(k)});b=b?b.items:[]}c=l.className.replace(/ux-grow-action-item (ux-action-right )*/,"");if("function"===typeof this.callbacks[c]){this.callbacks[c](this.grid,b,c,d)}if(true!==this.eventsSuspended&&false===this.fireEvent("beforegroupaction",this.grid,b,c,d)){return false}this.fireEvent("groupaction",this.grid,b,c,d)}}});Ext.reg("rowactions",Ext.ux.grid.RowActions);