Исправляем баг с 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; } });
Помните что это не официальное исправление, используйте на свой страх и риск.