[Plugins] Add support for active button

This commit is contained in:
Julia Radzhabova 2021-03-30 10:20:00 +03:00
parent fea0125822
commit 273b4ff6c7
2 changed files with 32 additions and 11 deletions

View file

@ -289,7 +289,7 @@ define([
var storePlugins = this.getApplication().getCollection('Common.Collections.Plugins'), var storePlugins = this.getApplication().getCollection('Common.Collections.Plugins'),
me = this; me = this;
storePlugins.each(function(item){ storePlugins.each(function(item){
me.panelPlugins.updatePluginButton(item); me.panelPlugins.updatePluginIcons(item);
}); });
}, },

View file

@ -250,6 +250,7 @@ define([
var _btn = model.get('button'); var _btn = model.get('button');
if (_btn) { if (_btn) {
_btn.toggle(true); _btn.toggle(true);
this.updatePluginButton(model);
if (_btn.menu && _btn.menu.items.length>0) { if (_btn.menu && _btn.menu.items.length>0) {
_btn.menu.items[0].setCaption(this.textStop); _btn.menu.items[0].setCaption(this.textStop);
} }
@ -265,6 +266,7 @@ define([
var _btn = model.get('button'); var _btn = model.get('button');
if (_btn) { if (_btn) {
_btn.toggle(false); _btn.toggle(false);
this.updatePluginButton(model);
if (_btn.menu && _btn.menu.items.length>0) { if (_btn.menu && _btn.menu.items.length>0) {
_btn.menu.items[0].setCaption(this.textStart); _btn.menu.items[0].setCaption(this.textStart);
} }
@ -304,8 +306,8 @@ define([
current = icons[idx], current = icons[idx],
bestDistance = 10000, bestDistance = 10000,
currentDistance = 0, currentDistance = 0,
defUrl = '', defUrl,
bestUrl = ''; bestUrl;
for (var key in current) { for (var key in current) {
if (current.hasOwnProperty(key)) { if (current.hasOwnProperty(key)) {
if (key=='default') { if (key=='default') {
@ -315,27 +317,44 @@ define([
if (currentDistance < (bestDistance - 0.01)) if (currentDistance < (bestDistance - 0.01))
{ {
bestDistance = currentDistance; bestDistance = currentDistance;
bestUrl = current[key]['normal']; bestUrl = current[key];
} }
} }
} }
} }
(bestDistance>0.01 && defUrl) && (bestUrl = defUrl); (bestDistance>0.01 && defUrl) && (bestUrl = defUrl);
return bestUrl; return {
'normal': bestUrl['normal'],
'hover': bestUrl['hover'] || bestUrl['normal'],
'active': bestUrl['active'] || bestUrl['normal']
};
} else { // old version } else { // old version
return icons[((Common.Utils.applicationPixelRatio() > 1) ? 1 : 0) + (icons.length > 2 ? 2 : 0)] var url = icons[((Common.Utils.applicationPixelRatio() > 1) ? 1 : 0) + (icons.length > 2 ? 2 : 0)];
return {
'normal': url,
'hover': url,
'active': url
};
} }
}, },
updatePluginIcons: function(model) {
if (!model.get('visible'))
return null;
var modes = model.get('variations'),
icons = modes[model.get('currentVariation')].get('icons');
model.set('parsedIcons', this.parseIcons(icons));
this.updatePluginButton(model);
},
updatePluginButton: function(model) { updatePluginButton: function(model) {
if (!model.get('visible')) if (!model.get('visible'))
return null; return null;
var modes = model.get('variations'), var btn = model.get('button');
icons = modes[model.get('currentVariation')].get('icons'),
btn = model.get('button');
if (btn && btn.cmpEl) { if (btn && btn.cmpEl) {
btn.cmpEl.find(".inner-box-icon img").attr("src", model.get('baseUrl') + this.parseIcons(icons)); btn.cmpEl.find(".inner-box-icon img").attr("src", model.get('baseUrl') + model.get('parsedIcons')[btn.isActive() ? 'active' : 'normal']);
} }
}, },
@ -348,7 +367,9 @@ define([
var modes = model.get('variations'), var modes = model.get('variations'),
guid = model.get('guid'), guid = model.get('guid'),
icons = modes[model.get('currentVariation')].get('icons'), icons = modes[model.get('currentVariation')].get('icons'),
icon_url = model.get('baseUrl') + this.parseIcons(icons); parsedIcons = this.parseIcons(icons),
icon_url = model.get('baseUrl') + parsedIcons['normal'];
model.set('parsedIcons', parsedIcons);
var _menu_items = []; var _menu_items = [];
_.each(model.get('variations'), function(variation, index) { _.each(model.get('variations'), function(variation, index) {
if (variation.get('visible')) if (variation.get('visible'))