Исправляем баг с tooltip в classic toolkit, который появился с выходом ExtJS 7.2.0.67.
После обновления extjs до 7.2 появились баги с показом toolip (для button и для tooltip которые задаются с помощью объекта). Воспроизводиться следующим образом:
В качестве исправления могу предложить следующие overrides, официально исправление будет под EXTJS-29075:
Ext.define('Override.tip.QuickTip', { override: 'Ext.tip.QuickTip', delegate: function(target) { var cfg = this.tagConfig, attr = cfg.attr || (cfg.attr = cfg.namespace + cfg.attribute), registeredTarget = this.targets[target.id], // We can now only activate on elements which have the required attributes text = (registeredTarget && registeredTarget.text) || target.getAttribute(attr) || (this.interceptTitles && target.title); return !!text; } });
Ext.define('Override.button.Button', { override: 'Ext.button.Button', setTooltip: function(tooltip, initial) { var me = this, targetEl = me.el; if (me.rendered) { if (!initial || !tooltip) { me.clearTip(); } // This is creating an issue, changing the targetEl /*if (me.disabled) { targetEl = me.tooltipEl; }*/ if (tooltip) { if (Ext.quickTipsActive && Ext.isObject(tooltip)) { Ext.tip.QuickTipManager.register(Ext.apply({ target: targetEl.id }, tooltip)); me.tooltip = tooltip; } else { targetEl.dom.setAttribute(me.getTipAttr(), tooltip); } me.currentTooltipEl = targetEl; } } else { me.tooltip = tooltip; } return me; } });
Помните что это не официальное исправление, используйте на свой страх и риск.
Для extjs 4.1 на примере создания кнопки:
editor.getToolbar().add(‘->’,{
iconCls : ‘icon_event’,
tooltip : ‘подія, якій присвячується захід’,
handler : function(){
var div = editor.getEditorBody().parentNode.getElementsByTagName(‘div’)[0]
if(div.classList.contains(‘event’)){
div.removeAttribute(‘class’)
}else{
div.classList.add(‘event’)
}
},
listeners : {
afterrender: function(){
this.el.dom.title = this.tooltip
}
},
}