From 984fb163c8fbf9231abb157afca9080249643de0 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Fri, 24 Jun 2016 11:30:03 +0300 Subject: [PATCH 01/25] =?UTF-8?q?[DE]=20=D0=9F=D0=B0=D0=BD=D0=B5=D0=BB?= =?UTF-8?q?=D1=8C=20=D0=BF=D0=BB=D0=B0=D0=B3=D0=B8=D0=BD=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B0=20=D0=B2=20?= =?UTF-8?q?=D1=81=D0=BE=D0=BE=D1=82=D0=B2=D0=B5=D1=82=D1=81=D1=82=D0=B2?= =?UTF-8?q?=D0=B8=D0=B8=20=D1=81=20=D0=BC=D0=B0=D0=BA=D0=B5=D1=82=D0=B0?= =?UTF-8?q?=D0=BC=D0=B8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/common/main/lib/controller/Plugins.js | 8 ++- apps/common/main/lib/view/Plugins.js | 43 ++++++++++++++-- .../img/plugin/icon_add_on_default.png | Bin 0 -> 441 bytes .../img/plugin/icon_add_on_default@2x.png | Bin 0 -> 1217 bytes apps/common/main/resources/less/plugins.less | 46 ++++++++++++++++-- .../main/app/controller/LeftMenu.js | 2 - apps/documenteditor/main/app/view/LeftMenu.js | 4 +- apps/documenteditor/main/locale/en.json | 1 + 8 files changed, 92 insertions(+), 12 deletions(-) create mode 100644 apps/common/main/resources/img/plugin/icon_add_on_default.png create mode 100644 apps/common/main/resources/img/plugin/icon_add_on_default@2x.png diff --git a/apps/common/main/lib/controller/Plugins.js b/apps/common/main/lib/controller/Plugins.js index 05a85f7c9..92a0380f1 100644 --- a/apps/common/main/lib/controller/Plugins.js +++ b/apps/common/main/lib/controller/Plugins.js @@ -119,8 +119,12 @@ define([ this.api.asc_pluginsRegister(this.panelPlugins.pluginsPath, arr); }, - onSelectPlugin: function(picker, item, record){ - this.api.asc_pluginRun(record.get('guid'), record.get('currentVariation'), ''); + onSelectPlugin: function(picker, item, record, e){ + var btn = $(e.target); + if (btn && btn.hasClass('plugin-caret')) { + // show plugin menu + } else + this.api.asc_pluginRun(record.get('guid'), record.get('currentVariation'), ''); }, onPluginShow: function(plugin) { diff --git a/apps/common/main/lib/view/Plugins.js b/apps/common/main/lib/view/Plugins.js index bf5d4b2bd..5de009b37 100644 --- a/apps/common/main/lib/view/Plugins.js +++ b/apps/common/main/lib/view/Plugins.js @@ -50,7 +50,7 @@ define([ 'use strict'; Common.Views.Plugins = Common.UI.BaseView.extend(_.extend({ - el: '#left-panel-plugins', + el: '#id-plugins-settings', storePlugins: undefined, template: _.template([ @@ -58,31 +58,68 @@ define([ '', '
', '
', + '', + '' ].join('')), initialize: function(options) { _.extend(this, options); this.pluginsPath = '../../../../sdkjs-plugins/'; + this._locked = false; + this._state = { + DisabledControls: true + }; + this.lockedControls = []; Common.UI.BaseView.prototype.initialize.call(this, arguments); }, render: function(el) { el = el || this.el; $(el).html(this.template({scope: this})); + this.$el = $(el); this.viewPluginsList = new Common.UI.DataView({ el: $('#plugins-list'), store: this.storePlugins, enableKeyEvents: false, - itemTemplate: _.template('
' + '<%= baseUrl %>' + '<% } else { %>' + this.pluginsPath + '<% } %>' + '<%= variations[currentVariation].get("icons")[(window.devicePixelRatio > 1) ? 1 : 0] %>); background-position: 0 0;">
') + itemTemplate: _.template([ + '
', + '
' + '<%= baseUrl %>' + '<% } else { %>' + this.pluginsPath + '<% } %>' + '<%= variations[currentVariation].get("icons")[(window.devicePixelRatio > 1) ? 1 : 0] %>);">
', + '<% if (variations.length>1) { %>', + '
', + '<% } %>', + '<%= name %>', + '
' + ].join('')) }); + this.lockedControls.push(this.viewPluginsList); this.trigger('render:after', this); return this; }, - strPlugins: 'Plugins' + setLocked: function (locked) { + this._locked = locked; + }, + + ChangeSettings: function(props) { + this.disableControls(this._locked); + }, + + disableControls: function(disable) { + if (this._state.DisabledControls!==disable) { + this._state.DisabledControls = disable; + _.each(this.lockedControls, function(item) { + item.setDisabled(disable); + }); + } + }, + + strPlugins: 'Add-ons' }, Common.Views.Plugins || {})); diff --git a/apps/common/main/resources/img/plugin/icon_add_on_default.png b/apps/common/main/resources/img/plugin/icon_add_on_default.png new file mode 100644 index 0000000000000000000000000000000000000000..0ecbe7474d4bf96721332a0d33d9d6249dbcfbd4 GIT binary patch literal 441 zcmV;q0Y?6bP))0004iNkl)-@Nm5ug^X>Ny@@MyBy*M zVj*qU{amx^sYX%<1B_-Yo#yz0yS|3=K$L9^a>ZSL3W(tq=lJZd7j25So^4N0p=IGW zDR=!EUlGGC7IMGh;v8`@M7{K3OlO;6JV7oYhN2vJaYr3D?NCk6DwyiSpae#yDHymWIO6%FB9OjbQ zDs0sG9caQ1A5y`FQpZ;&M}77|N=qZenP<-D@Qb1rOSnnMTQ5=|!DdZn^0Ztodc1W5 zl(UL*T`8Rh@q6hRE@-lw?`54XhOv}YOkj{eb6v>t%ZT49yP8{!

3Y&s=KqbPG}5 z@K29(?s_G~_H=RA-*btlq!CiQcGs^k#72G)(Y00000NkvXXu0mjf!cW#_ literal 0 HcmV?d00001 diff --git a/apps/common/main/resources/img/plugin/icon_add_on_default@2x.png b/apps/common/main/resources/img/plugin/icon_add_on_default@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..151ae0dfbf7fd9b3451fb682ff3cd4e0794e0318 GIT binary patch literal 1217 zcmV;y1U~zTP)(pp+_jvlb=g5qXA>+$5zn))MMiG79rVh4n zkGFmXIdnNH=O&&bjbd8OrhfAIibr{tKdGeGY55-_9KkS~hG-Lg0!ft6$*|M%RhG6P zx@i-77{YK`zBOQhzMPF?DPKR9@(nhv2E&5k{4$SV(5J1BBI1NXIv8?V{wei72apD$ zc$;@wOf7v*@8PcDd(kCPMw5_B1UGo=57_SEM(81r^(U87>b2WGI7C*C` z6@1I1?9VKzUrM@~BWl^xO&MQs9Vc@tr*M*VF2@M|QSCgEE%FgjZ{aipy`J^A$%&}-T64d5b|w>U?oZX|*>`Y?hmFT;NKn$1gU zx__Y2Hq)y++bbEhrJj$xi5c=-L9cyEcWqClT0{+sMxhB8TX;mtKPCk?E>ucz;ih67 zCvh%kaSA7Mk|28}`F0NbGgT=jvMa}PqCAiDaxBMiJV$Z{r?XUuWFd=87PExq!t0!* zX8ZYkz*<(SjKE5%gp8ALESp))Dk-cI*2uT5e9C#!Ho^M`r}3I7mPvB4w8>LsOIRsA z5u7O;BOIqVo|8C{-B2UXWOkLrksOACBc*cCII3x*1(_`-Zdzz1g?FTF3ghMVMPj@& zvr$m97Z;_hcH7JVah#zix4+7C@r#=6-%@QaCxeUh!aO(c zrCD(no>L>GtAV8I-j{AnDSAfiFh9K$z00!MAOWWnKMjz2{-G>-KJXoDX~0Z z$xM>x+Z0=N7CjVjy|&y!6sOqa9wv)!pInzzt_-$(C6`(?qC(QX4Opsi@8n8j>_9fG*6KC;!%DejwF`z9glK72RkiqBSGXkgNEEZs;Nth znap7ZbU;`#Kv)Yzf~8y00000NkvXXu0mjf06$3e literal 0 HcmV?d00001 diff --git a/apps/common/main/resources/less/plugins.less b/apps/common/main/resources/less/plugins.less index 3577df2dd..46b3dc455 100644 --- a/apps/common/main/resources/less/plugins.less +++ b/apps/common/main/resources/less/plugins.less @@ -16,11 +16,51 @@ #plugins-list { height: 100%; overflow: hidden; - padding: 30px 0 10px 10px; + padding: 30px 0 10px 0; + + .item { + display: block; + width: 100%; + .box-shadow(none); + margin: 0; + + &:hover, + &.over { + background-color: @secondary; + + .plugin-icon { + .box-shadow(0 0 0 2px @primary); + } + } + } .item-plugins { - width: 40px; - height: 40px; + width: 100%; + padding: 7px 1px 7px 12px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + + .plugin-icon { + width: 31px; + height: 31px; + display: inline-block; + .box-shadow(0 0 0 1px @gray); + vertical-align: middle; + background-position: 0 0; + background-size: cover; + margin-right: 10px; + + .background-ximage('@{common-image-path}/plugin/icon_add_on_default.png', '@{common-image-path}/plugin/icon_add_on_default@2x.png', 31px); + } + + .plugin-caret { + float: right; + width: 16px; + height: 16px; + background-position: -42px -195px; + margin: 7px; } } } diff --git a/apps/documenteditor/main/app/controller/LeftMenu.js b/apps/documenteditor/main/app/controller/LeftMenu.js index bdd66a471..f16dd7d38 100644 --- a/apps/documenteditor/main/app/controller/LeftMenu.js +++ b/apps/documenteditor/main/app/controller/LeftMenu.js @@ -174,8 +174,6 @@ define([ if (this.mode.canUseHistory) this.leftMenu.setOptionsPanel('history', this.getApplication().getController('Common.Controllers.History').getView('Common.Views.History')); - this.enablePlugins(); - Common.util.Shortcuts.resumeEvents(); return this; }, diff --git a/apps/documenteditor/main/app/view/LeftMenu.js b/apps/documenteditor/main/app/view/LeftMenu.js index 061e5570e..78ae7fa34 100644 --- a/apps/documenteditor/main/app/view/LeftMenu.js +++ b/apps/documenteditor/main/app/view/LeftMenu.js @@ -227,7 +227,7 @@ define([ } } /** coauthoring end **/ - if (this.mode.canPlugins) { + if (this.mode.canPlugins && this.panelPlugins) { if (this.btnPlugins.pressed) { this.panelPlugins.show(); } else @@ -279,7 +279,7 @@ define([ this.panelChat['hide'](); this.btnChat.toggle(false, true); } - if (this.mode.canPlugins) { + if (this.mode.canPlugins && this.panelPlugins) { this.panelPlugins['hide'](); this.btnPlugins.toggle(false, true); } diff --git a/apps/documenteditor/main/locale/en.json b/apps/documenteditor/main/locale/en.json index f177f9bad..857f32aa1 100644 --- a/apps/documenteditor/main/locale/en.json +++ b/apps/documenteditor/main/locale/en.json @@ -157,6 +157,7 @@ "Common.Views.OpenDialog.okButtonText": "OK", "Common.Views.OpenDialog.txtEncoding": "Encoding ", "Common.Views.OpenDialog.txtTitle": "Choose %1 options", + "Common.Views.Plugins.strPlugins": "Add-ons", "Common.Views.ReviewChanges.txtAccept": "Accept", "Common.Views.ReviewChanges.txtAcceptAll": "Accept All Changes", "Common.Views.ReviewChanges.txtAcceptCurrent": "Accept Current Change", From 5779aea322cc56587f393747fbb78ddcb4091c31 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Fri, 24 Jun 2016 14:07:55 +0300 Subject: [PATCH 02/25] =?UTF-8?q?[DE]=20=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B0=20=D0=B2=D0=BE=D0=B7=D0=BC?= =?UTF-8?q?=D0=BE=D0=B6=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20=D0=BE=D1=82=D0=BA?= =?UTF-8?q?=D1=80=D1=8B=D1=82=D0=B8=D1=8F=20=D0=BF=D0=BB=D0=B0=D0=B3=D0=B8?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=B2=20=D0=BB=D0=B5=D0=B2=D0=BE=D0=B9=20=D0=BF?= =?UTF-8?q?=D0=B0=D0=BD=D0=B5=D0=BB=D0=B8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/common/main/lib/controller/Plugins.js | 52 ++++++++++++-------- apps/common/main/lib/view/Plugins.js | 52 +++++++++++++++++++- apps/common/main/resources/less/plugins.less | 40 +++++++++++++++ apps/documenteditor/main/locale/en.json | 1 + 4 files changed, 122 insertions(+), 23 deletions(-) diff --git a/apps/common/main/lib/controller/Plugins.js b/apps/common/main/lib/controller/Plugins.js index 92a0380f1..c863f3580 100644 --- a/apps/common/main/lib/controller/Plugins.js +++ b/apps/common/main/lib/controller/Plugins.js @@ -55,7 +55,10 @@ define([ initialize: function() { }, - events: { + events: function() { + return { + 'click #id-plugin-close':_.bind(this.onToolClose,this) + }; }, onLaunch: function() { @@ -83,6 +86,7 @@ define([ onAfterRender: function(historyView) { historyView.viewPluginsList.on('item:click', _.bind(this.onSelectPlugin, this)); + this.bindViewEvents(this.panelPlugins, this.events); }, updatePluginsList: function() { @@ -131,34 +135,40 @@ define([ var variation = plugin.get_Variations()[0]; if (!variation.get_Visual()) return; - var me = this, - arrBtns = variation.get_Buttons(), - newBtns = {}; + if (variation.get_InsideMode()) { + this.panelPlugins.openInsideMode(plugin.get_Name(), ((plugin.get_BaseUrl().length == 0) ? this.panelPlugins.pluginsPath : plugin.get_BaseUrl()) + variation.get_Url()); + } else { + var me = this, + arrBtns = variation.get_Buttons(), + newBtns = {}; - if (_.isArray(arrBtns)) { - _.each(arrBtns, function(b, index){ - newBtns[index] = {text: b.text, cls: 'custom' + ((b.primary) ? ' primary' : '')}; + if (_.isArray(arrBtns)) { + _.each(arrBtns, function(b, index){ + newBtns[index] = {text: b.text, cls: 'custom' + ((b.primary) ? ' primary' : '')}; + }); + } + + var _baseUrl = (plugin.get_BaseUrl().length == 0) ? me.panelPlugins.pluginsPath : plugin.get_BaseUrl(); + me.pluginDlg = new Common.Views.PluginDlg({ + title: plugin.get_Name(), + url: _baseUrl + variation.get_Url(), + buttons: newBtns, + toolcallback: _.bind(this.onToolClose, this) }); + me.pluginDlg.on('render:after', function(obj){ + obj.getChild('.footer .dlg-btn').on('click', _.bind(me.onDlgBtnClick, me)); + }).on('close', function(obj){ + me.pluginDlg = undefined; + }); + me.pluginDlg.show(); } - - var _baseUrl = (plugin.get_BaseUrl().length == 0) ? me.panelPlugins.pluginsPath : plugin.get_BaseUrl(); - me.pluginDlg = new Common.Views.PluginDlg({ - title: plugin.get_Name(), - url: _baseUrl + variation.get_Url(), - buttons: newBtns, - toolcallback: _.bind(this.onToolClose, this) - }); - me.pluginDlg.on('render:after', function(obj){ - obj.getChild('.footer .dlg-btn').on('click', _.bind(me.onDlgBtnClick, me)); - }).on('close', function(obj){ - me.pluginDlg = undefined; - }); - me.pluginDlg.show(); }, onPluginClose: function() { if (this.pluginDlg) this.pluginDlg.close(); + else + this.panelPlugins.closeInsideMode(); }, onDlgBtnClick: function(event) { diff --git a/apps/common/main/lib/view/Plugins.js b/apps/common/main/lib/view/Plugins.js index 5de009b37..27df8478d 100644 --- a/apps/common/main/lib/view/Plugins.js +++ b/apps/common/main/lib/view/Plugins.js @@ -60,7 +60,10 @@ define([ '', '', '

' @@ -98,6 +101,10 @@ define([ }); this.lockedControls.push(this.viewPluginsList); + this.pluginName = $('#current-plugin-header label'); + this.pluginsPanel = $('#plugins-box'); + this.currentPluginPanel = $('#current-plugin-box'); + this.trigger('render:after', this); return this; }, @@ -119,7 +126,48 @@ define([ } }, - strPlugins: 'Add-ons' + openInsideMode: function(name, url) { + this.pluginsPanel.toggleClass('hidden', true); + this.currentPluginPanel.toggleClass('hidden', false); + + this.pluginName.text(name); + if (!this.iframePlugin) { + this.iframePlugin = document.createElement("iframe"); + this.iframePlugin.id = 'plugin_iframe'; + this.iframePlugin.name = 'pluginFrameEditor', + this.iframePlugin.width = '100%'; + this.iframePlugin.height = '100%'; + this.iframePlugin.align = "top"; + this.iframePlugin.frameBorder = 0; + this.iframePlugin.scrolling = "no"; + this.iframePlugin.onload = _.bind(this._onLoad,this); + $('#current-plugin-frame').append(this.iframePlugin); + + if (!this.loadMask) + this.loadMask = new Common.UI.LoadMask({owner: $('#current-plugin-frame')}); + this.loadMask.setTitle(this.textLoading); + this.loadMask.show(); + + this.iframePlugin.src = url; + } + }, + + closeInsideMode: function() { + if (this.iframePlugin) { + this.iframePlugin.remove(); + this.iframePlugin = null; + } + this.currentPluginPanel.toggleClass('hidden', true); + this.pluginsPanel.toggleClass('hidden', false); + }, + + _onLoad: function() { + if (this.loadMask) + this.loadMask.hide(); + }, + + strPlugins: 'Add-ons', + textLoading: 'Loading' }, Common.Views.Plugins || {})); diff --git a/apps/common/main/resources/less/plugins.less b/apps/common/main/resources/less/plugins.less index 46b3dc455..101b26939 100644 --- a/apps/common/main/resources/less/plugins.less +++ b/apps/common/main/resources/less/plugins.less @@ -65,3 +65,43 @@ } } +#current-plugin-box { + position: relative; + width: 100%; + height: 100%; + + #current-plugin-header { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 38px; + padding: 10px 12px; + border-bottom: 1px solid @gray-dark; + + label { + width: 100%; + padding-right: 20px; + font-weight: bold; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + } + + .plugin-close { + position: absolute; + top: 9px; + right: 7px; + width: 16px; + height: 16px; + background-position: -26px -150px; + cursor: pointer; + } + + #current-plugin-frame { + width: 100%; + height: 100%; + padding-top: 38px; + } +} diff --git a/apps/documenteditor/main/locale/en.json b/apps/documenteditor/main/locale/en.json index 857f32aa1..537134592 100644 --- a/apps/documenteditor/main/locale/en.json +++ b/apps/documenteditor/main/locale/en.json @@ -158,6 +158,7 @@ "Common.Views.OpenDialog.txtEncoding": "Encoding ", "Common.Views.OpenDialog.txtTitle": "Choose %1 options", "Common.Views.Plugins.strPlugins": "Add-ons", + "Common.Views.Plugins.textLoading": "Loading", "Common.Views.ReviewChanges.txtAccept": "Accept", "Common.Views.ReviewChanges.txtAcceptAll": "Accept All Changes", "Common.Views.ReviewChanges.txtAcceptCurrent": "Accept Current Change", From 55f0280b4c77b81d7741f12e8755b1552cdfdf81 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Fri, 24 Jun 2016 14:48:03 +0300 Subject: [PATCH 03/25] =?UTF-8?q?[DE]=20=D0=9A=D0=BD=D0=BE=D0=BF=D0=BA?= =?UTF-8?q?=D0=B0=20=D1=81=20=D0=BF=D0=BB=D0=B0=D0=B3=D0=B8=D0=BD=D0=B0?= =?UTF-8?q?=D0=BC=D0=B8=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BD=D0=B5=D1=81=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BF=D0=BE=D0=B4=20=D1=87=D0=B0=D1=82.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/documenteditor/main/app/template/LeftMenu.template | 2 +- apps/documenteditor/main/app/view/LeftMenu.js | 2 +- apps/documenteditor/main/locale/en.json | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/documenteditor/main/app/template/LeftMenu.template b/apps/documenteditor/main/app/template/LeftMenu.template index 2bf5364f9..72e966931 100644 --- a/apps/documenteditor/main/app/template/LeftMenu.template +++ b/apps/documenteditor/main/app/template/LeftMenu.template @@ -6,9 +6,9 @@ + -
diff --git a/apps/documenteditor/main/app/view/LeftMenu.js b/apps/documenteditor/main/app/view/LeftMenu.js index 78ae7fa34..632e50cb2 100644 --- a/apps/documenteditor/main/app/view/LeftMenu.js +++ b/apps/documenteditor/main/app/view/LeftMenu.js @@ -365,6 +365,6 @@ define([ tipSupport : 'Feedback & Support', tipFile : 'File', tipSearch : 'Search', - tipPlugins : 'Plugins' + tipPlugins : 'Add-ons' }, DE.Views.LeftMenu || {})); }); diff --git a/apps/documenteditor/main/locale/en.json b/apps/documenteditor/main/locale/en.json index 537134592..05310bea9 100644 --- a/apps/documenteditor/main/locale/en.json +++ b/apps/documenteditor/main/locale/en.json @@ -1028,6 +1028,7 @@ "DE.Views.LeftMenu.tipChat": "Chat", "DE.Views.LeftMenu.tipComments": "Comments", "DE.Views.LeftMenu.tipFile": "File", + "DE.Views.LeftMenu.tipPlugins": "Add-ons", "DE.Views.LeftMenu.tipSearch": "Search", "DE.Views.LeftMenu.tipSupport": "Feedback & Support", "DE.Views.LeftMenu.tipTitles": "Titles", From 357226170474d3ca13b821b8c29e253d515b90fa Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Tue, 28 Jun 2016 12:27:00 +0300 Subject: [PATCH 04/25] =?UTF-8?q?[DE]=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=BE=20=D0=BC=D0=B5=D0=BD=D1=8E=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=BF=D0=BB=D0=B0=D0=B3=D0=B8=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/common/main/lib/controller/Plugins.js | 70 +++++++++++++++++-- apps/common/main/lib/view/Plugins.js | 8 ++- .../main/app/controller/LeftMenu.js | 9 ++- .../main/app/controller/Main.js | 2 +- 4 files changed, 82 insertions(+), 7 deletions(-) diff --git a/apps/common/main/lib/controller/Plugins.js b/apps/common/main/lib/controller/Plugins.js index c863f3580..43d68e613 100644 --- a/apps/common/main/lib/controller/Plugins.js +++ b/apps/common/main/lib/controller/Plugins.js @@ -84,8 +84,8 @@ define([ } }, - onAfterRender: function(historyView) { - historyView.viewPluginsList.on('item:click', _.bind(this.onSelectPlugin, this)); + onAfterRender: function(panelPlugins) { + panelPlugins.viewPluginsList.on('item:click', _.bind(this.onSelectPlugin, this)); this.bindViewEvents(this.panelPlugins, this.events); }, @@ -126,9 +126,71 @@ define([ onSelectPlugin: function(picker, item, record, e){ var btn = $(e.target); if (btn && btn.hasClass('plugin-caret')) { - // show plugin menu + var menu = this.panelPlugins.pluginMenu; + if (menu.isVisible()) { + menu.hide(); + return; + } + + var showPoint, me = this, + currentTarget = $(e.currentTarget), + parent = $(this.panelPlugins.el), + offset = currentTarget.offset(), + offsetParent = parent.offset(); + + showPoint = [offset.left - offsetParent.left + currentTarget.width(), offset.top - offsetParent.top + currentTarget.height()/2]; + + if (record != undefined) { + for (var i = 0; i < menu.items.length; i++) { + menu.removeItem(menu.items[i]); i--; + } + menu.removeAll(); + + var variations = record.get('variations'); + for (var i=0; i
', menu.id); + parent.append(menuContainer); + } + menu.render(menuContainer); + menu.cmpEl.attr({tabindex: "-1"}); + + menu.on('show:after', function(cmp) { + if (cmp && cmp.menuAlignEl) + cmp.menuAlignEl.toggleClass('over', true); + }).on('hide:after', function(cmp) { + if (cmp && cmp.menuAlignEl) + cmp.menuAlignEl.toggleClass('over', false); + }); + } + + menuContainer.css({left: showPoint[0], top: showPoint[1]}); + + menu.menuAlignEl = currentTarget; + menu.setOffset(-11, -currentTarget.height()/2 + 2); + menu.show(); + _.delay(function() { + menu.cmpEl.focus(); + }, 10); + e.stopPropagation(); + e.preventDefault(); } else - this.api.asc_pluginRun(record.get('guid'), record.get('currentVariation'), ''); + this.api.asc_pluginRun(record.get('guid'), 0, ''); }, onPluginShow: function(plugin) { diff --git a/apps/common/main/lib/view/Plugins.js b/apps/common/main/lib/view/Plugins.js index 27df8478d..8ef04b0dd 100644 --- a/apps/common/main/lib/view/Plugins.js +++ b/apps/common/main/lib/view/Plugins.js @@ -50,7 +50,7 @@ define([ 'use strict'; Common.Views.Plugins = Common.UI.BaseView.extend(_.extend({ - el: '#id-plugins-settings', + el: '#left-panel-plugins', storePlugins: undefined, template: _.template([ @@ -100,11 +100,17 @@ define([ ].join('')) }); this.lockedControls.push(this.viewPluginsList); + this.viewPluginsList.cmpEl.off('click'); this.pluginName = $('#current-plugin-header label'); this.pluginsPanel = $('#plugins-box'); this.currentPluginPanel = $('#current-plugin-box'); + this.pluginMenu = new Common.UI.Menu({ + menuAlign : 'tr-br', + items: [] + }); + this.trigger('render:after', this); return this; }, diff --git a/apps/documenteditor/main/app/controller/LeftMenu.js b/apps/documenteditor/main/app/controller/LeftMenu.js index f16dd7d38..305c48749 100644 --- a/apps/documenteditor/main/app/controller/LeftMenu.js +++ b/apps/documenteditor/main/app/controller/LeftMenu.js @@ -558,7 +558,14 @@ define([ $.fn.dropdown.Constructor.prototype.keydown.call(menu_opened[0], e); return false; } - if (this.leftMenu.btnFile.pressed || this.leftMenu.btnAbout.pressed || + if (this.mode.canPlugins && this.leftMenu.panelPlugins) { + menu_opened = this.leftMenu.panelPlugins.$el.find('#menu-plugin-container.open > [data-toggle="dropdown"]'); + if (menu_opened.length) { + $.fn.dropdown.Constructor.prototype.keydown.call(menu_opened[0], e); + return false; + } + } + if (this.leftMenu.btnFile.pressed || this.leftMenu.btnAbout.pressed || this.leftMenu.btnPlugins.pressed || $(e.target).parents('#left-menu').length ) { this.leftMenu.close(); Common.NotificationCenter.trigger('layout:changed', 'leftmenu'); diff --git a/apps/documenteditor/main/app/controller/Main.js b/apps/documenteditor/main/app/controller/Main.js index 87bfa0a43..2e79d0c1f 100644 --- a/apps/documenteditor/main/app/controller/Main.js +++ b/apps/documenteditor/main/app/controller/Main.js @@ -1719,7 +1719,7 @@ define([ if (isSupported && (isEdit || itemVar.isViewer)) variationsArr.push(new Common.Models.PluginVariation({ description: itemVar.description, - index: itemVar.index, + index: variationsArr.length, url : itemVar.url, icons : itemVar.icons, isViewer: itemVar.isViewer, From 1aa0a25c9aa19d3f383651ac2f1ec63bb959db8c Mon Sep 17 00:00:00 2001 From: Oleg Korshul Date: Tue, 28 Jun 2016 18:15:06 +0300 Subject: [PATCH 05/25] add variationIndex --- apps/common/main/lib/controller/Plugins.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/common/main/lib/controller/Plugins.js b/apps/common/main/lib/controller/Plugins.js index 43d68e613..e3695ec23 100644 --- a/apps/common/main/lib/controller/Plugins.js +++ b/apps/common/main/lib/controller/Plugins.js @@ -193,8 +193,8 @@ define([ this.api.asc_pluginRun(record.get('guid'), 0, ''); }, - onPluginShow: function(plugin) { - var variation = plugin.get_Variations()[0]; + onPluginShow: function(plugin, variationIndex) { + var variation = plugin.get_Variations()[variationIndex]; if (!variation.get_Visual()) return; if (variation.get_InsideMode()) { From b91142c0eb37d24fc740fc2c58a6f06504d3a4d2 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Wed, 29 Jun 2016 10:30:59 +0300 Subject: [PATCH 06/25] =?UTF-8?q?[DE]=20=D0=9E=D1=82=D0=BB=D0=B0=D0=B4?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=BC=D0=B5=D0=BD=D1=8E=20=D0=BF=D0=BB=D0=B0?= =?UTF-8?q?=D0=B3=D0=B8=D0=BD=D0=BE=D0=B2=20(=D0=BF=D0=B5=D1=80=D0=B2?= =?UTF-8?q?=D0=B0=D1=8F=20=D0=B2=D0=B0=D1=80=D0=B8=D0=B0=D1=86=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=B2=D1=81=D0=B5=D0=B3=D0=B4=D0=B0=20=D0=BD=D0=B0=D0=B7?= =?UTF-8?q?=D1=8B=D0=B2=D0=B0=D0=B5=D1=82=D1=81=D1=8F=20Start).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/common/main/lib/controller/Plugins.js | 2 +- apps/common/main/lib/view/Plugins.js | 3 ++- apps/documenteditor/main/locale/en.json | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/common/main/lib/controller/Plugins.js b/apps/common/main/lib/controller/Plugins.js index e3695ec23..8a2ea25e9 100644 --- a/apps/common/main/lib/controller/Plugins.js +++ b/apps/common/main/lib/controller/Plugins.js @@ -150,7 +150,7 @@ define([ for (var i=0; i0) ? variation.get('description') : me.panelPlugins.textStart, value : parseInt(variation.get('index')) }).on('click', function(item, e) { if (me.api) { diff --git a/apps/common/main/lib/view/Plugins.js b/apps/common/main/lib/view/Plugins.js index 8ef04b0dd..34f4351cc 100644 --- a/apps/common/main/lib/view/Plugins.js +++ b/apps/common/main/lib/view/Plugins.js @@ -173,7 +173,8 @@ define([ }, strPlugins: 'Add-ons', - textLoading: 'Loading' + textLoading: 'Loading', + textStart: 'Start' }, Common.Views.Plugins || {})); diff --git a/apps/documenteditor/main/locale/en.json b/apps/documenteditor/main/locale/en.json index 05310bea9..a2b8002dc 100644 --- a/apps/documenteditor/main/locale/en.json +++ b/apps/documenteditor/main/locale/en.json @@ -159,6 +159,7 @@ "Common.Views.OpenDialog.txtTitle": "Choose %1 options", "Common.Views.Plugins.strPlugins": "Add-ons", "Common.Views.Plugins.textLoading": "Loading", + "Common.Views.Plugins.textStart": "Start", "Common.Views.ReviewChanges.txtAccept": "Accept", "Common.Views.ReviewChanges.txtAcceptAll": "Accept All Changes", "Common.Views.ReviewChanges.txtAcceptCurrent": "Accept Current Change", From af2c1ae10c7376a459f4555c5bf0e4ab152745ca Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Thu, 23 Jun 2016 15:28:35 +0300 Subject: [PATCH 07/25] =?UTF-8?q?[DE]=20=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=B8=D0=BA=D0=BE=D0=BD=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D1=82=D1=83=D0=BB=D0=B1=D0=B0=D1=80?= =?UTF-8?q?=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/img/toolbar-menu.png | Bin 17471 -> 17111 bytes .../main/resources/img/toolbar-menu@2x.png | Bin 43888 -> 42871 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/apps/documenteditor/main/resources/img/toolbar-menu.png b/apps/documenteditor/main/resources/img/toolbar-menu.png index 9c0be26581e45711f0aeebaf833bf3dde40420ea..ddd5f5c0fdaa1d393a6ec718d43718d16ca6a4c3 100644 GIT binary patch literal 17111 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 KMNUMnLSTXwlt}LY diff --git a/apps/documenteditor/main/resources/img/toolbar-menu@2x.png b/apps/documenteditor/main/resources/img/toolbar-menu@2x.png index acfef39b8b1b18ee7b442f8d6c117b46bd6e9400..fe4f7a0301133b3464686df1bed98a5c572bcff9 100644 GIT binary patch literal 42871 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%0DI+e%$Y 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⪚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 F{V&pK0R#X5 From 113bf86addd99063a82304d7a1c7719b9b2299f9 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Wed, 29 Jun 2016 14:14:04 +0300 Subject: [PATCH 08/25] =?UTF-8?q?[DE]=20=D0=98=D0=B7=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=B8=D0=BA=D0=BE=D0=BD=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D0=B8=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=B2=D1=8B=D0=B7=D0=BE=D0=B2=D0=B0=20=D0=BC=D0=B5=D0=BD=D1=8E?= =?UTF-8?q?=20=D0=BF=D0=BB=D0=B0=D0=B3=D0=B8=D0=BD=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../img/controls/common-controls.png | Bin 8480 -> 8074 bytes .../img/controls/common-controls@2x.png | Bin 18752 -> 17907 bytes apps/common/main/resources/less/plugins.less | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/common/main/resources/img/controls/common-controls.png b/apps/common/main/resources/img/controls/common-controls.png index 2e7c9c2b53350d2a795dcd0ec29669d98947afab..8694bd120b254e4e0bb2dbc4827c0666093a16b6 100755 GIT binary patch literal 8074 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 literal 8480 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 P2Lhc31{&q+&%^%<|7nLJ diff --git a/apps/common/main/resources/img/controls/common-controls@2x.png b/apps/common/main/resources/img/controls/common-controls@2x.png index be6ac1f9897f9519e0aafd375060726317654db7..2d98028730896161c41475b0407e3982efb1d009 100755 GIT binary patch literal 17907 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 literal 18752 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 JWt~$(69AAf(>MSC diff --git a/apps/common/main/resources/less/plugins.less b/apps/common/main/resources/less/plugins.less index 101b26939..9569f112e 100644 --- a/apps/common/main/resources/less/plugins.less +++ b/apps/common/main/resources/less/plugins.less @@ -59,7 +59,7 @@ float: right; width: 16px; height: 16px; - background-position: -42px -195px; + background-position: -1px -274px; margin: 7px; } } From b5a81cf8af2607eee67defe132be9f55d4768d9c Mon Sep 17 00:00:00 2001 From: alexandervnuchkov Date: Wed, 29 Jun 2016 17:43:24 +0300 Subject: [PATCH 09/25] Update Readme.md --- Readme.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Readme.md b/Readme.md index 5375779d9..661a504e4 100644 --- a/Readme.md +++ b/Readme.md @@ -1,3 +1,7 @@ +## web-apps + +Frontend used for [ONLYOFFICE Document Server][2]. + ## Project Information Official website: [http://www.onlyoffice.org](http://onlyoffice.org "http://www.onlyoffice.org") @@ -11,3 +15,8 @@ SaaS version: [http://www.onlyoffice.com](http://www.onlyoffice.com "http://www. If you have any problems with or questions about this image, please contact us through a [dev.onlyoffice.org][1]. [1]: http://dev.onlyoffice.org + [2]: https://github.com/ONLYOFFICE/DocumentServer + +## License + +web-apps is released under an GNU AGPL v3.0 license. See the LICENSE file for more information. From fa88016820cd166b929352493777709f15701936 Mon Sep 17 00:00:00 2001 From: alexandervnuchkov Date: Thu, 30 Jun 2016 11:48:48 +0300 Subject: [PATCH 10/25] Update Readme.md --- Readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Readme.md b/Readme.md index 661a504e4..796dde16b 100644 --- a/Readme.md +++ b/Readme.md @@ -1,6 +1,6 @@ ## web-apps -Frontend used for [ONLYOFFICE Document Server][2]. +The frontend for [ONLYOFFICE Document Server][2]. Builds the program interface and allows the user create, edit, save and export text, spreadsheet and presentation documents using the common interface of a document editor. ## Project Information @@ -12,7 +12,7 @@ SaaS version: [http://www.onlyoffice.com](http://www.onlyoffice.com "http://www. ## User Feedback and Support -If you have any problems with or questions about this image, please contact us through a [dev.onlyoffice.org][1]. +If you have any problems with or questions about [ONLYOFFICE Document Server][2], please visit our official forum to find answers to your questions: [dev.onlyoffice.org][1]. [1]: http://dev.onlyoffice.org [2]: https://github.com/ONLYOFFICE/DocumentServer From 2d1b5ea522657211f33f48082767bc0ec13cf3ad Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Thu, 30 Jun 2016 11:56:15 +0300 Subject: [PATCH 11/25] =?UTF-8?q?[DE]=20=D0=9E=D0=B3=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B4=D0=BB=D1=8F=20lig?= =?UTF-8?q?ht-=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B8=20(=D1=81=D0=BE=D0=BA?= =?UTF-8?q?=D1=80=D0=B0=D1=89=D0=B5=D0=BD=D0=BD=D0=B0=D1=8F=20=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D1=81=D0=B8=D1=8F=20=D1=82=D1=83=D0=BB=D0=B1=D0=B0=D1=80?= =?UTF-8?q?=D0=B0=20+=20=D1=81=D0=BA=D1=80=D1=8B=D1=82=D1=8B=20=D1=87?= =?UTF-8?q?=D0=B0=D1=82,=20=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=B0=D1=80=D0=B8=D0=B8,=20=D0=BF=D0=BB=D0=B0=D0=B3=D0=B8?= =?UTF-8?q?=D0=BD=D1=8B,=20=D1=80=D0=B5=D1=86=D0=B5=D0=BD=D0=B7=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/documenteditor/main/app/controller/LeftMenu.js | 8 ++++---- apps/documenteditor/main/app/controller/Main.js | 9 ++++++--- apps/documenteditor/main/app/controller/Statusbar.js | 8 ++++---- apps/documenteditor/main/app/view/Statusbar.js | 2 +- apps/documenteditor/main/app/view/Toolbar.js | 5 +++-- apps/documenteditor/main/app/view/Viewport.js | 2 +- 6 files changed, 19 insertions(+), 15 deletions(-) diff --git a/apps/documenteditor/main/app/controller/LeftMenu.js b/apps/documenteditor/main/app/controller/LeftMenu.js index 305c48749..70c36c3a5 100644 --- a/apps/documenteditor/main/app/controller/LeftMenu.js +++ b/apps/documenteditor/main/app/controller/LeftMenu.js @@ -158,11 +158,11 @@ define([ createDelayedElements: function() { /** coauthoring begin **/ if ( this.mode.canCoAuthoring ) { - this.leftMenu.btnComments[this.mode.isEdit&&this.mode.canComments ? 'show' : 'hide'](); + this.leftMenu.btnComments[(this.mode.isEdit && this.mode.canComments && !this.mode.isLightVersion) ? 'show' : 'hide'](); if (this.mode.canComments) this.leftMenu.setOptionsPanel('comment', this.getApplication().getController('Common.Controllers.Comments').getView('Common.Views.Comments')); - this.leftMenu.btnChat[this.mode.canChat ? 'show' : 'hide'](); + this.leftMenu.btnChat[(this.mode.canChat && !this.mode.isLightVersion) ? 'show' : 'hide'](); if (this.mode.canChat) this.leftMenu.setOptionsPanel('chat', this.getApplication().getController('Common.Controllers.Chat').getView('Common.Views.Chat')); } else { @@ -574,13 +574,13 @@ define([ break; /** coauthoring begin **/ case 'chat': - if (this.mode.canCoAuthoring && this.mode.canChat) { + if (this.mode.canCoAuthoring && this.mode.canChat && !this.mode.isLightVersion) { Common.UI.Menu.Manager.hideAll(); this.leftMenu.showMenu('chat'); } return false; case 'comments': - if (this.mode.canCoAuthoring && this.mode.isEdit && this.mode.canComments) { + if (this.mode.canCoAuthoring && this.mode.isEdit && this.mode.canComments && !this.mode.isLightVersion) { Common.UI.Menu.Manager.hideAll(); this.leftMenu.showMenu('comments'); this.getApplication().getController('Common.Controllers.Comments').onAfterShow(); diff --git a/apps/documenteditor/main/app/controller/Main.js b/apps/documenteditor/main/app/controller/Main.js index 2e79d0c1f..a3ff4be52 100644 --- a/apps/documenteditor/main/app/controller/Main.js +++ b/apps/documenteditor/main/app/controller/Main.js @@ -829,9 +829,11 @@ define([ application.getController('Common.Controllers.ExternalDiagramEditor').setApi(this.api).loadConfig({config:this.editorConfig, customization: this.editorConfig.customization}); application.getController('Common.Controllers.ExternalMergeEditor').setApi(this.api).loadConfig({config:this.editorConfig, customization: this.editorConfig.customization}); - pluginsController.setApi(this.api); - this.updatePluginsList(this.plugins); - this.api.asc_registerCallback('asc_onPluginsInit', _.bind(this.updatePluginsList, this)); + if (!me.appOptions.isLightVersion) { + pluginsController.setApi(me.api); + me.updatePluginsList(me.plugins); + me.api.asc_registerCallback('asc_onPluginsInit', _.bind(me.updatePluginsList, me)); + } documentHolderController.setApi(me.api); documentHolderController.createDelayedElements(); @@ -930,6 +932,7 @@ define([ this.permissions.review = (this.permissions.review === undefined) ? (this.permissions.edit !== false) : this.permissions.review; this.appOptions.canAnalytics = params.asc_getIsAnalyticsEnable(); this.appOptions.canLicense = params.asc_getCanLicense ? params.asc_getCanLicense() : false; + this.appOptions.isLightVersion = params.asc_getIsLight(); this.appOptions.isOffline = this.api.asc_isOffline(); this.appOptions.isReviewOnly = (this.permissions.review === true) && (this.permissions.edit === false); this.appOptions.canRequestEditRights = this.editorConfig.canRequestEditRights; diff --git a/apps/documenteditor/main/app/controller/Statusbar.js b/apps/documenteditor/main/app/controller/Statusbar.js index dff936258..9c9c5a201 100644 --- a/apps/documenteditor/main/app/controller/Statusbar.js +++ b/apps/documenteditor/main/app/controller/Statusbar.js @@ -181,10 +181,10 @@ define([ }); value = Common.localStorage.getItem("de-track-changes-tip"); - this.showTrackChangesTip = !(value && parseInt(value) == 1); + this.showTrackChangesTip = !(value && parseInt(value) == 1) && !this.statusbar.mode.isLightVersion; value = Common.localStorage.getItem("de-new-changes"); - this.showNewChangesTip = !(value && parseInt(value) == 1); + this.showNewChangesTip = !(value && parseInt(value) == 1) && !this.statusbar.mode.isLightVersion; if (this.statusbar.mode.isReviewOnly) { var iconEl = $('.btn-icon', this.statusbar.btnReview.cmpEl); @@ -207,7 +207,7 @@ define([ var iconEl = $('.btn-icon', this.statusbar.btnReview.cmpEl); (this.api.asc_HaveRevisionsChanges()) ? iconEl.removeClass(this.statusbar.btnReviewCls).addClass('btn-ic-changes') : iconEl.removeClass('btn-ic-changes').addClass(this.statusbar.btnReviewCls); if (value!==null && parseInt(value) == 1) { - this.changeReviewStatus(true); + this.changeReviewStatus(!this.statusbar.mode.isLightVersion); // show tooltip "track changes in this document" and change icon if (this.showTrackChangesTip && !statusbarIsHidden){ this.statusbar.btnReview.updateHint(''); @@ -300,7 +300,7 @@ define([ if (this.api) { this.api.asc_SetTrackRevisions(state); } - this.showHideReviewChangesPanel(state); + this.showHideReviewChangesPanel(state && !this.statusbar.mode.isLightVersion); }, showHideReviewChangesPanel: function(state) { diff --git a/apps/documenteditor/main/app/view/Statusbar.js b/apps/documenteditor/main/app/view/Statusbar.js index d0eea1170..ce82c50ae 100644 --- a/apps/documenteditor/main/app/view/Statusbar.js +++ b/apps/documenteditor/main/app/view/Statusbar.js @@ -380,7 +380,7 @@ define([ setMode: function(mode) { this.mode = mode; this.$el.find('.el-edit')[mode.isEdit?'show':'hide'](); - this.$el.find('.el-review')[mode.canReview?'show':'hide'](); + this.$el.find('.el-review')[(mode.canReview && !mode.isLightVersion)?'show':'hide'](); this.lblChangeRights[(!this.mode.isOffline && !this.mode.isReviewOnly && this.mode.sharingSettingsUrl&&this.mode.sharingSettingsUrl.length)?'show':'hide'](); this.panelUsers[(!this.mode.isOffline && !this.mode.isReviewOnly && this.mode.sharingSettingsUrl&&this.mode.sharingSettingsUrl.length)?'show':'hide'](); }, diff --git a/apps/documenteditor/main/app/view/Toolbar.js b/apps/documenteditor/main/app/view/Toolbar.js index b72277cd4..414026965 100644 --- a/apps/documenteditor/main/app/view/Toolbar.js +++ b/apps/documenteditor/main/app/view/Toolbar.js @@ -1237,7 +1237,7 @@ define([ return this; }, - render: function () { + render: function (mode) { var me = this; /** @@ -1247,7 +1247,7 @@ define([ this.trigger('render:before', this); var value = Common.localStorage.getItem("de-compact-toolbar"); - var valueCompact = (value !== null && parseInt(value) == 1); + var valueCompact = (mode.isLightVersion || value !== null && parseInt(value) == 1); value = Common.localStorage.getItem("de-hidden-title"); var valueTitle = (value !== null && parseInt(value) == 1); @@ -1258,6 +1258,7 @@ define([ value = Common.localStorage.getItem("de-hidden-rulers"); var valueRulers = (value !== null && parseInt(value) == 1); + this.mnuitemCompactToolbar.setVisible(!mode.isLightVersion); this.mnuitemCompactToolbar.setChecked(valueCompact, true); this.mnuitemHideTitleBar.setChecked(valueTitle, true); this.mnuitemHideStatusBar.setChecked(valueStatus, true); diff --git a/apps/documenteditor/main/app/view/Viewport.js b/apps/documenteditor/main/app/view/Viewport.js index b116052bc..9ee9740dd 100644 --- a/apps/documenteditor/main/app/view/Viewport.js +++ b/apps/documenteditor/main/app/view/Viewport.js @@ -140,7 +140,7 @@ define([ rightMenuView = DE.getController('RightMenu').getView('RightMenu'), statusBarView = DE.getController('Statusbar').getView('Statusbar'); - me._toolbar = toolbarView.render(); + me._toolbar = toolbarView.render(this.mode); me._rightMenu = rightMenuView.render(this.mode); var value = Common.localStorage.getItem('de-hidden-status'); From 68ba02c5b81bbd8a62ce0315abbd3fce2acbc75e Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Thu, 30 Jun 2016 12:38:54 +0300 Subject: [PATCH 12/25] [PE][SSE] Limitations for light version (compact toolbar + hide chat/comments). --- .../main/app/controller/LeftMenu.js | 8 ++++---- apps/presentationeditor/main/app/controller/Main.js | 1 + apps/presentationeditor/main/app/view/Toolbar.js | 9 ++++++--- apps/presentationeditor/main/app/view/Viewport.js | 2 +- .../spreadsheeteditor/main/app/controller/LeftMenu.js | 8 ++++---- apps/spreadsheeteditor/main/app/controller/Main.js | 1 + apps/spreadsheeteditor/main/app/view/Toolbar.js | 11 ++++++----- apps/spreadsheeteditor/main/app/view/Viewport.js | 9 ++------- 8 files changed, 25 insertions(+), 24 deletions(-) diff --git a/apps/presentationeditor/main/app/controller/LeftMenu.js b/apps/presentationeditor/main/app/controller/LeftMenu.js index 15c927455..e5d1f2100 100644 --- a/apps/presentationeditor/main/app/controller/LeftMenu.js +++ b/apps/presentationeditor/main/app/controller/LeftMenu.js @@ -155,11 +155,11 @@ define([ createDelayedElements: function() { /** coauthoring begin **/ if ( this.mode.canCoAuthoring ) { - this.leftMenu.btnComments[this.mode.isEdit&&this.mode.canComments ? 'show' : 'hide'](); + this.leftMenu.btnComments[(this.mode.isEdit&&this.mode.canComments && !this.mode.isLightVersion) ? 'show' : 'hide'](); if (this.mode.canComments) this.leftMenu.setOptionsPanel('comment', this.getApplication().getController('Common.Controllers.Comments').getView('Common.Views.Comments')); - this.leftMenu.btnChat[this.mode.canChat ? 'show' : 'hide'](); + this.leftMenu.btnChat[(this.mode.canChat && !this.mode.isLightVersion) ? 'show' : 'hide'](); if (this.mode.canChat) this.leftMenu.setOptionsPanel('chat', this.getApplication().getController('Common.Controllers.Chat').getView('Common.Views.Chat')); } else { @@ -454,13 +454,13 @@ define([ break; /** coauthoring begin **/ case 'chat': - if (this.mode.canCoAuthoring && this.mode.canChat && (!previewPanel || !previewPanel.isVisible())){ + if (this.mode.canCoAuthoring && this.mode.canChat && !this.mode.isLightVersion && (!previewPanel || !previewPanel.isVisible())){ Common.UI.Menu.Manager.hideAll(); this.leftMenu.showMenu('chat'); } return false; case 'comments': - if (this.mode.canCoAuthoring && this.mode.isEdit && this.mode.canComments && (!previewPanel || !previewPanel.isVisible()) && !this._state.no_slides) { + if (this.mode.canCoAuthoring && this.mode.isEdit && this.mode.canComments && !this.mode.isLightVersion && (!previewPanel || !previewPanel.isVisible()) && !this._state.no_slides) { Common.UI.Menu.Manager.hideAll(); this.leftMenu.showMenu('comments'); this.getApplication().getController('Common.Controllers.Comments').onAfterShow(); diff --git a/apps/presentationeditor/main/app/controller/Main.js b/apps/presentationeditor/main/app/controller/Main.js index 61fe5e98e..5d7f6e646 100644 --- a/apps/presentationeditor/main/app/controller/Main.js +++ b/apps/presentationeditor/main/app/controller/Main.js @@ -712,6 +712,7 @@ define([ /** coauthoring end **/ this.appOptions.isOffline = this.api.asc_isOffline(); this.appOptions.canLicense = params.asc_getCanLicense ? params.asc_getCanLicense() : false; + this.appOptions.isLightVersion = params.asc_getIsLight(); this.appOptions.canRequestEditRights = this.editorConfig.canRequestEditRights; this.appOptions.canEdit = this.permissions.edit !== false && // can edit (this.editorConfig.canRequestEditRights || this.editorConfig.mode !== 'view'); // if mode=="view" -> canRequestEditRights must be defined diff --git a/apps/presentationeditor/main/app/view/Toolbar.js b/apps/presentationeditor/main/app/view/Toolbar.js index dc60f9e9e..82f71dc91 100644 --- a/apps/presentationeditor/main/app/view/Toolbar.js +++ b/apps/presentationeditor/main/app/view/Toolbar.js @@ -213,7 +213,9 @@ define([ }); me.slideOnlyControls.push(me.btnChangeSlide); me.listenTo(PE.getCollection('SlideLayouts'), 'reset', function() { - me.mnuChangeSlidePicker._needRecalcSlideLayout = me.mnuAddSlidePicker._needRecalcSlideLayout = true; + me.mnuAddSlidePicker._needRecalcSlideLayout = true; + if (me.mnuChangeSlidePicker) + me.mnuChangeSlidePicker._needRecalcSlideLayout = true; }); me.btnPreview = new Common.UI.Button({ @@ -1145,7 +1147,7 @@ define([ }); }, - render: function () { + render: function (mode) { var me = this, el = $(this.el); @@ -1156,7 +1158,7 @@ define([ this.trigger('render:before', this); var value = Common.localStorage.getItem('pe-compact-toolbar'); - var valueCompact = (value!==null && parseInt(value) == 1); + var valueCompact = (mode.isLightVersion || value!==null && parseInt(value) == 1); value = Common.localStorage.getItem('pe-hidden-title'); var valueTitle = (value!==null && parseInt(value) == 1); @@ -1167,6 +1169,7 @@ define([ value = Common.localStorage.getItem("pe-hidden-rulers"); var valueRulers = (value !== null && parseInt(value) == 1); + me.mnuitemCompactToolbar.setVisible(!mode.isLightVersion); me.mnuitemCompactToolbar.setChecked(valueCompact); me.mnuitemHideTitleBar.setChecked(valueTitle); me.mnuitemHideStatusBar.setChecked(valueStatus); diff --git a/apps/presentationeditor/main/app/view/Viewport.js b/apps/presentationeditor/main/app/view/Viewport.js index 155e81817..03ef2a490 100644 --- a/apps/presentationeditor/main/app/view/Viewport.js +++ b/apps/presentationeditor/main/app/view/Viewport.js @@ -131,7 +131,7 @@ define([ rightMenuView = PE.getController('RightMenu').getView('RightMenu'), statusBarView = PE.getController('Statusbar').getView('Statusbar'); - me._toolbar = toolbarView.render(); + me._toolbar = toolbarView.render(this.mode); me._rightMenu = rightMenuView.render(); var value = Common.localStorage.getItem('pe-hidden-status'); diff --git a/apps/spreadsheeteditor/main/app/controller/LeftMenu.js b/apps/spreadsheeteditor/main/app/controller/LeftMenu.js index 9aac71131..ba09e9f45 100644 --- a/apps/spreadsheeteditor/main/app/controller/LeftMenu.js +++ b/apps/spreadsheeteditor/main/app/controller/LeftMenu.js @@ -163,11 +163,11 @@ define([ createDelayedElements: function() { /** coauthoring begin **/ if ( this.mode.canCoAuthoring ) { - this.leftMenu.btnComments[this.mode.isEdit&&this.mode.canComments ? 'show' : 'hide'](); + this.leftMenu.btnComments[(this.mode.isEdit&&this.mode.canComments && !this.mode.isLightVersion) ? 'show' : 'hide'](); if (this.mode.canComments) this.leftMenu.setOptionsPanel('comment', this.getApplication().getController('Common.Controllers.Comments').getView('Common.Views.Comments')); - this.leftMenu.btnChat[this.mode.canChat ? 'show' : 'hide'](); + this.leftMenu.btnChat[(this.mode.canChat && !this.mode.isLightVersion) ? 'show' : 'hide'](); if (this.mode.canChat) this.leftMenu.setOptionsPanel('chat', this.getApplication().getController('Common.Controllers.Chat').getView('Common.Views.Chat')); } else { @@ -621,13 +621,13 @@ define([ break; /** coauthoring begin **/ case 'chat': - if (this.mode.canCoAuthoring && this.mode.canChat) { + if (this.mode.canCoAuthoring && this.mode.canChat && !this.mode.isLightVersion) { Common.UI.Menu.Manager.hideAll(); this.leftMenu.showMenu('chat'); } return false; case 'comments': - if (this.mode.canCoAuthoring && this.mode.isEdit && this.mode.canComments) { + if (this.mode.canCoAuthoring && this.mode.isEdit && this.mode.canComments && !this.mode.isLightVersion) { Common.UI.Menu.Manager.hideAll(); this.leftMenu.showMenu('comments'); this.getApplication().getController('Common.Controllers.Comments').onAfterShow(); diff --git a/apps/spreadsheeteditor/main/app/controller/Main.js b/apps/spreadsheeteditor/main/app/controller/Main.js index 70dd71153..028b7100e 100644 --- a/apps/spreadsheeteditor/main/app/controller/Main.js +++ b/apps/spreadsheeteditor/main/app/controller/Main.js @@ -727,6 +727,7 @@ define([ /** coauthoring end **/ this.appOptions.isOffline = this.api.asc_isOffline(); this.appOptions.canLicense = params.asc_getCanLicense ? params.asc_getCanLicense() : false; + this.appOptions.isLightVersion = params.asc_getIsLight(); this.appOptions.canComments = this.appOptions.canLicense && !((typeof (this.editorConfig.customization) == 'object') && this.editorConfig.customization.comments===false); this.appOptions.canChat = this.appOptions.canLicense && !this.appOptions.isOffline && !((typeof (this.editorConfig.customization) == 'object') && this.editorConfig.customization.chat===false); diff --git a/apps/spreadsheeteditor/main/app/view/Toolbar.js b/apps/spreadsheeteditor/main/app/view/Toolbar.js index 941da9cc5..9e07e7b8a 100644 --- a/apps/spreadsheeteditor/main/app/view/Toolbar.js +++ b/apps/spreadsheeteditor/main/app/view/Toolbar.js @@ -1567,7 +1567,7 @@ define([ }); }, - render: function (isEditDiagram, isEditMailMerge) { + render: function (mode) { var me = this, el = $(this.el); @@ -1579,8 +1579,9 @@ define([ JSON.parse(Common.localStorage.getItem('sse-hidden-title')) && (options.title = true); JSON.parse(Common.localStorage.getItem('sse-hidden-formula')) && (options.formula = true); JSON.parse(Common.localStorage.getItem('sse-hidden-headings')) && (options.headings = true); - var isCompactView = !!JSON.parse(Common.localStorage.getItem('sse-toolbar-compact')); + var isCompactView = mode.isLightVersion || !!JSON.parse(Common.localStorage.getItem('sse-toolbar-compact')); + me.mnuitemCompactToolbar.setVisible(!mode.isLightVersion); me.mnuitemCompactToolbar.setChecked(isCompactView); me.mnuitemHideTitleBar.setChecked(!!options.title); me.mnuitemHideFormulaBar.setChecked(!!options.formula); @@ -1589,12 +1590,12 @@ define([ this.trigger('render:before', this); el.html(this.template({ - isEditDiagram: isEditDiagram, - isEditMailMerge: isEditMailMerge, + isEditDiagram: mode.isEditDiagram, + isEditMailMerge: mode.isEditMailMerge, isCompactView: isCompactView })); - me.rendererComponents(isEditDiagram ? 'diagram' : (isEditMailMerge ? 'merge' : isCompactView ? 'short' : 'full')); + me.rendererComponents(mode.isEditDiagram ? 'diagram' : (mode.isEditMailMerge ? 'merge' : isCompactView ? 'short' : 'full')); this.trigger('render:after', this); diff --git a/apps/spreadsheeteditor/main/app/view/Viewport.js b/apps/spreadsheeteditor/main/app/view/Viewport.js index 9423fab86..fd40998b6 100644 --- a/apps/spreadsheeteditor/main/app/view/Viewport.js +++ b/apps/spreadsheeteditor/main/app/view/Viewport.js @@ -146,14 +146,9 @@ define([ var me = this, toolbarView = SSE.getController('Toolbar').getView('Toolbar'), rightMenuView = SSE.getController('RightMenu').getView('RightMenu'); -// statusBarView = SSE.getController('Statusbar').getView('Statusbar'); -// - me._toolbar = toolbarView.render(this.mode.isEditDiagram, this.mode.isEditMailMerge); + + me._toolbar = toolbarView.render(this.mode); me._rightMenu = rightMenuView.render(); -// -// var value = Common.localStorage.getItem('de-hidden-status'); -// if (value !== null && parseInt(value) == 1) -// statusBarView.setVisible(false); }, setMode: function(mode, delay) { From 85aeff23a5d54622240a3cc0d4d747b4bdb3c5f0 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Thu, 30 Jun 2016 13:41:25 +0300 Subject: [PATCH 13/25] Update translations. --- apps/documenteditor/main/locale/es.json | 42 ++--- apps/presentationeditor/main/locale/es.json | 10 +- apps/spreadsheeteditor/main/locale/es.json | 196 ++++++++++---------- 3 files changed, 124 insertions(+), 124 deletions(-) diff --git a/apps/documenteditor/main/locale/es.json b/apps/documenteditor/main/locale/es.json index 559804b39..64c6af1a8 100644 --- a/apps/documenteditor/main/locale/es.json +++ b/apps/documenteditor/main/locale/es.json @@ -233,11 +233,11 @@ "DE.Controllers.Main.splitMaxColsErrorText": "El número de columnas debe ser menos que %1.", "DE.Controllers.Main.splitMaxRowsErrorText": "El número de filas debe ser menos que %1.", "DE.Controllers.Main.textAnonymous": "Anónimo", - "DE.Controllers.Main.textBuyNow": "Visit website", + "DE.Controllers.Main.textBuyNow": "Comprar ahora", "DE.Controllers.Main.textCloseTip": "\nPulse para cerrar el consejo", - "DE.Controllers.Main.textContactUs": "Contact sales", + "DE.Controllers.Main.textContactUs": "Ponga en contacto con nosotros", "DE.Controllers.Main.textLoadingDocument": "Cargando documento", - "DE.Controllers.Main.textNoLicenseTitle": "ONLYOFFICE open source version", + "DE.Controllers.Main.textNoLicenseTitle": "Licencia ha expirado o no ha encontrado", "DE.Controllers.Main.textStrict": "Modo estricto", "DE.Controllers.Main.textTryUndoRedo": "Las funciones Anular/Rehacer se desactivan para el modo co-edición rápido.
Haga Clic en el botón \"modo estricto\" para cambiar al modo de co-edición estricta para editar el archivo sin la interferencia de otros usuarios y enviar sus cambios sólo después de guardarlos. Se puede cambiar entre los modos de co-edición usando los ajustes avanzados de edición.", "DE.Controllers.Main.titleUpdateVersion": "Versión ha cambiado", @@ -267,7 +267,7 @@ "DE.Controllers.Main.uploadImageTitleText": "Subiendo imagen", "DE.Controllers.Main.warnBrowserIE9": "Este aplicación tiene baja capacidad en IE9. Utilice IE10 o superior", "DE.Controllers.Main.warnBrowserZoom": "La configuración actual de zoom de su navegador no está soportada por completo. Por favor restablezca zoom predeterminado pulsando Ctrl+0.", - "DE.Controllers.Main.warnNoLicense": "You are using an open source version of ONLYOFFICE. The version has limitations for concurrent connections to the document server (20 connections at a time).
If you need more please consider purchasing a commercial license.", + "DE.Controllers.Main.warnNoLicense": "La licencia ha expirado o no ha sido encontrada. No puede editar archivos.
Haga clic en el botón 'Comprar ahora' para comprar una licencia Enterprise Edition o ´Contactar con nosotros´ si usa Intergration Edition.", "DE.Controllers.Main.warnProcessRightsChange": "El derecho de edición del archivo es denegado", "DE.Controllers.Statusbar.textHasChanges": "Nuevos cambios han sido encontrado", "DE.Controllers.Statusbar.textTrackChanges": "El documento se abre con el modo de cambio de pista activado", @@ -909,7 +909,7 @@ "DE.Views.FileMenuPanels.Settings.textMinute": "Cada minuto", "DE.Views.FileMenuPanels.Settings.txtAll": "Ver todo", "DE.Views.FileMenuPanels.Settings.txtCm": "Centímetro", - "DE.Views.FileMenuPanels.Settings.txtInch": "Inch", + "DE.Views.FileMenuPanels.Settings.txtInch": "Pulgada", "DE.Views.FileMenuPanels.Settings.txtInput": "Entrada alternativa", "DE.Views.FileMenuPanels.Settings.txtLast": "Ver últimos", "DE.Views.FileMenuPanels.Settings.txtLiveComment": "Demostración de Comentarios", @@ -961,10 +961,10 @@ "DE.Views.ImageSettingsAdvanced.cancelButtonText": "Cancelar", "DE.Views.ImageSettingsAdvanced.okButtonText": "Aceptar", "DE.Views.ImageSettingsAdvanced.strMargins": "Márgenes interiores", - "DE.Views.ImageSettingsAdvanced.textAbsoluteWH": "Absolute", + "DE.Views.ImageSettingsAdvanced.textAbsoluteWH": "Absoluto", "DE.Views.ImageSettingsAdvanced.textAlignment": "Alineación", "DE.Views.ImageSettingsAdvanced.textArrows": "Flechas", - "DE.Views.ImageSettingsAdvanced.textAspectRatio": "Lock aspect ratio", + "DE.Views.ImageSettingsAdvanced.textAspectRatio": "Bloquear relación de aspecto", "DE.Views.ImageSettingsAdvanced.textBeginSize": "Tamaño inicial", "DE.Views.ImageSettingsAdvanced.textBeginStyle": "Estilo inicial", "DE.Views.ImageSettingsAdvanced.textBelow": "abajo", @@ -999,7 +999,7 @@ "DE.Views.ImageSettingsAdvanced.textPosition": "Posición", "DE.Views.ImageSettingsAdvanced.textPositionPc": "Posición Relativa", "DE.Views.ImageSettingsAdvanced.textRelative": "en relación a\n", - "DE.Views.ImageSettingsAdvanced.textRelativeWH": "Relative", + "DE.Views.ImageSettingsAdvanced.textRelativeWH": "Relativo", "DE.Views.ImageSettingsAdvanced.textRight": "Derecho", "DE.Views.ImageSettingsAdvanced.textRightMargin": "Margen derecho", "DE.Views.ImageSettingsAdvanced.textRightOf": "a la derecha de", @@ -1307,7 +1307,7 @@ "DE.Views.TableSettingsAdvanced.okButtonText": "Aceptar", "DE.Views.TableSettingsAdvanced.textAlign": "Alineación", "DE.Views.TableSettingsAdvanced.textAlignment": "Alineación", - "DE.Views.TableSettingsAdvanced.textAllowSpacing": "Permitir espacio entre celdas", + "DE.Views.TableSettingsAdvanced.textAllowSpacing": "Espacio entre celdas", "DE.Views.TableSettingsAdvanced.textAnchorText": "Texto", "DE.Views.TableSettingsAdvanced.textAutofit": "Cambiar tamaño automáticamente para ajustar a contenido", "DE.Views.TableSettingsAdvanced.textBackColor": "Fondo de celda", @@ -1317,13 +1317,13 @@ "DE.Views.TableSettingsAdvanced.textBordersBackgroung": "Bordes y fondo", "DE.Views.TableSettingsAdvanced.textBorderWidth": "Tamaño de borde", "DE.Views.TableSettingsAdvanced.textBottom": "Inferior", - "DE.Views.TableSettingsAdvanced.textCellOptions": "Cell Options", - "DE.Views.TableSettingsAdvanced.textCellProps": "Propiedades de la celda", - "DE.Views.TableSettingsAdvanced.textCellSize": "Cell Size", + "DE.Views.TableSettingsAdvanced.textCellOptions": "Opciones de celda", + "DE.Views.TableSettingsAdvanced.textCellProps": "Celda", + "DE.Views.TableSettingsAdvanced.textCellSize": "Tamaño de Celda", "DE.Views.TableSettingsAdvanced.textCenter": "Al centro", "DE.Views.TableSettingsAdvanced.textCenterTooltip": "Al centro", "DE.Views.TableSettingsAdvanced.textCheckMargins": "Usar márgenes predeterminados", - "DE.Views.TableSettingsAdvanced.textDefaultMargins": "Márgenes predeterminados", + "DE.Views.TableSettingsAdvanced.textDefaultMargins": "Márgenes de celda predeterminados", "DE.Views.TableSettingsAdvanced.textDistance": "Distancia del texto", "DE.Views.TableSettingsAdvanced.textHorizontal": "Horizontal ", "DE.Views.TableSettingsAdvanced.textIndLeft": "Sangría a la izquierda", @@ -1331,7 +1331,7 @@ "DE.Views.TableSettingsAdvanced.textLeftTooltip": "Izquierdo", "DE.Views.TableSettingsAdvanced.textMargin": "Margen", "DE.Views.TableSettingsAdvanced.textMargins": "Márgenes de celda", - "DE.Views.TableSettingsAdvanced.textMeasure": "Measure in", + "DE.Views.TableSettingsAdvanced.textMeasure": "medir en", "DE.Views.TableSettingsAdvanced.textMove": "Desplazar objeto con texto", "DE.Views.TableSettingsAdvanced.textNewColor": "Añadir Color Personalizado Nuevo", "DE.Views.TableSettingsAdvanced.textOnlyCells": "Sólo para celdas seleccionadas", @@ -1339,17 +1339,17 @@ "DE.Views.TableSettingsAdvanced.textOverlap": "Superposición", "DE.Views.TableSettingsAdvanced.textPage": "Página", "DE.Views.TableSettingsAdvanced.textPosition": "Posición", - "DE.Views.TableSettingsAdvanced.textPrefWidth": "Preferred width", + "DE.Views.TableSettingsAdvanced.textPrefWidth": "Anchura Preferida", "DE.Views.TableSettingsAdvanced.textPreview": "Vista previa", "DE.Views.TableSettingsAdvanced.textRelative": "en relación a\n", "DE.Views.TableSettingsAdvanced.textRight": "Derecho", "DE.Views.TableSettingsAdvanced.textRightOf": "a la derecha de", "DE.Views.TableSettingsAdvanced.textRightTooltip": "Derecho", "DE.Views.TableSettingsAdvanced.textStandartColors": "Colores estándar", - "DE.Views.TableSettingsAdvanced.textTable": "Table", + "DE.Views.TableSettingsAdvanced.textTable": "Tabla", "DE.Views.TableSettingsAdvanced.textTableBackColor": "Fondo de tabla", - "DE.Views.TableSettingsAdvanced.textTablePosition": "Table Position", - "DE.Views.TableSettingsAdvanced.textTableSize": "Table Size", + "DE.Views.TableSettingsAdvanced.textTablePosition": "Posición de la tabla", + "DE.Views.TableSettingsAdvanced.textTableSize": "Tamaño de tabla", "DE.Views.TableSettingsAdvanced.textThemeColors": "Colores de tema", "DE.Views.TableSettingsAdvanced.textTitle": "Tabla - Ajustes avanzados", "DE.Views.TableSettingsAdvanced.textTop": "Superior", @@ -1359,8 +1359,8 @@ "DE.Views.TableSettingsAdvanced.textWrap": "Ajuste de texto", "DE.Views.TableSettingsAdvanced.textWrapNoneTooltip": "Tabla en línea", "DE.Views.TableSettingsAdvanced.textWrapParallelTooltip": "Tabla flujo", - "DE.Views.TableSettingsAdvanced.textWrappingStyle": "Wrapping Style", - "DE.Views.TableSettingsAdvanced.textWrapText": "Wrap text", + "DE.Views.TableSettingsAdvanced.textWrappingStyle": "Ajuste de texto", + "DE.Views.TableSettingsAdvanced.textWrapText": "Ajustar texto", "DE.Views.TableSettingsAdvanced.tipAll": "Fijar borde exterior y todas líneas interiores ", "DE.Views.TableSettingsAdvanced.tipCellAll": "Fijar bordes sólo para celdas interiores", "DE.Views.TableSettingsAdvanced.tipCellInner": "Fijar líneas verticales y horizontales sólo para celdas interiores", @@ -1372,7 +1372,7 @@ "DE.Views.TableSettingsAdvanced.tipTableOuterCellInner": "Fijar borde exterior y líneas verticales y horizontales para celdas inferiores", "DE.Views.TableSettingsAdvanced.tipTableOuterCellOuter": "Fijar borde de tabla exterior y bordes exteriores para celdas interiores", "DE.Views.TableSettingsAdvanced.txtCm": "Centímetro", - "DE.Views.TableSettingsAdvanced.txtInch": "Inch", + "DE.Views.TableSettingsAdvanced.txtInch": "Pulgada", "DE.Views.TableSettingsAdvanced.txtNoBorders": "Sin bordes", "DE.Views.TableSettingsAdvanced.txtPercent": "Por ciento", "DE.Views.TableSettingsAdvanced.txtPt": "Punto", diff --git a/apps/presentationeditor/main/locale/es.json b/apps/presentationeditor/main/locale/es.json index ee736cc9b..df287d909 100644 --- a/apps/presentationeditor/main/locale/es.json +++ b/apps/presentationeditor/main/locale/es.json @@ -146,11 +146,11 @@ "PE.Controllers.Main.splitMaxColsErrorText": "El número de columnas debe ser menos que %1.", "PE.Controllers.Main.splitMaxRowsErrorText": "El número de filas debe ser menos que %1.", "PE.Controllers.Main.textAnonymous": "Anónimo", - "PE.Controllers.Main.textBuyNow": "Visit website", - "PE.Controllers.Main.textCloseTip": "\nPulse para cerrar el consejo", - "PE.Controllers.Main.textContactUs": "Contact sales", + "PE.Controllers.Main.textBuyNow": "Comprar ahora", + "PE.Controllers.Main.textCloseTip": "Pulse para cerrar el consejo", + "PE.Controllers.Main.textContactUs": "Ponga en contacto con nosotros", "PE.Controllers.Main.textLoadingDocument": "Cargando presentación", - "PE.Controllers.Main.textNoLicenseTitle": "ONLYOFFICE open source version", + "PE.Controllers.Main.textNoLicenseTitle": "Licencia ha expirado o no ha encontrado", "PE.Controllers.Main.textShape": "Forma", "PE.Controllers.Main.textStrict": "Modo estricto", "PE.Controllers.Main.textTryUndoRedo": "Las funciones Anular/Rehacer se desactivan para el modo co-edición rápido.
Haga Clic en el botón \"modo estricto\" para cambiar al modo de co-edición estricta para editar el archivo sin la interferencia de otros usuarios y enviar sus cambios sólo después de guardarlos. Se puede cambiar entre los modos de co-edición usando los ajustes avanzados de edición.", @@ -215,7 +215,7 @@ "PE.Controllers.Main.uploadImageTitleText": "Subiendo imagen", "PE.Controllers.Main.warnBrowserIE9": "Este aplicación tiene baja capacidad en IE9. Utilice IE10 o superior", "PE.Controllers.Main.warnBrowserZoom": "La configuración actual de zoom de su navegador no está soportada por completo. Por favor restablezca zoom predeterminado pulsando Ctrl+0.", - "PE.Controllers.Main.warnNoLicense": "You are using an open source version of ONLYOFFICE. The version has limitations for concurrent connections to the document server (20 connections at a time).
If you need more please consider purchasing a commercial license.", + "PE.Controllers.Main.warnNoLicense": "La licencia ha expirado o no ha sido encontrada. No puede editar archivos.
Haga clic en el botón 'Comprar ahora' para comprar una licencia Enterprise Edition o ´Contactar con nosotros´ si usa Intergration Edition.", "PE.Controllers.Main.warnProcessRightsChange": "El derecho de edición del archivo es denegado.", "PE.Controllers.Statusbar.zoomText": "Zoom {0}%", "PE.Controllers.Toolbar.confirmAddFontName": "El tipo de letra que usted va a guardar no está disponible en este dispositivo.
El estilo de letra se mostrará usando uno de los tipos de letra del dispositivo, el tipo de letra guardado va a usarse cuando esté disponible.
¿Desea continuar?", diff --git a/apps/spreadsheeteditor/main/locale/es.json b/apps/spreadsheeteditor/main/locale/es.json index 8d7138860..6b48d4d73 100644 --- a/apps/spreadsheeteditor/main/locale/es.json +++ b/apps/spreadsheeteditor/main/locale/es.json @@ -112,7 +112,7 @@ "SSE.Controllers.LeftMenu.textWorkbook": "Libro de trabajo", "SSE.Controllers.LeftMenu.warnDownloadAs": "Si sigue guardando en este formato todas las características a excepción del texto se perderán.
¿Está seguro de que quiere continuar?", "SSE.Controllers.Main.confirmMoveCellRange": "El rango de celdas final puede contener los datos. ¿Quiere continuar?", - "SSE.Controllers.Main.confirmPutMergeRange": "The source data contained merged cells.
They had been unmerged before they were pasted into the table.", + "SSE.Controllers.Main.confirmPutMergeRange": "Los datos de origen contienen celdas combinadas.
Habían estado sin combinar antes de que se pegaran en la tabla.", "SSE.Controllers.Main.convertationErrorText": "Fallo de conversión.", "SSE.Controllers.Main.convertationTimeoutText": "Tiempo de conversión superado.", "SSE.Controllers.Main.criticalErrorExtText": "Pulse \"OK\" para regresar a la lista de documentos.", @@ -183,13 +183,13 @@ "SSE.Controllers.Main.saveTextText": "Guardando hoja de cálculo...", "SSE.Controllers.Main.saveTitleText": "Guardando hoja de cálculo", "SSE.Controllers.Main.textAnonymous": "Anónimo", - "SSE.Controllers.Main.textBuyNow": "Visit website", + "SSE.Controllers.Main.textBuyNow": "Comprar ahora", "SSE.Controllers.Main.textCloseTip": "\nPulse para cerrar el consejo", "SSE.Controllers.Main.textConfirm": "Confirmación", - "SSE.Controllers.Main.textContactUs": "Contact sales", - "SSE.Controllers.Main.textLoadingDocument": "Cargando documento", + "SSE.Controllers.Main.textContactUs": "Ponga en contacto con nosotros", + "SSE.Controllers.Main.textLoadingDocument": "Cargando hoja de cálculo", "SSE.Controllers.Main.textNo": "No", - "SSE.Controllers.Main.textNoLicenseTitle": "ONLYOFFICE open source version", + "SSE.Controllers.Main.textNoLicenseTitle": "Licencia ha expirado o no ha encontrado", "SSE.Controllers.Main.textPleaseWait": "El proceso puede durar un buen rato. Espere por favor...", "SSE.Controllers.Main.textRecalcFormulas": "Calculando formulas...", "SSE.Controllers.Main.textShape": "Forma", @@ -221,7 +221,7 @@ "SSE.Controllers.Main.uploadImageTitleText": "Subiendo imagen", "SSE.Controllers.Main.warnBrowserIE9": "Este aplicación tiene baja capacidad en IE9. Utilice IE10 o superior", "SSE.Controllers.Main.warnBrowserZoom": "La configuración actual de zoom de su navegador no está soportada por completo. Por favor restablezca zoom predeterminado pulsando Ctrl+0.", - "SSE.Controllers.Main.warnNoLicense": "You are using an open source version of ONLYOFFICE. The version has limitations for concurrent connections to the document server (20 connections at a time).
If you need more please consider purchasing a commercial license.", + "SSE.Controllers.Main.warnNoLicense": "La licencia ha expirado o no ha sido encontrada. No puede editar archivos.
Haga clic en el botón 'Comprar ahora' para comprar una licencia Enterprise Edition o ´Contactar con nosotros´ si usa Intergration Edition.", "SSE.Controllers.Main.warnProcessRightsChange": "El derecho de edición del archivo es denegado.", "SSE.Controllers.Print.strAllSheets": "Todas las hojas", "SSE.Controllers.Print.textWarning": "Aviso", @@ -239,37 +239,37 @@ "SSE.Views.AutoFilterDialog.btnCustomFilter": "Filtro personalizado", "SSE.Views.AutoFilterDialog.cancelButtonText": "Cancelar", "SSE.Views.AutoFilterDialog.okButtonText": "OK", - "SSE.Views.AutoFilterDialog.textAddSelection": "Add current selection to filter", + "SSE.Views.AutoFilterDialog.textAddSelection": "Añadir selección actual para filtración", "SSE.Views.AutoFilterDialog.textEmptyItem": "{Blanks}", "SSE.Views.AutoFilterDialog.textSelectAll": "Seleccionar todo", - "SSE.Views.AutoFilterDialog.textSelectAllResults": "Select All Search Results", + "SSE.Views.AutoFilterDialog.textSelectAllResults": "Seleccionar todos los resultados de la búsqueda", "SSE.Views.AutoFilterDialog.textWarning": "Aviso", - "SSE.Views.AutoFilterDialog.txtAboveAve": "Above average", - "SSE.Views.AutoFilterDialog.txtBegins": "Begins with...", - "SSE.Views.AutoFilterDialog.txtBelowAve": "Below average", - "SSE.Views.AutoFilterDialog.txtBetween": "Between...", - "SSE.Views.AutoFilterDialog.txtClear": "Clear", - "SSE.Views.AutoFilterDialog.txtContains": "Contains...", + "SSE.Views.AutoFilterDialog.txtAboveAve": "Sobre la media", + "SSE.Views.AutoFilterDialog.txtBegins": "Empieza con...", + "SSE.Views.AutoFilterDialog.txtBelowAve": "Por debajo de la media", + "SSE.Views.AutoFilterDialog.txtBetween": "Entre...", + "SSE.Views.AutoFilterDialog.txtClear": "Borrar", + "SSE.Views.AutoFilterDialog.txtContains": "Contiene...", "SSE.Views.AutoFilterDialog.txtEmpty": "Introducir filtro para celda", - "SSE.Views.AutoFilterDialog.txtEnds": "Ends with...", - "SSE.Views.AutoFilterDialog.txtEquals": "Equals...", - "SSE.Views.AutoFilterDialog.txtFilterCellColor": "Filter by cells color", - "SSE.Views.AutoFilterDialog.txtFilterFontColor": "Filter by font color", - "SSE.Views.AutoFilterDialog.txtGreater": "Greater than...", - "SSE.Views.AutoFilterDialog.txtGreaterEquals": "Greater than or equal to...", - "SSE.Views.AutoFilterDialog.txtLess": "Less than...", - "SSE.Views.AutoFilterDialog.txtLessEquals": "Less than or equal to...", - "SSE.Views.AutoFilterDialog.txtNotBegins": "Does not begin with...", - "SSE.Views.AutoFilterDialog.txtNotContains": "Does not contain...", - "SSE.Views.AutoFilterDialog.txtNotEnds": "Does not end with...", - "SSE.Views.AutoFilterDialog.txtNotEquals": "Does not equal...", - "SSE.Views.AutoFilterDialog.txtNumFilter": "Number filter", - "SSE.Views.AutoFilterDialog.txtReapply": "Reapply", - "SSE.Views.AutoFilterDialog.txtSortCellColor": "Sort by cells color", - "SSE.Views.AutoFilterDialog.txtSortFontColor": "Sort by font color", - "SSE.Views.AutoFilterDialog.txtSortHigh2Low": "Sort Highest to Lowest", - "SSE.Views.AutoFilterDialog.txtSortLow2High": "Sort Lowest to Highest", - "SSE.Views.AutoFilterDialog.txtTextFilter": "Text filter", + "SSE.Views.AutoFilterDialog.txtEnds": "Termina en...", + "SSE.Views.AutoFilterDialog.txtEquals": "Igual...", + "SSE.Views.AutoFilterDialog.txtFilterCellColor": "Filtrar por color de celdas", + "SSE.Views.AutoFilterDialog.txtFilterFontColor": "Filtrar por color de la letra", + "SSE.Views.AutoFilterDialog.txtGreater": "Mayor qué...", + "SSE.Views.AutoFilterDialog.txtGreaterEquals": "Mayor qué o igual a...", + "SSE.Views.AutoFilterDialog.txtLess": "Menos que...", + "SSE.Views.AutoFilterDialog.txtLessEquals": "Menos que o igual a...", + "SSE.Views.AutoFilterDialog.txtNotBegins": "No empieza con...", + "SSE.Views.AutoFilterDialog.txtNotContains": "No contiene...", + "SSE.Views.AutoFilterDialog.txtNotEnds": "No termina en...", + "SSE.Views.AutoFilterDialog.txtNotEquals": "No es igual...", + "SSE.Views.AutoFilterDialog.txtNumFilter": "Número de filtro", + "SSE.Views.AutoFilterDialog.txtReapply": "Reaplicar", + "SSE.Views.AutoFilterDialog.txtSortCellColor": "Ordenar por el color de celdas", + "SSE.Views.AutoFilterDialog.txtSortFontColor": "Ordenar por color de la letra", + "SSE.Views.AutoFilterDialog.txtSortHigh2Low": "Ordenar de mayor a menor", + "SSE.Views.AutoFilterDialog.txtSortLow2High": "Ordenar de menor a mayor ", + "SSE.Views.AutoFilterDialog.txtTextFilter": "Filtro de Texto", "SSE.Views.AutoFilterDialog.txtTitle": "Filtro", "SSE.Views.AutoFilterDialog.txtTop10": "Top 10", "SSE.Views.AutoFilterDialog.warnNoSelected": "Usted debe elegir por lo menos un valor", @@ -425,24 +425,24 @@ "SSE.Views.DocumentHolder.bottomCellText": "Alinear en la parte inferior", "SSE.Views.DocumentHolder.centerCellText": "Alinear al centro", "SSE.Views.DocumentHolder.chartText": "Ajustes avanzados de gráfico", - "SSE.Views.DocumentHolder.deleteColumnText": "Delete Column", - "SSE.Views.DocumentHolder.deleteRowText": "Delete Row", - "SSE.Views.DocumentHolder.deleteTableText": "Delete Table", + "SSE.Views.DocumentHolder.deleteColumnText": "Borrar columna", + "SSE.Views.DocumentHolder.deleteRowText": "Borrar fila", + "SSE.Views.DocumentHolder.deleteTableText": "Borrar tabla", "SSE.Views.DocumentHolder.direct270Text": "Girar a 270°", "SSE.Views.DocumentHolder.direct90Text": "Girar a 90°", "SSE.Views.DocumentHolder.directHText": "Horizontal ", "SSE.Views.DocumentHolder.directionText": "Dirección de texto", "SSE.Views.DocumentHolder.editChartText": "Editar datos", "SSE.Views.DocumentHolder.editHyperlinkText": "Editar hiperenlace", - "SSE.Views.DocumentHolder.insertColumnLeftText": "Insert Column Left", - "SSE.Views.DocumentHolder.insertColumnRightText": "Insert Column Right", - "SSE.Views.DocumentHolder.insertRowAboveText": "Insert Row Above", - "SSE.Views.DocumentHolder.insertRowBelowText": "Insert Row Below", + "SSE.Views.DocumentHolder.insertColumnLeftText": "Insertar columna a la izquierda", + "SSE.Views.DocumentHolder.insertColumnRightText": "Insertar columna a la derecha", + "SSE.Views.DocumentHolder.insertRowAboveText": "Insertar fila arriba", + "SSE.Views.DocumentHolder.insertRowBelowText": "Insertar fila abajo", "SSE.Views.DocumentHolder.removeHyperlinkText": "Eliminar hiperenlace", - "SSE.Views.DocumentHolder.selectColumnText": "Select Entire Column", - "SSE.Views.DocumentHolder.selectDataText": "Select Column Data", - "SSE.Views.DocumentHolder.selectRowText": "Select Row", - "SSE.Views.DocumentHolder.selectTableText": "Select Table", + "SSE.Views.DocumentHolder.selectColumnText": "Seleccionar toda la columna", + "SSE.Views.DocumentHolder.selectDataText": "Seleccionar datos de columna", + "SSE.Views.DocumentHolder.selectRowText": "Seleccionar fila", + "SSE.Views.DocumentHolder.selectTableText": "Seleccionar tabla", "SSE.Views.DocumentHolder.textArrangeBack": "Enviar al fondo", "SSE.Views.DocumentHolder.textArrangeBackward": "Enviar atrás", "SSE.Views.DocumentHolder.textArrangeForward": "Traer adelante", @@ -467,28 +467,28 @@ "SSE.Views.DocumentHolder.txtDelete": "Borrar", "SSE.Views.DocumentHolder.txtDescending": "Descendente", "SSE.Views.DocumentHolder.txtEditComment": "Editar comentario", - "SSE.Views.DocumentHolder.txtFilter": "Filter", - "SSE.Views.DocumentHolder.txtFilterCellColor": "Filter by cell's color", - "SSE.Views.DocumentHolder.txtFilterFontColor": "Filter by font color", - "SSE.Views.DocumentHolder.txtFilterValue": "Filter by Selected cell's value", + "SSE.Views.DocumentHolder.txtFilter": "Filtro", + "SSE.Views.DocumentHolder.txtFilterCellColor": "Filtrar por color de celda", + "SSE.Views.DocumentHolder.txtFilterFontColor": "Filtrar por color de la letra", + "SSE.Views.DocumentHolder.txtFilterValue": "Filtrar por valor de celda seleccionado", "SSE.Views.DocumentHolder.txtFormula": "Insertar función", "SSE.Views.DocumentHolder.txtGroup": "Agrupar", "SSE.Views.DocumentHolder.txtHide": "Ocultar", "SSE.Views.DocumentHolder.txtInsert": "Insertar", "SSE.Views.DocumentHolder.txtInsHyperlink": "Hiperenlace", "SSE.Views.DocumentHolder.txtPaste": "Pegar", - "SSE.Views.DocumentHolder.txtReapply": "Reapply", + "SSE.Views.DocumentHolder.txtReapply": "Reaplicar", "SSE.Views.DocumentHolder.txtRow": "Toda la fila", "SSE.Views.DocumentHolder.txtRowHeight": "Altura de fila", - "SSE.Views.DocumentHolder.txtSelect": "Select", + "SSE.Views.DocumentHolder.txtSelect": "Seleccionar", "SSE.Views.DocumentHolder.txtShiftDown": "Desplazar celdas hacia abajo", "SSE.Views.DocumentHolder.txtShiftLeft": "Desplazar celdas a la izquierda", "SSE.Views.DocumentHolder.txtShiftRight": "Desplazar celdas a la derecha", "SSE.Views.DocumentHolder.txtShiftUp": "Desplazar celdas hacia arriba", "SSE.Views.DocumentHolder.txtShow": "Mostrar", "SSE.Views.DocumentHolder.txtSort": "Ordenar", - "SSE.Views.DocumentHolder.txtSortCellColor": "Selected Cell Color on top", - "SSE.Views.DocumentHolder.txtSortFontColor": "Selected Font Color on top", + "SSE.Views.DocumentHolder.txtSortCellColor": "Color seleccionado en la parte superior de la célula", + "SSE.Views.DocumentHolder.txtSortFontColor": "Color de letra seleccionado en la parte superior", "SSE.Views.DocumentHolder.txtTextAdvanced": "Ajustes avanzados de texto", "SSE.Views.DocumentHolder.txtUngroup": "Desagrupar", "SSE.Views.DocumentHolder.txtWidth": "Ancho", @@ -545,7 +545,7 @@ "SSE.Views.FileMenuPanels.MainSettingsGeneral.txtCm": "Centímetro", "SSE.Views.FileMenuPanels.MainSettingsGeneral.txtDe": "Alemán", "SSE.Views.FileMenuPanels.MainSettingsGeneral.txtEn": "Inglés", - "SSE.Views.FileMenuPanels.MainSettingsGeneral.txtInch": "Inch", + "SSE.Views.FileMenuPanels.MainSettingsGeneral.txtInch": "Pulgada", "SSE.Views.FileMenuPanels.MainSettingsGeneral.txtLiveComment": "Demostración de Comentarios ", "SSE.Views.FileMenuPanels.MainSettingsGeneral.txtMac": "como OS X", "SSE.Views.FileMenuPanels.MainSettingsGeneral.txtNative": "Nativo", @@ -654,7 +654,7 @@ "SSE.Views.NamedRangeEditDlg.strWorkbook": "Libro de trabajo", "SSE.Views.NamedRangeEditDlg.textDataRange": "Alcance de Datos", "SSE.Views.NamedRangeEditDlg.textExistName": "¡Error! Banda con este nombre ya existe", - "SSE.Views.NamedRangeEditDlg.textInvalidName": "¡ERROR! Nombre de banda no válido", + "SSE.Views.NamedRangeEditDlg.textInvalidName": "El nombre debe comenzar con una letra o un guión bajo y no debe contener caracteres no válidos.", "SSE.Views.NamedRangeEditDlg.textInvalidRange": "¡Error! Alcance de celdas no válido", "SSE.Views.NamedRangeEditDlg.textIsLocked": "ERROR! This element is being edited by another user.", "SSE.Views.NamedRangeEditDlg.textName": "Nombre", @@ -689,7 +689,7 @@ "SSE.Views.NameManagerDlg.tipIsLocked": "Este elemento está editándose por otro usuario.", "SSE.Views.NameManagerDlg.txtTitle": "Administrador de nombre", "SSE.Views.ParagraphSettings.strLineHeight": "Espaciado de línea", - "SSE.Views.ParagraphSettings.strParagraphSpacing": "Espaciado", + "SSE.Views.ParagraphSettings.strParagraphSpacing": "Espaciado de Párafo ", "SSE.Views.ParagraphSettings.strSpacingAfter": "Después", "SSE.Views.ParagraphSettings.strSpacingBefore": "Antes", "SSE.Views.ParagraphSettings.textAdvanced": "Mostrar ajustes avanzados", @@ -758,7 +758,7 @@ "SSE.Views.RightMenu.txtParagraphSettings": "Ajustes de texto", "SSE.Views.RightMenu.txtSettings": "Ajustes comunes", "SSE.Views.RightMenu.txtShapeSettings": "Ajustes de forma", - "SSE.Views.RightMenu.txtTableSettings": "Table Settings", + "SSE.Views.RightMenu.txtTableSettings": "Ajustes de la tabla", "SSE.Views.RightMenu.txtTextArtSettings": "Ajustes de arte de texto", "SSE.Views.SetValueDialog.cancelButtonText": "Cancelar", "SSE.Views.SetValueDialog.okButtonText": "Ok", @@ -870,44 +870,44 @@ "SSE.Views.Statusbar.txAccessRights": "Change access rights", "SSE.Views.Statusbar.zoomText": "Zoom {0}%", "SSE.Views.TableOptionsDialog.errorAutoFilterDataRange": "No se puede realizar la operación para el rango de celdas seleccionado.
Seleccione un rango de datos uniforme diferente del existente y vuelva a intentarlo.", - "SSE.Views.TableOptionsDialog.errorFTChangeTableRangeError": "Operation could not be completed for the selected cell range.
Select a range so that the first table row was on the same row
and the resulting table overlapped the current one.", - "SSE.Views.TableOptionsDialog.errorFTRangeIncludedOtherTables": "Operation could not be completed for the selected cell range.
Select a range which does not include other tables.", + "SSE.Views.TableOptionsDialog.errorFTChangeTableRangeError": "La operación no se pudo completar para el rango de celdas seleccionado.
Seleccione un rango de modo que la primera fila de la tabla esté en la misma fila
y la tabla resultante se superponga a la actual.", + "SSE.Views.TableOptionsDialog.errorFTRangeIncludedOtherTables": "La operación no se pudo completar para el rango de celdas seleccionado.
Seleccione un rango que no incluye otras tablas.", "SSE.Views.TableOptionsDialog.textCancel": "Cancelar", "SSE.Views.TableOptionsDialog.txtEmpty": "Este campo es obligatorio", "SSE.Views.TableOptionsDialog.txtFormat": "Crear tabla", "SSE.Views.TableOptionsDialog.txtInvalidRange": "¡ERROR!¡Rango de celdas inválido! ", "SSE.Views.TableOptionsDialog.txtTitle": "Título", - "SSE.Views.TableSettings.deleteColumnText": "Delete Column", - "SSE.Views.TableSettings.deleteRowText": "Delete Row", - "SSE.Views.TableSettings.deleteTableText": "Delete Table", - "SSE.Views.TableSettings.insertColumnLeftText": "Insert Column Left", - "SSE.Views.TableSettings.insertColumnRightText": "Insert Column Right", - "SSE.Views.TableSettings.insertRowAboveText": "Insert Row Above", - "SSE.Views.TableSettings.insertRowBelowText": "Insert Row Below", - "SSE.Views.TableSettings.notcriticalErrorTitle": "Warning", - "SSE.Views.TableSettings.selectColumnText": "Select Entire Column", - "SSE.Views.TableSettings.selectDataText": "Select Column Data", - "SSE.Views.TableSettings.selectRowText": "Select Row", - "SSE.Views.TableSettings.selectTableText": "Select Table", - "SSE.Views.TableSettings.textBanded": "Banded", - "SSE.Views.TableSettings.textCancel": "Cancel", - "SSE.Views.TableSettings.textColumns": "Columns", - "SSE.Views.TableSettings.textEdit": "Rows & Columns", - "SSE.Views.TableSettings.textEmptyTemplate": "No templates", - "SSE.Views.TableSettings.textExistName": "ERROR! A range with such a name already exists", - "SSE.Views.TableSettings.textFilter": "Filter button", - "SSE.Views.TableSettings.textFirst": "First", - "SSE.Views.TableSettings.textHeader": "Header", - "SSE.Views.TableSettings.textInvalidName": "ERROR! Invalid table name", - "SSE.Views.TableSettings.textIsLocked": "This element is being edited by another user.", - "SSE.Views.TableSettings.textLast": "Last", - "SSE.Views.TableSettings.textOK": "OK", - "SSE.Views.TableSettings.textReservedName": "The name you are trying to use is already referenced in cell formulas. Please use some other name.", - "SSE.Views.TableSettings.textResize": "Resize table", - "SSE.Views.TableSettings.textRows": "Rows", - "SSE.Views.TableSettings.textSelectData": "Select Data", - "SSE.Views.TableSettings.textTableName": "Table Name", - "SSE.Views.TableSettings.textTemplate": "Select From Template", + "SSE.Views.TableSettings.deleteColumnText": "Borrar columna", + "SSE.Views.TableSettings.deleteRowText": "Borrar fila", + "SSE.Views.TableSettings.deleteTableText": "Borrar tabla", + "SSE.Views.TableSettings.insertColumnLeftText": "Insertar columna a la izquierda", + "SSE.Views.TableSettings.insertColumnRightText": "Insertar columna a la derecha", + "SSE.Views.TableSettings.insertRowAboveText": "Insertar fila arriba", + "SSE.Views.TableSettings.insertRowBelowText": "Insertar fila abajo", + "SSE.Views.TableSettings.notcriticalErrorTitle": "Aviso", + "SSE.Views.TableSettings.selectColumnText": "Seleccionar toda la columna", + "SSE.Views.TableSettings.selectDataText": "Seleccionar datos de columna", + "SSE.Views.TableSettings.selectRowText": "Seleccionar fila", + "SSE.Views.TableSettings.selectTableText": "Seleccionar tabla", + "SSE.Views.TableSettings.textBanded": "Con bandas", + "SSE.Views.TableSettings.textCancel": "Cancelar", + "SSE.Views.TableSettings.textColumns": "Columnas", + "SSE.Views.TableSettings.textEdit": "Filas y columnas", + "SSE.Views.TableSettings.textEmptyTemplate": "Sin plantillas", + "SSE.Views.TableSettings.textExistName": "¡ERROR! Una gama con tal nombre ya existe", + "SSE.Views.TableSettings.textFilter": "Botón de filtro", + "SSE.Views.TableSettings.textFirst": "primero", + "SSE.Views.TableSettings.textHeader": "Encabezado", + "SSE.Views.TableSettings.textInvalidName": "¡ERROR! nombre de la tabla inválido", + "SSE.Views.TableSettings.textIsLocked": "Este elemento está editándose por otro usuario.", + "SSE.Views.TableSettings.textLast": "Último", + "SSE.Views.TableSettings.textOK": "Aceptar", + "SSE.Views.TableSettings.textReservedName": "El nombre que está tratando de usar ya se hace referencia en las fórmulas de celda. Por favor seleccione otro nombre.", + "SSE.Views.TableSettings.textResize": "Cambiar el tamaño de la tabla", + "SSE.Views.TableSettings.textRows": "Filas", + "SSE.Views.TableSettings.textSelectData": "Seleccionar datos", + "SSE.Views.TableSettings.textTableName": "Nombre de la tabla", + "SSE.Views.TableSettings.textTemplate": "Seleccionar de plantilla", "SSE.Views.TableSettings.textTotal": "Total", "SSE.Views.TextArtSettings.strBackground": "Color de fondo", "SSE.Views.TextArtSettings.strColor": "Color", @@ -1082,7 +1082,7 @@ "SSE.Views.Toolbar.txtMergeCells": "Unir celdas", "SSE.Views.Toolbar.txtMergeCenter": "Unir y centrar", "SSE.Views.Toolbar.txtNamedRange": "Bandas nombradas", - "SSE.Views.Toolbar.txtNewRange": "Nombre nuevo ", + "SSE.Views.Toolbar.txtNewRange": "Definir Nombre", "SSE.Views.Toolbar.txtNoBorders": "Sin bordes", "SSE.Views.Toolbar.txtNumber": "Número", "SSE.Views.Toolbar.txtPasteRange": "Pegar nombre", @@ -1121,12 +1121,12 @@ "SSE.Views.Toolbar.txtTime": "Hora", "SSE.Views.Toolbar.txtUnmerge": "Separar celdas", "SSE.Views.Toolbar.txtYen": "¥ Yen", - "SSE.Views.Top10FilterDialog.cancelButtonText": "Cancel", - "SSE.Views.Top10FilterDialog.okButtonText": "OK", - "SSE.Views.Top10FilterDialog.textType": "Show", - "SSE.Views.Top10FilterDialog.txtBottom": "Bottom", - "SSE.Views.Top10FilterDialog.txtItems": "Item", - "SSE.Views.Top10FilterDialog.txtPercent": "Percent", - "SSE.Views.Top10FilterDialog.txtTitle": "Top 10 AutoFilter", - "SSE.Views.Top10FilterDialog.txtTop": "Top" + "SSE.Views.Top10FilterDialog.cancelButtonText": "Cancelar", + "SSE.Views.Top10FilterDialog.okButtonText": "Aceptar", + "SSE.Views.Top10FilterDialog.textType": "Mostrar", + "SSE.Views.Top10FilterDialog.txtBottom": "Inferior", + "SSE.Views.Top10FilterDialog.txtItems": "Artículo", + "SSE.Views.Top10FilterDialog.txtPercent": "Por ciento", + "SSE.Views.Top10FilterDialog.txtTitle": "Top 10 de Autofiltro", + "SSE.Views.Top10FilterDialog.txtTop": "Superior" } \ No newline at end of file From c44660cbed73113619306f57ceb2afbd4786f16a Mon Sep 17 00:00:00 2001 From: Alexander Trofimov Date: Thu, 30 Jun 2016 13:57:06 +0300 Subject: [PATCH 14/25] Update Readme.md 4.0.0 -> 4.0.1 --- Readme.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Readme.md b/Readme.md index 796dde16b..c99f27c6a 100644 --- a/Readme.md +++ b/Readme.md @@ -1,3 +1,5 @@ +[![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.0.1-blue.svg?style=flat) + ## web-apps The frontend for [ONLYOFFICE Document Server][2]. Builds the program interface and allows the user create, edit, save and export text, spreadsheet and presentation documents using the common interface of a document editor. From e5501d76925e5bceaf0abb9ddc713c79df58b985 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Tue, 21 Jun 2016 17:30:02 +0300 Subject: [PATCH 15/25] =?UTF-8?q?[DE][PE]=20=D0=9F=D1=80=D0=B8=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=BA=D0=B5=20=D1=80=D0=B5=D0=B4?= =?UTF-8?q?=D0=B0=D0=BA=D1=82=D0=BE=D1=80=D0=BE=D0=B2=20=D1=81=20=D0=BE?= =?UTF-8?q?=D1=82=D0=BA=D1=80=D1=8B=D1=82=D0=BE=D0=B9=20=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BE=D0=B9=20=D0=BF=D0=B0=D0=BD=D0=B5=D0=BB=D1=8C=D1=8E?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=BA=D0=B0=D0=B7=D1=8B=D0=B2=D0=B0=D1=82=D1=8C?= =?UTF-8?q?=20=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B9=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=BF=D0=B0=D1=80=D0=B0=D0=B3=D1=80=D0=B0=D1=84=D0=B0/=D1=81?= =?UTF-8?q?=D0=BB=D0=B0=D0=B9=D0=B4=D0=B0=20(=D0=BA=D0=BE=D0=BD=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=BB=D1=8B=20=D0=BD=D0=B0=20=D0=BF=D0=B0=D0=BD?= =?UTF-8?q?=D0=B5=D0=BB=D1=8F=D1=85=20=D0=BF=D1=83=D1=81=D1=82=D1=8B=D0=B5?= =?UTF-8?q?=20=D0=B8=20disabled).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/app/template/RightMenu.template | 2 - .../main/app/view/ParagraphSettings.js | 37 +++++++++------- .../documenteditor/main/app/view/RightMenu.js | 4 +- .../main/app/template/RightMenu.template | 2 - .../main/app/template/SlideSettings.template | 2 +- .../main/app/view/RightMenu.js | 4 +- .../main/app/view/SlideSettings.js | 43 +++++++++++-------- 7 files changed, 53 insertions(+), 41 deletions(-) diff --git a/apps/documenteditor/main/app/template/RightMenu.template b/apps/documenteditor/main/app/template/RightMenu.template index 499e30afa..6b30dae46 100644 --- a/apps/documenteditor/main/app/template/RightMenu.template +++ b/apps/documenteditor/main/app/template/RightMenu.template @@ -16,8 +16,6 @@
-
-
diff --git a/apps/documenteditor/main/app/view/ParagraphSettings.js b/apps/documenteditor/main/app/view/ParagraphSettings.js index a2f8d25dd..3b60b3216 100644 --- a/apps/documenteditor/main/app/view/ParagraphSettings.js +++ b/apps/documenteditor/main/app/view/ParagraphSettings.js @@ -71,18 +71,18 @@ define([ this._initSettings = true; this._state = { - LineRuleIdx: 1, - LineHeight: 1.5, - LineSpacingBefore: 0, - LineSpacingAfter: 0.35, + LineRuleIdx: null, + LineHeight: null, + LineSpacingBefore: null, + LineSpacingAfter: null, AddInterval: false, BackColor: '#000000', - DisabledControls: false, + DisabledControls: true, HideTextOnlySettings: false }; this.spinners = []; this.lockedControls = []; - this._locked = false; + this._locked = true; this.isChart = false; this.render(); @@ -99,19 +99,21 @@ define([ cls: 'input-group-nr', menuStyle: 'min-width: 85px;', editable: false, - data: this._arrLineRule + data: this._arrLineRule, + disabled: this._locked }); - this.cmbLineRule.setValue(this._arrLineRule[ this._state.LineRuleIdx].value); + this.cmbLineRule.setValue(''); this.lockedControls.push(this.cmbLineRule); this.numLineHeight = new Common.UI.MetricSpinner({ el: $('#paragraph-spin-line-height'), step: .01, width: 85, - value: '1.5', + value: '', defaultUnit : "", maxValue: 132, - minValue: 0.5 + minValue: 0.5, + disabled: this._locked }); this.lockedControls.push(this.numLineHeight); @@ -119,12 +121,13 @@ define([ el: $('#paragraph-spin-spacing-before'), step: .1, width: 85, - value: '0 cm', + value: '', defaultUnit : "cm", maxValue: 55.88, minValue: 0, allowAuto : true, - autoText : this.txtAutoText + autoText : this.txtAutoText, + disabled: this._locked }); this.spinners.push(this.numSpacingBefore); this.lockedControls.push(this.numSpacingBefore); @@ -133,24 +136,27 @@ define([ el: $('#paragraph-spin-spacing-after'), step: .1, width: 85, - value: '0.35 cm', + value: '', defaultUnit : "cm", maxValue: 55.88, minValue: 0, allowAuto : true, - autoText : this.txtAutoText + autoText : this.txtAutoText, + disabled: this._locked }); this.spinners.push(this.numSpacingAfter); this.lockedControls.push(this.numSpacingAfter); this.chAddInterval = new Common.UI.CheckBox({ el: $('#paragraph-checkbox-add-interval'), - labelText: this.strSomeParagraphSpace + labelText: this.strSomeParagraphSpace, + disabled: this._locked }); this.lockedControls.push(this.chAddInterval); this.btnColor = new Common.UI.ColorButton({ style: "width:45px;", + disabled: this._locked, menu : new Common.UI.Menu({ items: [ { template: _.template('
') }, @@ -206,6 +212,7 @@ define([ })); this.linkAdvanced = $('#paragraph-advanced-link'); + this.linkAdvanced.toggleClass('disabled', this._locked); }, setApi: function(api) { diff --git a/apps/documenteditor/main/app/view/RightMenu.js b/apps/documenteditor/main/app/view/RightMenu.js index 3366d6cfe..0288e6a30 100644 --- a/apps/documenteditor/main/app/view/RightMenu.js +++ b/apps/documenteditor/main/app/view/RightMenu.js @@ -197,8 +197,8 @@ define([ } if (open) { - $('#id-empty-settings').parent().css("display", "inline-block" ); - $('#id-empty-settings').addClass("active"); + $('#id-paragraph-settings').parent().css("display", "inline-block" ); + $('#id-paragraph-settings').addClass("active"); } this.trigger('render:after', this); diff --git a/apps/presentationeditor/main/app/template/RightMenu.template b/apps/presentationeditor/main/app/template/RightMenu.template index d8119b24b..6a34f6b22 100644 --- a/apps/presentationeditor/main/app/template/RightMenu.template +++ b/apps/presentationeditor/main/app/template/RightMenu.template @@ -14,8 +14,6 @@
-
-
diff --git a/apps/presentationeditor/main/app/template/SlideSettings.template b/apps/presentationeditor/main/app/template/SlideSettings.template index 776e9a705..2c4133d77 100644 --- a/apps/presentationeditor/main/app/template/SlideSettings.template +++ b/apps/presentationeditor/main/app/template/SlideSettings.template @@ -11,7 +11,7 @@ -
+
diff --git a/apps/presentationeditor/main/app/view/RightMenu.js b/apps/presentationeditor/main/app/view/RightMenu.js index eefa15406..5f78ff9c7 100644 --- a/apps/presentationeditor/main/app/view/RightMenu.js +++ b/apps/presentationeditor/main/app/view/RightMenu.js @@ -181,8 +181,8 @@ define([ } if (open) { - $('#id-empty-settings').parent().css("display", "inline-block" ); - $('#id-empty-settings').addClass("active"); + $('#id-slide-settings').parent().css("display", "inline-block" ); + $('#id-slide-settings').addClass("active"); } this.trigger('render:after', this); diff --git a/apps/presentationeditor/main/app/view/SlideSettings.js b/apps/presentationeditor/main/app/view/SlideSettings.js index 8043180cf..b2629b0e2 100644 --- a/apps/presentationeditor/main/app/view/SlideSettings.js +++ b/apps/presentationeditor/main/app/view/SlideSettings.js @@ -78,13 +78,13 @@ define([ this.FillItems = []; this._stateDisabled = { - background: false, - effects: false, - timing: false + background: true, + effects: true, + timing: true }; this._state = { - FillType: Asc.c_oAscFill.FILL_TYPE_SOLID, + FillType:undefined, SlideColor: 'ffffff', BlipFillType: Asc.c_oAscFillBlipType.STRETCH, FGColor: '000000', @@ -93,7 +93,7 @@ define([ GradFillType: Asc.c_oAscFillGradType.GRAD_LINEAR }; - this.OriginalFillType = Asc.c_oAscFill.FILL_TYPE_SOLID; + this.OriginalFillType = undefined; this.SlideColor = {Value: 1, Color: 'ffffff'}; // value=1 - цвет определен - прозрачный или другой, value=0 - цвет не определен, рисуем прозрачным this.BlipFillType = Asc.c_oAscFillBlipType.STRETCH; this.Effect = Asc.c_oAscSlideTransitionTypes.None; @@ -125,13 +125,15 @@ define([ style: 'width: 100%;', menuStyle: 'min-width: 190px;', editable: false, - data: this._arrFillSrc + data: this._arrFillSrc, + disabled: true }); - this.cmbFillSrc.setValue(this._arrFillSrc[0].value); + this.cmbFillSrc.setValue(''); this.cmbFillSrc.on('selected', _.bind(this.onFillSrcSelect, this)); this.btnBackColor = new Common.UI.ColorButton({ style: "width:45px;", + disabled: true, menu : new Common.UI.Menu({ items: [ { template: _.template('
') }, @@ -462,9 +464,10 @@ define([ style: 'width: 100%;', menuStyle: 'min-width: 190px;', editable: false, - data: this._arrEffectName + data: this._arrEffectName, + disabled: true }); - this.cmbEffectName.setValue(this._arrEffectName[0].value); + this.cmbEffectName.setValue(''); this.cmbEffectName.on('selected', _.bind(this.onEffectNameSelect, this)); this._arrEffectType = [ @@ -496,7 +499,8 @@ define([ style: 'width: 100%;', menuStyle: 'min-width: 190px;', editable: false, - data: this._arrEffectType + data: this._arrEffectType, + disabled: true }); this.cmbEffectType.setValue(''); this.cmbEffectType.on('selected', _.bind(this.onEffectTypeSelect, this)); @@ -505,10 +509,11 @@ define([ el: $('#slide-spin-duration'), step: 1, width: 65, - value: '2 s', + value: '', defaultUnit : this.textSec, maxValue: 300, - minValue: 0 + minValue: 0, + disabled: true }); this.numDuration.on('change', _.bind(this.onDurationChange, this)); @@ -516,7 +521,7 @@ define([ el: $('#slide-spin-delay'), step: 1, width: 70, - value: '2 s', + value: '', defaultUnit : this.textSec, maxValue: 300, minValue: 0, @@ -526,18 +531,21 @@ define([ this.chStartOnClick = new Common.UI.CheckBox({ el: $('#slide-checkbox-start-click'), - labelText: this.strStartOnClick + labelText: this.strStartOnClick, + disabled: true }); this.chStartOnClick.on('change', _.bind(this.onStartOnClickChange, this)); this.chDelay = new Common.UI.CheckBox({ el: $('#slide-checkbox-delay'), - labelText: this.strDelay + labelText: this.strDelay, + disabled: true }); this.chDelay.on('change', _.bind(this.onCheckDelayChange, this)); this.btnPreview = new Common.UI.Button({ - el: $('#slide-button-preview') + el: $('#slide-button-preview'), + disabled: true }); this.btnPreview.on('click', _.bind(function(btn){ if (this.api) this.api.SlideTransitionPlay(); @@ -545,7 +553,8 @@ define([ }, this)); this.btnApplyToAll = new Common.UI.Button({ - el: $('#slide-button-apply-all') + el: $('#slide-button-apply-all'), + disabled: true }); this.btnApplyToAll.on('click', _.bind(function(btn){ if (this.api) this.api.SlideTimingApplyToAll(); From 33de23b42081bab16e906a0d3a39d660335c7361 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Tue, 5 Jul 2016 11:11:13 +0300 Subject: [PATCH 16/25] [DE] Update add-ons style. --- apps/common/main/resources/less/plugins.less | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/common/main/resources/less/plugins.less b/apps/common/main/resources/less/plugins.less index 9569f112e..750b43535 100644 --- a/apps/common/main/resources/less/plugins.less +++ b/apps/common/main/resources/less/plugins.less @@ -29,7 +29,7 @@ background-color: @secondary; .plugin-icon { - .box-shadow(0 0 0 2px @primary); + .box-shadow(0 0 0 2px transparent); } } } @@ -46,11 +46,12 @@ width: 31px; height: 31px; display: inline-block; - .box-shadow(0 0 0 1px @gray); + .box-shadow(0 0 0 1px transparent); vertical-align: middle; background-position: 0 0; background-size: cover; margin-right: 10px; + margin-top: -1px; .background-ximage('@{common-image-path}/plugin/icon_add_on_default.png', '@{common-image-path}/plugin/icon_add_on_default@2x.png', 31px); } From 7c942b59c2abae3d3cf860deb7072ed2b5686c1f Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Tue, 5 Jul 2016 15:21:26 +0300 Subject: [PATCH 17/25] [SSE] Add plugins. --- apps/documenteditor/main/app/view/LeftMenu.js | 22 +++--- apps/spreadsheeteditor/main/app.js | 6 +- .../main/app/controller/LeftMenu.js | 18 ++++- .../main/app/controller/Main.js | 68 ++++++++++++++++++- .../main/app/template/LeftMenu.template | 2 + .../main/app/view/LeftMenu.js | 29 +++++++- apps/spreadsheeteditor/main/app_dev.js | 6 +- apps/spreadsheeteditor/main/locale/en.json | 4 ++ .../main/resources/less/app.less | 1 + .../main/resources/less/leftmenu.less | 1 + 10 files changed, 139 insertions(+), 18 deletions(-) diff --git a/apps/documenteditor/main/app/view/LeftMenu.js b/apps/documenteditor/main/app/view/LeftMenu.js index 632e50cb2..440f16216 100644 --- a/apps/documenteditor/main/app/view/LeftMenu.js +++ b/apps/documenteditor/main/app/view/LeftMenu.js @@ -141,6 +141,13 @@ define([ toggleGroup: 'leftMenuGroup' }); + this.btnComments.hide(); + this.btnChat.hide(); + + this.btnComments.on('click', _.bind(this.onBtnMenuClick, this)); + this.btnChat.on('click', _.bind(this.onBtnMenuClick, this)); + /** coauthoring end **/ + this.btnPlugins = new Common.UI.Button({ el: $('#left-btn-plugins'), hint: this.tipPlugins, @@ -148,15 +155,8 @@ define([ disabled: true, toggleGroup: 'leftMenuGroup' }); - - this.btnComments.hide(); - this.btnChat.hide(); this.btnPlugins.hide(); - - this.btnComments.on('click', _.bind(this.onBtnMenuClick, this)); - this.btnChat.on('click', _.bind(this.onBtnMenuClick, this)); this.btnPlugins.on('click', _.bind(this.onBtnMenuClick, this)); - /** coauthoring end **/ this.btnSearch.on('click', _.bind(this.onBtnMenuClick, this)); this.btnAbout.on('toggle', _.bind(this.onBtnMenuToggle, this)); @@ -279,12 +279,12 @@ define([ this.panelChat['hide'](); this.btnChat.toggle(false, true); } - if (this.mode.canPlugins && this.panelPlugins) { - this.panelPlugins['hide'](); - this.btnPlugins.toggle(false, true); - } } /** coauthoring end **/ + if (this.mode.canPlugins && this.panelPlugins) { + this.panelPlugins['hide'](); + this.btnPlugins.toggle(false, true); + } }, isOpened: function() { diff --git a/apps/spreadsheeteditor/main/app.js b/apps/spreadsheeteditor/main/app.js index c0a989b12..b1640b119 100644 --- a/apps/spreadsheeteditor/main/app.js +++ b/apps/spreadsheeteditor/main/app.js @@ -157,7 +157,8 @@ require([ 'Main', 'Common.Controllers.Fonts', 'Common.Controllers.Chat', - 'Common.Controllers.Comments' + 'Common.Controllers.Comments', + 'Common.Controllers.Plugins' ] }); @@ -182,7 +183,8 @@ require([ 'common/main/lib/util/LocalStorage', 'common/main/lib/controller/Fonts', 'common/main/lib/controller/Comments', - 'common/main/lib/controller/Chat' + 'common/main/lib/controller/Chat', + 'common/main/lib/controller/Plugins' ], function() { app.start(); }); diff --git a/apps/spreadsheeteditor/main/app/controller/LeftMenu.js b/apps/spreadsheeteditor/main/app/controller/LeftMenu.js index ba09e9f45..2822704d9 100644 --- a/apps/spreadsheeteditor/main/app/controller/LeftMenu.js +++ b/apps/spreadsheeteditor/main/app/controller/LeftMenu.js @@ -181,6 +181,14 @@ define([ return this; }, + enablePlugins: function() { + if (this.mode.canPlugins) { + this.leftMenu.btnPlugins.show(); + this.leftMenu.setOptionsPanel('plugins', this.getApplication().getController('Common.Controllers.Plugins').getView('Common.Views.Plugins')); + } else + this.leftMenu.btnPlugins.hide(); + }, + clickMenuFileItem: function(menu, action, isopts) { var close_menu = true; switch (action) { @@ -496,6 +504,7 @@ define([ this.leftMenu.btnComments.setDisabled(true); this.leftMenu.btnChat.setDisabled(true); /** coauthoring end **/ + this.leftMenu.btnPlugins.setDisabled(true); this.leftMenu.getMenu('file').setMode({isDisconnected: true}); if ( this.dlgSearch ) { @@ -605,7 +614,14 @@ define([ $.fn.dropdown.Constructor.prototype.keydown.call(menu_opened[0], e); return false; } - if (this.leftMenu.btnFile.pressed || this.leftMenu.btnAbout.pressed || + if (this.mode.canPlugins && this.leftMenu.panelPlugins) { + menu_opened = this.leftMenu.panelPlugins.$el.find('#menu-plugin-container.open > [data-toggle="dropdown"]'); + if (menu_opened.length) { + $.fn.dropdown.Constructor.prototype.keydown.call(menu_opened[0], e); + return false; + } + } + if (this.leftMenu.btnFile.pressed || this.leftMenu.btnAbout.pressed || this.leftMenu.btnPlugins.pressed || $(e.target).parents('#left-menu').length && this.api.isCellEdited!==true) { this.leftMenu.close(); Common.NotificationCenter.trigger('layout:changed', 'leftmenu'); diff --git a/apps/spreadsheeteditor/main/app/controller/Main.js b/apps/spreadsheeteditor/main/app/controller/Main.js index 028b7100e..ec72b226c 100644 --- a/apps/spreadsheeteditor/main/app/controller/Main.js +++ b/apps/spreadsheeteditor/main/app/controller/Main.js @@ -136,6 +136,7 @@ define([ // Initialize api gateway this.editorConfig = {}; + this.plugins = undefined; Common.Gateway.on('init', _.bind(this.loadConfig, this)); Common.Gateway.on('showmessage', _.bind(this.onExternalMessage, this)); Common.Gateway.on('opendocument', _.bind(this.loadDocument, this)); @@ -250,6 +251,8 @@ define([ this.appOptions.canBackToFolder = (this.editorConfig.canBackToFolder!==false) && (typeof (this.editorConfig.customization) == 'object') && (typeof (this.editorConfig.customization.goback) == 'object') && !_.isEmpty(this.editorConfig.customization.goback.url); this.appOptions.canBack = this.editorConfig.nativeApp !== true && this.appOptions.canBackToFolder === true; + this.appOptions.canPlugins = false; + this.plugins = this.editorConfig.plugins; this.headerView = this.getApplication().getController('Viewport').getView('Common.Views.Header'); this.headerView.setCanBack(this.appOptions.canBackToFolder === true); @@ -584,10 +587,18 @@ define([ statusbarView = statusbarController.getView('Statusbar'), leftMenuView = leftmenuController.getView('LeftMenu'), documentHolderView = documentHolderController.getView('DocumentHolder'), - chatController = application.getController('Common.Controllers.Chat'); + chatController = application.getController('Common.Controllers.Chat'), + pluginsController = application.getController('Common.Controllers.Plugins'); leftMenuView.getMenu('file').loadDocument({doc:me.appOptions.spreadsheet}); leftmenuController.setMode(me.appOptions).createDelayedElements().setApi(me.api); + + if (!me.appOptions.isLightVersion && !me.appOptions.isEditMailMerge && !me.appOptions.isEditDiagram) { + pluginsController.setApi(me.api); + me.updatePluginsList(me.plugins); + me.api.asc_registerCallback('asc_onPluginsInit', _.bind(me.updatePluginsList, me)); + } + leftMenuView.disableMenu('all',false); if (!me.appOptions.isEditMailMerge && !me.appOptions.isEditDiagram && me.appOptions.canBranding) { @@ -1685,6 +1696,61 @@ define([ if (url) this.iframePrint.src = url; }, + updatePluginsList: function(plugins) { + var pluginStore = this.getApplication().getCollection('Common.Collections.Plugins'), + isEdit = this.appOptions.isEdit; + if (pluginStore && plugins) { + var arr = []; + plugins.pluginsData.forEach(function(item){ + var variations = item.variations, + variationsArr = []; + variations.forEach(function(itemVar){ + var isSupported = false; + for (var i=0; i0) + arr.push(new Common.Models.Plugin({ + name : item.name, + guid: item.guid, + baseUrl : item.baseUrl, + variations: variationsArr, + currentVariation: 0 + })); + }); + + pluginStore.reset(arr); + + this.appOptions.pluginsPath = (plugins.url); + this.appOptions.canPlugins = (arr.length>0); + } else { + this.appOptions.pluginsPath = ''; + this.appOptions.canPlugins = false; + } + if (this.appOptions.canPlugins) + this.getApplication().getController('Common.Controllers.Plugins').setMode(this.appOptions); + this.getApplication().getController('LeftMenu').enablePlugins(); + }, + leavePageText: 'You have unsaved changes in this document. Click \'Stay on this Page\' then \'Save\' to save them. Click \'Leave this Page\' to discard all the unsaved changes.', criticalErrorTitle: 'Error', notcriticalErrorTitle: 'Warning', diff --git a/apps/spreadsheeteditor/main/app/template/LeftMenu.template b/apps/spreadsheeteditor/main/app/template/LeftMenu.template index 039703e46..72e966931 100644 --- a/apps/spreadsheeteditor/main/app/template/LeftMenu.template +++ b/apps/spreadsheeteditor/main/app/template/LeftMenu.template @@ -6,6 +6,7 @@ +
@@ -14,5 +15,6 @@
', '
', '
', - '
' + '
', + '