From 0a49c21e78b12dae07a91ae4f186e6c1b8d33aee Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Thu, 9 Mar 2017 14:28:44 +0300 Subject: [PATCH] Changes in loading plugins for compatibility with previouse version of server, where plugins.url is used. --- .../main/app/controller/Main.js | 22 +++++++++++++---- .../main/app/controller/Main.js | 24 +++++++++++++++---- .../main/app/controller/Main.js | 24 +++++++++++++++---- 3 files changed, 58 insertions(+), 12 deletions(-) diff --git a/apps/documenteditor/main/app/controller/Main.js b/apps/documenteditor/main/app/controller/Main.js index 7be6bcf63..a29800a04 100644 --- a/apps/documenteditor/main/app/controller/Main.js +++ b/apps/documenteditor/main/app/controller/Main.js @@ -1935,11 +1935,18 @@ define([ return null; }; - var arr = []; + var arr = [], + baseUrl = _.isEmpty(plugins.url) ? "" : plugins.url; + + if (baseUrl !== "") + console.log("Obsolete: The url parameter is deprecated. Please check the documentation for new plugin connection configuration."); + pluginsData.forEach(function(item){ + item = baseUrl + item; // for compatibility with previouse version of server, where plugins.url is used. var value = _getPluginJson(item); if (value) { value.baseUrl = item.substring(0, item.lastIndexOf("config.json")); + value.oldVersion = (baseUrl !== ""); arr.push(value); } }); @@ -1957,7 +1964,7 @@ define([ if (plugins) { var arr = [], arrUI = []; plugins.pluginsData.forEach(function(item){ - if (uiCustomize!==undefined && pluginStore.findWhere({baseUrl : item.baseUrl})) return; + if (uiCustomize!==undefined && (pluginStore.findWhere({baseUrl : item.baseUrl}) || pluginStore.findWhere({guid : item.guid}))) return; var variations = item.variations, variationsArr = []; @@ -1969,12 +1976,19 @@ define([ } } if (isSupported && (isEdit || itemVar.isViewer)) { + var icons = itemVar.icons; + if (item.oldVersion) { // for compatibility with previouse version of server, where plugins.url is used. + icons = []; + itemVar.icons.forEach(function(icon){ + icons.push(icon.substring(icon.lastIndexOf("\/")+1)); + }); + } item.isUICustomizer ? arrUI.push(item.baseUrl + itemVar.url) : variationsArr.push(new Common.Models.PluginVariation({ description: itemVar.description, index: variationsArr.length, - url : itemVar.url, - icons : itemVar.icons, + url : (item.oldVersion) ? (itemVar.url.substring(itemVar.url.lastIndexOf("\/")+1) ) : itemVar.url, + icons : icons, isViewer: itemVar.isViewer, EditorsSupport: itemVar.EditorsSupport, isVisual: itemVar.isVisual, diff --git a/apps/presentationeditor/main/app/controller/Main.js b/apps/presentationeditor/main/app/controller/Main.js index 0d6b83d26..898f80e21 100644 --- a/apps/presentationeditor/main/app/controller/Main.js +++ b/apps/presentationeditor/main/app/controller/Main.js @@ -643,7 +643,7 @@ define([ pluginsController.setApi(me.api); me.updatePlugins(me.plugins, false); - me.requestPlugins('../../../../sdkjs-plugins/config.json'); + me.requestPlugins('../../../../plugins.json'); me.api.asc_registerCallback('asc_onPluginsInit', _.bind(me.updatePluginsList, me)); documentHolderController.setApi(me.api); @@ -1698,11 +1698,18 @@ define([ return null; }; - var arr = []; + var arr = [], + baseUrl = _.isEmpty(plugins.url) ? "" : plugins.url; + + if (baseUrl !== "") + console.log("Obsolete: The url parameter is deprecated. Please check the documentation for new plugin connection configuration."); + pluginsData.forEach(function(item){ + item = baseUrl + item; // for compatibility with previouse version of server, where plugins.url is used. var value = _getPluginJson(item); if (value) { value.baseUrl = item.substring(0, item.lastIndexOf("config.json")); + value.oldVersion = (baseUrl !== ""); arr.push(value); } }); @@ -1720,6 +1727,8 @@ define([ if (plugins) { var arr = [], arrUI = []; plugins.pluginsData.forEach(function(item){ + if (uiCustomize!==undefined && (pluginStore.findWhere({baseUrl : item.baseUrl}) || pluginStore.findWhere({guid : item.guid}))) return; + var variations = item.variations, variationsArr = []; variations.forEach(function(itemVar){ @@ -1730,12 +1739,19 @@ define([ } } if (isSupported && (isEdit || itemVar.isViewer)){ + var icons = itemVar.icons; + if (item.oldVersion) { // for compatibility with previouse version of server, where plugins.url is used. + icons = []; + itemVar.icons.forEach(function(icon){ + icons.push(icon.substring(icon.lastIndexOf("\/")+1)); + }); + } item.isUICustomizer ? arrUI.push(item.baseUrl + itemVar.url) : variationsArr.push(new Common.Models.PluginVariation({ description: itemVar.description, index: variationsArr.length, - url : itemVar.url, - icons : itemVar.icons, + url : (item.oldVersion) ? (itemVar.url.substring(itemVar.url.lastIndexOf("\/")+1) ) : itemVar.url, + icons : icons, isViewer: itemVar.isViewer, EditorsSupport: itemVar.EditorsSupport, isVisual: itemVar.isVisual, diff --git a/apps/spreadsheeteditor/main/app/controller/Main.js b/apps/spreadsheeteditor/main/app/controller/Main.js index decb5cfed..15c790aa2 100644 --- a/apps/spreadsheeteditor/main/app/controller/Main.js +++ b/apps/spreadsheeteditor/main/app/controller/Main.js @@ -624,7 +624,7 @@ define([ if (!me.appOptions.isEditMailMerge && !me.appOptions.isEditDiagram) { pluginsController.setApi(me.api); me.updatePlugins(me.plugins, false); - me.requestPlugins('../../../../sdkjs-plugins/config.json'); + me.requestPlugins('../../../../plugins.json'); me.api.asc_registerCallback('asc_onPluginsInit', _.bind(me.updatePluginsList, me)); } @@ -1922,11 +1922,18 @@ define([ return null; }; - var arr = []; + var arr = [], + baseUrl = _.isEmpty(plugins.url) ? "" : plugins.url; + + if (baseUrl !== "") + console.log("Obsolete: The url parameter is deprecated. Please check the documentation for new plugin connection configuration."); + pluginsData.forEach(function(item){ + item = baseUrl + item; // for compatibility with previouse version of server, where plugins.url is used. var value = _getPluginJson(item); if (value) { value.baseUrl = item.substring(0, item.lastIndexOf("config.json")); + value.oldVersion = (baseUrl !== ""); arr.push(value); } }); @@ -1944,6 +1951,8 @@ define([ if (plugins) { var arr = [], arrUI = []; plugins.pluginsData.forEach(function(item){ + if (uiCustomize!==undefined && (pluginStore.findWhere({baseUrl : item.baseUrl}) || pluginStore.findWhere({guid : item.guid}))) return; + var variations = item.variations, variationsArr = []; variations.forEach(function(itemVar){ @@ -1954,12 +1963,19 @@ define([ } } if (isSupported && (isEdit || itemVar.isViewer)) { + var icons = itemVar.icons; + if (item.oldVersion) { // for compatibility with previouse version of server, where plugins.url is used. + icons = []; + itemVar.icons.forEach(function(icon){ + icons.push(icon.substring(icon.lastIndexOf("\/")+1)); + }); + } item.isUICustomizer ? arrUI.push(item.baseUrl + itemVar.url) : variationsArr.push(new Common.Models.PluginVariation({ description: itemVar.description, index: variationsArr.length, - url : itemVar.url, - icons : itemVar.icons, + url : (item.oldVersion) ? (itemVar.url.substring(itemVar.url.lastIndexOf("\/")+1) ) : itemVar.url, + icons : icons, isViewer: itemVar.isViewer, EditorsSupport: itemVar.EditorsSupport, isVisual: itemVar.isVisual,