mirror of
https://github.com/ONLYOFFICE/web-apps.git
synced 2026-04-07 14:06:16 +08:00
[common] Add asc_pluginStop, getUsedBackgroundPlugins methods, fix srart/close in button menu for inside mode plugins
This commit is contained in:
@ -73,11 +73,11 @@ define([
|
||||
}
|
||||
},
|
||||
'Common.Views.Plugins': {
|
||||
'plugin:select': function(guid, type) {
|
||||
if (!this.viewPlugins.pluginPanels[guid]) {
|
||||
me.api.asc_pluginRun(guid, type, '');
|
||||
'plugin:select': function(guid, type, isRun, closePanel) {
|
||||
if (!this.viewPlugins.pluginPanels[guid] || (this.viewPlugins.pluginPanels[guid] && type > 0)) {
|
||||
!isRun || type > 0 ? me.api.asc_pluginRun(guid, type, '') : me.api.asc_pluginStop(guid);
|
||||
} else {
|
||||
me.openUIPlugin(guid);
|
||||
closePanel ? me.onToolClose(this.viewPlugins.pluginPanels[guid]) : me.openUIPlugin(guid);
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -306,12 +306,14 @@ define([
|
||||
}
|
||||
};
|
||||
this.backgroundPluginsSwitchers = [];
|
||||
var usedPlugins = this.api.getUsedBackgroundPlugins();
|
||||
this.backgroundPlugins.forEach(function (model) {
|
||||
var modes = model.get('variations'),
|
||||
icons = modes[model.get('currentVariation')].get('icons'),
|
||||
parsedIcons = me.viewPlugins.parseIcons(icons),
|
||||
icon_url = model.get('baseUrl') + parsedIcons['normal'],
|
||||
guid = model.get('guid');
|
||||
guid = model.get('guid'),
|
||||
isRun = _.indexOf(usedPlugins, guid) !== -1;
|
||||
model.set('parsedIcons', parsedIcons);
|
||||
var menuItem = new Common.UI.MenuItem({
|
||||
value: guid,
|
||||
@ -333,14 +335,14 @@ define([
|
||||
model.set('backgroundPlugin', menuItem);
|
||||
var switcher = new Common.UI.Switcher({
|
||||
el: menuItem.$el.find('.plugin-toggle')[0],
|
||||
value: !!model.isSystem,
|
||||
value: !!model.isSystem || isRun,
|
||||
disabled: !!model.isSystem,
|
||||
pluginGuid: guid,
|
||||
hint: me.viewPlugins.textStart
|
||||
hint: isRun ? me.viewPlugins.textStop : me.viewPlugins.textStart
|
||||
});
|
||||
switcher.on('change', function (element, value) {
|
||||
switcher.updateHint(value ? me.viewPlugins.textStop : me.viewPlugins.textStart);
|
||||
me.viewPlugins.fireEvent('plugin:select', [switcher.options.pluginGuid, 0]);
|
||||
me.viewPlugins.fireEvent('plugin:select', [switcher.options.pluginGuid, 0, !value]);
|
||||
});
|
||||
me.backgroundPluginsSwitchers.push(switcher);
|
||||
var menuItems = [];
|
||||
@ -367,7 +369,7 @@ define([
|
||||
});
|
||||
btn.menu.on('item:click', function (menu, item, e) {
|
||||
Common.UI.Menu.Manager.hideAll();
|
||||
me.viewPlugins.fireEvent('plugin:select', [menu.options.pluginGuid, item.value]);
|
||||
me.viewPlugins.fireEvent('plugin:select', [menu.options.pluginGuid, item.value, false]);
|
||||
me.clickInsideMenu = false;
|
||||
});
|
||||
btn.menu.on('keydown:before', function (menu, e) {
|
||||
@ -694,7 +696,7 @@ define([
|
||||
|
||||
}
|
||||
}
|
||||
!variation.get_InsideMode() && this.viewPlugins.openedPluginMode(plugin.get_Guid());
|
||||
this.viewPlugins.openedPluginMode(plugin.get_Guid(), variation.get_InsideMode());
|
||||
},
|
||||
|
||||
onPluginClose: function(plugin) {
|
||||
@ -713,9 +715,8 @@ define([
|
||||
this.viewPlugins.fireEvent(model.get('menu') === 'right' ? 'pluginsright:close' : 'pluginsleft:close', [guid]);
|
||||
}
|
||||
}
|
||||
if (!isIframePlugin) {
|
||||
!this.turnOffBackgroundPlugin(guid) && this.viewPlugins.closedPluginMode(guid);
|
||||
}
|
||||
!this.turnOffBackgroundPlugin(guid) && this.viewPlugins.closedPluginMode(guid, isIframePlugin);
|
||||
|
||||
this.runAutoStartPlugins();
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user