windowsinboxwhatsappicloudtweetdeckhipchattelegramhangoutsslackgmailskypefacebook-workplaceoutlookemailmicrosoft-teamsdiscordmessengercustom-servicesmacoslinux
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
3.3 KiB
62 lines
3.3 KiB
Ext.define('Rambox.overrides.grid.column.Action', { |
|
override: 'Ext.grid.column.Action', |
|
|
|
// overridden to implement |
|
defaultRenderer: function(v, cellValues, record, rowIdx, colIdx, store, view) { |
|
var me = this, |
|
prefix = Ext.baseCSSPrefix, |
|
scope = me.origScope || me, |
|
items = me.items, |
|
len = items.length, |
|
i = 0, |
|
item, ret, disabled, tooltip,glyph, glyphParts, glyphFontFamily; |
|
|
|
// Allow a configured renderer to create initial value (And set the other values in the "metadata" argument!) |
|
// Assign a new variable here, since if we modify "v" it will also modify the arguments collection, meaning |
|
// we will pass an incorrect value to getClass/getTip |
|
ret = Ext.isFunction(me.origRenderer) ? me.origRenderer.apply(scope, arguments) || '' : ''; |
|
|
|
cellValues.tdCls += ' ' + Ext.baseCSSPrefix + 'action-col-cell'; |
|
for (; i < len; i++) { |
|
item = items[i]; |
|
|
|
disabled = item.disabled || (item.isDisabled ? item.isDisabled.call(item.scope || scope, view, rowIdx, colIdx, item, record) : false); |
|
tooltip = disabled ? null : (item.tooltip || (item.getTip ? item.getTip.apply(item.scope || scope, arguments) : null)); |
|
if(Ext.isFunction(item.getGlyph)){ |
|
glyph = item.getGlyph.apply(item.scope || scope, arguments); |
|
}else{ |
|
glyph = item.glyph; |
|
} |
|
|
|
// Only process the item action setup once. |
|
if (!item.hasActionConfiguration) { |
|
// Apply our documented default to all items |
|
item.stopSelection = me.stopSelection; |
|
item.disable = Ext.Function.bind(me.disableAction, me, [i], 0); |
|
item.enable = Ext.Function.bind(me.enableAction, me, [i], 0); |
|
item.hasActionConfiguration = true; |
|
} |
|
if (glyph ) { |
|
|
|
if (typeof glyph === 'string') { |
|
glyphParts = glyph.split('@'); |
|
glyph = glyphParts[0]; |
|
glyphFontFamily = glyphParts[1]; |
|
} else { |
|
glyphFontFamily = Ext._glyphFontFamily; |
|
} |
|
|
|
ret += '<span role="button" title="' + (item.altText || me.altText) + '" class="' + prefix + 'action-col-icon ' + prefix + 'action-col-glyph ' + prefix + 'action-col-' + String(i) + ' ' + (disabled ? prefix + 'item-disabled' : ' ') + |
|
' ' + (Ext.isFunction(item.getClass) ? item.getClass.apply(item.scope || scope, arguments) : (item.iconCls || me.iconCls || '')) + '"' + |
|
' style="font-family:' + glyphFontFamily + '"' + |
|
(tooltip ? ' data-qtip="' + tooltip + '"' : '') + '>&#' + glyph + ';</span>'; |
|
} else { |
|
ret += '<img role="button" alt="' + (item.altText || me.altText) + '" src="' + (item.icon || Ext.BLANK_IMAGE_URL) + |
|
'" class="' + me.actionIconCls + ' ' + prefix + 'action-col-' + String(i) + ' ' + (disabled ? prefix + 'item-disabled' : ' ') + |
|
(Ext.isFunction(item.getClass) ? item.getClass.apply(item.scope || scope, arguments) : (item.iconCls || me.iconCls || '')) + '"' + |
|
(tooltip ? ' data-qtip="' + tooltip + '"' : '') + ' />'; |
|
} |
|
} |
|
return ret; |
|
} |
|
});
|
|
|