From 1f76033e5d17b27a73ea2be2b4cf826483599f2e Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Mon, 5 Sep 2016 16:06:24 +0300 Subject: [PATCH 1/5] [DE] Changed pluigns config. --- .../main/app/controller/Main.js | 56 ++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/apps/documenteditor/main/app/controller/Main.js b/apps/documenteditor/main/app/controller/Main.js index 8996ee31a..7c46f711a 100644 --- a/apps/documenteditor/main/app/controller/Main.js +++ b/apps/documenteditor/main/app/controller/Main.js @@ -826,7 +826,7 @@ define([ application.getController('Common.Controllers.ExternalMergeEditor').setApi(this.api).loadConfig({config:this.editorConfig, customization: this.editorConfig.customization}); pluginsController.setApi(me.api); - me.updatePluginsList(me.plugins); + me.updatePlugins(me.plugins); me.api.asc_registerCallback('asc_onPluginsInit', _.bind(me.updatePluginsList, me)); documentHolderController.setApi(me.api); @@ -1721,6 +1721,60 @@ define([ if (url) this.iframePrint.src = url; }, + updatePlugins: function(plugins) { // plugins from config + if (!plugins || !plugins.pluginsData || plugins.pluginsData.length<1) return; + + var _createXMLHTTPObject = function() { + var xmlhttp; + try { + xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); + } + catch (e) { + try { + xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } + catch (E) { + xmlhttp = false; + } + } + if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { + xmlhttp = new XMLHttpRequest(); + } + return xmlhttp; + }; + + var _getPluginJson = function(plugin) { + if (!plugin) return ''; + try { + var xhrObj = _createXMLHTTPObject(); + if (xhrObj && plugin) { + xhrObj.open('GET', plugin, false); + xhrObj.send(''); + var pluginJson = eval("(" + xhrObj.responseText + ")"); + return pluginJson; + } + } + catch (e) {} + return null; + }; + + var arr = [], + baseUrl = plugins.url; + plugins.pluginsData.forEach(function(item){ + var url = item; + if (!/(^https?:\/\/)/i.test(url) && !/(^www.)/i.test(item)) + url = baseUrl + item; + var value = _getPluginJson(url); + if (value) arr.push(value); + }); + + if (arr.length>0) + this.updatePluginsList({ + url: plugins.url, + pluginsData: arr + }); + }, + updatePluginsList: function(plugins) { var pluginStore = this.getApplication().getCollection('Common.Collections.Plugins'), isEdit = this.appOptions.isEdit; From 12c1b688d3b4e4ec4ebe3113af1863853af2bf0f Mon Sep 17 00:00:00 2001 From: Alexander Trofimov Date: Mon, 5 Sep 2016 17:24:22 +0300 Subject: [PATCH 2/5] Update Readme.md --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index 7e97180eb..edc7515a2 100644 --- a/Readme.md +++ b/Readme.md @@ -1,4 +1,4 @@ -[![License](https://img.shields.io/badge/License-GNU%20AGPL%20V3-green.svg?style=flat)](http://www.gnu.org/licenses/agpl-3.0.ru.html) ![Release](https://img.shields.io/badge/Release-v4.1.0-blue.svg?style=flat) +[![License](https://img.shields.io/badge/License-GNU%20AGPL%20V3-green.svg?style=flat)](http://www.gnu.org/licenses/agpl-3.0.ru.html) ![Release](https://img.shields.io/badge/Release-v4.1.1-blue.svg?style=flat) ## web-apps From f821bd04fa91a0cdbe0f01015dd4b7adbc7749e3 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Mon, 5 Sep 2016 17:43:29 +0300 Subject: [PATCH 3/5] [PE][SSE] Changed pluigns config. --- .../main/app/controller/Main.js | 56 ++++++++++++++++++- .../main/app/controller/Main.js | 56 ++++++++++++++++++- 2 files changed, 110 insertions(+), 2 deletions(-) diff --git a/apps/presentationeditor/main/app/controller/Main.js b/apps/presentationeditor/main/app/controller/Main.js index d1a3953dd..90619832a 100644 --- a/apps/presentationeditor/main/app/controller/Main.js +++ b/apps/presentationeditor/main/app/controller/Main.js @@ -617,7 +617,7 @@ define([ application.getController('Common.Controllers.ExternalDiagramEditor').setApi(this.api).loadConfig({config:this.editorConfig, customization: this.editorConfig.customization}); pluginsController.setApi(me.api); - me.updatePluginsList(me.plugins); + me.updatePlugins(me.plugins); me.api.asc_registerCallback('asc_onPluginsInit', _.bind(me.updatePluginsList, me)); documentHolderController.setApi(me.api); @@ -1495,6 +1495,60 @@ define([ if (url) this.iframePrint.src = url; }, + updatePlugins: function(plugins) { // plugins from config + if (!plugins || !plugins.pluginsData || plugins.pluginsData.length<1) return; + + var _createXMLHTTPObject = function() { + var xmlhttp; + try { + xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); + } + catch (e) { + try { + xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } + catch (E) { + xmlhttp = false; + } + } + if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { + xmlhttp = new XMLHttpRequest(); + } + return xmlhttp; + }; + + var _getPluginJson = function(plugin) { + if (!plugin) return ''; + try { + var xhrObj = _createXMLHTTPObject(); + if (xhrObj && plugin) { + xhrObj.open('GET', plugin, false); + xhrObj.send(''); + var pluginJson = eval("(" + xhrObj.responseText + ")"); + return pluginJson; + } + } + catch (e) {} + return null; + }; + + var arr = [], + baseUrl = plugins.url; + plugins.pluginsData.forEach(function(item){ + var url = item; + if (!/(^https?:\/\/)/i.test(url) && !/(^www.)/i.test(item)) + url = baseUrl + item; + var value = _getPluginJson(url); + if (value) arr.push(value); + }); + + if (arr.length>0) + this.updatePluginsList({ + url: plugins.url, + pluginsData: arr + }); + }, + updatePluginsList: function(plugins) { var pluginStore = this.getApplication().getCollection('Common.Collections.Plugins'), isEdit = this.appOptions.isEdit; diff --git a/apps/spreadsheeteditor/main/app/controller/Main.js b/apps/spreadsheeteditor/main/app/controller/Main.js index 88bc52c9b..440f0c073 100644 --- a/apps/spreadsheeteditor/main/app/controller/Main.js +++ b/apps/spreadsheeteditor/main/app/controller/Main.js @@ -599,7 +599,7 @@ define([ if (!me.appOptions.isEditMailMerge && !me.appOptions.isEditDiagram) { pluginsController.setApi(me.api); - me.updatePluginsList(me.plugins); + me.updatePlugins(me.plugins); me.api.asc_registerCallback('asc_onPluginsInit', _.bind(me.updatePluginsList, me)); } @@ -1724,6 +1724,60 @@ define([ if (url) this.iframePrint.src = url; }, + updatePlugins: function(plugins) { // plugins from config + if (!plugins || !plugins.pluginsData || plugins.pluginsData.length<1) return; + + var _createXMLHTTPObject = function() { + var xmlhttp; + try { + xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); + } + catch (e) { + try { + xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } + catch (E) { + xmlhttp = false; + } + } + if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { + xmlhttp = new XMLHttpRequest(); + } + return xmlhttp; + }; + + var _getPluginJson = function(plugin) { + if (!plugin) return ''; + try { + var xhrObj = _createXMLHTTPObject(); + if (xhrObj && plugin) { + xhrObj.open('GET', plugin, false); + xhrObj.send(''); + var pluginJson = eval("(" + xhrObj.responseText + ")"); + return pluginJson; + } + } + catch (e) {} + return null; + }; + + var arr = [], + baseUrl = plugins.url; + plugins.pluginsData.forEach(function(item){ + var url = item; + if (!/(^https?:\/\/)/i.test(url) && !/(^www.)/i.test(item)) + url = baseUrl + item; + var value = _getPluginJson(url); + if (value) arr.push(value); + }); + + if (arr.length>0) + this.updatePluginsList({ + url: plugins.url, + pluginsData: arr + }); + }, + updatePluginsList: function(plugins) { var pluginStore = this.getApplication().getCollection('Common.Collections.Plugins'), isEdit = this.appOptions.isEdit; From 6bfd3d80bb675d81a52203a9682cfc5ab8faf57c Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Mon, 5 Sep 2016 18:28:56 +0300 Subject: [PATCH 4/5] Absolute urls in plugins. --- apps/common/main/lib/controller/Plugins.js | 9 ++++++--- apps/common/main/lib/model/Plugin.js | 3 ++- apps/common/main/lib/view/Plugins.js | 2 +- apps/documenteditor/main/app/controller/Main.js | 3 ++- apps/presentationeditor/main/app/controller/Main.js | 3 ++- apps/spreadsheeteditor/main/app/controller/Main.js | 3 ++- 6 files changed, 15 insertions(+), 8 deletions(-) diff --git a/apps/common/main/lib/controller/Plugins.js b/apps/common/main/lib/controller/Plugins.js index 05a40c768..cc111a1fb 100644 --- a/apps/common/main/lib/controller/Plugins.js +++ b/apps/common/main/lib/controller/Plugins.js @@ -219,8 +219,12 @@ define([ onPluginShow: function(plugin, variationIndex) { var variation = plugin.get_Variations()[variationIndex]; if (variation.get_Visual()) { + var url = variation.get_Url(); + if (!/(^https?:\/\/)/i.test(url) && !/(^www.)/i.test(url)) + url = ((plugin.get_BaseUrl().length == 0) ? this.panelPlugins.pluginsPath : plugin.get_BaseUrl()) + url; + if (variation.get_InsideMode()) { - this.panelPlugins.openInsideMode(plugin.get_Name(), ((plugin.get_BaseUrl().length == 0) ? this.panelPlugins.pluginsPath : plugin.get_BaseUrl()) + variation.get_Url()); + this.panelPlugins.openInsideMode(plugin.get_Name(), url); } else { var me = this, arrBtns = variation.get_Buttons(), @@ -234,12 +238,11 @@ define([ }); } - var _baseUrl = (plugin.get_BaseUrl().length == 0) ? me.panelPlugins.pluginsPath : plugin.get_BaseUrl(); me.pluginDlg = new Common.Views.PluginDlg({ title: plugin.get_Name(), width: size[0], // inner width height: size[1], // inner height - url: _baseUrl + variation.get_Url(), + url: url, buttons: newBtns, toolcallback: _.bind(this.onToolClose, this) }); diff --git a/apps/common/main/lib/model/Plugin.js b/apps/common/main/lib/model/Plugin.js index 8c0ace1d0..82c22f5ed 100644 --- a/apps/common/main/lib/model/Plugin.js +++ b/apps/common/main/lib/model/Plugin.js @@ -65,7 +65,8 @@ define([ isUpdateOleOnResize: false, buttons: [], size: [800, 600], - initOnSelectionChanged: false + initOnSelectionChanged: false, + isRelativeUrl: true } } }); diff --git a/apps/common/main/lib/view/Plugins.js b/apps/common/main/lib/view/Plugins.js index 9a360a09c..8a21c18e2 100644 --- a/apps/common/main/lib/view/Plugins.js +++ b/apps/common/main/lib/view/Plugins.js @@ -92,7 +92,7 @@ define([ enableKeyEvents: false, itemTemplate: _.template([ '
', - '
' + '<%= baseUrl %>' + '<% } else { %>' + this.pluginsPath + '<% } %>' + '<%= variations[currentVariation].get("icons")[(window.devicePixelRatio > 1) ? 1 : 0] %>);">
', + '
' + '<%= baseUrl %>' + '<% } else { %>' + this.pluginsPath + '<% } } %>' + '<%= variations[currentVariation].get("icons")[(window.devicePixelRatio > 1) ? 1 : 0] %>);">
', '<% if (variations.length>1) { %>', '
', '<% } %>', diff --git a/apps/documenteditor/main/app/controller/Main.js b/apps/documenteditor/main/app/controller/Main.js index 7c46f711a..c3e5f62f4 100644 --- a/apps/documenteditor/main/app/controller/Main.js +++ b/apps/documenteditor/main/app/controller/Main.js @@ -1806,7 +1806,8 @@ define([ isUpdateOleOnResize : itemVar.isUpdateOleOnResize, buttons: itemVar.buttons, size: itemVar.size, - initOnSelectionChanged: itemVar.initOnSelectionChanged + initOnSelectionChanged: itemVar.initOnSelectionChanged, + isRelativeUrl: !(/(^https?:\/\/)/i.test(itemVar.url) || /(^www.)/i.test(itemVar.url)) })); }); if (variationsArr.length>0) diff --git a/apps/presentationeditor/main/app/controller/Main.js b/apps/presentationeditor/main/app/controller/Main.js index 90619832a..a757db4bc 100644 --- a/apps/presentationeditor/main/app/controller/Main.js +++ b/apps/presentationeditor/main/app/controller/Main.js @@ -1580,7 +1580,8 @@ define([ isUpdateOleOnResize : itemVar.isUpdateOleOnResize, buttons: itemVar.buttons, size: itemVar.size, - initOnSelectionChanged: itemVar.initOnSelectionChanged + initOnSelectionChanged: itemVar.initOnSelectionChanged, + isRelativeUrl: !(/(^https?:\/\/)/i.test(itemVar.url) || /(^www.)/i.test(itemVar.url)) })); }); if (variationsArr.length>0) diff --git a/apps/spreadsheeteditor/main/app/controller/Main.js b/apps/spreadsheeteditor/main/app/controller/Main.js index 440f0c073..c67ed6301 100644 --- a/apps/spreadsheeteditor/main/app/controller/Main.js +++ b/apps/spreadsheeteditor/main/app/controller/Main.js @@ -1809,7 +1809,8 @@ define([ isUpdateOleOnResize : itemVar.isUpdateOleOnResize, buttons: itemVar.buttons, size: itemVar.size, - initOnSelectionChanged: itemVar.initOnSelectionChanged + initOnSelectionChanged: itemVar.initOnSelectionChanged, + isRelativeUrl: !(/(^https?:\/\/)/i.test(itemVar.url) || /(^www.)/i.test(itemVar.url)) })); }); if (variationsArr.length>0) From a92ae8bf8f4f643d1b1734b6ff47cb52f63917c3 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Tue, 6 Sep 2016 13:54:22 +0300 Subject: [PATCH 5/5] Fixed loading mask in plugin dialog. --- apps/common/main/lib/view/Plugins.js | 4 ++-- apps/documenteditor/main/locale/en.json | 1 + apps/presentationeditor/main/locale/en.json | 1 + apps/spreadsheeteditor/main/locale/en.json | 1 + 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/common/main/lib/view/Plugins.js b/apps/common/main/lib/view/Plugins.js index 8a21c18e2..e68c5104b 100644 --- a/apps/common/main/lib/view/Plugins.js +++ b/apps/common/main/lib/view/Plugins.js @@ -237,7 +237,7 @@ define([ var iframe = document.createElement("iframe"); iframe.id = 'plugin_iframe'; - iframe.name = 'pluginFrameEditor', + iframe.name = 'pluginFrameEditor'; iframe.width = '100%'; iframe.height = '100%'; iframe.align = "top"; @@ -249,7 +249,7 @@ define([ setTimeout(function(){ if (me.isLoaded) return; me.loadMask = new Common.UI.LoadMask({owner: $('#id-plugin-placeholder')}); - me.loadMask.setTitle(this.textLoading); + me.loadMask.setTitle(me.textLoading); me.loadMask.show(); if (me.isLoaded) me.loadMask.hide(); }, 500); diff --git a/apps/documenteditor/main/locale/en.json b/apps/documenteditor/main/locale/en.json index 898e2bf73..036cc7774 100644 --- a/apps/documenteditor/main/locale/en.json +++ b/apps/documenteditor/main/locale/en.json @@ -164,6 +164,7 @@ "Common.Views.Plugins.strPlugins": "Plugins", "Common.Views.Plugins.textLoading": "Loading", "Common.Views.Plugins.textStart": "Start", + "Common.Views.PluginDlg.textLoading": "Loading", "Common.Views.ReviewChanges.txtAccept": "Accept", "Common.Views.ReviewChanges.txtAcceptAll": "Accept All Changes", "Common.Views.ReviewChanges.txtAcceptCurrent": "Accept Current Change", diff --git a/apps/presentationeditor/main/locale/en.json b/apps/presentationeditor/main/locale/en.json index bed18a9a0..2b3f5fa1f 100644 --- a/apps/presentationeditor/main/locale/en.json +++ b/apps/presentationeditor/main/locale/en.json @@ -96,6 +96,7 @@ "Common.Views.Plugins.strPlugins": "Plugins", "Common.Views.Plugins.textLoading": "Loading", "Common.Views.Plugins.textStart": "Start", + "Common.Views.PluginDlg.textLoading": "Loading", "PE.Controllers.LeftMenu.newDocumentTitle": "Unnamed presentation", "PE.Controllers.LeftMenu.requestEditRightsText": "Requesting editing rights...", "PE.Controllers.LeftMenu.textNoTextFound": "The data you have been searching for could not be found. Please adjust your search options.", diff --git a/apps/spreadsheeteditor/main/locale/en.json b/apps/spreadsheeteditor/main/locale/en.json index 0c6aaa354..6aa1ffd4f 100644 --- a/apps/spreadsheeteditor/main/locale/en.json +++ b/apps/spreadsheeteditor/main/locale/en.json @@ -91,6 +91,7 @@ "Common.Views.Plugins.strPlugins": "Plugins", "Common.Views.Plugins.textLoading": "Loading", "Common.Views.Plugins.textStart": "Start", + "Common.Views.PluginDlg.textLoading": "Loading", "SSE.Controllers.DocumentHolder.errorInvalidLink": "The link reference does not exist. Please correct the link or delete it.", "SSE.Controllers.DocumentHolder.guestText": "Guest", "SSE.Controllers.DocumentHolder.notcriticalErrorTitle": "Warning",