From 52169b80cebabe62535d4cd00ac401f08d9c1985 Mon Sep 17 00:00:00 2001 From: Maxim Kadushkin Date: Tue, 1 Aug 2017 13:17:29 +0300 Subject: [PATCH 01/39] [Common] locked timed toolbar collapsing --- apps/common/main/lib/component/Mixtbar.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/apps/common/main/lib/component/Mixtbar.js b/apps/common/main/lib/component/Mixtbar.js index f414691dd..a1ce3ece3 100644 --- a/apps/common/main/lib/component/Mixtbar.js +++ b/apps/common/main/lib/component/Mixtbar.js @@ -125,10 +125,13 @@ define([ optsFold.$bar.toggleClass('expanded', true).addClass('folded'); optsFold.$box.on({ mouseleave: function (e) { - optsFold.timer = setTimeout(me.collapse, optsFold.timeout); + // optsFold.timer = setTimeout( function(e) { + // clearTimeout(optsFold.timer); + // me.collapse(); + // }, optsFold.timeout); }, mouseenter: function (e) { - clearTimeout(optsFold.timer); + // clearTimeout(optsFold.timer); } }); @@ -157,26 +160,27 @@ define([ // }); } else { - clearTimeout(optsFold.timer); + // clearTimeout(optsFold.timer); optsFold.$bar.removeClass('folded'); optsFold.$box.off(); } }, collapse: function() { + Common.UI.Menu.Manager.hideAll(); + // clearTimeout(optsFold.timer); + if ( this.isFolded && optsFold.$bar ) { optsFold.$bar.removeClass('expanded'); optsFold.$bar.find('.tabs .ribtab').removeClass('active'); } - - Common.UI.Menu.Manager.hideAll(); }, expand: function() { - clearTimeout(optsFold.timer); + // clearTimeout(optsFold.timer); optsFold.$bar.addClass('expanded'); - optsFold.timer = setTimeout(this.collapse, optsFold.timeout); + // optsFold.timer = setTimeout(this.collapse, optsFold.timeout); }, onResize: function(e) { From 55889a4bf4794000d47072144e392ccef2d885f8 Mon Sep 17 00:00:00 2001 From: Maxim Kadushkin Date: Tue, 1 Aug 2017 14:39:31 +0300 Subject: [PATCH 02/39] [Common] collase toolbar immediately after switch on 'compact' view --- apps/common/main/lib/component/Mixtbar.js | 3 ++- apps/documenteditor/main/app/view/Toolbar.js | 2 +- apps/presentationeditor/main/app/view/Toolbar.js | 2 +- apps/spreadsheeteditor/main/app/view/Toolbar.js | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/apps/common/main/lib/component/Mixtbar.js b/apps/common/main/lib/component/Mixtbar.js index a1ce3ece3..c51bbf694 100644 --- a/apps/common/main/lib/component/Mixtbar.js +++ b/apps/common/main/lib/component/Mixtbar.js @@ -122,7 +122,8 @@ define([ if ( this.isFolded ) { if (!optsFold.$box) optsFold.$box = me.$el.find('.box-controls'); - optsFold.$bar.toggleClass('expanded', true).addClass('folded'); + optsFold.$bar.addClass('folded').toggleClass('expanded', false); + optsFold.$bar.find('.tabs .ribtab').removeClass('active'); optsFold.$box.on({ mouseleave: function (e) { // optsFold.timer = setTimeout( function(e) { diff --git a/apps/documenteditor/main/app/view/Toolbar.js b/apps/documenteditor/main/app/view/Toolbar.js index 9b98bb68a..5d1772686 100644 --- a/apps/documenteditor/main/app/view/Toolbar.js +++ b/apps/documenteditor/main/app/view/Toolbar.js @@ -1205,7 +1205,7 @@ define([ }); if ( me.isCompactView ) - me.setFolded(true), me.collapse(); else + me.setFolded(true); else me.setTab('home'); var top = Common.localStorage.getItem("de-pgmargins-top"), diff --git a/apps/presentationeditor/main/app/view/Toolbar.js b/apps/presentationeditor/main/app/view/Toolbar.js index 697f8b43f..5293c42c7 100644 --- a/apps/presentationeditor/main/app/view/Toolbar.js +++ b/apps/presentationeditor/main/app/view/Toolbar.js @@ -933,7 +933,7 @@ define([ }); if ( me.isCompactView ) - me.setFolded(true), me.collapse(); else + me.setFolded(true); else me.setTab('home'); return this; diff --git a/apps/spreadsheeteditor/main/app/view/Toolbar.js b/apps/spreadsheeteditor/main/app/view/Toolbar.js index 5511c9bc9..b6a70c293 100644 --- a/apps/spreadsheeteditor/main/app/view/Toolbar.js +++ b/apps/spreadsheeteditor/main/app/view/Toolbar.js @@ -1279,7 +1279,7 @@ define([ }); if ( me.isCompactView ) - me.setFolded(true), me.collapse(); else + me.setFolded(true); else me.setTab('home'); return this; From 8513705b1e6f2583c838cc1db423635885bf801d Mon Sep 17 00:00:00 2001 From: Maxim Kadushkin Date: Tue, 1 Aug 2017 15:14:19 +0300 Subject: [PATCH 03/39] [Common] added 'document rename' --- apps/common/main/lib/view/Header.js | 94 +++++++++++++++------ apps/common/main/resources/less/header.less | 15 +++- 2 files changed, 80 insertions(+), 29 deletions(-) diff --git a/apps/common/main/lib/view/Header.js b/apps/common/main/lib/view/Header.js index 57b74b00c..789ca9506 100644 --- a/apps/common/main/lib/view/Header.js +++ b/apps/common/main/lib/view/Header.js @@ -70,7 +70,7 @@ define([ ''); var templateRightBox = '
' + - '' + + '
' + '<%= textSaveEnd %>' + '
' + '
' + @@ -278,6 +278,42 @@ define([ } } + function onDocNameKeyDown(e) { + var me = this; + + var name = me.labelDocName.val(); + if ( e.keyCode == Common.UI.Keys.RETURN ) { + name = name.trim(); + if ( !_.isEmpty(name) && me.documentCaption !== name ) { + if ( /[\t*\+:\"<>?|\\\\/]/gim.test(name) ) { + _.defer(function() { + Common.UI.error({ + msg: (new Common.Views.RenameDialog).txtInvalidName + "*+:\"<>?|\/" + , callback: function() { + _.delay(function() { + me.labelDocName.focus(); + }, 50); + } + }); + + me.labelDocName.blur(); + }) + } else { + Common.Gateway.requestRename(name); + Common.NotificationCenter.trigger('edit:complete', me); + } + } + } else + if ( e.keyCode == Common.UI.Keys.ESC ) { + me.labelDocName.val(me.documentCaption); + Common.NotificationCenter.trigger('edit:complete', this); + } else { + me.labelDocName.attr('size', name.length > 10 ? name.length : 10); + } + + console.log('input keydown'); + } + return { options: { branding: {}, @@ -344,7 +380,12 @@ define([ textSaveEnd: this.textSaveEnd })); + if ( this.labelDocName ) this.labelDocName.off(); this.labelDocName = $html.find('#rib-doc-name'); + this.labelDocName.on({ + 'keydown': onDocNameKeyDown.bind(this) + }); + $saveStatus = $html.find('#rib-save-status'); $saveStatus.hide(); @@ -440,8 +481,13 @@ define([ this.documentCaption = value; this.isModified && (value += '*'); - if ( this.labelDocName ) - this.labelDocName.html(Common.Utils.String.htmlEncode(value)); + if ( this.labelDocName ) { + var encoded = Common.Utils.String.htmlEncode(value); + this.labelDocName.val( encoded ); + this.labelDocName.attr('size', encoded.length); + + this.setCanRename(true); + } return value; }, @@ -470,31 +516,23 @@ define([ }, setCanRename: function (rename) { - // var dc = $('#header-documentcaption div'); - // if (rename) { - // var me = this; - // dc.tooltip({title: me.txtRename, placement: 'cursor'}); - // dc.on('click', function (e) { - // (new Common.Views.RenameDialog({ - // filename: me.documentCaption, - // handler: function (result, value) { - // if (result == 'ok' && !_.isEmpty(value.trim()) && me.documentCaption !== value.trim()) { - // Common.Gateway.requestRename(value); - // } - // Common.NotificationCenter.trigger('edit:complete', me); - // } - // })).show(dc.position().left - 1, 20); - // }); - // } else { - // var tip = dc.data('bs.tooltip'); - // if (tip) { - // tip.options.title = ''; - // tip.setContent(); - // } - // dc.off('click'); - // } - // dc.css('cursor', rename ? 'pointer' : 'default'); - // dc.toggleClass('renamed', rename); + rename = false; + + var me = this, + label = me.labelDocName; + if ( rename ) { + label.removeAttr('disabled').tooltip({ + title: me.txtRename, + placement: 'cursor'} + ); + } else { + label.attr('disabled', true); + var tip = label.data('bs.tooltip'); + if ( tip ) { + tip.options.title = ''; + tip.setContent(); + } + } }, setSaveStatus: function (status) { diff --git a/apps/common/main/resources/less/header.less b/apps/common/main/resources/less/header.less index 37c6e2949..4fb0027eb 100644 --- a/apps/common/main/resources/less/header.less +++ b/apps/common/main/resources/less/header.less @@ -83,13 +83,26 @@ } } - #rib-doc-name { + #box-doc-name { flex-grow: 1; + text-align: center; + } + + #rib-doc-name { white-space: nowrap; text-overflow: ellipsis; overflow: hidden; min-width: 50px; text-align: center; + + color: #fff; + background-color: transparent; + border: 0 none; + cursor: default; + + &:focus { + cursor: text; + } } #rib-save-status { From 75626ea68bf511ad7b811d02cf1d3f279c54e3ff Mon Sep 17 00:00:00 2001 From: Maxim Kadushkin Date: Tue, 1 Aug 2017 15:17:01 +0300 Subject: [PATCH 04/39] [Common] dimension picker didn't render correctly --- apps/common/main/resources/less/asc-mixins.less | 4 ++-- apps/common/main/resources/less/dimension-picker.less | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/common/main/resources/less/asc-mixins.less b/apps/common/main/resources/less/asc-mixins.less index 0140f96af..447654e4b 100644 --- a/apps/common/main/resources/less/asc-mixins.less +++ b/apps/common/main/resources/less/asc-mixins.less @@ -130,9 +130,9 @@ /**/ -.background-ximage(@image, @image2x, @w: auto, @h: auto) { +.background-ximage(@image, @image2x, @w: auto, @h: auto, @repeat: no-repeat) { background-image: data-uri(%("%s",@image)); - background-repeat: no-repeat; + background-repeat: @repeat; @media only screen and (-webkit-min-device-pixel-ratio: 2), diff --git a/apps/common/main/resources/less/dimension-picker.less b/apps/common/main/resources/less/dimension-picker.less index 615c8886c..feb87653c 100644 --- a/apps/common/main/resources/less/dimension-picker.less +++ b/apps/common/main/resources/less/dimension-picker.less @@ -20,13 +20,13 @@ } .dimension-picker-unhighlighted { - background: transparent repeat scroll 0 0; - .background-ximage('@{app-image-path}/controls/dimension-picker/dimension-unhighlighted.png', '@{app-image-path}/controls/dimension-picker/dimension-unhighlighted@2x.png', 18px); + //background: transparent repeat scroll 0 0; + .background-ximage('@{app-image-path}/controls/dimension-picker/dimension-unhighlighted.png', '@{app-image-path}/controls/dimension-picker/dimension-unhighlighted@2x.png', 18px, auto, repeat); } .dimension-picker div.dimension-picker-highlighted { - background: transparent repeat scroll 0 0; - .background-ximage('@{app-image-path}/controls/dimension-picker/dimension-highlighted.png', '@{app-image-path}/controls/dimension-picker/dimension-highlighted@2x.png', 18px); + //background: transparent repeat scroll 0 0; + .background-ximage('@{app-image-path}/controls/dimension-picker/dimension-highlighted.png', '@{app-image-path}/controls/dimension-picker/dimension-highlighted@2x.png', 18px, auto, repeat); } .dimension-picker-status { From 9b1a4a0904eac53c44387bbb2251ab43436b28be Mon Sep 17 00:00:00 2001 From: Maxim Kadushkin Date: Tue, 1 Aug 2017 15:28:15 +0300 Subject: [PATCH 05/39] [SSE, PE] fix bug 35473 --- .../main/app/template/Toolbar.template | 5 +- .../main/app/view/Toolbar.js | 90 +++++++++---------- apps/presentationeditor/main/locale/en.json | 4 +- .../main/app/controller/Toolbar.js | 38 +++----- .../main/app/template/Toolbar.template | 1 + .../main/app/view/Toolbar.js | 44 ++++----- apps/spreadsheeteditor/main/locale/en.json | 4 +- 7 files changed, 87 insertions(+), 99 deletions(-) diff --git a/apps/presentationeditor/main/app/template/Toolbar.template b/apps/presentationeditor/main/app/template/Toolbar.template index 4594d9b51..a92b9b5f2 100644 --- a/apps/presentationeditor/main/app/template/Toolbar.template +++ b/apps/presentationeditor/main/app/template/Toolbar.template @@ -88,7 +88,7 @@
- +
@@ -129,7 +129,8 @@
- + + diff --git a/apps/presentationeditor/main/app/view/Toolbar.js b/apps/presentationeditor/main/app/view/Toolbar.js index 5293c42c7..585ee0761 100644 --- a/apps/presentationeditor/main/app/view/Toolbar.js +++ b/apps/presentationeditor/main/app/view/Toolbar.js @@ -586,6 +586,20 @@ define([ }); me.paragraphControls.push(me.btnInsertHyperlink); + me.btnInsertTextArt = new Common.UI.Button({ + id: 'tlb-btn-instextart', + cls: 'btn-toolbar x-huge icon-top', + iconCls: 'btn-textart', + caption: me.capInsertTextArt, + menu: new Common.UI.Menu({ + cls: 'menu-shapes', + items: [ + {template: _.template('
')} + ] + }) + }); + me.paragraphControls.push(me.btnInsertTextArt); + me.btnColorSchemas = new Common.UI.Button({ id : 'id-toolbar-btn-colorschemas', cls : 'btn-toolbar', @@ -982,6 +996,7 @@ define([ _injectComponent('#slot-btn-insertlink', this.btnInsertHyperlink); _injectComponent('#slot-btn-inserttable', this.btnInsertTable); _injectComponent('#slot-btn-insertchart', this.btnInsertChart); + _injectComponent('#slot-btn-instextart', this.btnInsertTextArt); _injectComponent('#slot-btn-colorschemas', this.btnColorSchemas); _injectComponent('#slot-btn-slidesize', this.btnSlideSize); _injectComponent('#slot-field-styles', this.listTheme); @@ -1014,15 +1029,13 @@ define([ }); me.btnsInsertText = _injectBtns({ - slot: '.slot-inserttext', + slot: '.slot-instext', btnconfig: { cls : 'btn-toolbar x-huge icon-top', iconCls : 'btn-text', caption : me.capInsertText, lock : [PE.enumLock.slideDeleted, PE.enumLock.lostConnect, PE.enumLock.noSlides, PE.enumLock.disableOnStart], - enableToggle: true, - split : true, - menu : true + enableToggle: true } }); @@ -1067,25 +1080,6 @@ define([ me.btnsInsertText.forEach(function (btn) { btn.updateHint(me.tipInsertText); - btn.setMenu( - new Common.UI.Menu({ - items: [ - {caption: me.textInsText, value: 'text'}, - {caption: me.textInsTextArt, value: 'art', - menu: new Common.UI.Menu({ - menuAlign: 'tl-tr', - cls: 'menu-shapes', - items: [ - {template: _.template('
')} - ] - }) - } - ] - }).on('item:click', function (menu, item, e) { - if (item.value == 'text') - me.fireEvent('insert:text', ['begin']); - }) - ); btn.on('click', function (btn, e) { me.fireEvent('insert:text', [btn.pressed ? 'begin' : 'end']); }); @@ -1134,6 +1128,7 @@ define([ this.btnInsertChart.updateHint(this.tipInsertChart); this.btnInsertEquation.updateHint(this.tipInsertEquation); this.btnInsertHyperlink.updateHint(this.tipInsertHyperlink + Common.Utils.String.platformKey('Ctrl+K')); + this.btnInsertTextArt.updateHint(this.tipInsertTextArt); this.btnColorSchemas.updateHint(this.tipColorSchemas); this.btnHide.updateHint(this.tipViewSettings); this.btnAdvSettings.updateHint(this.tipAdvSettings); @@ -1641,31 +1636,30 @@ define([ updateTextartMenu: function (collection) { var me = this; - me.btnsInsertText.forEach(function (btn) { - if ( btn.textartPicker ) { - if ( btn.textartPicker.store.size() == collection.size() ) { - btn.textartPicker.store.each(function (model, index) { - model.set('imageUrl', collection.at(index).get('imageUrl')); - }); - } else { - btn.textartPicker.store.reset( collection.models ); - } + var btn = me.btnInsertTextArt; + if ( btn.textartPicker ) { + if ( btn.textartPicker.store.size() == collection.size() ) { + btn.textartPicker.store.each(function (model, index) { + model.set('imageUrl', collection.at(index).get('imageUrl')); + }); } else { - btn.textartPicker = new Common.UI.DataView({ - el: $('.view-insert-art', btn.menu.items[1].$el), - store: collection, - parentMenu: btn.menu.items[1], - showLast: false, - itemTemplate: _.template('
') - }); - - btn.textartPicker.on('item:click', function(picker, item, record, e) { - me.fireEvent('insert:textart', [record.get('data')]); - - if (e.type !== 'click') this.menu.hide(); - }); + btn.textartPicker.store.reset( collection.models ); } - }); + } else { + btn.textartPicker = new Common.UI.DataView({ + el: $('#view-insert-art', btn.menu.$el), + store: collection, + parentMenu: btn.menu, + showLast: false, + itemTemplate: _.template('
') + }); + + btn.textartPicker.on('item:click', function(picker, item, record, e) { + me.fireEvent('insert:textart', [record.get('data')]); + + if (e.type !== 'click') this.menu.hide(); + }); + } }, updateAutoshapeMenu: function (collection) { @@ -1740,6 +1734,7 @@ define([ mniCustomTable: 'Insert Custom Table', tipInsertHyperlink: 'Add Hyperlink', tipInsertText: 'Insert Text', + tipInsertTextArt: 'Insert Text Art', tipInsertShape: 'Insert Autoshape', tipPreview: 'Start Slideshow', tipAddSlide: 'Add Slide', @@ -1817,7 +1812,8 @@ define([ tipInsertEquation: 'Insert Equation', textCharts: 'Charts', tipChangeChart: 'Change Chart Type', - capInsertText: 'Text Box', + capInsertText: 'Text', + capInsertTextArt: 'Text Art', capInsertImage: 'Picture', capInsertShape: 'Shape', capInsertTable: 'Table', diff --git a/apps/presentationeditor/main/locale/en.json b/apps/presentationeditor/main/locale/en.json index de56fd72f..b3d04ecb2 100644 --- a/apps/presentationeditor/main/locale/en.json +++ b/apps/presentationeditor/main/locale/en.json @@ -1306,7 +1306,8 @@ "PE.Views.Toolbar.textTitleError": "Error", "PE.Views.Toolbar.textUnderline": "Underline", "PE.Views.Toolbar.textZoom": "Zoom", - "PE.Views.Toolbar.capInsertText": "Text Box", + "PE.Views.Toolbar.capInsertText": "Text", + "PE.Views.Toolbar.capInsertTextArt": "Text Art", "PE.Views.Toolbar.capInsertImage": "Picture", "PE.Views.Toolbar.capInsertShape": "Shape", "PE.Views.Toolbar.capInsertTable": "Table", @@ -1340,6 +1341,7 @@ "PE.Views.Toolbar.tipInsertShape": "Insert Autoshape", "PE.Views.Toolbar.tipInsertTable": "Insert Table", "PE.Views.Toolbar.tipInsertText": "Insert Text", + "PE.Views.Toolbar.tipInsertTextArt": "Insert Text Art", "PE.Views.Toolbar.tipLineSpace": "Line Spacing", "PE.Views.Toolbar.tipMarkers": "Bullets", "del_PE.Views.Toolbar.tipNewDocument": "New Presentation", diff --git a/apps/spreadsheeteditor/main/app/controller/Toolbar.js b/apps/spreadsheeteditor/main/app/controller/Toolbar.js index e9082ccd3..80b10f1d2 100644 --- a/apps/spreadsheeteditor/main/app/controller/Toolbar.js +++ b/apps/spreadsheeteditor/main/app/controller/Toolbar.js @@ -263,7 +263,6 @@ define([ toolbar.btnInsertHyperlink.on('click', _.bind(this.onHyperlink, this)); toolbar.mnuInsertChartPicker.on('item:click', _.bind(this.onSelectChart, this)); toolbar.btnInsertText.on('click', _.bind(this.onBtnInsertTextClick, this)); - toolbar.btnInsertText.menu.on('item:click', _.bind(this.onInsertTextClick, this)); toolbar.btnInsertShape.menu.on('hide:after', _.bind(this.onInsertShapeHide, this)); toolbar.btnInsertEquation.on('click', _.bind(this.onInsertEquationClick, this)); toolbar.btnSortDown.on('click', _.bind(this.onSortType, this, Asc.c_oAscSortOptions.Ascending)); @@ -910,20 +909,6 @@ define([ Common.component.Analytics.trackEvent('ToolBar', 'Add Text'); }, - onInsertTextClick: function(menu, item, e) { - if (item.value === 'text') { - if (this.api) - this._addAutoshape(true, 'textRect'); - this.toolbar.btnInsertText.toggle(true, true); - - if (this.toolbar.btnInsertShape.pressed) - this.toolbar.btnInsertShape.toggle(false, true); - - Common.NotificationCenter.trigger('edit:complete', this.toolbar, this.toolbar.btnInsertShape); - Common.component.Analytics.trackEvent('ToolBar', 'Add Text'); - } - }, - onInsertShapeHide: function(btn, e) { if (this.toolbar.btnInsertShape.pressed && !this._isAddingShape) { this.toolbar.btnInsertShape.toggle(false, true); @@ -2383,11 +2368,11 @@ define([ }, fillTextArt: function() { - if (!this.toolbar.btnInsertText.rendered) return; + if (!this.toolbar.btnInsertTextArt.rendered) return; var me = this; - if (this.toolbar.mnuTextArtPicker) { + if ( this.toolbar.mnuTextArtPicker ) { var models = this.getApplication().getCollection('Common.Collections.TextArt').models, count = this.toolbar.mnuTextArtPicker.store.length; if (count>0 && count==models.length) { @@ -2400,27 +2385,28 @@ define([ } } else { this.toolbar.mnuTextArtPicker = new Common.UI.DataView({ - el: $('#id-toolbar-menu-insart'), + el: $('#id-toolbar-menu-insart', me.toolbar), store: this.getApplication().getCollection('Common.Collections.TextArt'), - parentMenu: this.toolbar.mnuInsertTextArt.menu, + // parentMenu: this.toolbar.mnuInsertTextArt.menu, showLast: false, itemTemplate: _.template('
') }); - this.toolbar.mnuTextArtPicker.on('item:click', function(picker, item, record, e) { - if (me.api) { + this.toolbar.mnuTextArtPicker.on('item:click', + function(picker, item, record, e) { me.toolbar.fireEvent('inserttextart', me.toolbar); me.api.asc_addTextArt(record.get('data')); - if (me.toolbar.btnInsertShape.pressed) + if ( me.toolbar.btnInsertShape.pressed ) me.toolbar.btnInsertShape.toggle(false, true); - if (e.type !== 'click') - me.toolbar.btnInsertText.menu.hide(); - Common.NotificationCenter.trigger('edit:complete', me.toolbar, me.toolbar.btnInsertText); + if ( e.type !== 'click' ) + me.toolbar.btnInsertTextArt.menu.hide(); + + Common.NotificationCenter.trigger('edit:complete', me.toolbar, me.toolbar.btnInsertTextArt); Common.component.Analytics.trackEvent('ToolBar', 'Add Text Art'); } - }); + ); } }, diff --git a/apps/spreadsheeteditor/main/app/template/Toolbar.template b/apps/spreadsheeteditor/main/app/template/Toolbar.template index 6cfbb24e4..f0ccaacbc 100644 --- a/apps/spreadsheeteditor/main/app/template/Toolbar.template +++ b/apps/spreadsheeteditor/main/app/template/Toolbar.template @@ -152,6 +152,7 @@ +
diff --git a/apps/spreadsheeteditor/main/app/view/Toolbar.js b/apps/spreadsheeteditor/main/app/view/Toolbar.js index b6a70c293..62666dacd 100644 --- a/apps/spreadsheeteditor/main/app/view/Toolbar.js +++ b/apps/spreadsheeteditor/main/app/view/Toolbar.js @@ -646,27 +646,23 @@ define([ }); me.btnInsertText = new Common.UI.Button({ - id : 'id-toolbar-btn-inserttext', - cls : 'btn-toolbar x-huge icon-top', + id : 'tlb-btn-inserttext', + cls : 'btn-toolbar x-huge icon-top', iconCls : 'btn-text', caption : me.capInsertText, lock : [_set.editCell, _set.selChartText, _set.selImage, _set.lostConnect, _set.coAuth], - enableToggle: true, - split : true, + enableToggle: true + }); + + me.btnInsertTextArt = new Common.UI.Button({ + id : 'tlb-btn-instextart', + cls : 'btn-toolbar x-huge icon-top', + iconCls : 'btn-textart', + caption : me.capInsertTextart, menu : new Common.UI.Menu({ - items : [ - {caption: this.textInsText, value: 'text'}, - this.mnuInsertTextArt = new Common.UI.MenuItem({ - caption: this.textInsTextArt, - value: 'art', - menu: new Common.UI.Menu({ - menuAlign: 'tl-tr', - cls: 'menu-shapes', - items: [ - { template: _.template('
') } - ] - }) - }) + cls: 'menu-shapes', + items: [ + {template: _.template('
')} ] }) }); @@ -1204,8 +1200,8 @@ define([ me.btnAlignCenter,me.btnAlignRight,me.btnAlignJust, me.btnVerticalAlign, me.btnAlignTop, me.btnAlignMiddle, me.btnAlignBottom, me.btnWrap, me.btnTextOrient, me.btnBackColor, me.btnMerge, me.btnInsertFormula, me.btnNamedRange, me.btnIncDecimal, me.btnInsertShape, me.btnInsertEquation, - me.btnInsertText, me.btnSortUp, me.btnSortDown, me.btnSetAutofilter, me.btnClearAutofilter, me.btnTableTemplate, - me.btnPercentStyle, me.btnCurrencyStyle, me.btnDecDecimal, me.btnAddCell, me.btnDeleteCell, + me.btnInsertText, me.btnInsertTextArt, me.btnSortUp, me.btnSortDown, me.btnSetAutofilter, me.btnClearAutofilter, + me.btnTableTemplate, me.btnPercentStyle, me.btnCurrencyStyle, me.btnDecDecimal, me.btnAddCell, me.btnDeleteCell, me.cmbNumberFormat, me.btnBorders, me.btnInsertImage, me.btnInsertHyperlink, me.btnInsertChart, me.btnColorSchemas, me.btnAutofilter, me.btnCopy, me.btnPaste, me.btnSettings, me.listStyles, me.btnPrint, me.btnShowMode, @@ -1214,8 +1210,8 @@ define([ var _temp_array = [me.cmbFontName, me.cmbFontSize, me.btnAlignLeft,me.btnAlignCenter,me.btnAlignRight,me.btnAlignJust,me.btnAlignTop, me.btnAlignMiddle, me.btnAlignBottom, me.btnHorizontalAlign, me.btnVerticalAlign, - me.btnInsertImage, me.btnInsertText, me.btnInsertShape, me.btnInsertEquation, me.btnIncFontSize, me.btnDecFontSize, - me.btnBold, me.btnItalic, me.btnUnderline, me.btnTextColor, me.btnBackColor, + me.btnInsertImage, me.btnInsertText, me.btnInsertTextArt, me.btnInsertShape, me.btnInsertEquation, me.btnIncFontSize, + me.btnDecFontSize, me.btnBold, me.btnItalic, me.btnUnderline, me.btnTextColor, me.btnBackColor, me.btnInsertHyperlink, me.btnBorders, me.btnTextOrient, me.btnPercentStyle, me.btnCurrencyStyle, me.btnColorSchemas, me.btnSettings, me.btnInsertFormula, me.btnNamedRange, me.btnDecDecimal, me.btnIncDecimal, me.cmbNumberFormat, me.btnWrap, me.btnInsertChart, me.btnMerge, me.btnAddCell, me.btnDeleteCell, me.btnShowMode, me.btnPrint, @@ -1327,6 +1323,7 @@ define([ _injectComponent('#slot-btn-inshyperlink', this.btnInsertHyperlink); _injectComponent('#slot-btn-insshape', this.btnInsertShape); _injectComponent('#slot-btn-instext', this.btnInsertText); + _injectComponent('#slot-btn-instextart', this.btnInsertTextArt); _injectComponent('#slot-btn-insequation', this.btnInsertEquation); _injectComponent('#slot-btn-sortdesc', this.btnSortDown); _injectComponent('#slot-btn-sortasc', this.btnSortUp); @@ -1393,6 +1390,7 @@ define([ _updateHint(this.btnInsertImage, this.tipInsertImage); _updateHint(this.btnInsertChart, this.tipInsertChartSpark); _updateHint(this.btnInsertText, this.tipInsertText); + _updateHint(this.btnInsertTextArt, this.tipInsertTextart); _updateHint(this.btnInsertHyperlink, this.tipInsertHyperlink + Common.Utils.String.platformKey('Ctrl+K')); _updateHint(this.btnInsertShape, this.tipInsertShape); _updateHint(this.btnInsertEquation, this.tipInsertEquation); @@ -1949,6 +1947,7 @@ define([ tipIncFont: 'Increment font size', tipDecFont: 'Decrement font size', tipInsertText: 'Insert Text', + tipInsertTextart: 'Insert Text Art', tipInsertShape: 'Insert Autoshape', tipDigStylePercent: 'Percent Style', // tipDigStyleCurrency:'Currency Style', @@ -2049,7 +2048,8 @@ define([ textSparks: 'Sparklines', tipInsertChartSpark: 'Insert Chart or Sparkline', textMoreFormats: 'More formats', - capInsertText: 'Text Box', + capInsertText: 'Text', + capInsertTextart: 'Text Art', capInsertImage: 'Picture', capInsertShape: 'Shape', capInsertChart: 'Chart', diff --git a/apps/spreadsheeteditor/main/locale/en.json b/apps/spreadsheeteditor/main/locale/en.json index 26abc0b90..174b386f0 100644 --- a/apps/spreadsheeteditor/main/locale/en.json +++ b/apps/spreadsheeteditor/main/locale/en.json @@ -1684,6 +1684,7 @@ "SSE.Views.Toolbar.tipInsertOpt": "Insert Cells", "SSE.Views.Toolbar.tipInsertShape": "Insert Autoshape", "SSE.Views.Toolbar.tipInsertText": "Insert Text", + "SSE.Views.Toolbar.tipInsertTextart": "Insert Text Art", "SSE.Views.Toolbar.tipMerge": "Merge", "del_SSE.Views.Toolbar.tipNewDocument": "New Document", "SSE.Views.Toolbar.tipNumFormat": "Number Format", @@ -1768,7 +1769,8 @@ "SSE.Views.Toolbar.txtTime": "Time", "SSE.Views.Toolbar.txtUnmerge": "Unmerge Cells", "SSE.Views.Toolbar.txtYen": "¥ Yen", - "SSE.Views.Toolbar.capInsertText": "Text Box", + "SSE.Views.Toolbar.capInsertText": "Text", + "SSE.Views.Toolbar.capInsertTextart": "Text Art", "SSE.Views.Toolbar.capInsertImage": "Picture", "SSE.Views.Toolbar.capInsertShape": "Shape", "SSE.Views.Toolbar.capInsertTable": "Table", From 773a2e210f7a3352ecd8ff1975cd281406f39672 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Wed, 2 Aug 2017 12:03:16 +0300 Subject: [PATCH 06/39] [PE] Fix Bug 35428. --- apps/presentationeditor/main/app/view/DocumentHolder.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/presentationeditor/main/app/view/DocumentHolder.js b/apps/presentationeditor/main/app/view/DocumentHolder.js index 71ec44c2c..975dff275 100644 --- a/apps/presentationeditor/main/app/view/DocumentHolder.js +++ b/apps/presentationeditor/main/app/view/DocumentHolder.js @@ -2678,7 +2678,7 @@ define([ } /** coauthoring begin **/ - menuAddCommentPara.setVisible(!isInChart && me.api.can_AddQuotedComment()!==false && me.mode.canCoAuthoring && me.mode.canComments); + menuAddCommentPara.setVisible(!isInChart && isInShape && me.api.can_AddQuotedComment()!==false && me.mode.canCoAuthoring && me.mode.canComments); /** coauthoring end **/ menuCommentParaSeparator.setVisible(/** coauthoring begin **/ menuAddCommentPara.isVisible() || /** coauthoring end **/ menuAddHyperlinkPara.isVisible() || menuHyperlinkPara.isVisible()); From cb5e41fa78a2349dd928d50839df37c4f24bdf23 Mon Sep 17 00:00:00 2001 From: Maxim Kadushkin Date: Wed, 2 Aug 2017 14:52:52 +0300 Subject: [PATCH 07/39] [Common] setCanRename caused a error before doc name label wasn't created --- apps/common/main/lib/view/Header.js | 42 ++++++++++++++++------------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/apps/common/main/lib/view/Header.js b/apps/common/main/lib/view/Header.js index 789ca9506..6d2728fb0 100644 --- a/apps/common/main/lib/view/Header.js +++ b/apps/common/main/lib/view/Header.js @@ -386,6 +386,14 @@ define([ 'keydown': onDocNameKeyDown.bind(this) }); + if ( this.documentCaption ) { + this.labelDocName.text( Common.Utils.String.htmlEncode(this.documentCaption) ); + } + + if ( !_.isUndefined(this.options.canRename) ) { + this.setCanRename(this.options.canRename); + } + $saveStatus = $html.find('#rib-save-status'); $saveStatus.hide(); @@ -431,11 +439,6 @@ define([ } } - if ( this.documentCaption ) { - $html.find('#rib-doc-name').text( - Common.Utils.String.htmlEncode(this.documentCaption) ); - } - $userList = $html.find('.cousers-list'); $panelUsers = $html.find('.box-cousers'); $btnUsers = $html.find('.btn-users'); @@ -518,19 +521,22 @@ define([ setCanRename: function (rename) { rename = false; - var me = this, - label = me.labelDocName; - if ( rename ) { - label.removeAttr('disabled').tooltip({ - title: me.txtRename, - placement: 'cursor'} - ); - } else { - label.attr('disabled', true); - var tip = label.data('bs.tooltip'); - if ( tip ) { - tip.options.title = ''; - tip.setContent(); + var me = this; + me.options.canRename = rename; + if ( me.labelDocName ) { + var label = me.labelDocName; + if ( rename ) { + label.removeAttr('disabled').tooltip({ + title: me.txtRename, + placement: 'cursor'} + ); + } else { + label.attr('disabled', true); + var tip = label.data('bs.tooltip'); + if ( tip ) { + tip.options.title = ''; + tip.setContent(); + } } } }, From f06a59f4efd021ced565a03872c52de40e1ec05b Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Wed, 2 Aug 2017 15:40:49 +0300 Subject: [PATCH 08/39] Fix Bug 35345. --- apps/documenteditor/main/app/view/ShapeSettings.js | 12 ++++++------ apps/documenteditor/main/app/view/TextArtSettings.js | 12 ++++++------ .../main/app/view/ShapeSettings.js | 12 ++++++------ .../main/app/view/TextArtSettings.js | 12 ++++++------ .../spreadsheeteditor/main/app/view/ShapeSettings.js | 12 ++++++------ .../main/app/view/TextArtSettings.js | 12 ++++++------ 6 files changed, 36 insertions(+), 36 deletions(-) diff --git a/apps/documenteditor/main/app/view/ShapeSettings.js b/apps/documenteditor/main/app/view/ShapeSettings.js index 75c136fe4..f6975dee3 100644 --- a/apps/documenteditor/main/app/view/ShapeSettings.js +++ b/apps/documenteditor/main/app/view/ShapeSettings.js @@ -551,7 +551,7 @@ define([ if (this.api && !this._noApply) { var props = new Asc.asc_CShapeProperty(); var stroke = new Asc.asc_CStroke(); - if (this.BorderSize<0.01) { + if (this.BorderSize<0.00001) { stroke.put_type( Asc.c_oAscStrokeType.STROKE_NONE); this._state.StrokeType = this._state.StrokeWidth = -1; } else { @@ -603,7 +603,7 @@ define([ if (this.api && !this._noApply) { var props = new Asc.asc_CShapeProperty(); var stroke = new Asc.asc_CStroke(); - if (this.BorderSize<0.01) { + if (this.BorderSize<0.00001) { stroke.put_type( Asc.c_oAscStrokeType.STROKE_NONE); } else { stroke.put_type( Asc.c_oAscStrokeType.STROKE_COLOR); @@ -624,7 +624,7 @@ define([ if (this.api && this.BorderSize>0 && !this._noApply) { var props = new Asc.asc_CShapeProperty(); var stroke = new Asc.asc_CStroke(); - if (this.BorderSize<0.01) { + if (this.BorderSize<0.00001) { stroke.put_type( Asc.c_oAscStrokeType.STROKE_NONE); } else { stroke.put_type( Asc.c_oAscStrokeType.STROKE_COLOR); @@ -1029,14 +1029,14 @@ define([ if (this._state.StrokeType !== strokeType || strokeType == Asc.c_oAscStrokeType.STROKE_COLOR) { if ( strokeType == Asc.c_oAscStrokeType.STROKE_COLOR ) { var w = stroke.get_width(); - var check_value = (Math.abs(this._state.StrokeWidth-w)<0.001) && !((new RegExp(this.txtPt + '\\s*$')).test(this.cmbBorderSize.getRawValue())); - if ( Math.abs(this._state.StrokeWidth-w)>0.001 || check_value || + var check_value = (Math.abs(this._state.StrokeWidth-w)<0.00001) && !((new RegExp(this.txtPt + '\\s*$')).test(this.cmbBorderSize.getRawValue())); + if ( Math.abs(this._state.StrokeWidth-w)>0.00001 || check_value || (this._state.StrokeWidth===null || w===null)&&(this._state.StrokeWidth!==w)) { this._state.StrokeWidth = w; if (w!==null) w = this._mm2pt(w); var _selectedItem = (w===null) ? w : _.find(this.cmbBorderSize.store.models, function(item) { - if ( witem.attributes.value-0.01) { + if ( witem.attributes.value-0.00001) { return true; } }); diff --git a/apps/documenteditor/main/app/view/TextArtSettings.js b/apps/documenteditor/main/app/view/TextArtSettings.js index 479909abb..35ec21de0 100644 --- a/apps/documenteditor/main/app/view/TextArtSettings.js +++ b/apps/documenteditor/main/app/view/TextArtSettings.js @@ -417,7 +417,7 @@ define([ if (this.api && !this._noApply) { var props = new Asc.asc_TextArtProperties(); var stroke = new Asc.asc_CStroke(); - if (this.BorderSize<0.01) { + if (this.BorderSize<0.00001) { stroke.put_type( Asc.c_oAscStrokeType.STROKE_NONE); this._state.StrokeType = this._state.StrokeWidth = -1; } else { @@ -469,7 +469,7 @@ define([ if (this.api && !this._noApply) { var props = new Asc.asc_TextArtProperties(); var stroke = new Asc.asc_CStroke(); - if (this.BorderSize<0.01) { + if (this.BorderSize<0.00001) { stroke.put_type( Asc.c_oAscStrokeType.STROKE_NONE); } else { stroke.put_type( Asc.c_oAscStrokeType.STROKE_COLOR); @@ -490,7 +490,7 @@ define([ if (this.api && this.BorderSize>0 && !this._noApply) { var props = new Asc.asc_TextArtProperties(); var stroke = new Asc.asc_CStroke(); - if (this.BorderSize<0.01) { + if (this.BorderSize<0.00001) { stroke.put_type( Asc.c_oAscStrokeType.STROKE_NONE); } else { stroke.put_type( Asc.c_oAscStrokeType.STROKE_COLOR); @@ -721,14 +721,14 @@ define([ if (this._state.StrokeType !== strokeType || strokeType == Asc.c_oAscStrokeType.STROKE_COLOR) { if ( strokeType == Asc.c_oAscStrokeType.STROKE_COLOR ) { var w = stroke.get_width(); - var check_value = (Math.abs(this._state.StrokeWidth-w)<0.001) && !((new RegExp(this.txtPt + '\\s*$')).test(this.cmbBorderSize.getRawValue())); - if ( Math.abs(this._state.StrokeWidth-w)>0.001 || check_value || + var check_value = (Math.abs(this._state.StrokeWidth-w)<0.00001) && !((new RegExp(this.txtPt + '\\s*$')).test(this.cmbBorderSize.getRawValue())); + if ( Math.abs(this._state.StrokeWidth-w)>0.00001 || check_value || (this._state.StrokeWidth===null || w===null)&&(this._state.StrokeWidth!==w)) { this._state.StrokeWidth = w; if (w!==null) w = this._mm2pt(w); var _selectedItem = (w===null) ? w : _.find(this.cmbBorderSize.store.models, function(item) { - if ( witem.attributes.value-0.01) { + if ( witem.attributes.value-0.00001) { return true; } }); diff --git a/apps/presentationeditor/main/app/view/ShapeSettings.js b/apps/presentationeditor/main/app/view/ShapeSettings.js index dadf43a91..e44ce7f15 100644 --- a/apps/presentationeditor/main/app/view/ShapeSettings.js +++ b/apps/presentationeditor/main/app/view/ShapeSettings.js @@ -531,7 +531,7 @@ define([ if (this.api && !this._noApply) { var props = new Asc.asc_CShapeProperty(); var stroke = new Asc.asc_CStroke(); - if (this.BorderSize<0.01) { + if (this.BorderSize<0.00001) { stroke.put_type( Asc.c_oAscStrokeType.STROKE_NONE); this._state.StrokeType = this._state.StrokeWidth = -1; } else { @@ -582,7 +582,7 @@ define([ if (this.api && !this._noApply) { var props = new Asc.asc_CShapeProperty(); var stroke = new Asc.asc_CStroke(); - if (this.BorderSize<0.01) { + if (this.BorderSize<0.00001) { stroke.put_type( Asc.c_oAscStrokeType.STROKE_NONE); } else { stroke.put_type( Asc.c_oAscStrokeType.STROKE_COLOR); @@ -602,7 +602,7 @@ define([ if (this.api && this.BorderSize>0 && !this._noApply) { var props = new Asc.asc_CShapeProperty(); var stroke = new Asc.asc_CStroke(); - if (this.BorderSize<0.01) { + if (this.BorderSize<0.00001) { stroke.put_type( Asc.c_oAscStrokeType.STROKE_NONE); } else { stroke.put_type( Asc.c_oAscStrokeType.STROKE_COLOR); @@ -942,14 +942,14 @@ define([ if (this._state.StrokeType !== strokeType || strokeType == Asc.c_oAscStrokeType.STROKE_COLOR) { if ( strokeType == Asc.c_oAscStrokeType.STROKE_COLOR ) { var w = stroke.get_width(); - var check_value = (Math.abs(this._state.StrokeWidth-w)<0.001) && !((new RegExp(this.txtPt + '\\s*$')).test(this.cmbBorderSize.getRawValue())); - if ( Math.abs(this._state.StrokeWidth-w)>0.001 || check_value || + var check_value = (Math.abs(this._state.StrokeWidth-w)<0.00001) && !((new RegExp(this.txtPt + '\\s*$')).test(this.cmbBorderSize.getRawValue())); + if ( Math.abs(this._state.StrokeWidth-w)>0.00001 || check_value || (this._state.StrokeWidth===null || w===null)&&(this._state.StrokeWidth!==w)) { this._state.StrokeWidth = w; if (w!==null) w = this._mm2pt(w); var _selectedItem = (w===null) ? w : _.find(this.cmbBorderSize.store.models, function(item) { - if ( witem.attributes.value-0.01) { + if ( witem.attributes.value-0.00001) { return true; } }); diff --git a/apps/presentationeditor/main/app/view/TextArtSettings.js b/apps/presentationeditor/main/app/view/TextArtSettings.js index a51b3d261..42b739c68 100644 --- a/apps/presentationeditor/main/app/view/TextArtSettings.js +++ b/apps/presentationeditor/main/app/view/TextArtSettings.js @@ -538,7 +538,7 @@ define([ if (this.api && !this._noApply) { var props = new Asc.asc_TextArtProperties(); var stroke = new Asc.asc_CStroke(); - if (this.BorderSize<0.01) { + if (this.BorderSize<0.00001) { stroke.put_type( Asc.c_oAscStrokeType.STROKE_NONE); this._state.StrokeType = this._state.StrokeWidth = -1; } else { @@ -590,7 +590,7 @@ define([ if (this.api && !this._noApply) { var props = new Asc.asc_TextArtProperties(); var stroke = new Asc.asc_CStroke(); - if (this.BorderSize<0.01) { + if (this.BorderSize<0.00001) { stroke.put_type( Asc.c_oAscStrokeType.STROKE_NONE); } else { stroke.put_type( Asc.c_oAscStrokeType.STROKE_COLOR); @@ -611,7 +611,7 @@ define([ if (this.api && this.BorderSize>0 && !this._noApply) { var props = new Asc.asc_TextArtProperties(); var stroke = new Asc.asc_CStroke(); - if (this.BorderSize<0.01) { + if (this.BorderSize<0.00001) { stroke.put_type( Asc.c_oAscStrokeType.STROKE_NONE); } else { stroke.put_type( Asc.c_oAscStrokeType.STROKE_COLOR); @@ -920,14 +920,14 @@ define([ if (this._state.StrokeType !== strokeType || strokeType == Asc.c_oAscStrokeType.STROKE_COLOR) { if ( strokeType == Asc.c_oAscStrokeType.STROKE_COLOR ) { var w = stroke.get_width(); - var check_value = (Math.abs(this._state.StrokeWidth-w)<0.001) && !((new RegExp(this.txtPt + '\\s*$')).test(this.cmbBorderSize.getRawValue())); - if ( Math.abs(this._state.StrokeWidth-w)>0.001 || check_value || + var check_value = (Math.abs(this._state.StrokeWidth-w)<0.00001) && !((new RegExp(this.txtPt + '\\s*$')).test(this.cmbBorderSize.getRawValue())); + if ( Math.abs(this._state.StrokeWidth-w)>0.00001 || check_value || (this._state.StrokeWidth===null || w===null)&&(this._state.StrokeWidth!==w)) { this._state.StrokeWidth = w; if (w!==null) w = this._mm2pt(w); var _selectedItem = (w===null) ? w : _.find(this.cmbBorderSize.store.models, function(item) { - if ( witem.attributes.value-0.01) { + if ( witem.attributes.value-0.00001) { return true; } }); diff --git a/apps/spreadsheeteditor/main/app/view/ShapeSettings.js b/apps/spreadsheeteditor/main/app/view/ShapeSettings.js index f11030b49..b6aa676e4 100644 --- a/apps/spreadsheeteditor/main/app/view/ShapeSettings.js +++ b/apps/spreadsheeteditor/main/app/view/ShapeSettings.js @@ -547,7 +547,7 @@ define([ if (this.api && !this._noApply) { var props = new Asc.asc_CShapeProperty(); var stroke = new Asc.asc_CStroke(); - if (this.BorderSize<0.01) { + if (this.BorderSize<0.00001) { stroke.asc_putType( Asc.c_oAscStrokeType.STROKE_NONE); this._state.StrokeType = this._state.StrokeWidth = -1; } else { @@ -599,7 +599,7 @@ define([ if (this.api && !this._noApply) { var props = new Asc.asc_CShapeProperty(); var stroke = new Asc.asc_CStroke(); - if (this.BorderSize<0.01) { + if (this.BorderSize<0.00001) { stroke.put_type( Asc.c_oAscStrokeType.STROKE_NONE); } else { stroke.put_type( Asc.c_oAscStrokeType.STROKE_COLOR); @@ -620,7 +620,7 @@ define([ if (this.api && this.BorderSize>0 && !this._noApply) { var props = new Asc.asc_CShapeProperty(); var stroke = new Asc.asc_CStroke(); - if (this.BorderSize<0.01) { + if (this.BorderSize<0.00001) { stroke.asc_putType( Asc.c_oAscStrokeType.STROKE_NONE); } else { stroke.asc_putType( Asc.c_oAscStrokeType.STROKE_COLOR); @@ -966,14 +966,14 @@ define([ if (this._state.StrokeType !== strokeType || strokeType == Asc.c_oAscStrokeType.STROKE_COLOR) { if ( strokeType == Asc.c_oAscStrokeType.STROKE_COLOR ) { var w = stroke.asc_getWidth(); - var check_value = (Math.abs(this._state.StrokeWidth-w)<0.001) && !((new RegExp(this.txtPt + '\\s*$')).test(this.cmbBorderSize.getRawValue())); - if ( Math.abs(this._state.StrokeWidth-w)>0.001 || check_value || + var check_value = (Math.abs(this._state.StrokeWidth-w)<0.00001) && !((new RegExp(this.txtPt + '\\s*$')).test(this.cmbBorderSize.getRawValue())); + if ( Math.abs(this._state.StrokeWidth-w)>0.00001 || check_value || (this._state.StrokeWidth===null || w===null)&&(this._state.StrokeWidth!==w)) { this._state.StrokeWidth = w; if (w!==null) w = this._mm2pt(w); var _selectedItem = (w===null) ? w : _.find(this.cmbBorderSize.store.models, function(item) { - if ( witem.attributes.value-0.01) { + if ( witem.attributes.value-0.00001) { return true; } }); diff --git a/apps/spreadsheeteditor/main/app/view/TextArtSettings.js b/apps/spreadsheeteditor/main/app/view/TextArtSettings.js index f31ebef90..0d0bb52fe 100644 --- a/apps/spreadsheeteditor/main/app/view/TextArtSettings.js +++ b/apps/spreadsheeteditor/main/app/view/TextArtSettings.js @@ -539,7 +539,7 @@ define([ if (this.api && !this._noApply) { var props = new Asc.asc_TextArtProperties(); var stroke = new Asc.asc_CStroke(); - if (this.BorderSize<0.01) { + if (this.BorderSize<0.00001) { stroke.asc_putType( Asc.c_oAscStrokeType.STROKE_NONE); this._state.StrokeType = this._state.StrokeWidth = -1; } else { @@ -591,7 +591,7 @@ define([ if (this.api && !this._noApply) { var props = new Asc.asc_TextArtProperties(); var stroke = new Asc.asc_CStroke(); - if (this.BorderSize<0.01) { + if (this.BorderSize<0.00001) { stroke.put_type( Asc.c_oAscStrokeType.STROKE_NONE); } else { stroke.put_type( Asc.c_oAscStrokeType.STROKE_COLOR); @@ -612,7 +612,7 @@ define([ if (this.api && this.BorderSize>0 && !this._noApply) { var props = new Asc.asc_TextArtProperties(); var stroke = new Asc.asc_CStroke(); - if (this.BorderSize<0.01) { + if (this.BorderSize<0.00001) { stroke.asc_putType( Asc.c_oAscStrokeType.STROKE_NONE); } else { stroke.asc_putType( Asc.c_oAscStrokeType.STROKE_COLOR); @@ -924,14 +924,14 @@ define([ if (this._state.StrokeType !== strokeType || strokeType == Asc.c_oAscStrokeType.STROKE_COLOR) { if ( strokeType == Asc.c_oAscStrokeType.STROKE_COLOR ) { var w = stroke.asc_getWidth(); - var check_value = (Math.abs(this._state.StrokeWidth-w)<0.001) && !((new RegExp(this.txtPt + '\\s*$')).test(this.cmbBorderSize.getRawValue())); - if ( Math.abs(this._state.StrokeWidth-w)>0.001 || check_value || + var check_value = (Math.abs(this._state.StrokeWidth-w)<0.00001) && !((new RegExp(this.txtPt + '\\s*$')).test(this.cmbBorderSize.getRawValue())); + if ( Math.abs(this._state.StrokeWidth-w)>0.00001 || check_value || (this._state.StrokeWidth===null || w===null)&&(this._state.StrokeWidth!==w)) { this._state.StrokeWidth = w; if (w!==null) w = this._mm2pt(w); var _selectedItem = (w===null) ? w : _.find(this.cmbBorderSize.store.models, function(item) { - if ( witem.attributes.value-0.01) { + if ( witem.attributes.value-0.00001) { return true; } }); From bd5ae6e9021fc0e0f8d699420005f96d3ce36a94 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Wed, 2 Aug 2017 16:47:40 +0300 Subject: [PATCH 09/39] Update hint for Add Comment button. --- apps/common/main/lib/view/Comments.js | 3 ++- apps/documenteditor/main/app/controller/Toolbar.js | 2 +- apps/documenteditor/main/locale/en.json | 1 + apps/presentationeditor/main/app/controller/Toolbar.js | 2 +- apps/presentationeditor/main/locale/en.json | 1 + apps/spreadsheeteditor/main/app/controller/Toolbar.js | 2 +- apps/spreadsheeteditor/main/locale/en.json | 1 + 7 files changed, 8 insertions(+), 4 deletions(-) diff --git a/apps/common/main/lib/view/Comments.js b/apps/common/main/lib/view/Comments.js index c989f74ba..392d8931f 100644 --- a/apps/common/main/lib/view/Comments.js +++ b/apps/common/main/lib/view/Comments.js @@ -1413,6 +1413,7 @@ define([ textEnterCommentHint : 'Enter your comment here', textEdit : 'Edit', textAdd : "Add", - textOpenAgain : "Open Again" + textOpenAgain : "Open Again", + textHintAddComment : 'Add Comment' }, Common.Views.Comments || {})) }); \ No newline at end of file diff --git a/apps/documenteditor/main/app/controller/Toolbar.js b/apps/documenteditor/main/app/controller/Toolbar.js index 7d75a3952..b231f107a 100644 --- a/apps/documenteditor/main/app/controller/Toolbar.js +++ b/apps/documenteditor/main/app/controller/Toolbar.js @@ -2843,7 +2843,7 @@ define([ if ( this.btnsComment.length ) { var _comments = DE.getController('Common.Controllers.Comments').getView(); this.btnsComment.forEach(function (btn) { - btn.updateHint( _comments.textAddComment ); + btn.updateHint( _comments.textHintAddComment ); btn.on('click', function (btn, e) { Common.NotificationCenter.trigger('app:comment:add', 'toolbar'); }); diff --git a/apps/documenteditor/main/locale/en.json b/apps/documenteditor/main/locale/en.json index 1e6773723..82e44c406 100644 --- a/apps/documenteditor/main/locale/en.json +++ b/apps/documenteditor/main/locale/en.json @@ -121,6 +121,7 @@ "Common.Views.Comments.textComments": "Comments", "Common.Views.Comments.textEdit": "OK", "Common.Views.Comments.textEnterCommentHint": "Enter your comment here", + "Common.Views.Comments.textHintAddComment": "Add Comment", "Common.Views.Comments.textOpenAgain": "Open Again", "Common.Views.Comments.textReply": "Reply", "Common.Views.Comments.textResolve": "Resolve", diff --git a/apps/presentationeditor/main/app/controller/Toolbar.js b/apps/presentationeditor/main/app/controller/Toolbar.js index 4fa491458..ac19c1092 100644 --- a/apps/presentationeditor/main/app/controller/Toolbar.js +++ b/apps/presentationeditor/main/app/controller/Toolbar.js @@ -2073,7 +2073,7 @@ define([ var _comments = PE.getController('Common.Controllers.Comments').getView(); Array.prototype.push.apply(me.toolbar.lockControls, this.btnsComment); this.btnsComment.forEach(function (btn) { - btn.updateHint( _comments.textAddComment ); + btn.updateHint( _comments.textHintAddComment ); btn.on('click', function (btn, e) { Common.NotificationCenter.trigger('app:comment:add', 'toolbar'); }); diff --git a/apps/presentationeditor/main/locale/en.json b/apps/presentationeditor/main/locale/en.json index b3d04ecb2..9eca34025 100644 --- a/apps/presentationeditor/main/locale/en.json +++ b/apps/presentationeditor/main/locale/en.json @@ -63,6 +63,7 @@ "Common.Views.Comments.textComments": "Comments", "Common.Views.Comments.textEdit": "OK", "Common.Views.Comments.textEnterCommentHint": "Enter your comment here", + "Common.Views.Comments.textHintAddComment": "Add Comment", "Common.Views.Comments.textOpenAgain": "Open Again", "Common.Views.Comments.textReply": "Reply", "Common.Views.Comments.textResolve": "Resolve", diff --git a/apps/spreadsheeteditor/main/app/controller/Toolbar.js b/apps/spreadsheeteditor/main/app/controller/Toolbar.js index 80b10f1d2..415a0364c 100644 --- a/apps/spreadsheeteditor/main/app/controller/Toolbar.js +++ b/apps/spreadsheeteditor/main/app/controller/Toolbar.js @@ -2922,7 +2922,7 @@ define([ var _comments = SSE.getController('Common.Controllers.Comments').getView(); Array.prototype.push.apply(me.toolbar.lockControls, this.btnsComment); this.btnsComment.forEach(function (btn) { - btn.updateHint( _comments.textAddComment ); + btn.updateHint( _comments.textHintAddComment ); btn.on('click', function (btn, e) { Common.NotificationCenter.trigger('app:comment:add', 'toolbar', me.api.asc_getCellInfo().asc_getFlags().asc_getSelectionType() != Asc.c_oAscSelectionType.RangeCells); }); diff --git a/apps/spreadsheeteditor/main/locale/en.json b/apps/spreadsheeteditor/main/locale/en.json index 174b386f0..e3a29aa0c 100644 --- a/apps/spreadsheeteditor/main/locale/en.json +++ b/apps/spreadsheeteditor/main/locale/en.json @@ -60,6 +60,7 @@ "Common.Views.Comments.textComments": "Comments", "Common.Views.Comments.textEdit": "OK", "Common.Views.Comments.textEnterCommentHint": "Enter your comment here", + "Common.Views.Comments.textHintAddComment": "Add Comment", "Common.Views.Comments.textOpenAgain": "Open Again", "Common.Views.Comments.textReply": "Reply", "Common.Views.Comments.textResolve": "Resolve", From a01cf3f689610a718a77080cf3e4681291dcad98 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Thu, 3 Aug 2017 12:31:44 +0300 Subject: [PATCH 10/39] Update translations. --- apps/documenteditor/main/locale/en.json | 115 +++++++++--------- .../main/app/view/Toolbar.js | 2 - apps/presentationeditor/main/locale/en.json | 73 +++++------ .../main/app/view/Toolbar.js | 2 - apps/spreadsheeteditor/main/locale/en.json | 48 +++----- 5 files changed, 103 insertions(+), 137 deletions(-) diff --git a/apps/documenteditor/main/locale/en.json b/apps/documenteditor/main/locale/en.json index 82e44c406..626c051da 100644 --- a/apps/documenteditor/main/locale/en.json +++ b/apps/documenteditor/main/locale/en.json @@ -140,21 +140,19 @@ "Common.Views.ExternalMergeEditor.textClose": "Close", "Common.Views.ExternalMergeEditor.textSave": "Save & Exit", "Common.Views.ExternalMergeEditor.textTitle": "Mail Merge Recipients", - "del_Common.Views.Header.itemBackNewTab": "Open in New Tab", - "del_Common.Views.Header.itemBackCurrTab": "Open in Current Tab", - "Common.Views.Header.textSaveBegin": "Saving...", - "Common.Views.Header.textSaveEnd": "All changes saved", - "Common.Views.Header.textSaveChanged": "Modified", - "Common.Views.Header.textSaveExpander": "All changes saved", - "Common.Views.Header.textBack": "Go to Documents", - "Common.Views.Header.txtRename": "Rename", - "Common.Views.Header.txtAccessRights": "Change access rights", - "Common.Views.Header.tipAccessRights": "Manage document access rights", "Common.Views.Header.labelCoUsersDescr": "Document is currently being edited by several users.", - "Common.Views.Header.tipViewUsers": "View users and manage document access rights", + "Common.Views.Header.textBack": "Go to Documents", + "Common.Views.Header.textSaveBegin": "Saving...", + "Common.Views.Header.textSaveChanged": "Modified", + "Common.Views.Header.textSaveEnd": "All changes saved", + "Common.Views.Header.textSaveExpander": "All changes saved", + "Common.Views.Header.tipAccessRights": "Manage document access rights", "Common.Views.Header.tipDownload": "Download file", - "Common.Views.Header.tipPrint": "Print file", "Common.Views.Header.tipGoEdit": "Edit current file", + "Common.Views.Header.tipPrint": "Print file", + "Common.Views.Header.tipViewUsers": "View users and manage document access rights", + "Common.Views.Header.txtAccessRights": "Change access rights", + "Common.Views.Header.txtRename": "Rename", "Common.Views.History.textCloseHistory": "Close History", "Common.Views.History.textHide": "Collapse", "Common.Views.History.textHideAll": "Hide detailed changes", @@ -191,23 +189,23 @@ "Common.Views.RenameDialog.okButtonText": "Ok", "Common.Views.RenameDialog.textName": "File name", "Common.Views.RenameDialog.txtInvalidName": "The file name cannot contain any of the following characters: ", + "Common.Views.ReviewChanges.hintNext": "To Next Change", + "Common.Views.ReviewChanges.hintPrev": "To Previous Change", + "Common.Views.ReviewChanges.tipReview": "Review", + "Common.Views.ReviewChanges.tipSetDocLang": "Set Document Language", + "Common.Views.ReviewChanges.tipSetSpelling": "Spell checking", "Common.Views.ReviewChanges.txtAccept": "Accept", "Common.Views.ReviewChanges.txtAcceptAll": "Accept All Changes", "Common.Views.ReviewChanges.txtAcceptCurrent": "Accept Current Change", "Common.Views.ReviewChanges.txtClose": "Close", - "Common.Views.ReviewChanges.hintNext": "To Next Change", - "Common.Views.ReviewChanges.hintPrev": "To Previous Change", + "Common.Views.ReviewChanges.txtDocLang": "Language", + "Common.Views.ReviewChanges.txtNext": "Next", + "Common.Views.ReviewChanges.txtPrev": "Previous", "Common.Views.ReviewChanges.txtReject": "Reject", "Common.Views.ReviewChanges.txtRejectAll": "Reject All Changes", "Common.Views.ReviewChanges.txtRejectCurrent": "Reject Current Change", - "Common.Views.ReviewChanges.txtPrev": "Previous", - "Common.Views.ReviewChanges.txtNext": "Next", - "Common.Views.ReviewChanges.txtTurnon": "Turn On", "Common.Views.ReviewChanges.txtSpelling": "Spell checking", - "Common.Views.ReviewChanges.txtDocLang": "Language", - "Common.Views.ReviewChanges.tipReview": "Review", - "Common.Views.ReviewChanges.tipSetDocLang": "Set Document Language", - "Common.Views.ReviewChanges.tipSetSpelling": "Spell checking", + "Common.Views.ReviewChanges.txtTurnon": "Track Changes", "Common.Views.ReviewChangesDialog.textTitle": "Review Changes", "Common.Views.ReviewChangesDialog.txtAccept": "Accept", "Common.Views.ReviewChangesDialog.txtAcceptAll": "Accept All Changes", @@ -353,8 +351,8 @@ "DE.Controllers.Main.warnProcessRightsChange": "You have been denied the right to edit the file.", "DE.Controllers.Statusbar.textHasChanges": "New changes have been tracked", "DE.Controllers.Statusbar.textTrackChanges": "The document is opened with the Track Changes mode enabled", - "DE.Controllers.Statusbar.zoomText": "Zoom {0}%", "DE.Controllers.Statusbar.tipReview": "Review", + "DE.Controllers.Statusbar.zoomText": "Zoom {0}%", "DE.Controllers.Toolbar.confirmAddFontName": "The font you are going to save is not available on the current device.
The text style will be displayed using one of the system fonts, the saved font will be used when it is available.
Do you want to continue?", "DE.Controllers.Toolbar.confirmDeleteFootnotes": "Do you want to delete all footnotes?", "DE.Controllers.Toolbar.notcriticalErrorTitle": "Warning", @@ -1040,6 +1038,7 @@ "DE.Views.ImageSettings.textAdvanced": "Show advanced settings", "DE.Views.ImageSettings.textEdit": "Edit", "DE.Views.ImageSettings.textEditObject": "Edit Object", + "DE.Views.ImageSettings.textFitMargins": "Fit to Margin", "DE.Views.ImageSettings.textFromFile": "From File", "DE.Views.ImageSettings.textFromUrl": "From URL", "DE.Views.ImageSettings.textHeight": "Height", @@ -1055,7 +1054,6 @@ "DE.Views.ImageSettings.txtThrough": "Through", "DE.Views.ImageSettings.txtTight": "Tight", "DE.Views.ImageSettings.txtTopAndBottom": "Top and bottom", - "DE.Views.ImageSettings.textFitMargins": "Fit to Margin", "DE.Views.ImageSettingsAdvanced.cancelButtonText": "Cancel", "DE.Views.ImageSettingsAdvanced.okButtonText": "OK", "DE.Views.ImageSettingsAdvanced.strMargins": "Text Padding", @@ -1127,7 +1125,6 @@ "DE.Views.LeftMenu.tipAbout": "About", "DE.Views.LeftMenu.tipChat": "Chat", "DE.Views.LeftMenu.tipComments": "Comments", - "del_DE.Views.LeftMenu.tipFile": "File", "DE.Views.LeftMenu.tipPlugins": "Plugins", "DE.Views.LeftMenu.tipSearch": "Search", "DE.Views.LeftMenu.tipSupport": "Feedback & Support", @@ -1500,6 +1497,27 @@ "DE.Views.TextArtSettings.textTemplate": "Template", "DE.Views.TextArtSettings.textTransform": "Transform", "DE.Views.TextArtSettings.txtNoBorders": "No Line", + "DE.Views.Toolbar.capBtnColumns": "Columns", + "DE.Views.Toolbar.capBtnInsChart": "Chart", + "DE.Views.Toolbar.capBtnInsDropcap": "Drop Cap", + "DE.Views.Toolbar.capBtnInsEquation": "Equation", + "DE.Views.Toolbar.capBtnInsFootnote": "Footnote", + "DE.Views.Toolbar.capBtnInsHeader": "Header/Footer", + "DE.Views.Toolbar.capBtnInsImage": "Picture", + "DE.Views.Toolbar.capBtnInsLink": "Hyperlink", + "DE.Views.Toolbar.capBtnInsPagebreak": "Breaks", + "DE.Views.Toolbar.capBtnInsShape": "Shape", + "DE.Views.Toolbar.capBtnInsTable": "Table", + "DE.Views.Toolbar.capBtnInsTextart": "Text Art", + "DE.Views.Toolbar.capBtnInsTextbox": "Text", + "DE.Views.Toolbar.capBtnMargins": "Margins", + "DE.Views.Toolbar.capBtnPageOrient": "Orientation", + "DE.Views.Toolbar.capBtnPageSize": "Size", + "DE.Views.Toolbar.capImgAlign": "Align", + "DE.Views.Toolbar.capImgBackward": "Move backward", + "DE.Views.Toolbar.capImgForward": "Move forward", + "DE.Views.Toolbar.capImgGroup": "Group", + "DE.Views.Toolbar.capImgWrapping": "Wrapping", "DE.Views.Toolbar.mniCustomTable": "Insert Custom Table", "DE.Views.Toolbar.mniDelFootnote": "Delete All Footnotes", "DE.Views.Toolbar.mniEditDropCap": "Drop Cap Settings", @@ -1525,7 +1543,7 @@ "DE.Views.Toolbar.textColumnsRight": "Right", "DE.Views.Toolbar.textColumnsThree": "Three", "DE.Views.Toolbar.textColumnsTwo": "Two", - "DE.Views.Toolbar.textCompactView": "View Compact Toolbar", + "DE.Views.Toolbar.textCompactView": "Hide Toolbar", "DE.Views.Toolbar.textContPage": "Continuous Page", "DE.Views.Toolbar.textEvenPage": "Even Page", "DE.Views.Toolbar.textFitPage": "Fit to Page", @@ -1540,8 +1558,6 @@ "DE.Views.Toolbar.textInsertPageNumber": "Insert page number", "DE.Views.Toolbar.textInsPageBreak": "Insert Page Break", "DE.Views.Toolbar.textInsSectionBreak": "Insert Section Break", - "del_DE.Views.Toolbar.textInsText": "Insert text box", - "del_DE.Views.Toolbar.textInsTextArt": "Insert Text Art", "DE.Views.Toolbar.textInText": "In Text", "DE.Views.Toolbar.textItalic": "Italic", "DE.Views.Toolbar.textLandscape": "Landscape", @@ -1574,6 +1590,11 @@ "DE.Views.Toolbar.textSubscript": "Subscript", "DE.Views.Toolbar.textSuperscript": "Superscript", "DE.Views.Toolbar.textSurface": "Surface", + "DE.Views.Toolbar.textTabFile": "File", + "DE.Views.Toolbar.textTabHome": "Home", + "DE.Views.Toolbar.textTabInsert": "Insert", + "DE.Views.Toolbar.textTabLayout": "Layout", + "DE.Views.Toolbar.textTabReview": "Review", "DE.Views.Toolbar.textTitleError": "Error", "DE.Views.Toolbar.textToCurrent": "To current position", "DE.Views.Toolbar.textTop": "Top: ", @@ -1600,6 +1621,9 @@ "DE.Views.Toolbar.tipFontSize": "Font Size", "DE.Views.Toolbar.tipHAligh": "Horizontal Align", "DE.Views.Toolbar.tipHighlightColor": "Highlight Color", + "DE.Views.Toolbar.tipImgAlign": "Align objects", + "DE.Views.Toolbar.tipImgGroup": "Group objects", + "DE.Views.Toolbar.tipImgWrapping": "Wrap text", "DE.Views.Toolbar.tipIncFont": "Increment Font Size", "DE.Views.Toolbar.tipIncPrLeft": "Increase Indent", "DE.Views.Toolbar.tipInsertChart": "Insert Chart", @@ -1615,7 +1639,7 @@ "DE.Views.Toolbar.tipMailRecepients": "Mail Merge", "DE.Views.Toolbar.tipMarkers": "Bullets", "DE.Views.Toolbar.tipMultilevels": "Multilevel List", - "DE.Views.Toolbar.tipNotes": "Footnotes", + "DE.Views.Toolbar.tipNotes": "Insert or edit footnotes", "DE.Views.Toolbar.tipNumbers": "Numbering", "DE.Views.Toolbar.tipPageBreak": "Insert Page or Section break", "DE.Views.Toolbar.tipPageMargins": "Page Margins", @@ -1628,36 +1652,12 @@ "DE.Views.Toolbar.tipRedo": "Redo", "DE.Views.Toolbar.tipSave": "Save", "DE.Views.Toolbar.tipSaveCoauth": "Save your changes for the other users to see them.", + "DE.Views.Toolbar.tipSendBackward": "Send backward", + "DE.Views.Toolbar.tipSendForward": "Send forward", "DE.Views.Toolbar.tipShowHiddenChars": "Nonprinting Characters", "DE.Views.Toolbar.tipSynchronize": "The document has been changed by another user. Please click to save your changes and reload the updates.", "DE.Views.Toolbar.tipUndo": "Undo", "DE.Views.Toolbar.tipViewSettings": "View Settings", - "DE.Views.Toolbar.tipImgAlign": "Align objects", - "DE.Views.Toolbar.tipImgGroup": "Group objects", - "DE.Views.Toolbar.tipImgWrapping": "Wrap text", - "DE.Views.Toolbar.tipSendForward": "Send forward", - "DE.Views.Toolbar.tipSendBackward": "Send backward", - "DE.Views.Toolbar.capBtnInsPagebreak": "Page Break", - "DE.Views.Toolbar.capBtnInsImage": "Picture", - "DE.Views.Toolbar.capBtnInsTable": "Table", - "DE.Views.Toolbar.capBtnInsChart": "Chart", - "DE.Views.Toolbar.capBtnInsLink": "Hyperlink", - "DE.Views.Toolbar.capBtnInsShape": "Shape", - "DE.Views.Toolbar.capBtnInsTextbox": "Text", - "DE.Views.Toolbar.capBtnInsTextart": "Text Art", - "DE.Views.Toolbar.capBtnInsDropcap": "Drop Cap", - "DE.Views.Toolbar.capBtnInsFootnote": "Footnotes", - "DE.Views.Toolbar.capBtnInsEquation": "Equation", - "DE.Views.Toolbar.capBtnInsHeader": "Headers/Footers", - "DE.Views.Toolbar.capBtnColumns": "Columns", - "DE.Views.Toolbar.capBtnPageOrient": "Orientation", - "DE.Views.Toolbar.capBtnMargins": "Margins", - "DE.Views.Toolbar.capBtnPageSize": "Size", - "DE.Views.Toolbar.capImgAlign": "Align", - "DE.Views.Toolbar.capImgGroup": "Group", - "DE.Views.Toolbar.capImgForward": "Move forward", - "DE.Views.Toolbar.capImgBackward": "Move backward", - "DE.Views.Toolbar.capImgWrapping": "Wrapping", "DE.Views.Toolbar.txtScheme1": "Office", "DE.Views.Toolbar.txtScheme10": "Median", "DE.Views.Toolbar.txtScheme11": "Metro", @@ -1678,10 +1678,5 @@ "DE.Views.Toolbar.txtScheme6": "Concourse", "DE.Views.Toolbar.txtScheme7": "Equity", "DE.Views.Toolbar.txtScheme8": "Flow", - "DE.Views.Toolbar.txtScheme9": "Foundry", - "DE.Views.Toolbar.textTabFile": "File", - "DE.Views.Toolbar.textTabHome": "Home", - "DE.Views.Toolbar.textTabInsert": "Insert", - "DE.Views.Toolbar.textTabLayout": "Page Layout", - "DE.Views.Toolbar.textTabReview": "Review" + "DE.Views.Toolbar.txtScheme9": "Foundry" } \ No newline at end of file diff --git a/apps/presentationeditor/main/app/view/Toolbar.js b/apps/presentationeditor/main/app/view/Toolbar.js index 585ee0761..36f7c2c2e 100644 --- a/apps/presentationeditor/main/app/view/Toolbar.js +++ b/apps/presentationeditor/main/app/view/Toolbar.js @@ -1804,8 +1804,6 @@ define([ txtScheme21: 'Verve', tipSlideTheme: 'Slide Theme', tipSaveCoauth: 'Save your changes for the other users to see them.', - textInsText: 'Insert text box', - textInsTextArt: 'Insert Text Art', textShowBegin: 'Show from Beginning', textShowCurrent: 'Show from Current slide', textShowSettings: 'Show Settings', diff --git a/apps/presentationeditor/main/locale/en.json b/apps/presentationeditor/main/locale/en.json index 9eca34025..fd7ee4604 100644 --- a/apps/presentationeditor/main/locale/en.json +++ b/apps/presentationeditor/main/locale/en.json @@ -79,24 +79,19 @@ "Common.Views.ExternalDiagramEditor.textClose": "Close", "Common.Views.ExternalDiagramEditor.textSave": "Save & Exit", "Common.Views.ExternalDiagramEditor.textTitle": "Chart Editor", - "del_Common.Views.Header.openNewTabText": "Open in New Tab", - "del_Common.Views.Header.txtHeaderDeveloper": "DEVELOPER MODE", - "Common.Views.Header.txtRename": "Rename", - "del_Common.Views.Header.itemBackNewTab": "Open in New Tab", - "del_Common.Views.Header.itemBackCurrTab": "Open in Current Tab", - "Common.Views.Header.textSaveBegin": "Saving...", - "Common.Views.Header.textSaveEnd": "All changes saved", - "Common.Views.Header.textSaveChanged": "Modified", - "Common.Views.Header.textSaveExpander": "All changes saved", - "Common.Views.Header.textBack": "Go to Documents", - "Common.Views.Header.txtRename": "Rename", - "Common.Views.Header.txtAccessRights": "Change access rights", - "Common.Views.Header.tipAccessRights": "Manage document access rights", "Common.Views.Header.labelCoUsersDescr": "Document is currently being edited by several users.", - "Common.Views.Header.tipViewUsers": "View users and manage document access rights", + "Common.Views.Header.textBack": "Go to Documents", + "Common.Views.Header.textSaveBegin": "Saving...", + "Common.Views.Header.textSaveChanged": "Modified", + "Common.Views.Header.textSaveEnd": "All changes saved", + "Common.Views.Header.textSaveExpander": "All changes saved", + "Common.Views.Header.tipAccessRights": "Manage document access rights", "Common.Views.Header.tipDownload": "Download file", - "Common.Views.Header.tipPrint": "Print file", "Common.Views.Header.tipGoEdit": "Edit current file", + "Common.Views.Header.tipPrint": "Print file", + "Common.Views.Header.tipViewUsers": "View users and manage document access rights", + "Common.Views.Header.txtAccessRights": "Change access rights", + "Common.Views.Header.txtRename": "Rename", "Common.Views.ImageFromUrlDialog.cancelButtonText": "Cancel", "Common.Views.ImageFromUrlDialog.okButtonText": "OK", "Common.Views.ImageFromUrlDialog.textUrl": "Paste an image URL:", @@ -186,14 +181,11 @@ "PE.Controllers.Main.saveErrorText": "An error has occurred while saving the file", "PE.Controllers.Main.savePreparingText": "Preparing to save", "PE.Controllers.Main.savePreparingTitle": "Preparing to save. Please wait...", - "del_PE.Controllers.Main.saveTextText": "Saving presentation...", - "del_PE.Controllers.Main.saveTitleText": "Saving Presentation", "PE.Controllers.Main.splitDividerErrorText": "The number of rows must be a divisor of %1.", "PE.Controllers.Main.splitMaxColsErrorText": "The number of columns must be less than %1.", "PE.Controllers.Main.splitMaxRowsErrorText": "The number of rows must be less than %1.", "PE.Controllers.Main.textAnonymous": "Anonymous", "PE.Controllers.Main.textBuyNow": "Visit website", - "del_PE.Controllers.Main.textChangesSaved": "All changes saved", "PE.Controllers.Main.textCloseTip": "Click to close the tip", "PE.Controllers.Main.textContactUs": "Contact sales", "PE.Controllers.Main.textLoadingDocument": "Loading presentation", @@ -781,12 +773,12 @@ "PE.Views.DocumentHolder.txtShowPlaceholder": "Show placeholder", "PE.Views.DocumentHolder.txtShowTopLimit": "Show top limit", "PE.Views.DocumentHolder.txtSlide": "Slide", + "PE.Views.DocumentHolder.txtSlideHide": "Hide Slide", "PE.Views.DocumentHolder.txtStretchBrackets": "Stretch brackets", "PE.Views.DocumentHolder.txtTop": "Top", "PE.Views.DocumentHolder.txtUnderbar": "Bar under text", "PE.Views.DocumentHolder.txtUngroup": "Ungroup", "PE.Views.DocumentHolder.vertAlignText": "Vertical Alignment", - "PE.Views.DocumentHolder.txtSlideHide": "Hide Slide", "PE.Views.DocumentPreview.goToSlideText": "Go to Slide", "PE.Views.DocumentPreview.slideIndexText": "Slide {0} of {1}", "PE.Views.DocumentPreview.txtClose": "Close Slideshow", @@ -909,7 +901,6 @@ "PE.Views.LeftMenu.tipAbout": "About", "PE.Views.LeftMenu.tipChat": "Chat", "PE.Views.LeftMenu.tipComments": "Comments", - "del_PE.Views.LeftMenu.tipFile": "File", "PE.Views.LeftMenu.tipPlugins": "Plugins", "PE.Views.LeftMenu.tipSearch": "Search", "PE.Views.LeftMenu.tipSlides": "Slides", @@ -1139,18 +1130,13 @@ "PE.Views.Statusbar.tipAccessRights": "Manage document access rights", "PE.Views.Statusbar.tipFitPage": "Fit to Slide", "PE.Views.Statusbar.tipFitWidth": "Fit to Width", - "del_PE.Views.Statusbar.tipMoreUsers": "and %1 users.", "PE.Views.Statusbar.tipPreview": "Start Slideshow", - "del_PE.Views.Statusbar.tipShowUsers": "To see all users click the icon below.", - "del_PE.Views.Statusbar.tipUsers": "Document is currently being edited by several users.", - "del_PE.Views.Statusbar.tipViewUsers": "View users and manage document access rights", + "PE.Views.Statusbar.tipSetDocLang": "Set Document Language", + "PE.Views.Statusbar.tipSetLang": "Set Text Language", + "PE.Views.Statusbar.tipSetSpelling": "Spell checking", "PE.Views.Statusbar.tipZoomFactor": "Magnification", "PE.Views.Statusbar.tipZoomIn": "Zoom In", "PE.Views.Statusbar.tipZoomOut": "Zoom Out", - "PE.Views.Statusbar.tipSetLang": "Set Text Language", - "PE.Views.Statusbar.tipSetDocLang": "Set Document Language", - "PE.Views.Statusbar.tipSetSpelling": "Spell checking", - "del_PE.Views.Statusbar.txAccessRights": "Change access rights", "PE.Views.Statusbar.txtPageNumInvalid": "Invalid slide number", "PE.Views.TableSettings.deleteColumnText": "Delete Column", "PE.Views.TableSettings.deleteRowText": "Delete Row", @@ -1250,6 +1236,17 @@ "PE.Views.TextArtSettings.txtNoBorders": "No Line", "PE.Views.TextArtSettings.txtPapyrus": "Papyrus", "PE.Views.TextArtSettings.txtWood": "Wood", + "PE.Views.Toolbar.capAddSlide": "Add Slide", + "PE.Views.Toolbar.capInsertChart": "Chart", + "PE.Views.Toolbar.capInsertEquation": "Equation", + "PE.Views.Toolbar.capInsertHyperlink": "Hyperlink", + "PE.Views.Toolbar.capInsertImage": "Picture", + "PE.Views.Toolbar.capInsertShape": "Shape", + "PE.Views.Toolbar.capInsertTable": "Table", + "PE.Views.Toolbar.capInsertText": "Text Box", + "PE.Views.Toolbar.capTabFile": "File", + "PE.Views.Toolbar.capTabHome": "Home", + "PE.Views.Toolbar.capTabInsert": "Insert", "PE.Views.Toolbar.mniCustomTable": "Insert Custom Table", "PE.Views.Toolbar.mniImageFromFile": "Picture from File", "PE.Views.Toolbar.mniImageFromUrl": "Picture from URL", @@ -1279,8 +1276,8 @@ "PE.Views.Toolbar.textHideLines": "Hide Rulers", "PE.Views.Toolbar.textHideStatusBar": "Hide Status Bar", "PE.Views.Toolbar.textHideTitleBar": "Hide Title Bar", - "PE.Views.Toolbar.textInsText": "Insert text box", - "PE.Views.Toolbar.textInsTextArt": "Insert Text Art", + "del_PE.Views.Toolbar.textInsText": "Insert text box", + "del_PE.Views.Toolbar.textInsTextArt": "Insert Text Art", "PE.Views.Toolbar.textItalic": "Italic", "PE.Views.Toolbar.textLine": "Line", "PE.Views.Toolbar.textNewColor": "Custom Color", @@ -1300,25 +1297,13 @@ "PE.Views.Toolbar.textStrikeout": "Strikeout", "PE.Views.Toolbar.textSubscript": "Subscript", "PE.Views.Toolbar.textSuperscript": "Superscript", + "PE.Views.Toolbar.textSurface": "Surface", "PE.Views.Toolbar.textTabFile": "File", "PE.Views.Toolbar.textTabHome": "Home", "PE.Views.Toolbar.textTabInsert": "Insert", - "PE.Views.Toolbar.textSurface": "Surface", "PE.Views.Toolbar.textTitleError": "Error", "PE.Views.Toolbar.textUnderline": "Underline", "PE.Views.Toolbar.textZoom": "Zoom", - "PE.Views.Toolbar.capInsertText": "Text", - "PE.Views.Toolbar.capInsertTextArt": "Text Art", - "PE.Views.Toolbar.capInsertImage": "Picture", - "PE.Views.Toolbar.capInsertShape": "Shape", - "PE.Views.Toolbar.capInsertTable": "Table", - "PE.Views.Toolbar.capInsertChart": "Chart", - "PE.Views.Toolbar.capInsertHyperlink": "Hyperlink", - "PE.Views.Toolbar.capInsertEquation": "Equation", - "PE.Views.Toolbar.capAddSlide": "Add Slide", - "PE.Views.Toolbar.capTabFile": "File", - "PE.Views.Toolbar.capTabHome": "Home", - "PE.Views.Toolbar.capTabInsert": "Insert", "PE.Views.Toolbar.tipAddSlide": "Add Slide", "PE.Views.Toolbar.tipAdvSettings": "Advanced Settings", "PE.Views.Toolbar.tipBack": "Back", @@ -1345,9 +1330,7 @@ "PE.Views.Toolbar.tipInsertTextArt": "Insert Text Art", "PE.Views.Toolbar.tipLineSpace": "Line Spacing", "PE.Views.Toolbar.tipMarkers": "Bullets", - "del_PE.Views.Toolbar.tipNewDocument": "New Presentation", "PE.Views.Toolbar.tipNumbers": "Numbering", - "del_PE.Views.Toolbar.tipOpenDocument": "Open Presentation", "PE.Views.Toolbar.tipPaste": "Paste", "PE.Views.Toolbar.tipPreview": "Start Slideshow", "PE.Views.Toolbar.tipPrint": "Print", diff --git a/apps/spreadsheeteditor/main/app/view/Toolbar.js b/apps/spreadsheeteditor/main/app/view/Toolbar.js index 62666dacd..021165cb2 100644 --- a/apps/spreadsheeteditor/main/app/view/Toolbar.js +++ b/apps/spreadsheeteditor/main/app/view/Toolbar.js @@ -2030,8 +2030,6 @@ define([ txtNewRange: 'Define Name', txtManageRange: 'Name manager', txtPasteRange: 'Paste name', - textInsText: 'Insert text box', - textInsTextArt: 'Insert Text Art', textInsCharts: 'Charts', textLine: 'Line', textColumn: 'Column', diff --git a/apps/spreadsheeteditor/main/locale/en.json b/apps/spreadsheeteditor/main/locale/en.json index e3a29aa0c..da7577b0c 100644 --- a/apps/spreadsheeteditor/main/locale/en.json +++ b/apps/spreadsheeteditor/main/locale/en.json @@ -73,20 +73,19 @@ "Common.Views.CopyWarningDialog.textToPaste": "for Paste", "Common.Views.DocumentAccessDialog.textLoading": "Loading...", "Common.Views.DocumentAccessDialog.textTitle": "Sharing Settings", - "del_Common.Views.Header.openNewTabText": "Open in New Tab", - "Common.Views.Header.textSaveBegin": "Saving...", - "Common.Views.Header.textSaveEnd": "All changes saved", - "Common.Views.Header.textSaveChanged": "Modified", - "Common.Views.Header.textSaveExpander": "All changes saved", - "Common.Views.Header.textBack": "Go to Documents", - "Common.Views.Header.txtRename": "Rename", - "Common.Views.Header.txtAccessRights": "Change access rights", - "Common.Views.Header.tipAccessRights": "Manage document access rights", "Common.Views.Header.labelCoUsersDescr": "Document is currently being edited by several users.", - "Common.Views.Header.tipViewUsers": "View users and manage document access rights", + "Common.Views.Header.textBack": "Go to Documents", + "Common.Views.Header.textSaveBegin": "Saving...", + "Common.Views.Header.textSaveChanged": "Modified", + "Common.Views.Header.textSaveEnd": "All changes saved", + "Common.Views.Header.textSaveExpander": "All changes saved", + "Common.Views.Header.tipAccessRights": "Manage document access rights", "Common.Views.Header.tipDownload": "Download file", - "Common.Views.Header.tipPrint": "Print file", "Common.Views.Header.tipGoEdit": "Edit current file", + "Common.Views.Header.tipPrint": "Print file", + "Common.Views.Header.tipViewUsers": "View users and manage document access rights", + "Common.Views.Header.txtAccessRights": "Change access rights", + "Common.Views.Header.txtRename": "Rename", "Common.Views.ImageFromUrlDialog.cancelButtonText": "Cancel", "Common.Views.ImageFromUrlDialog.okButtonText": "OK", "Common.Views.ImageFromUrlDialog.textUrl": "Paste an image URL:", @@ -1476,18 +1475,14 @@ "SSE.Views.Statusbar.textNewColor": "Add New Custom Color", "SSE.Views.Statusbar.textNoColor": "No Color", "SSE.Views.Statusbar.textSum": "SUM", - "del_SSE.Views.Statusbar.tipAccessRights": "Manage document access rights", "SSE.Views.Statusbar.tipAddTab": "Add worksheet", "SSE.Views.Statusbar.tipFirst": "Scroll to First Sheet", "SSE.Views.Statusbar.tipLast": "Scroll to Last Sheet", "SSE.Views.Statusbar.tipNext": "Scroll Sheet List Right", "SSE.Views.Statusbar.tipPrev": "Scroll Sheet List Left", - "del_SSE.Views.Statusbar.tipUsers": "Document is currently being edited by several users.", - "del_SSE.Views.Statusbar.tipViewUsers": "View users and manage document access rights", "SSE.Views.Statusbar.tipZoomFactor": "Magnification", "SSE.Views.Statusbar.tipZoomIn": "Zoom In", "SSE.Views.Statusbar.tipZoomOut": "Zoom Out", - "del_SSE.Views.Statusbar.txAccessRights": "Change access rights", "SSE.Views.Statusbar.zoomText": "Zoom {0}%", "SSE.Views.TableOptionsDialog.errorAutoFilterDataRange": "The operation could not be done for the selected range of cells.
Select a uniform data range different from the existing one and try again.", "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.", @@ -1582,6 +1577,13 @@ "SSE.Views.TextArtSettings.txtNoBorders": "No Line", "SSE.Views.TextArtSettings.txtPapyrus": "Papyrus", "SSE.Views.TextArtSettings.txtWood": "Wood", + "SSE.Views.Toolbar.capInsertChart": "Chart", + "SSE.Views.Toolbar.capInsertEquation": "Equation", + "SSE.Views.Toolbar.capInsertHyperlink": "Hyperlink", + "SSE.Views.Toolbar.capInsertImage": "Picture", + "SSE.Views.Toolbar.capInsertShape": "Shape", + "SSE.Views.Toolbar.capInsertTable": "Table", + "SSE.Views.Toolbar.capInsertText": "Text Box", "SSE.Views.Toolbar.mniImageFromFile": "Picture from File", "SSE.Views.Toolbar.mniImageFromUrl": "Picture from URL", "SSE.Views.Toolbar.textAlignBottom": "Align Bottom", @@ -1620,8 +1622,8 @@ "SSE.Views.Toolbar.textInsDown": "Shift Cells Down", "SSE.Views.Toolbar.textInsideBorders": "Inside Borders", "SSE.Views.Toolbar.textInsRight": "Shift Cells Right", - "SSE.Views.Toolbar.textInsText": "Insert text box", - "SSE.Views.Toolbar.textInsTextArt": "Insert Text Art", + "del_SSE.Views.Toolbar.textInsText": "Insert text box", + "del_SSE.Views.Toolbar.textInsTextArt": "Insert Text Art", "SSE.Views.Toolbar.textItalic": "Italic", "SSE.Views.Toolbar.textLeftBorders": "Left Borders", "SSE.Views.Toolbar.textLine": "Line", @@ -1640,10 +1642,10 @@ "SSE.Views.Toolbar.textRotateUp": "Rotate Text Up", "SSE.Views.Toolbar.textSparks": "Sparklines", "SSE.Views.Toolbar.textStock": "Stock", + "SSE.Views.Toolbar.textSurface": "Surface", "SSE.Views.Toolbar.textTabFile": "File", "SSE.Views.Toolbar.textTabHome": "Home", "SSE.Views.Toolbar.textTabInsert": "Insert", - "SSE.Views.Toolbar.textSurface": "Surface", "SSE.Views.Toolbar.textTopBorders": "Top Borders", "SSE.Views.Toolbar.textUnderline": "Underline", "SSE.Views.Toolbar.textWinLossSpark": "Win/Loss", @@ -1687,9 +1689,7 @@ "SSE.Views.Toolbar.tipInsertText": "Insert Text", "SSE.Views.Toolbar.tipInsertTextart": "Insert Text Art", "SSE.Views.Toolbar.tipMerge": "Merge", - "del_SSE.Views.Toolbar.tipNewDocument": "New Document", "SSE.Views.Toolbar.tipNumFormat": "Number Format", - "del_SSE.Views.Toolbar.tipOpenDocument": "Open Document", "SSE.Views.Toolbar.tipPaste": "Paste", "SSE.Views.Toolbar.tipPrColor": "Background Color", "SSE.Views.Toolbar.tipPrint": "Print", @@ -1770,14 +1770,6 @@ "SSE.Views.Toolbar.txtTime": "Time", "SSE.Views.Toolbar.txtUnmerge": "Unmerge Cells", "SSE.Views.Toolbar.txtYen": "¥ Yen", - "SSE.Views.Toolbar.capInsertText": "Text", - "SSE.Views.Toolbar.capInsertTextart": "Text Art", - "SSE.Views.Toolbar.capInsertImage": "Picture", - "SSE.Views.Toolbar.capInsertShape": "Shape", - "SSE.Views.Toolbar.capInsertTable": "Table", - "SSE.Views.Toolbar.capInsertChart": "Chart", - "SSE.Views.Toolbar.capInsertHyperlink": "Hyperlink", - "SSE.Views.Toolbar.capInsertEquation": "Equation", "SSE.Views.Top10FilterDialog.cancelButtonText": "Cancel", "SSE.Views.Top10FilterDialog.okButtonText": "OK", "SSE.Views.Top10FilterDialog.textType": "Show", From 1774b33b45fc27b2f620eafdaed6f5104b88a069 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Thu, 3 Aug 2017 16:36:14 +0300 Subject: [PATCH 11/39] [PE] Fix Bug 35510. --- apps/presentationeditor/main/app/view/Toolbar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/presentationeditor/main/app/view/Toolbar.js b/apps/presentationeditor/main/app/view/Toolbar.js index 36f7c2c2e..77e140ff3 100644 --- a/apps/presentationeditor/main/app/view/Toolbar.js +++ b/apps/presentationeditor/main/app/view/Toolbar.js @@ -794,7 +794,7 @@ define([ enableKeyEvents: true, itemHeight : 38, hint: this.tipSlideTheme, - lock: [_set.lostConnect, _set.noSlides], + lock: [_set.themeLock, _set.lostConnect, _set.noSlides], beforeOpenHandler: function(e) { var cmp = this, menu = cmp.openButton.menu, From 8130efcafb3bfdc556dd298295acd6a4b07a059a Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Thu, 3 Aug 2017 16:38:52 +0300 Subject: [PATCH 12/39] [Common] Split button: set different hints to main button and caret button. Neet to set hint: ['Main hint', 'Caret hint'] --- apps/common/main/lib/component/Button.js | 77 +++++++++++++++++++----- 1 file changed, 61 insertions(+), 16 deletions(-) diff --git a/apps/common/main/lib/component/Button.js b/apps/common/main/lib/component/Button.js index b33afb11a..7ac5773f1 100644 --- a/apps/common/main/lib/component/Button.js +++ b/apps/common/main/lib/component/Button.js @@ -296,14 +296,26 @@ define([ if (me.options.hint) { var modalParents = me.cmpEl.closest('.asc-window'); - me.cmpEl.attr('data-toggle', 'tooltip'); - me.cmpEl.tooltip({ - title : me.options.hint, + if (typeof me.options.hint == 'object' && me.options.hint.length>1 && $('button', el).length>0) { + var btnEl = $('button', el); + me.btnEl = $(btnEl[0]); + me.btnMenuEl = $(btnEl[1]); + } else { + me.btnEl = me.cmpEl; + me.btnEl.attr('data-toggle', 'tooltip'); + } + me.btnEl.tooltip({ + title : (typeof me.options.hint == 'string') ? me.options.hint : me.options.hint[0], + placement : me.options.hintAnchor||'cursor' + }); + me.btnMenuEl && me.btnMenuEl.tooltip({ + title : me.options.hint[1], placement : me.options.hintAnchor||'cursor' }); if (modalParents.length > 0) { - me.cmpEl.data('bs.tooltip').tip().css('z-index', parseInt(modalParents.css('z-index')) + 10); + me.btnEl.data('bs.tooltip').tip().css('z-index', parseInt(modalParents.css('z-index')) + 10); + me.btnMenuEl && me.btnMenuEl.data('bs.tooltip').tip().css('z-index', parseInt(modalParents.css('z-index')) + 10); } } @@ -315,7 +327,7 @@ define([ if (!me.disabled && e.which == 1) { me.doToggle(); if (me.options.hint) { - var tip = me.cmpEl.data('bs.tooltip'); + var tip = me.btnEl.data('bs.tooltip'); if (tip) { if (tip.dontShow===undefined) tip.dontShow = true; @@ -364,7 +376,7 @@ define([ if (!me.disabled && e.which == 1) { if (isSplit) { if (me.options.hint) { - var tip = me.cmpEl.data('bs.tooltip'); + var tip = (me.btnMenuEl ? me.btnMenuEl : me.btnEl).data('bs.tooltip'); if (tip) { if (tip.dontShow===undefined) tip.dontShow = true; @@ -500,12 +512,19 @@ define([ isGroup && decorateBtn(el.children('button')); } - if (disabled || !Common.Utils.isGecko) { - var tip = this.cmpEl.data('bs.tooltip'); + if ((disabled || !Common.Utils.isGecko) && this.options.hint) { + var tip = this.btnEl.data('bs.tooltip'); if (tip) { disabled && tip.hide(); !Common.Utils.isGecko && (tip.enabled = !disabled); } + if (this.btnMenuEl) { + tip = this.btnMenuEl.data('bs.tooltip'); + if (tip) { + disabled && tip.hide(); + !Common.Utils.isGecko && (tip.enabled = !disabled); + } + } } } @@ -537,24 +556,50 @@ define([ var cmpEl = this.cmpEl, modalParents = cmpEl.closest('.asc-window'); - if (cmpEl.data('bs.tooltip')) - cmpEl.removeData('bs.tooltip'); - cmpEl.attr('data-toggle', 'tooltip'); - cmpEl.tooltip({ - title : hint, - placement : this.options.hintAnchor || 'cursor' + + if (!this.btnEl) { + if (typeof this.options.hint == 'object' && this.options.hint.length>1 && $('button', cmpEl).length>0) { + var btnEl = $('button', cmpEl); + this.btnEl = $(btnEl[0]); + this.btnMenuEl = $(btnEl[1]); + } else { + this.btnEl = cmpEl; + this.btnEl.attr('data-toggle', 'tooltip'); + } + } + + if (this.btnEl.data('bs.tooltip')) + this.btnEl.removeData('bs.tooltip'); + if (this.btnMenuEl && this.btnMenuEl.data('bs.tooltip')) + this.btnMenuEl.removeData('bs.tooltip'); + + this.btnEl.tooltip({ + title : (typeof hint == 'string') ? hint : hint[0], + placement : this.options.hintAnchor||'cursor' + }); + this.btnMenuEl && this.btnMenuEl.tooltip({ + title : hint[1], + placement : this.options.hintAnchor||'cursor' }); if (modalParents.length > 0) { - cmpEl.data('bs.tooltip').tip().css('z-index', parseInt(modalParents.css('z-index')) + 10); + this.btnEl.data('bs.tooltip').tip().css('z-index', parseInt(modalParents.css('z-index')) + 10); + this.btnMenuEl && this.btnMenuEl.data('bs.tooltip').tip().css('z-index', parseInt(modalParents.css('z-index')) + 10); } if (this.disabled || !Common.Utils.isGecko) { - var tip = this.cmpEl.data('bs.tooltip'); + var tip = this.btnEl.data('bs.tooltip'); if (tip) { this.disabled && tip.hide(); !Common.Utils.isGecko && (tip.enabled = !this.disabled); } + if (this.btnMenuEl) { + tip = this.btnMenuEl.data('bs.tooltip'); + if (tip) { + this.disabled && tip.hide(); + !Common.Utils.isGecko && (tip.enabled = !this.disabled); + } + } } }, From 1873df91b2eb8fe05d964d68da3111de99223b33 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Thu, 3 Aug 2017 16:46:46 +0300 Subject: [PATCH 13/39] [DE] Fix Bug 35499. --- apps/common/main/lib/view/ReviewChanges.js | 6 +++++- apps/documenteditor/main/locale/en.json | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/apps/common/main/lib/view/ReviewChanges.js b/apps/common/main/lib/view/ReviewChanges.js index a52a4461b..5cbbfd27c 100644 --- a/apps/common/main/lib/view/ReviewChanges.js +++ b/apps/common/main/lib/view/ReviewChanges.js @@ -579,6 +579,7 @@ define([ ] }) ); + me.btnAccept.updateHint([me.txtAcceptCurrent, me.txtAcceptChanges]); me.btnReject.setMenu( new Common.UI.Menu({ @@ -594,6 +595,7 @@ define([ ] }) ); + me.btnReject.updateHint([me.txtRejectCurrent, me.txtRejectChanges]); me.btnAccept.setDisabled(config.isReviewOnly); me.btnReject.setDisabled(config.isReviewOnly); @@ -736,7 +738,9 @@ define([ txtDocLang: 'Language', tipSetDocLang: 'Set Document Language', tipSetSpelling: 'Spell checking', - tipReview: 'Review' + tipReview: 'Review', + txtAcceptChanges: 'Accept Changes', + txtRejectChanges: 'Reject Changes' } }()), Common.Views.ReviewChanges || {})); diff --git a/apps/documenteditor/main/locale/en.json b/apps/documenteditor/main/locale/en.json index 626c051da..76aec422d 100644 --- a/apps/documenteditor/main/locale/en.json +++ b/apps/documenteditor/main/locale/en.json @@ -197,6 +197,7 @@ "Common.Views.ReviewChanges.txtAccept": "Accept", "Common.Views.ReviewChanges.txtAcceptAll": "Accept All Changes", "Common.Views.ReviewChanges.txtAcceptCurrent": "Accept Current Change", + "Common.Views.ReviewChanges.txtAcceptChanges": "Accept Changes", "Common.Views.ReviewChanges.txtClose": "Close", "Common.Views.ReviewChanges.txtDocLang": "Language", "Common.Views.ReviewChanges.txtNext": "Next", @@ -204,6 +205,7 @@ "Common.Views.ReviewChanges.txtReject": "Reject", "Common.Views.ReviewChanges.txtRejectAll": "Reject All Changes", "Common.Views.ReviewChanges.txtRejectCurrent": "Reject Current Change", + "Common.Views.ReviewChanges.txtRejectChanges": "Reject Changes", "Common.Views.ReviewChanges.txtSpelling": "Spell checking", "Common.Views.ReviewChanges.txtTurnon": "Track Changes", "Common.Views.ReviewChangesDialog.textTitle": "Review Changes", From 29db9d54d9495199e287fb4f1fe8d2f5cdfbbb13 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Thu, 3 Aug 2017 17:04:20 +0300 Subject: [PATCH 14/39] [mobile] Update download icons. --- apps/documenteditor/mobile/resources/css/app-ios.css | 2 +- apps/documenteditor/mobile/resources/css/app-material.css | 2 +- apps/documenteditor/mobile/resources/less/ios/_icons.less | 2 +- apps/documenteditor/mobile/resources/less/material/_icons.less | 2 +- apps/presentationeditor/mobile/resources/css/app-ios.css | 2 +- apps/presentationeditor/mobile/resources/css/app-material.css | 2 +- apps/presentationeditor/mobile/resources/less/ios/_icons.less | 2 +- .../mobile/resources/less/material/_icons.less | 2 +- apps/spreadsheeteditor/mobile/resources/css/app-ios.css | 2 +- apps/spreadsheeteditor/mobile/resources/css/app-material.css | 2 +- apps/spreadsheeteditor/mobile/resources/less/ios/_icons.less | 2 +- .../mobile/resources/less/material/_icons.less | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/apps/documenteditor/mobile/resources/css/app-ios.css b/apps/documenteditor/mobile/resources/css/app-ios.css index f77a09901..714239efd 100644 --- a/apps/documenteditor/mobile/resources/css/app-ios.css +++ b/apps/documenteditor/mobile/resources/css/app-ios.css @@ -6344,7 +6344,7 @@ i.icon.icon-reader { i.icon.icon-download { width: 22px; height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-1%203%2022%2028%22%20fill%3D%22%234066D7%22%3E%3Cg%3E%3Cpolygon%20points%3D%2210%2C5.6%2010%2C21.2%2011%2C21.2%2011%2C5.6%2014.6%2C9.3%2015.3%2C8.5%2010.5%2C3.6%205.7%2C8.5%206.4%2C9.3%20%22%2F%3E%3Cpolygon%20points%3D%2213%2C12%2013%2C13%2019%2C13%2019%2C30%202%2C30%202%2C13%208%2C13%208%2C12%201%2C12%201%2C13%201%2C30%201%2C31%2020%2C31%2020%2C30%2020%2C13%2020%2C12%20%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-1%203%2022%2028%22%20y%3D%220px%22%20x%3D%220px%22%20fill%3D%22%234066D7%22%3E%3Cg%3E%3Cpolygon%20transform%3D%22rotate(180%2C10.5%2C12.4)%22%20points%3D%2210%2C21.2%2011%2C21.2%2011%2C5.6%2014.6%2C9.3%2015.3%2C8.5%2010.5%2C3.6%205.7%2C8.5%206.4%2C9.3%2010%2C5.6%20%22%20%2F%3E%3Cpolygon%20points%3D%2213%2C12%2013%2C13%2019%2C13%2019%2C30%202%2C30%202%2C13%208%2C13%208%2C12%201%2C12%201%2C13%201%2C30%201%2C31%2020%2C31%2020%2C30%2020%2C13%2020%2C12%20%20%22%20%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); } i.icon.icon-doc-setup { width: 22px; diff --git a/apps/documenteditor/mobile/resources/css/app-material.css b/apps/documenteditor/mobile/resources/css/app-material.css index 73f32ec09..02f6fc756 100644 --- a/apps/documenteditor/mobile/resources/css/app-material.css +++ b/apps/documenteditor/mobile/resources/css/app-material.css @@ -5933,7 +5933,7 @@ i.icon.icon-reader { i.icon.icon-download { width: 22px; height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-1%203%2022%2028%22%20fill%3D%22%235a7dc9%22%3E%3Cg%3E%3Cpolygon%20id%3D%22XMLID_3_%22%20points%3D%2210%2C5.6%2010%2C21.2%2011%2C21.2%2011%2C5.6%2014.6%2C9.3%2015.3%2C8.5%2010.5%2C3.6%205.7%2C8.5%206.4%2C9.3%20%09%22%2F%3E%3Cpolygon%20id%3D%22XMLID_6_%22%20points%3D%2213%2C12%2013%2C13%2019%2C13%2019%2C30%202%2C30%202%2C13%208%2C13%208%2C12%201%2C12%201%2C13%201%2C30%201%2C31%2020%2C31%2020%2C30%2020%2C13%2020%2C12%20%09%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-1%203%2022%2028%22%20y%3D%220px%22%20x%3D%220px%22%20fill%3D%22%235a7dc9%22%3E%3Cg%3E%3Cpolygon%20transform%3D%22rotate(180%2C10.5%2C12.4)%22%20points%3D%2210%2C21.2%2011%2C21.2%2011%2C5.6%2014.6%2C9.3%2015.3%2C8.5%2010.5%2C3.6%205.7%2C8.5%206.4%2C9.3%2010%2C5.6%20%22%20%2F%3E%3Cpolygon%20points%3D%2213%2C12%2013%2C13%2019%2C13%2019%2C30%202%2C30%202%2C13%208%2C13%208%2C12%201%2C12%201%2C13%201%2C30%201%2C31%2020%2C31%2020%2C30%2020%2C13%2020%2C12%20%20%22%20%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); } i.icon.icon-doc-setup { width: 22px; diff --git a/apps/documenteditor/mobile/resources/less/ios/_icons.less b/apps/documenteditor/mobile/resources/less/ios/_icons.less index e565afe24..d4667ebb4 100644 --- a/apps/documenteditor/mobile/resources/less/ios/_icons.less +++ b/apps/documenteditor/mobile/resources/less/ios/_icons.less @@ -33,7 +33,7 @@ i.icon { &.icon-download { width: 22px; height: 28px; - .encoded-svg-background(''); + .encoded-svg-background(''); } &.icon-doc-setup { width: 22px; diff --git a/apps/documenteditor/mobile/resources/less/material/_icons.less b/apps/documenteditor/mobile/resources/less/material/_icons.less index 76f6af8ba..10c6e9ed6 100644 --- a/apps/documenteditor/mobile/resources/less/material/_icons.less +++ b/apps/documenteditor/mobile/resources/less/material/_icons.less @@ -28,7 +28,7 @@ i.icon { &.icon-download { width: 22px; height: 28px; - .encoded-svg-background(''); + .encoded-svg-background(''); } &.icon-doc-setup { width: 22px; diff --git a/apps/presentationeditor/mobile/resources/css/app-ios.css b/apps/presentationeditor/mobile/resources/css/app-ios.css index dc6163967..c2dc39bd4 100644 --- a/apps/presentationeditor/mobile/resources/css/app-ios.css +++ b/apps/presentationeditor/mobile/resources/css/app-ios.css @@ -6308,7 +6308,7 @@ i.icon.icon-reader { i.icon.icon-download { width: 22px; height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%22-1%203%2022%2028%22%20fill%3D%22%23DF6737%22%3E%3Cg%3E%3Cpolygon%20points%3D%2210%2C5.6%2010%2C21.2%2011%2C21.2%2011%2C5.6%2014.6%2C9.3%2015.3%2C8.5%2010.5%2C3.6%205.7%2C8.5%206.4%2C9.3%20%09%22%2F%3E%3Cpolygon%20points%3D%2213%2C12%2013%2C13%2019%2C13%2019%2C30%202%2C30%202%2C13%208%2C13%208%2C12%201%2C12%201%2C13%201%2C30%201%2C31%2020%2C31%2020%2C30%2020%2C13%2020%2C12%20%09%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-1%203%2022%2028%22%20y%3D%220px%22%20x%3D%220px%22%20fill%3D%22%23DF6737%22%3E%3Cg%3E%3Cpolygon%20transform%3D%22rotate(180%2C10.5%2C12.4)%22%20points%3D%2210%2C21.2%2011%2C21.2%2011%2C5.6%2014.6%2C9.3%2015.3%2C8.5%2010.5%2C3.6%205.7%2C8.5%206.4%2C9.3%2010%2C5.6%20%22%20%2F%3E%3Cpolygon%20points%3D%2213%2C12%2013%2C13%2019%2C13%2019%2C30%202%2C30%202%2C13%208%2C13%208%2C12%201%2C12%201%2C13%201%2C30%201%2C31%2020%2C31%2020%2C30%2020%2C13%2020%2C12%20%20%22%20%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); } i.icon.icon-info { width: 22px; diff --git a/apps/presentationeditor/mobile/resources/css/app-material.css b/apps/presentationeditor/mobile/resources/css/app-material.css index ca0227416..704d501ad 100644 --- a/apps/presentationeditor/mobile/resources/css/app-material.css +++ b/apps/presentationeditor/mobile/resources/css/app-material.css @@ -5908,7 +5908,7 @@ i.icon.icon-reader { i.icon.icon-download { width: 22px; height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%22-1%203%2022%2028%22%20fill%3D%22%23DF6737%22%3E%3Cg%3E%3Cpolygon%20id%3D%22XMLID_3_%22%20points%3D%2210%2C5.6%2010%2C21.2%2011%2C21.2%2011%2C5.6%2014.6%2C9.3%2015.3%2C8.5%2010.5%2C3.6%205.7%2C8.5%206.4%2C9.3%20%09%22%2F%3E%3Cpolygon%20id%3D%22XMLID_6_%22%20points%3D%2213%2C12%2013%2C13%2019%2C13%2019%2C30%202%2C30%202%2C13%208%2C13%208%2C12%201%2C12%201%2C13%201%2C30%201%2C31%2020%2C31%2020%2C30%2020%2C13%2020%2C12%20%09%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-1%203%2022%2028%22%20y%3D%220px%22%20x%3D%220px%22%20fill%3D%22%23DF6737%22%3E%3Cg%3E%3Cpolygon%20transform%3D%22rotate(180%2C10.5%2C12.4)%22%20points%3D%2210%2C21.2%2011%2C21.2%2011%2C5.6%2014.6%2C9.3%2015.3%2C8.5%2010.5%2C3.6%205.7%2C8.5%206.4%2C9.3%2010%2C5.6%20%22%20%2F%3E%3Cpolygon%20points%3D%2213%2C12%2013%2C13%2019%2C13%2019%2C30%202%2C30%202%2C13%208%2C13%208%2C12%201%2C12%201%2C13%201%2C30%201%2C31%2020%2C31%2020%2C30%2020%2C13%2020%2C12%20%20%22%20%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); } i.icon.icon-info { width: 22px; diff --git a/apps/presentationeditor/mobile/resources/less/ios/_icons.less b/apps/presentationeditor/mobile/resources/less/ios/_icons.less index b537ac67a..448b344b4 100644 --- a/apps/presentationeditor/mobile/resources/less/ios/_icons.less +++ b/apps/presentationeditor/mobile/resources/less/ios/_icons.less @@ -38,7 +38,7 @@ i.icon { &.icon-download { width: 22px; height: 28px; - .encoded-svg-background(''); + .encoded-svg-background(''); } &.icon-info { width: 22px; diff --git a/apps/presentationeditor/mobile/resources/less/material/_icons.less b/apps/presentationeditor/mobile/resources/less/material/_icons.less index 46e478b9d..9c645a0f5 100644 --- a/apps/presentationeditor/mobile/resources/less/material/_icons.less +++ b/apps/presentationeditor/mobile/resources/less/material/_icons.less @@ -33,7 +33,7 @@ i.icon { &.icon-download { width: 22px; height: 28px; - .encoded-svg-background(''); + .encoded-svg-background(''); } &.icon-info { width: 22px; diff --git a/apps/spreadsheeteditor/mobile/resources/css/app-ios.css b/apps/spreadsheeteditor/mobile/resources/css/app-ios.css index 104467890..7406378ee 100644 --- a/apps/spreadsheeteditor/mobile/resources/css/app-ios.css +++ b/apps/spreadsheeteditor/mobile/resources/css/app-ios.css @@ -6267,7 +6267,7 @@ i.icon.icon-reader { i.icon.icon-download { width: 22px; height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%22-1%203%2022%2028%22%20fill%3D%22%234F9E4F%22%3E%3Cg%3E%3Cpolygon%20points%3D%2210%2C5.6%2010%2C21.2%2011%2C21.2%2011%2C5.6%2014.6%2C9.3%2015.3%2C8.5%2010.5%2C3.6%205.7%2C8.5%206.4%2C9.3%20%09%22%2F%3E%3Cpolygon%20points%3D%2213%2C12%2013%2C13%2019%2C13%2019%2C30%202%2C30%202%2C13%208%2C13%208%2C12%201%2C12%201%2C13%201%2C30%201%2C31%2020%2C31%2020%2C30%2020%2C13%2020%2C12%20%09%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-1%203%2022%2028%22%20y%3D%220px%22%20x%3D%220px%22%20fill%3D%22%234F9E4F%22%3E%3Cg%3E%3Cpolygon%20transform%3D%22rotate(180%2C10.5%2C12.4)%22%20points%3D%2210%2C21.2%2011%2C21.2%2011%2C5.6%2014.6%2C9.3%2015.3%2C8.5%2010.5%2C3.6%205.7%2C8.5%206.4%2C9.3%2010%2C5.6%20%22%20%2F%3E%3Cpolygon%20points%3D%2213%2C12%2013%2C13%2019%2C13%2019%2C30%202%2C30%202%2C13%208%2C13%208%2C12%201%2C12%201%2C13%201%2C30%201%2C31%2020%2C31%2020%2C30%2020%2C13%2020%2C12%20%20%22%20%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); } i.icon.icon-info { width: 22px; diff --git a/apps/spreadsheeteditor/mobile/resources/css/app-material.css b/apps/spreadsheeteditor/mobile/resources/css/app-material.css index 1e6acc2fb..d0d3259ed 100644 --- a/apps/spreadsheeteditor/mobile/resources/css/app-material.css +++ b/apps/spreadsheeteditor/mobile/resources/css/app-material.css @@ -5943,7 +5943,7 @@ i.icon.icon-reader { i.icon.icon-download { width: 22px; height: 28px; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%22-1%203%2022%2028%22%20fill%3D%22%234F9E4F%22%3E%3Cg%3E%3Cpolygon%20id%3D%22XMLID_3_%22%20points%3D%2210%2C5.6%2010%2C21.2%2011%2C21.2%2011%2C5.6%2014.6%2C9.3%2015.3%2C8.5%2010.5%2C3.6%205.7%2C8.5%206.4%2C9.3%20%09%22%2F%3E%3Cpolygon%20id%3D%22XMLID_6_%22%20points%3D%2213%2C12%2013%2C13%2019%2C13%2019%2C30%202%2C30%202%2C13%208%2C13%208%2C12%201%2C12%201%2C13%201%2C30%201%2C31%2020%2C31%2020%2C30%2020%2C13%2020%2C12%20%09%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%22-1%203%2022%2028%22%20y%3D%220px%22%20x%3D%220px%22%20fill%3D%22%234F9E4F%22%3E%3Cg%3E%3Cpolygon%20transform%3D%22rotate(180%2C10.5%2C12.4)%22%20points%3D%2210%2C21.2%2011%2C21.2%2011%2C5.6%2014.6%2C9.3%2015.3%2C8.5%2010.5%2C3.6%205.7%2C8.5%206.4%2C9.3%2010%2C5.6%20%22%20%2F%3E%3Cpolygon%20points%3D%2213%2C12%2013%2C13%2019%2C13%2019%2C30%202%2C30%202%2C13%208%2C13%208%2C12%201%2C12%201%2C13%201%2C30%201%2C31%2020%2C31%2020%2C30%2020%2C13%2020%2C12%20%20%22%20%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); } i.icon.icon-info { width: 22px; diff --git a/apps/spreadsheeteditor/mobile/resources/less/ios/_icons.less b/apps/spreadsheeteditor/mobile/resources/less/ios/_icons.less index 35658a240..cf57f45dd 100644 --- a/apps/spreadsheeteditor/mobile/resources/less/ios/_icons.less +++ b/apps/spreadsheeteditor/mobile/resources/less/ios/_icons.less @@ -28,7 +28,7 @@ i.icon { &.icon-download { width: 22px; height: 28px; - .encoded-svg-background(''); + .encoded-svg-background(''); } &.icon-info { width: 22px; diff --git a/apps/spreadsheeteditor/mobile/resources/less/material/_icons.less b/apps/spreadsheeteditor/mobile/resources/less/material/_icons.less index 6c6e979c6..586a850ab 100644 --- a/apps/spreadsheeteditor/mobile/resources/less/material/_icons.less +++ b/apps/spreadsheeteditor/mobile/resources/less/material/_icons.less @@ -28,7 +28,7 @@ i.icon { &.icon-download { width: 22px; height: 28px; - .encoded-svg-background(''); + .encoded-svg-background(''); } &.icon-info { width: 22px; From b66fbdb59bf9b7f26e2ecd56b6bb83f8f8aabe27 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Thu, 3 Aug 2017 17:40:28 +0300 Subject: [PATCH 15/39] Fix Bug 35511. --- apps/spreadsheeteditor/main/app/controller/Toolbar.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/apps/spreadsheeteditor/main/app/controller/Toolbar.js b/apps/spreadsheeteditor/main/app/controller/Toolbar.js index 415a0364c..32490ca20 100644 --- a/apps/spreadsheeteditor/main/app/controller/Toolbar.js +++ b/apps/spreadsheeteditor/main/app/controller/Toolbar.js @@ -208,6 +208,10 @@ define([ * UI Events */ if ( me.appConfig.isEditDiagram ) { + toolbar.btnUndo.on('click', _.bind(this.onUndo, this)); + toolbar.btnRedo.on('click', _.bind(this.onRedo, this)); + toolbar.btnCopy.on('click', _.bind(this.onCopyPaste, this, true)); + toolbar.btnPaste.on('click', _.bind(this.onCopyPaste, this, false)); toolbar.btnInsertFormula.on('click', _.bind(this.onInsertFormulaMenu, this)); toolbar.btnInsertFormula.menu.on('item:click', _.bind(this.onInsertFormulaMenu, this)); toolbar.btnDecDecimal.on('click', _.bind(this.onDecrement, this)); @@ -219,6 +223,10 @@ define([ toolbar.btnEditChart.on('click', _.bind(this.onEditChart, this)); } else if ( me.appConfig.isEditMailMerge ) { + toolbar.btnUndo.on('click', _.bind(this.onUndo, this)); + toolbar.btnRedo.on('click', _.bind(this.onRedo, this)); + toolbar.btnCopy.on('click', _.bind(this.onCopyPaste, this, true)); + toolbar.btnPaste.on('click', _.bind(this.onCopyPaste, this, false)); toolbar.btnSearch.on('click', _.bind(this.onSearch, this)); toolbar.btnSortDown.on('click', _.bind(this.onSortType, this, Asc.c_oAscSortOptions.Ascending)); toolbar.btnSortUp.on('click', _.bind(this.onSortType, this, Asc.c_oAscSortOptions.Descending)); From 8a64cc883e56b1570749c21f737c4469027c463d Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Thu, 3 Aug 2017 17:43:43 +0300 Subject: [PATCH 16/39] [DE][PE] Fix bug with resizing diagram editor (change size of the main window and open diagram editor). --- apps/common/main/lib/component/Mixtbar.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/common/main/lib/component/Mixtbar.js b/apps/common/main/lib/component/Mixtbar.js index c51bbf694..cbee01232 100644 --- a/apps/common/main/lib/component/Mixtbar.js +++ b/apps/common/main/lib/component/Mixtbar.js @@ -264,6 +264,8 @@ define([ }, hasTabInvisible: function() { + if ($boxTabs.length<1) return false; + var _left_bound_ = Math.round($boxTabs.offset().left), _right_bound_ = Math.round(_left_bound_ + $boxTabs.width()); From 0a3b92e1ef7416b801a6c97f45b750f07848fdf4 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Fri, 4 Aug 2017 11:18:37 +0300 Subject: [PATCH 17/39] Fix Bug 35504. --- apps/common/main/lib/controller/Comments.js | 41 +++++++++++++++++---- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/apps/common/main/lib/controller/Comments.js b/apps/common/main/lib/controller/Comments.js index 4eb3dead9..3eb2c10e7 100644 --- a/apps/common/main/lib/controller/Comments.js +++ b/apps/common/main/lib/controller/Comments.js @@ -177,6 +177,7 @@ define([ comment.asc_putText(commentVal); comment.asc_putTime(this.utcDateToString(new Date())); + comment.asc_putOnlyOfficeTime(this.ooDateToString(new Date())); comment.asc_putUserId(this.currentUserId); comment.asc_putUserName(this.currentUserName); comment.asc_putSolved(false); @@ -212,6 +213,7 @@ define([ ascComment.asc_putText(comment.get('comment')); ascComment.asc_putQuoteText(comment.get('quote')); ascComment.asc_putTime(t.utcDateToString(new Date(comment.get('time')))); + ascComment.asc_putOnlyOfficeTime(t.ooDateToString(new Date(comment.get('time')))); ascComment.asc_putUserId(comment.get('userid')); ascComment.asc_putUserName(comment.get('username')); ascComment.asc_putSolved(!comment.get('resolved')); @@ -227,6 +229,7 @@ define([ if (addReply) { addReply.asc_putText(reply.get('reply')); addReply.asc_putTime(t.utcDateToString(new Date(reply.get('time')))); + addReply.asc_putOnlyOfficeTime(t.ooDateToString(new Date(reply.get('time')))); addReply.asc_putUserId(reply.get('userid')); addReply.asc_putUserName(reply.get('username')); @@ -300,6 +303,7 @@ define([ ascComment.asc_putText(commentVal); ascComment.asc_putQuoteText(comment.get('quote')); ascComment.asc_putTime(t.utcDateToString(new Date(comment.get('time')))); + ascComment.asc_putOnlyOfficeTime(t.ooDateToString(new Date(comment.get('time')))); ascComment.asc_putUserId(t.currentUserId); ascComment.asc_putUserName(t.currentUserName); ascComment.asc_putSolved(comment.get('resolved')); @@ -326,6 +330,7 @@ define([ if (addReply) { addReply.asc_putText(reply.get('reply')); addReply.asc_putTime(t.utcDateToString(new Date(reply.get('time')))); + addReply.asc_putOnlyOfficeTime(t.ooDateToString(new Date(reply.get('time')))); addReply.asc_putUserId(reply.get('userid')); addReply.asc_putUserName(reply.get('username')); @@ -354,6 +359,7 @@ define([ ascComment.asc_putText(comment.get('comment')); ascComment.asc_putQuoteText(comment.get('quote')); ascComment.asc_putTime(me.utcDateToString(new Date(comment.get('time')))); + ascComment.asc_putOnlyOfficeTime(me.ooDateToString(new Date(comment.get('time')))); ascComment.asc_putUserId(comment.get('userid')); ascComment.asc_putUserName(comment.get('username')); ascComment.asc_putSolved(comment.get('resolved')); @@ -379,6 +385,7 @@ define([ } addReply.asc_putTime(me.utcDateToString(new Date(reply.get('time')))); + addReply.asc_putOnlyOfficeTime(me.ooDateToString(new Date(reply.get('time')))); ascComment.asc_addReply(addReply); } @@ -414,6 +421,7 @@ define([ ascComment.asc_putText(comment.get('comment')); ascComment.asc_putQuoteText(comment.get('quote')); ascComment.asc_putTime(me.utcDateToString(new Date(comment.get('time')))); + ascComment.asc_putOnlyOfficeTime(me.ooDateToString(new Date(comment.get('time')))); ascComment.asc_putUserId(comment.get('userid')); ascComment.asc_putUserName(comment.get('username')); ascComment.asc_putSolved(comment.get('resolved')); @@ -430,6 +438,7 @@ define([ if (addReply) { addReply.asc_putText(reply.get('reply')); addReply.asc_putTime(me.utcDateToString(new Date(reply.get('time')))); + addReply.asc_putOnlyOfficeTime(me.ooDateToString(new Date(reply.get('time')))); addReply.asc_putUserId(reply.get('userid')); addReply.asc_putUserName(reply.get('username')); @@ -442,6 +451,7 @@ define([ if (addReply) { addReply.asc_putText(replyVal); addReply.asc_putTime(me.utcDateToString(new Date())); + addReply.asc_putOnlyOfficeTime(me.ooDateToString(new Date())); addReply.asc_putUserId(me.currentUserId); addReply.asc_putUserName(me.currentUserName); @@ -468,6 +478,7 @@ define([ ascComment.asc_putText(comment.get('comment')); ascComment.asc_putQuoteText(comment.get('quote')); ascComment.asc_putTime(me.utcDateToString(new Date(comment.get('time')))); + ascComment.asc_putOnlyOfficeTime(me.ooDateToString(new Date(comment.get('time')))); ascComment.asc_putUserId(comment.get('userid')); ascComment.asc_putUserName(comment.get('username')); ascComment.asc_putSolved(comment.get('resolved')); @@ -484,6 +495,7 @@ define([ if (addReply) { addReply.asc_putText(reply.get('reply')); addReply.asc_putTime(me.utcDateToString(new Date(reply.get('time')))); + addReply.asc_putOnlyOfficeTime(me.ooDateToString(new Date(reply.get('time')))); addReply.asc_putUserId(reply.get('userid')); addReply.asc_putUserName(reply.get('username')); @@ -666,8 +678,8 @@ define([ if (comment) { t = this; - date = (data.asc_getTime() == '') ? - new Date() : new Date(this.stringUtcToLocalDate(data.asc_getTime())); + date = (data.asc_getOnlyOfficeTime()) ? new Date(this.stringOOToLocalDate(data.asc_getOnlyOfficeTime())) : + ((data.asc_getTime() == '') ? new Date() : new Date(this.stringUtcToLocalDate(data.asc_getTime()))); comment.set('comment', data.asc_getText()); comment.set('userid', data.asc_getUserId()); @@ -684,8 +696,8 @@ define([ repliesCount = data.asc_getRepliesCount(); for (i = 0; i < repliesCount; ++i) { - dateReply = (data.asc_getReply(i).asc_getTime() == '') ? - new Date() : new Date(this.stringUtcToLocalDate(data.asc_getReply(i).asc_getTime())); + dateReply = (data.asc_getReply(i).asc_getOnlyOfficeTime()) ? new Date(this.stringOOToLocalDate(data.asc_getReply(i).asc_getOnlyOfficeTime())) : + ((data.asc_getReply(i).asc_getTime() == '') ? new Date() : new Date(this.stringUtcToLocalDate(data.asc_getReply(i).asc_getTime()))); replies.push(new Common.Models.Reply({ id : Common.UI.getId(), @@ -1030,7 +1042,8 @@ define([ // helpers readSDKComment: function (id, data) { - var date = (data.asc_getTime() == '') ? new Date() : new Date(this.stringUtcToLocalDate(data.asc_getTime())); + var date = (data.asc_getOnlyOfficeTime()) ? new Date(this.stringOOToLocalDate(data.asc_getOnlyOfficeTime())) : + ((data.asc_getTime() == '') ? new Date() : new Date(this.stringUtcToLocalDate(data.asc_getTime()))); var comment = new Common.Models.Comment({ uid : id, userid : data.asc_getUserId(), @@ -1067,8 +1080,8 @@ define([ var repliesCount = data.asc_getRepliesCount(); if (repliesCount) { for (i = 0; i < repliesCount; ++i) { - date = (data.asc_getReply(i).asc_getTime() == '') ? - new Date() : new Date(this.stringUtcToLocalDate(data.asc_getReply(i).asc_getTime())); + date = (data.asc_getReply(i).asc_getOnlyOfficeTime()) ? new Date(this.stringOOToLocalDate(data.asc_getReply(i).asc_getOnlyOfficeTime())) : + ((data.asc_getReply(i).asc_getTime() == '') ? new Date() : new Date(this.stringUtcToLocalDate(data.asc_getReply(i).asc_getTime()))); replies.push(new Common.Models.Reply({ id : Common.UI.getId(), @@ -1169,6 +1182,7 @@ define([ } comment.asc_putText(commentVal); comment.asc_putTime(this.utcDateToString(new Date())); + comment.asc_putOnlyOfficeTime(this.ooDateToString(new Date())); comment.asc_putUserId(this.currentUserId); comment.asc_putUserName(this.currentUserName); comment.asc_putSolved(false); @@ -1275,6 +1289,19 @@ define([ timeZoneOffsetInMs: (new Date()).getTimezoneOffset() * 60000, + stringOOToLocalDate: function (date) { + if (typeof date === 'string') + return parseInt(date); + + return 0; + }, + ooDateToString: function (date) { + if (Object.prototype.toString.call(date) === '[object Date]') + return (date.getTime()).toString(); + + return ''; + }, + stringUtcToLocalDate: function (date) { if (typeof date === 'string') return parseInt(date) + this.timeZoneOffsetInMs; From 70bd42d4f7283478491cda9e23cf42e105264b5f Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Fri, 4 Aug 2017 11:49:38 +0300 Subject: [PATCH 18/39] [PE] Fix Bug 35469, Fix Bug 35449. --- apps/presentationeditor/main/app/controller/Toolbar.js | 3 +-- apps/presentationeditor/main/app/view/Toolbar.js | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/presentationeditor/main/app/controller/Toolbar.js b/apps/presentationeditor/main/app/controller/Toolbar.js index ac19c1092..11e135ea6 100644 --- a/apps/presentationeditor/main/app/controller/Toolbar.js +++ b/apps/presentationeditor/main/app/controller/Toolbar.js @@ -635,7 +635,6 @@ define([ paragraph_locked = pr.get_Locked(); no_paragraph = false; no_text = false; - no_object = false; } else if (type == Asc.c_oAscTypeSelectElement.Slide) { slide_deleted = pr.get_LockDelete(); slide_layout_lock = pr.get_LockLayout(); @@ -679,7 +678,7 @@ define([ if (this._state.no_object !== no_object ) { if (this._state.activated) this._state.no_object = no_object; - this.toolbar.lockToolbar(PE.enumLock.noObjectSelected, no_object, {array: [me.toolbar.btnShapeAlign, me.toolbar.btnShapeArrange ]}); + this.toolbar.lockToolbar(PE.enumLock.noObjectSelected, no_object, {array: [me.toolbar.btnShapeAlign, me.toolbar.btnShapeArrange, me.toolbar.btnVerticalAlign ]}); } if (slide_layout_lock !== undefined && this._state.slidelayoutdisable !== slide_layout_lock ) { diff --git a/apps/presentationeditor/main/app/view/Toolbar.js b/apps/presentationeditor/main/app/view/Toolbar.js index 77e140ff3..4b0ba1f1d 100644 --- a/apps/presentationeditor/main/app/view/Toolbar.js +++ b/apps/presentationeditor/main/app/view/Toolbar.js @@ -466,7 +466,7 @@ define([ me.btnVerticalAlign = new Common.UI.Button({ id : 'id-toolbar-btn-valign', cls : 'btn-toolbar', - lock : [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noParagraphSelected], + lock : [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noParagraphSelected, _set.noObjectSelected], iconCls : 'btn-align-middle', icls : 'btn-align-middle', menu : new Common.UI.Menu({ From ceadc48c56980a265124f351c4855b769ee0a74e Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Fri, 4 Aug 2017 14:03:02 +0300 Subject: [PATCH 19/39] [SSE] Fix Bug 35503. --- apps/spreadsheeteditor/main/app/controller/Toolbar.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/spreadsheeteditor/main/app/controller/Toolbar.js b/apps/spreadsheeteditor/main/app/controller/Toolbar.js index 32490ca20..fef094670 100644 --- a/apps/spreadsheeteditor/main/app/controller/Toolbar.js +++ b/apps/spreadsheeteditor/main/app/controller/Toolbar.js @@ -2393,9 +2393,9 @@ define([ } } else { this.toolbar.mnuTextArtPicker = new Common.UI.DataView({ - el: $('#id-toolbar-menu-insart', me.toolbar), + el: $('#id-toolbar-menu-insart'), store: this.getApplication().getCollection('Common.Collections.TextArt'), - // parentMenu: this.toolbar.mnuInsertTextArt.menu, + parentMenu: this.toolbar.btnInsertTextArt.menu, showLast: false, itemTemplate: _.template('
') }); From 6899a941cad2032b01adce8cb13c55056d78f4d8 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Fri, 4 Aug 2017 14:24:30 +0300 Subject: [PATCH 20/39] Fix Bug 35415. --- apps/documenteditor/main/app/view/ImageSettingsAdvanced.js | 6 ++++-- apps/documenteditor/main/locale/en.json | 1 + .../main/app/view/ShapeSettingsAdvanced.js | 2 ++ .../main/app/view/ShapeSettingsAdvanced.js | 2 ++ 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/apps/documenteditor/main/app/view/ImageSettingsAdvanced.js b/apps/documenteditor/main/app/view/ImageSettingsAdvanced.js index fffc08013..080d8b8ea 100644 --- a/apps/documenteditor/main/app/view/ImageSettingsAdvanced.js +++ b/apps/documenteditor/main/app/view/ImageSettingsAdvanced.js @@ -66,7 +66,7 @@ define([ 'text!documenteditor/main/app/template/ImageSettingsAdvanced.templat {panelId: 'id-adv-shape-size', panelCaption: this.textSize}, {panelId: 'id-adv-image-wrap', panelCaption: this.textBtnWrap}, {panelId: 'id-adv-image-position', panelCaption: this.textPosition}, - {panelId: 'id-adv-image-shape', panelCaption: this.textShape}, + {panelId: 'id-adv-image-shape', panelCaption: this.textWeightArrows}, {panelId: 'id-adv-image-margins', panelCaption: this.strMargins}, {panelId: 'id-adv-image-alttext', panelCaption: this.textAlt} ], @@ -1334,6 +1334,7 @@ define([ 'text!documenteditor/main/app/template/ImageSettingsAdvanced.templat } this.btnsCategory[5].setDisabled(null === margins); // Margins + this.btnsCategory[4].setDisabled(shapeprops.get_stroke().get_type() == Asc.c_oAscStrokeType.STROKE_NONE); // Weights & Arrows } else { value = props.asc_getLockAspect(); @@ -2031,7 +2032,8 @@ define([ 'text!documenteditor/main/app/template/ImageSettingsAdvanced.templat textAlt: 'Alternative Text', textAltTitle: 'Title', textAltDescription: 'Description', - textAltTip: 'The alternative text-based representation of the visual object information, which will be read to the people with vision or cognitive impairments to help them better understand what information there is in the image, autoshape, chart or table.' + textAltTip: 'The alternative text-based representation of the visual object information, which will be read to the people with vision or cognitive impairments to help them better understand what information there is in the image, autoshape, chart or table.', + textWeightArrows: 'Weights & Arrows' }, DE.Views.ImageSettingsAdvanced || {})); }); \ No newline at end of file diff --git a/apps/documenteditor/main/locale/en.json b/apps/documenteditor/main/locale/en.json index 76aec422d..3d1feb290 100644 --- a/apps/documenteditor/main/locale/en.json +++ b/apps/documenteditor/main/locale/en.json @@ -1115,6 +1115,7 @@ "DE.Views.ImageSettingsAdvanced.textTop": "Top", "DE.Views.ImageSettingsAdvanced.textTopMargin": "Top Margin", "DE.Views.ImageSettingsAdvanced.textVertical": "Vertical", + "DE.Views.ImageSettingsAdvanced.textWeightArrows": "Weights & Arrows", "DE.Views.ImageSettingsAdvanced.textWidth": "Width", "DE.Views.ImageSettingsAdvanced.textWrap": "Wrapping Style", "DE.Views.ImageSettingsAdvanced.textWrapBehindTooltip": "Behind", diff --git a/apps/presentationeditor/main/app/view/ShapeSettingsAdvanced.js b/apps/presentationeditor/main/app/view/ShapeSettingsAdvanced.js index a49e48575..b1144788e 100644 --- a/apps/presentationeditor/main/app/view/ShapeSettingsAdvanced.js +++ b/apps/presentationeditor/main/app/view/ShapeSettingsAdvanced.js @@ -538,6 +538,8 @@ define([ 'text!presentationeditor/main/app/template/ShapeSettingsAdvanced.tem if (props ){ var stroke = props.get_stroke(); if (stroke) { + this.btnsCategory[1].setDisabled(stroke.get_type() == Asc.c_oAscStrokeType.STROKE_NONE); // Weights & Arrows + var value = stroke.get_linejoin(); for (var i=0; i Date: Mon, 7 Aug 2017 12:23:03 +0300 Subject: [PATCH 21/39] [DE][PE] Change title for split cell dialog. --- apps/common/main/lib/view/InsertTableDialog.js | 8 +++++--- apps/documenteditor/main/app/view/DocumentHolder.js | 1 + apps/documenteditor/main/app/view/TableSettings.js | 1 + apps/documenteditor/main/locale/en.json | 1 + apps/presentationeditor/main/app/view/DocumentHolder.js | 1 + apps/presentationeditor/main/app/view/TableSettings.js | 1 + apps/presentationeditor/main/locale/en.json | 1 + 7 files changed, 11 insertions(+), 3 deletions(-) diff --git a/apps/common/main/lib/view/InsertTableDialog.js b/apps/common/main/lib/view/InsertTableDialog.js index 22655700a..0189aa7fc 100644 --- a/apps/common/main/lib/view/InsertTableDialog.js +++ b/apps/common/main/lib/view/InsertTableDialog.js @@ -51,7 +51,8 @@ define([ height: 170, header: false, style: 'min-width: 230px;', - cls: 'modal-dlg' + cls: 'modal-dlg', + split: false }, initialize : function(options) { @@ -59,7 +60,7 @@ define([ this.template = [ '
', - '

' + this.txtTitle + '

', + '

' + ((options.split) ? this.txtTitleSplit : this.txtTitle) + '

', '
', '
', '
', @@ -132,7 +133,8 @@ define([ return false; }, - txtTitle: 'Table size', + txtTitle: 'Table Size', + txtTitleSplit: 'Split Cell', txtColumns: 'Number of Columns', txtRows: 'Number of Rows', textInvalidRowsCols: 'You need to specify valid rows and columns count.', diff --git a/apps/documenteditor/main/app/view/DocumentHolder.js b/apps/documenteditor/main/app/view/DocumentHolder.js index b8a01d321..1608246f3 100644 --- a/apps/documenteditor/main/app/view/DocumentHolder.js +++ b/apps/documenteditor/main/app/view/DocumentHolder.js @@ -2308,6 +2308,7 @@ define([ }).on('click', function(item) { if (me.api){ (new Common.Views.InsertTableDialog({ + split: true, handler: function(result, value) { if (result == 'ok') { if (me.api) { diff --git a/apps/documenteditor/main/app/view/TableSettings.js b/apps/documenteditor/main/app/view/TableSettings.js index 9e0012375..cf0ecc039 100644 --- a/apps/documenteditor/main/app/view/TableSettings.js +++ b/apps/documenteditor/main/app/view/TableSettings.js @@ -237,6 +237,7 @@ define([ splitCells: function(menu, item, e) { var me = this; (new Common.Views.InsertTableDialog({ + split: true, handler: function(result, value) { if (result == 'ok') { if (me.api) { diff --git a/apps/documenteditor/main/locale/en.json b/apps/documenteditor/main/locale/en.json index 3d1feb290..9ccfc2422 100644 --- a/apps/documenteditor/main/locale/en.json +++ b/apps/documenteditor/main/locale/en.json @@ -172,6 +172,7 @@ "Common.Views.InsertTableDialog.txtMinText": "The minimum value for this field is {0}.", "Common.Views.InsertTableDialog.txtRows": "Number of Rows", "Common.Views.InsertTableDialog.txtTitle": "Table Size", + "Common.Views.InsertTableDialog.txtTitleSplit": "Split Cell", "Common.Views.LanguageDialog.btnCancel": "Cancel", "Common.Views.LanguageDialog.btnOk": "Ok", "Common.Views.LanguageDialog.labelSelect": "Select document language", diff --git a/apps/presentationeditor/main/app/view/DocumentHolder.js b/apps/presentationeditor/main/app/view/DocumentHolder.js index 975dff275..afd4eca2e 100644 --- a/apps/presentationeditor/main/app/view/DocumentHolder.js +++ b/apps/presentationeditor/main/app/view/DocumentHolder.js @@ -1915,6 +1915,7 @@ define([ }).on('click', function(item) { if (me.api) { (new Common.Views.InsertTableDialog({ + split: true, handler: function(result, value) { if (result == 'ok') { if (me.api) { diff --git a/apps/presentationeditor/main/app/view/TableSettings.js b/apps/presentationeditor/main/app/view/TableSettings.js index a03dc46be..bf751e82a 100644 --- a/apps/presentationeditor/main/app/view/TableSettings.js +++ b/apps/presentationeditor/main/app/view/TableSettings.js @@ -203,6 +203,7 @@ define([ splitCells: function(menu, item, e) { var me = this; (new Common.Views.InsertTableDialog({ + split: true, handler: function(result, value) { if (result == 'ok') { if (me.api) { diff --git a/apps/presentationeditor/main/locale/en.json b/apps/presentationeditor/main/locale/en.json index fd7ee4604..8448dd1e1 100644 --- a/apps/presentationeditor/main/locale/en.json +++ b/apps/presentationeditor/main/locale/en.json @@ -105,6 +105,7 @@ "Common.Views.InsertTableDialog.txtMinText": "The minimum value for this field is {0}.", "Common.Views.InsertTableDialog.txtRows": "Number of Rows", "Common.Views.InsertTableDialog.txtTitle": "Table Size", + "Common.Views.InsertTableDialog.txtTitleSplit": "Split Cell", "Common.Views.LanguageDialog.btnCancel": "Cancel", "Common.Views.LanguageDialog.btnOk": "Ok", "Common.Views.LanguageDialog.labelSelect": "Select document language", From 919cd331d589d1b68ae10e39cf6701619ce93650 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Mon, 7 Aug 2017 17:10:03 +0300 Subject: [PATCH 22/39] Fix bug in viewer. --- apps/common/main/lib/view/Header.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/common/main/lib/view/Header.js b/apps/common/main/lib/view/Header.js index 6d2728fb0..ea350e1f0 100644 --- a/apps/common/main/lib/view/Header.js +++ b/apps/common/main/lib/view/Header.js @@ -256,7 +256,7 @@ define([ if ( !mode.isEdit ) { if ( me.btnDownload ) { - me.btnDownload.updateHint(me.tipDowload); + me.btnDownload.updateHint(me.tipDownload); me.btnDownload.on('click', function (e) { me.fireEvent('downloadas', ['original']); }); From bca83ae1f331838c22cc5c5f7f58d2eba7a660a2 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Mon, 7 Aug 2017 17:20:17 +0300 Subject: [PATCH 23/39] [PE] Fix Bug 35477. --- .../main/app/collection/SlideThemes.js | 49 ++++++++++++++ .../main/app/controller/Toolbar.js | 29 +++++++-- .../main/app/view/DocumentHolder.js | 65 ++++++++++++++++++- apps/presentationeditor/main/locale/en.json | 1 + 4 files changed, 135 insertions(+), 9 deletions(-) create mode 100644 apps/presentationeditor/main/app/collection/SlideThemes.js diff --git a/apps/presentationeditor/main/app/collection/SlideThemes.js b/apps/presentationeditor/main/app/collection/SlideThemes.js new file mode 100644 index 000000000..4515c2722 --- /dev/null +++ b/apps/presentationeditor/main/app/collection/SlideThemes.js @@ -0,0 +1,49 @@ +/* + * + * (c) Copyright Ascensio System Limited 2010-2017 + * + * This program is a free software product. You can redistribute it and/or + * modify it under the terms of the GNU Affero General Public License (AGPL) + * version 3 as published by the Free Software Foundation. In accordance with + * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect + * that Ascensio System SIA expressly excludes the warranty of non-infringement + * of any third-party rights. + * + * This program is distributed WITHOUT ANY WARRANTY; without even the implied + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For + * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html + * + * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, + * EU, LV-1021. + * + * The interactive user interfaces in modified source and object code versions + * of the Program must display Appropriate Legal Notices, as required under + * Section 5 of the GNU AGPL version 3. + * + * Pursuant to Section 7(b) of the License you must retain the original Product + * logo when distributing the program. Pursuant to Section 7(e) we decline to + * grant you any rights under trademark law for use of our trademarks. + * + * All the Product's GUI elements, including illustrations and icon sets, as + * well as technical writing content are licensed under the terms of the + * Creative Commons Attribution-ShareAlike 4.0 International. See the License + * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode + * +*/ +/** + * SlideThemes.js + * + * Created by Julia Radzhabova on 8/07/17 + * Copyright (c) 2017 Ascensio System SIA. All rights reserved. + * + */ + +define([ + 'backbone' +], function(Backbone){ 'use strict'; + + PE.Collections = PE.Collections || {}; + + PE.Collections.SlideThemes = Backbone.Collection.extend({ + }); +}); diff --git a/apps/presentationeditor/main/app/controller/Toolbar.js b/apps/presentationeditor/main/app/controller/Toolbar.js index 11e135ea6..07eaa035f 100644 --- a/apps/presentationeditor/main/app/controller/Toolbar.js +++ b/apps/presentationeditor/main/app/controller/Toolbar.js @@ -48,6 +48,7 @@ define([ 'common/main/lib/view/ImageFromUrlDialog', 'common/main/lib/view/InsertTableDialog', 'common/main/lib/util/define', + 'presentationeditor/main/app/collection/SlideThemes', 'presentationeditor/main/app/view/Toolbar', 'presentationeditor/main/app/view/HyperlinkSettingsDialog', 'presentationeditor/main/app/view/SlideSizeSettings', @@ -56,7 +57,9 @@ define([ PE.Controllers.Toolbar = Backbone.Controller.extend(_.extend({ models: [], - collections: [], + collections: [ + 'SlideThemes' + ], views: [ 'Toolbar' ], @@ -1953,13 +1956,25 @@ define([ me.toolbar.listTheme.menuPicker.store.reset([]); // remove all - _.each(defaultThemes.concat(docThemes), function(theme) { - me.toolbar.listTheme.menuPicker.store.add({ - imageUrl: theme.get_Image(), - uid : Common.UI.getId(), - themeId : theme.get_Index() + var themeStore = this.getCollection('SlideThemes'); + if (themeStore) { + var arr = []; + _.each(defaultThemes.concat(docThemes), function(theme) { + arr.push(new Common.UI.DataViewModel({ + imageUrl: theme.get_Image(), + uid : Common.UI.getId(), + themeId : theme.get_Index(), + itemWidth : 85, + itemHeight : 38 + })); + me.toolbar.listTheme.menuPicker.store.add({ + imageUrl: theme.get_Image(), + uid : Common.UI.getId(), + themeId : theme.get_Index() + }); }); - }); + themeStore.reset(arr); + } if (me.toolbar.listTheme.menuPicker.store.length > 0 && me.toolbar.listTheme.rendered){ me.toolbar.listTheme.fillComboView(me.toolbar.listTheme.menuPicker.store.at(0), true); diff --git a/apps/presentationeditor/main/app/view/DocumentHolder.js b/apps/presentationeditor/main/app/view/DocumentHolder.js index afd4eca2e..0cd28182e 100644 --- a/apps/presentationeditor/main/app/view/DocumentHolder.js +++ b/apps/presentationeditor/main/app/view/DocumentHolder.js @@ -66,6 +66,7 @@ define([ me._currentParaObjDisabled = false; me._currentSpellObj = undefined; me._currLang = {}; + me._state = {}; /** coauthoring begin **/ var usersStore = PE.getCollection('Common.Collections.Users'); @@ -1472,6 +1473,18 @@ define([ me._isFromSlideMenu = number; }; + var onApiUpdateThemeIndex = function(v) { + me._state.themeId = v; + }; + + var onApiLockDocumentTheme = function() { + me._state.themeLock = true; + }; + + var onApiUnLockDocumentTheme = function() { + me._state.themeLock = false; + }; + this.setApi = function(o) { me.api = o; @@ -1501,6 +1514,9 @@ define([ me.api.asc_registerCallback('asc_onShowForeignCursorLabel', _.bind(onShowForeignCursorLabel, me)); me.api.asc_registerCallback('asc_onHideForeignCursorLabel', _.bind(onHideForeignCursorLabel, me)); me.api.asc_registerCallback('asc_onFocusObject', _.bind(onFocusObject, me)); + me.api.asc_registerCallback('asc_onUpdateThemeIndex', _.bind(onApiUpdateThemeIndex, me)); + me.api.asc_registerCallback('asc_onLockDocumentTheme', _.bind(onApiLockDocumentTheme, me)); + me.api.asc_registerCallback('asc_onUnLockDocumentTheme', _.bind(onApiUnLockDocumentTheme, me)); } return me; @@ -1739,6 +1755,16 @@ define([ }) }); + var mnuChangeTheme = new Common.UI.MenuItem({ + caption : me.txtChangeTheme, + menu : new Common.UI.Menu({ + menuAlign: 'tl-tr', + items: [ + { template: _.template('
') } + ] + }) + }); + var mnuPreview = new Common.UI.MenuItem({ caption : me.txtPreview }).on('click', function(item) { @@ -1792,10 +1818,11 @@ define([ mnuSlideHide.setChecked(value.isSlideHidden===true); me.slideMenu.items[5].setVisible(value.isSlideSelect===true || value.fromThumbs!==true); mnuChangeSlide.setVisible(value.isSlideSelect===true || value.fromThumbs!==true); + mnuChangeTheme.setVisible(value.isSlideSelect===true || value.fromThumbs!==true); menuSlideSettings.setVisible(value.fromThumbs!==true); menuSlideSettings.options.value = null; - for (var i = 8; i < 12; i++) { + for (var i = 9; i < 13; i++) { me.slideMenu.items[i].setVisible(value.fromThumbs===true); } @@ -1822,6 +1849,7 @@ define([ mnuSelectAll.setDisabled(locked || me.slidesCount<2); mnuDeleteSlide.setDisabled(lockedDeleted || locked); mnuChangeSlide.setDisabled(lockedLayout || locked); + mnuChangeTheme.setDisabled(me._state.themeLock || locked ); mnuSlideHide.setDisabled(lockedLayout || locked); }, items: [ @@ -1852,6 +1880,7 @@ define([ mnuSlideHide, {caption: '--'}, mnuChangeSlide, + mnuChangeTheme, menuSlideSettings, {caption: '--'}, mnuSelectAll, @@ -1901,6 +1930,37 @@ define([ me.listenTo(PE.getCollection('SlideLayouts'), 'reset', function() { me.slideLayoutMenu._needRecalcSlideLayout = true; }); + + me.slideThemeMenu = new Common.UI.DataView({ + el : $('#id-docholder-menu-changetheme'), + parentMenu : mnuChangeTheme.menu, + restoreHeight: 300, + style: 'max-height: 300px;', + store : PE.getCollection('SlideThemes'), + itemTemplate: _.template([ + '
', + '
', + '
' + ].join('')) + }).on('item:click', function(picker, item, record, e) { + if (me.api) { + me.api.ChangeTheme(record.get('themeId'), true); + if (e.type !== 'click') + me.slideMenu.hide(); + me.fireEvent('editcomplete', me); + Common.component.Analytics.trackEvent('DocumentHolder', 'Change Theme'); + } + }); + + if (me.slideMenu) { + mnuChangeTheme.menu.on('show:after', function (menu) { + var record = me.slideThemeMenu.store.findWhere({themeId: me._state.themeId}); + me.slideThemeMenu.selectRecord(record, true); + + me.slideThemeMenu.scroller.update({alwaysVisibleY: true}); + me.slideThemeMenu.scroller.scrollTop(0); + }); + } }); var mnuTableMerge = new Common.UI.MenuItem({ @@ -3219,7 +3279,8 @@ define([ spellcheckText: 'Spellcheck', langText: 'Select Language', textUndo: 'Undo', - txtSlideHide: 'Hide Slide' + txtSlideHide: 'Hide Slide', + txtChangeTheme: 'Change Theme' }, PE.Views.DocumentHolder || {})); }); \ No newline at end of file diff --git a/apps/presentationeditor/main/locale/en.json b/apps/presentationeditor/main/locale/en.json index 8448dd1e1..e1d48a0fb 100644 --- a/apps/presentationeditor/main/locale/en.json +++ b/apps/presentationeditor/main/locale/en.json @@ -709,6 +709,7 @@ "PE.Views.DocumentHolder.txtBorderProps": "Border properties", "PE.Views.DocumentHolder.txtBottom": "Bottom", "PE.Views.DocumentHolder.txtChangeLayout": "Change Layout", + "PE.Views.DocumentHolder.txtChangeTheme": "Change Theme", "PE.Views.DocumentHolder.txtColumnAlign": "Column alignment", "PE.Views.DocumentHolder.txtDecreaseArg": "Decrease argument size", "PE.Views.DocumentHolder.txtDeleteArg": "Delete argument", From 923426d47fa3d8c0c578640ceb76c6cc6b799d90 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Mon, 7 Aug 2017 17:38:32 +0300 Subject: [PATCH 24/39] [DE] Fix Bug 35534. --- apps/common/main/lib/template/ReviewChangesPopover.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/common/main/lib/template/ReviewChangesPopover.template b/apps/common/main/lib/template/ReviewChangesPopover.template index dbdd6586c..32743e3aa 100644 --- a/apps/common/main/lib/template/ReviewChangesPopover.template +++ b/apps/common/main/lib/template/ReviewChangesPopover.template @@ -3,7 +3,7 @@
<%=date%>
<%=changetext%>
- <% if (scope.isReviewOnly) { %> + <% if (scope.appConfig.isReviewOnly) { %>
<% } else { %>
From d66a4a0c53a63e5ab00b144372b6796a8ab447c3 Mon Sep 17 00:00:00 2001 From: Oleg Korshul Date: Mon, 7 Aug 2017 18:27:29 +0300 Subject: [PATCH 25/39] refactoring --- apps/presentationeditor/main/app.reporter.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/presentationeditor/main/app.reporter.js b/apps/presentationeditor/main/app.reporter.js index 8bf9ca8ce..a2c6ab8a2 100644 --- a/apps/presentationeditor/main/app.reporter.js +++ b/apps/presentationeditor/main/app.reporter.js @@ -133,7 +133,7 @@ require([ // api.asc_registerCallback('asc_onOpenDocumentProgress', onOpenDocument); api.asc_registerCallback('asc_onGetEditorPermissions', onEditorPermissions); - window.postMessage('i:am:ready', '*'); + api.sendFromReporter('i:am:ready'); }, function(err) { if (err.requireType == 'timeout' && !reqerr && window.requireTimeourError) { From 1587ae9f2dd7704f996183b9ef7a7bb93c64f7c5 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Tue, 8 Aug 2017 11:17:18 +0300 Subject: [PATCH 26/39] Fix Bug 35539 + Hide context menu on document caption. --- apps/common/main/lib/view/Header.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/common/main/lib/view/Header.js b/apps/common/main/lib/view/Header.js index ea350e1f0..9103fdaf9 100644 --- a/apps/common/main/lib/view/Header.js +++ b/apps/common/main/lib/view/Header.js @@ -70,7 +70,7 @@ define([ ''); var templateRightBox = '
' + - '
' + + '
' + '<%= textSaveEnd %>' + '
' + '
' + @@ -387,7 +387,7 @@ define([ }); if ( this.documentCaption ) { - this.labelDocName.text( Common.Utils.String.htmlEncode(this.documentCaption) ); + this.labelDocName.val( this.documentCaption ); } if ( !_.isUndefined(this.options.canRename) ) { @@ -485,9 +485,8 @@ define([ this.documentCaption = value; this.isModified && (value += '*'); if ( this.labelDocName ) { - var encoded = Common.Utils.String.htmlEncode(value); - this.labelDocName.val( encoded ); - this.labelDocName.attr('size', encoded.length); + this.labelDocName.val( value ); + this.labelDocName.attr('size', value.length); this.setCanRename(true); } @@ -502,10 +501,10 @@ define([ setDocumentChanged: function (changed) { this.isModified = changed; - var _name = Common.Utils.String.htmlEncode(this.documentCaption); + var _name = this.documentCaption; changed && (_name += '*'); - this.labelDocName.html(_name); + this.labelDocName.val(_name); }, setCanBack: function (value) { @@ -538,6 +537,7 @@ define([ tip.setContent(); } } + label.attr('data-can-copy', rename); } }, From 5a4204b18ab8014f6bce1f09537f2fb7ec268c13 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Tue, 8 Aug 2017 13:28:13 +0300 Subject: [PATCH 27/39] [PE] Fix Bug 35540. --- apps/presentationeditor/main/app/controller/Toolbar.js | 2 +- apps/presentationeditor/main/app/view/Toolbar.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/presentationeditor/main/app/controller/Toolbar.js b/apps/presentationeditor/main/app/controller/Toolbar.js index 07eaa035f..150bb7d96 100644 --- a/apps/presentationeditor/main/app/controller/Toolbar.js +++ b/apps/presentationeditor/main/app/controller/Toolbar.js @@ -1562,7 +1562,7 @@ define([ this.api.asc_SetViewRulers(!checked); } - Common.localStorage.setItem('pe-hidden-rulers', checked ? 1 : 0); + Common.localStorage.setBool('pe-hidden-rulers', checked); Common.NotificationCenter.trigger('layout:changed', 'rulers'); Common.NotificationCenter.trigger('edit:complete', this.toolbar); diff --git a/apps/presentationeditor/main/app/view/Toolbar.js b/apps/presentationeditor/main/app/view/Toolbar.js index 4b0ba1f1d..18bee6fdd 100644 --- a/apps/presentationeditor/main/app/view/Toolbar.js +++ b/apps/presentationeditor/main/app/view/Toolbar.js @@ -1391,7 +1391,7 @@ define([ }); this.mnuitemHideStatusBar.setChecked(Common.localStorage.getBool('pe-hidden-status'), true); - this.mnuitemHideRulers.setChecked(Common.localStorage.getItem("pe-hidden-rulers"), true); + this.mnuitemHideRulers.setChecked(Common.localStorage.getBool("pe-hidden-rulers"), true); // // Enable none paragraph components this.lockToolbar(PE.enumLock.disableOnStart, false, {array: this.slideOnlyControls.concat(this.shapeControls)}); From 8c1c09e437cb0482861e7558bbaa910fd2da20ef Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Tue, 8 Aug 2017 14:14:14 +0300 Subject: [PATCH 28/39] [PE] localStorage.getItem -> getBool. --- .../main/app/controller/LeftMenu.js | 11 ++++----- .../main/app/controller/Main.js | 23 ++++++++----------- .../main/app/controller/Statusbar.js | 7 ++---- .../main/app/controller/Toolbar.js | 2 +- .../main/app/view/FileMenuPanels.js | 14 ++++------- 5 files changed, 21 insertions(+), 36 deletions(-) diff --git a/apps/presentationeditor/main/app/controller/LeftMenu.js b/apps/presentationeditor/main/app/controller/LeftMenu.js index 00c9fc3a1..589bfc2fc 100644 --- a/apps/presentationeditor/main/app/controller/LeftMenu.js +++ b/apps/presentationeditor/main/app/controller/LeftMenu.js @@ -229,22 +229,19 @@ define([ }, applySettings: function(menu) { - var value = Common.localStorage.getItem("pe-settings-inputmode"); - this.api.SetTextBoxInputMode(parseInt(value) == 1); + this.api.SetTextBoxInputMode(Common.localStorage.getBool("pe-settings-inputmode")); /** coauthoring begin **/ if (this.mode.isEdit && !this.mode.isOffline && this.mode.canCoAuthoring) { - value = Common.localStorage.getItem("pe-settings-coauthmode"); - this.api.asc_SetFastCollaborative(value===null || parseInt(value) == 1); + this.api.asc_SetFastCollaborative(Common.localStorage.getBool("pe-settings-coauthmode", true)); } /** coauthoring end **/ if (this.mode.isEdit) { - value = Common.localStorage.getItem("pe-settings-autosave"); + var value = Common.localStorage.getItem("pe-settings-autosave"); this.api.asc_setAutoSaveGap(parseInt(value)); - value = Common.localStorage.getItem("pe-settings-spellcheck"); - this.api.asc_setSpellCheck(parseInt(value) == 1); + this.api.asc_setSpellCheck(Common.localStorage.getBool("pe-settings-spellcheck", true)); } this.api.put_ShowSnapLines( Common.localStorage.getBool("pe-settings-showsnaplines") ); diff --git a/apps/presentationeditor/main/app/controller/Main.js b/apps/presentationeditor/main/app/controller/Main.js index 206abb901..cd421a19f 100644 --- a/apps/presentationeditor/main/app/controller/Main.js +++ b/apps/presentationeditor/main/app/controller/Main.js @@ -565,8 +565,7 @@ define([ var zf = (value!==null) ? parseInt(value) : (this.appOptions.customization && this.appOptions.customization.zoom ? parseInt(this.appOptions.customization.zoom) : -1); (zf == -1) ? this.api.zoomFitToPage() : ((zf == -2) ? this.api.zoomFitToWidth() : this.api.zoom(zf>0 ? zf : 100)); - value = Common.localStorage.getItem("pe-settings-spellcheck"); - me.api.asc_setSpellCheck(value===null || parseInt(value) == 1); + me.api.asc_setSpellCheck(Common.localStorage.getBool("pe-settings-spellcheck", true)); function checkWarns() { if (!window['AscDesktopEditor']) { @@ -595,7 +594,7 @@ define([ /** coauthoring begin **/ if (me.appOptions.isEdit && !me.appOptions.isOffline && me.appOptions.canCoAuthoring) { value = Common.localStorage.getItem("pe-settings-coauthmode"); - if (value===null && Common.localStorage.getItem("pe-settings-autosave")===null && + if (value===null && !Common.localStorage.itemExists("pe-settings-autosave") && me.appOptions.customization && me.appOptions.customization.autosave===false) { value = 0; // use customization.autosave only when pe-settings-coauthmode and pe-settings-autosave are null } @@ -607,7 +606,7 @@ define([ me.api.asc_SetFastCollaborative(me._state.fastCoauth); /** coauthoring end **/ - Common.localStorage.setItem("pe-settings-showsnaplines", me.api.get_ShowSnapLines() ? 1 : 0); + Common.localStorage.setBool("pe-settings-showsnaplines", me.api.get_ShowSnapLines()); var application = me.getApplication(); var toolbarController = application.getController('Toolbar'), @@ -651,8 +650,7 @@ define([ me.api.asc_setAutoSaveGap(value); if (me.appOptions.canForcesave) {// use asc_setIsForceSaveOnUserSave only when customization->forcesave = true - value = Common.localStorage.getItem("pe-settings-forcesave"); - me.appOptions.forcesave = (value===null) ? me.appOptions.canForcesave : (parseInt(value)==1); + me.appOptions.forcesave = Common.localStorage.getBool("pe-settings-forcesave", me.appOptions.canForcesave); me.api.asc_setIsForceSaveOnUserSave(me.appOptions.forcesave); } @@ -706,7 +704,7 @@ define([ $(document).on('contextmenu', _.bind(me.onContextMenu, me)); if (this._state.licenseWarning) { - value = Common.localStorage.getItem("de-license-warning"); + value = Common.localStorage.getItem("pe-license-warning"); value = (value!==null) ? parseInt(value) : 0; var now = (new Date).getTime(); if (now - value > 86400000) { @@ -1500,8 +1498,7 @@ define([ }, onTryUndoInFastCollaborative: function() { - var val = window.localStorage.getItem("pe-hide-try-undoredo"); - if (!(val && parseInt(val) == 1)) + if (!window.localStorage.getBool("pe-hide-try-undoredo")) Common.UI.info({ width: 500, msg: this.textTryUndoRedo, @@ -1533,15 +1530,13 @@ define([ applySettings: function() { if (this.appOptions.isEdit && !this.appOptions.isOffline && this.appOptions.canCoAuthoring) { - var value = Common.localStorage.getItem("pe-settings-coauthmode"), - oldval = this._state.fastCoauth; - this._state.fastCoauth = (value===null || parseInt(value) == 1); + var oldval = this._state.fastCoauth; + this._state.fastCoauth = Common.localStorage.getBool("pe-settings-coauthmode", true); if (this._state.fastCoauth && !oldval) this.synchronizeChanges(); } if (this.appOptions.canForcesave) { - value = Common.localStorage.getItem("pe-settings-forcesave"); - this.appOptions.forcesave = (value===null) ? this.appOptions.canForcesave : (parseInt(value)==1); + this.appOptions.forcesave = Common.localStorage.getBool("pe-settings-forcesave", this.appOptions.canForcesave); this.api.asc_setIsForceSaveOnUserSave(this.appOptions.forcesave); } }, diff --git a/apps/presentationeditor/main/app/controller/Statusbar.js b/apps/presentationeditor/main/app/controller/Statusbar.js index 65d8f2816..1a7146282 100644 --- a/apps/presentationeditor/main/app/controller/Statusbar.js +++ b/apps/presentationeditor/main/app/controller/Statusbar.js @@ -176,9 +176,7 @@ define([ }, createDelayedElements: function() { - var value = Common.localStorage.getItem("pe-settings-spellcheck"); - this.statusbar.btnSetSpelling.toggle(value===null || parseInt(value) == 1, true); - + this.statusbar.btnSetSpelling.toggle(Common.localStorage.getBool("pe-settings-spellcheck", true), true); this.statusbar.$el.css('z-index', ''); }, @@ -215,8 +213,7 @@ define([ }, applySettings: function(menu) { - var value = Common.localStorage.getItem("pe-settings-spellcheck"); - this.statusbar.btnSetSpelling.toggle(value===null || parseInt(value) == 1, true); + this.statusbar.btnSetSpelling.toggle(Common.localStorage.getBool("pe-settings-spellcheck", true), true); }, zoomText : 'Zoom {0}%' diff --git a/apps/presentationeditor/main/app/controller/Toolbar.js b/apps/presentationeditor/main/app/controller/Toolbar.js index 150bb7d96..7b20a65b3 100644 --- a/apps/presentationeditor/main/app/controller/Toolbar.js +++ b/apps/presentationeditor/main/app/controller/Toolbar.js @@ -1551,7 +1551,7 @@ define([ var headerView = this.getApplication().getController('Statusbar').getView('Statusbar'); headerView && headerView.setVisible(!checked); - Common.localStorage.setItem('pe-hidden-status', checked ? 1 : 0); + Common.localStorage.setBool('pe-hidden-status', checked); Common.NotificationCenter.trigger('layout:changed', 'status'); Common.NotificationCenter.trigger('edit:complete', this.toolbar); diff --git a/apps/presentationeditor/main/app/view/FileMenuPanels.js b/apps/presentationeditor/main/app/view/FileMenuPanels.js index 08ca0161c..75547a46d 100644 --- a/apps/presentationeditor/main/app/view/FileMenuPanels.js +++ b/apps/presentationeditor/main/app/view/FileMenuPanels.js @@ -285,19 +285,18 @@ define([ }, updateSettings: function() { - var value = Common.localStorage.getItem("pe-settings-spellcheck"); - this.chSpell.setValue(value===null || parseInt(value) == 1); + this.chSpell.setValue(Common.localStorage.getBool("pe-settings-spellcheck", true)); this.chInputMode.setValue(Common.localStorage.getBool("pe-settings-inputmode")); - value = Common.localStorage.getItem("pe-settings-zoom"); + var value = Common.localStorage.getItem("pe-settings-zoom"); value = (value!==null) ? parseInt(value) : (this.mode.customization && this.mode.customization.zoom ? parseInt(this.mode.customization.zoom) : -1); var item = this.cmbZoom.store.findWhere({value: value}); this.cmbZoom.setValue(item ? parseInt(item.get('value')) : (value>0 ? value+'%' : 100)); /** coauthoring begin **/ value = Common.localStorage.getItem("pe-settings-coauthmode"); - if (value===null && Common.localStorage.getItem("pe-settings-autosave")===null && + if (value===null && !Common.localStorage.itemExists("pe-settings-autosave") && this.mode.customization && this.mode.customization.autosave===false) value = 0; // use customization.autosave only when pe-settings-coauthmode and pe-settings-autosave are null var fast_coauth = (value===null || parseInt(value) == 1) && !(this.mode.isDesktopApp && this.mode.isOffline) && this.mode.canCoAuthoring; @@ -318,13 +317,10 @@ define([ this.chAutosave.setValue(fast_coauth || (value===null ? this.mode.canCoAuthoring : parseInt(value) == 1)); if (this.mode.canForcesave) { - value = Common.localStorage.getItem("pe-settings-forcesave"); - value = (value === null) ? this.mode.canForcesave : (parseInt(value) == 1); - this.chForcesave.setValue(value); + this.chForcesave.setValue(Common.localStorage.getBool("pe-settings-forcesave", this.mode.canForcesave)); } - value = Common.localStorage.getItem("pe-settings-showsnaplines"); - this.chAlignGuides.setValue(value===null || parseInt(value) == 1); + this.chAlignGuides.setValue(Common.localStorage.getBool("pe-settings-showsnaplines", true)); }, applySettings: function() { From 2534172136e5ed249340cd3c0e7abb03578da6c2 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Tue, 8 Aug 2017 14:15:53 +0300 Subject: [PATCH 29/39] Update translations. --- apps/documenteditor/main/app/view/Toolbar.js | 2 +- apps/presentationeditor/main/app/view/Toolbar.js | 2 +- apps/presentationeditor/main/locale/en.json | 2 +- apps/spreadsheeteditor/main/app/view/Toolbar.js | 2 +- apps/spreadsheeteditor/main/locale/en.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/documenteditor/main/app/view/Toolbar.js b/apps/documenteditor/main/app/view/Toolbar.js index 5d1772686..d5ee350d0 100644 --- a/apps/documenteditor/main/app/view/Toolbar.js +++ b/apps/documenteditor/main/app/view/Toolbar.js @@ -2388,7 +2388,7 @@ define([ tipHAligh: 'Horizontal Align', tipViewSettings: 'View Settings', tipAdvSettings: 'Advanced Settings', - textCompactView: 'View Compact Toolbar', + textCompactView: 'Hide Toolbar', textHideTitleBar: 'Hide Title Bar', textHideStatusBar: 'Hide Status Bar', textHideLines: 'Hide Rulers', diff --git a/apps/presentationeditor/main/app/view/Toolbar.js b/apps/presentationeditor/main/app/view/Toolbar.js index 18bee6fdd..bf6840e5c 100644 --- a/apps/presentationeditor/main/app/view/Toolbar.js +++ b/apps/presentationeditor/main/app/view/Toolbar.js @@ -1765,7 +1765,7 @@ define([ tipSlideSize: 'Select Slide Size', tipViewSettings: 'View Settings', tipAdvSettings: 'Advanced Settings', - textCompactView: 'View Compact Toolbar', + textCompactView: 'Hide Toolbar', textHideTitleBar: 'Hide Title Bar', textHideStatusBar: 'Hide Status Bar', textHideLines: 'Hide Rulers', diff --git a/apps/presentationeditor/main/locale/en.json b/apps/presentationeditor/main/locale/en.json index e1d48a0fb..09ef7cbe9 100644 --- a/apps/presentationeditor/main/locale/en.json +++ b/apps/presentationeditor/main/locale/en.json @@ -1272,7 +1272,7 @@ "PE.Views.Toolbar.textCancel": "Cancel", "PE.Views.Toolbar.textCharts": "Charts", "PE.Views.Toolbar.textColumn": "Column", - "PE.Views.Toolbar.textCompactView": "View Compact Toolbar", + "PE.Views.Toolbar.textCompactView": "Hide Toolbar", "PE.Views.Toolbar.textFitPage": "Fit to Slide", "PE.Views.Toolbar.textFitWidth": "Fit to Width", "PE.Views.Toolbar.textHideLines": "Hide Rulers", diff --git a/apps/spreadsheeteditor/main/app/view/Toolbar.js b/apps/spreadsheeteditor/main/app/view/Toolbar.js index 021165cb2..d31732e90 100644 --- a/apps/spreadsheeteditor/main/app/view/Toolbar.js +++ b/apps/spreadsheeteditor/main/app/view/Toolbar.js @@ -1996,7 +1996,7 @@ define([ textDelLeft: 'Shift Cells Left', textDelUp: 'Shift Cells Up', textZoom: 'Zoom', - textCompactToolbar: 'Compact Toolbar', + textCompactToolbar: 'Hide Toolbar', textHideTBar: 'Hide Title Bar', textHideFBar: 'Hide Formula Bar', textHideHeadings: 'Hide Headings', diff --git a/apps/spreadsheeteditor/main/locale/en.json b/apps/spreadsheeteditor/main/locale/en.json index da7577b0c..04af79cc9 100644 --- a/apps/spreadsheeteditor/main/locale/en.json +++ b/apps/spreadsheeteditor/main/locale/en.json @@ -1605,7 +1605,7 @@ "SSE.Views.Toolbar.textClockwise": "Angle Clockwise", "SSE.Views.Toolbar.textColumn": "Column", "SSE.Views.Toolbar.textColumnSpark": "Column", - "SSE.Views.Toolbar.textCompactToolbar": "View Compact Toolbar", + "SSE.Views.Toolbar.textCompactToolbar": "Hide Toolbar", "SSE.Views.Toolbar.textCounterCw": "Angle Counterclockwise", "SSE.Views.Toolbar.textDelLeft": "Shift Cells Left", "SSE.Views.Toolbar.textDelUp": "Shift Cells Up", From 4996ac32c25c6a28405314a0edec6f60a31005bb Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Tue, 8 Aug 2017 14:29:43 +0300 Subject: [PATCH 30/39] Fix Bug 35547. --- apps/documenteditor/main/resources/less/toolbar.less | 2 ++ apps/presentationeditor/main/resources/less/toolbar.less | 2 ++ apps/spreadsheeteditor/main/resources/less/toolbar.less | 2 ++ 3 files changed, 6 insertions(+) diff --git a/apps/documenteditor/main/resources/less/toolbar.less b/apps/documenteditor/main/resources/less/toolbar.less index 99b7f48d4..05ddcc3d7 100644 --- a/apps/documenteditor/main/resources/less/toolbar.less +++ b/apps/documenteditor/main/resources/less/toolbar.less @@ -107,6 +107,8 @@ .zoom { padding: 5px 3px; float: right; + min-width: 40px; + text-align: center; } } diff --git a/apps/presentationeditor/main/resources/less/toolbar.less b/apps/presentationeditor/main/resources/less/toolbar.less index 95ff31f34..a0958f747 100644 --- a/apps/presentationeditor/main/resources/less/toolbar.less +++ b/apps/presentationeditor/main/resources/less/toolbar.less @@ -101,6 +101,8 @@ .zoom { padding: 5px 3px; float: right; + min-width: 40px; + text-align: center; } } diff --git a/apps/spreadsheeteditor/main/resources/less/toolbar.less b/apps/spreadsheeteditor/main/resources/less/toolbar.less index be7c34c43..c88beaca4 100644 --- a/apps/spreadsheeteditor/main/resources/less/toolbar.less +++ b/apps/spreadsheeteditor/main/resources/less/toolbar.less @@ -89,6 +89,8 @@ .zoom { padding: 5px 3px; float: right; + min-width: 40px; + text-align: center; } } From 64f1da21e99df72788d0d424304cf950bd116623 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Mon, 17 Apr 2017 17:25:02 +0300 Subject: [PATCH 31/39] [SSE] Added jszip, jszip-utils. --- apps/spreadsheeteditor/main/app.js | 6 +++++- apps/spreadsheeteditor/main/app_dev.js | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/apps/spreadsheeteditor/main/app.js b/apps/spreadsheeteditor/main/app.js index 7fc483dd9..d38cfe1ac 100644 --- a/apps/spreadsheeteditor/main/app.js +++ b/apps/spreadsheeteditor/main/app.js @@ -54,6 +54,8 @@ require.config({ jmousewheel : '../vendor/perfect-scrollbar/src/jquery.mousewheel', xregexp : '../vendor/xregexp/xregexp-all-min', sockjs : '../vendor/sockjs/sockjs.min', + jszip : '../vendor/jszip/jszip.min', + jsziputils : '../vendor/jszip-utils/jszip-utils.min', allfonts : '../../sdkjs/common/AllFonts', sdk : '../../sdkjs/cell/sdk-all-min', api : 'api/documents/api', @@ -106,7 +108,9 @@ require.config({ 'underscore', 'allfonts', 'xregexp', - 'sockjs' + 'sockjs', + 'jszip', + 'jsziputils' ] }, gateway: { diff --git a/apps/spreadsheeteditor/main/app_dev.js b/apps/spreadsheeteditor/main/app_dev.js index 718a890e6..f541535a3 100644 --- a/apps/spreadsheeteditor/main/app_dev.js +++ b/apps/spreadsheeteditor/main/app_dev.js @@ -54,6 +54,8 @@ require.config({ jmousewheel : '../vendor/perfect-scrollbar/src/jquery.mousewheel', xregexp : '../vendor/xregexp/xregexp-all-min', sockjs : '../vendor/sockjs/sockjs.min', + jszip : '../vendor/jszip/jszip.min', + jsziputils : '../vendor/jszip-utils/jszip-utils.min', api : 'api/documents/api', core : 'common/main/lib/core/application', notification : 'common/main/lib/core/NotificationCenter', @@ -119,6 +121,8 @@ require([ 'analytics', 'gateway', 'locale', + 'jszip', + 'jsziputils', 'sockjs', 'underscore' ], function (Backbone, Bootstrap, Core) { From a597f18af682042df03ef6e74c3ea8e4878e9340 Mon Sep 17 00:00:00 2001 From: Sergey Konovalov Date: Mon, 17 Apr 2017 19:41:45 +0300 Subject: [PATCH 32/39] add easysax.js, openxml.js --- apps/spreadsheeteditor/sdk_dev_scripts.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/spreadsheeteditor/sdk_dev_scripts.js b/apps/spreadsheeteditor/sdk_dev_scripts.js index ed9644d13..8b506b265 100644 --- a/apps/spreadsheeteditor/sdk_dev_scripts.js +++ b/apps/spreadsheeteditor/sdk_dev_scripts.js @@ -198,5 +198,7 @@ var sdk_dev_scrpipts = [ "../../../../sdkjs/common/Drawings/Format/DrawingContent.js", "../../../../sdkjs/common/clipboard_base.js", "../../../../sdkjs/common/plugins.js", - "../../../../sdkjs/common/text_input.js" + "../../../../sdkjs/common/text_input.js", + "../../../../sdkjs/common/easysax.js", + "../../../../sdkjs/common/openxml.js" ]; \ No newline at end of file From 1d6cb3d327807e381e7f2c28191fb13caff8c2f0 Mon Sep 17 00:00:00 2001 From: Sergey Konovalov Date: Wed, 19 Apr 2017 13:27:45 +0300 Subject: [PATCH 33/39] add PivotTables.js --- apps/spreadsheeteditor/sdk_dev_scripts.js | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/spreadsheeteditor/sdk_dev_scripts.js b/apps/spreadsheeteditor/sdk_dev_scripts.js index 8b506b265..2496f5a7f 100644 --- a/apps/spreadsheeteditor/sdk_dev_scripts.js +++ b/apps/spreadsheeteditor/sdk_dev_scripts.js @@ -115,6 +115,7 @@ var sdk_dev_scrpipts = [ "../../../../sdkjs/cell/model/DrawingObjects/Format/ImagePrototype.js", "../../../../sdkjs/cell/model/DrawingObjects/Format/GroupPrototype.js", "../../../../sdkjs/cell/model/DrawingObjects/Format/ChartSpacePrototype.js", + "../../../../sdkjs/cell/model/PivotTables.js", "../../../../sdkjs/common/apiBase.js", "../../../../sdkjs/cell/api.js", "../../../../sdkjs/common/Private/license.js", From ca5016db77fcc21d78bd76b10ceb711bab7b99ba Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Tue, 25 Apr 2017 15:19:25 +0300 Subject: [PATCH 34/39] [SSE] Added error LockedCellPivot. --- apps/spreadsheeteditor/main/app/controller/Main.js | 5 +++++ apps/spreadsheeteditor/main/locale/en.json | 1 + 2 files changed, 6 insertions(+) diff --git a/apps/spreadsheeteditor/main/app/controller/Main.js b/apps/spreadsheeteditor/main/app/controller/Main.js index 23a70090f..dbbc2bf8d 100644 --- a/apps/spreadsheeteditor/main/app/controller/Main.js +++ b/apps/spreadsheeteditor/main/app/controller/Main.js @@ -1190,6 +1190,10 @@ define([ config.msg = this.errorAccessDeny; break; + case Asc.c_oAscError.ID.LockedCellPivot: + config.msg = this.errorLockedCellPivot; + break; + default: config.msg = this.errorDefaultMessage.replace('%1', id); break; @@ -2113,6 +2117,7 @@ define([ errorAccessDeny: 'You are trying to perform an action you do not have rights for.
Please contact your Document Server administrator.', titleServerVersion: 'Editor updated', errorServerVersion: 'The editor version has been updated. The page will be reloaded to apply the changes.', + errorLockedCellPivot: 'You cannot change data inside a pivot table.', txtAccent: 'Accent', txtStyle_Normal: 'Normal', txtStyle_Heading_1: 'Heading 1', diff --git a/apps/spreadsheeteditor/main/locale/en.json b/apps/spreadsheeteditor/main/locale/en.json index 04af79cc9..1922dcb9b 100644 --- a/apps/spreadsheeteditor/main/locale/en.json +++ b/apps/spreadsheeteditor/main/locale/en.json @@ -278,6 +278,7 @@ "SSE.Controllers.Main.errorKeyEncrypt": "Unknown key descriptor", "SSE.Controllers.Main.errorKeyExpire": "Key descriptor expired", "SSE.Controllers.Main.errorLockedAll": "The operation could not be done as the sheet has been locked by another user.", + "SSE.Controllers.Main.errorLockedCellPivot": "You cannot change data inside a pivot table.", "SSE.Controllers.Main.errorLockedWorksheetRename": "The sheet cannot be renamed at the moment as it is being renamed by another user", "SSE.Controllers.Main.errorMoveRange": "Cannot change part of a merged cell", "SSE.Controllers.Main.errorOpenWarning": "The length of one of the formulas in the file exceeded
the allowed number of characters and it was removed.", From 358ea3701ea6bc4a94859aa5e5575f5d332c40e1 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Wed, 21 Jun 2017 12:47:22 +0300 Subject: [PATCH 35/39] [SSE] Disable filters, sort, merge, hyperlinks when in pivot table. --- .../main/app/controller/DocumentHolder.js | 9 ++++++-- .../main/app/controller/Toolbar.js | 3 +++ .../main/app/view/Toolbar.js | 23 ++++++++++--------- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js b/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js index 713ae0c69..6026afb7b 100644 --- a/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js +++ b/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js @@ -1445,6 +1445,8 @@ define([ documentHolder.pmiInsertCells.menu.items[1].setDisabled(isApplyAutoFilter); documentHolder.pmiDeleteCells.menu.items[1].setDisabled(isApplyAutoFilter); + var inPivot = !!cellinfo.asc_getPivotTableInfo(); + _.each(documentHolder.ssMenu.items, function(item) { item.setDisabled(isCellLocked); }); @@ -1455,9 +1457,12 @@ define([ documentHolder.pmiDeleteEntire.setDisabled(isCellLocked || isTableLocked); documentHolder.pmiDeleteCells.setDisabled(isCellLocked || isTableLocked); documentHolder.pmiDeleteTable.setDisabled(isCellLocked || isTableLocked); - documentHolder.pmiFilterCells.setDisabled(isCellLocked || isTableLocked|| (filterInfo==null)); - documentHolder.pmiSortCells.setDisabled(isCellLocked || isTableLocked|| (filterInfo==null)); + documentHolder.pmiFilterCells.setDisabled(isCellLocked || isTableLocked|| (filterInfo==null) || inPivot); + documentHolder.pmiSortCells.setDisabled(isCellLocked || isTableLocked|| (filterInfo==null) || inPivot); documentHolder.pmiReapply.setDisabled(isCellLocked || isTableLocked|| (isApplyAutoFilter!==true)); + documentHolder.menuHyperlink.setDisabled(isCellLocked || inPivot); + documentHolder.menuAddHyperlink.setDisabled(isCellLocked || inPivot); + if (showMenu) this.showPopupMenu(documentHolder.ssMenu, {}, event); } else if (this.permissions.isEditDiagram && seltype == Asc.c_oAscSelectionType.RangeChartText) { if (!showMenu && !documentHolder.textInShapeMenu.isVisible()) return; diff --git a/apps/spreadsheeteditor/main/app/controller/Toolbar.js b/apps/spreadsheeteditor/main/app/controller/Toolbar.js index fef094670..a15d90013 100644 --- a/apps/spreadsheeteditor/main/app/controller/Toolbar.js +++ b/apps/spreadsheeteditor/main/app/controller/Toolbar.js @@ -2032,6 +2032,9 @@ define([ this._state.multiselect = info.asc_getFlags().asc_getMultiselect(); toolbar.lockToolbar(SSE.enumLock.multiselect, this._state.multiselect, { array: [toolbar.btnTableTemplate, toolbar.btnInsertHyperlink]}); + + need_disable = !!info.asc_getPivotTableInfo(); + toolbar.lockToolbar(SSE.enumLock.editPivot, need_disable, { array: [toolbar.btnMerge, toolbar.btnInsertHyperlink, toolbar.btnSetAutofilter, toolbar.btnClearAutofilter, toolbar.btnSortDown, toolbar.btnSortUp, toolbar.btnAutofilter]}); } val = info.asc_getNumFormatInfo(); diff --git a/apps/spreadsheeteditor/main/app/view/Toolbar.js b/apps/spreadsheeteditor/main/app/view/Toolbar.js index d31732e90..431bcd670 100644 --- a/apps/spreadsheeteditor/main/app/view/Toolbar.js +++ b/apps/spreadsheeteditor/main/app/view/Toolbar.js @@ -61,6 +61,7 @@ define([ editCell: 'cell-editing', editFormula: 'is-formula', editText: 'is-text', + editPivot: 'is-pivot', selImage: 'sel-image', selShape: 'sel-shape', selShapeText: 'sel-shape-txt', @@ -290,21 +291,21 @@ define([ id : 'id-toolbar-btn-sort-down', cls : 'btn-toolbar', iconCls : 'btn-sort-down', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter] + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter, _set.editPivot] }); me.btnSortUp = new Common.UI.Button({ id : 'id-toolbar-btn-sort-up', cls : 'btn-toolbar', iconCls : 'btn-sort-up', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter] + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter, _set.editPivot] }); me.btnSetAutofilter = new Common.UI.Button({ id : 'id-toolbar-btn-setautofilter', cls : 'btn-toolbar', iconCls : 'btn-autofilter', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter], + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter, _set.editPivot], enableToggle: true }); @@ -312,7 +313,7 @@ define([ id : 'id-toolbar-btn-clearfilter', cls : 'btn-toolbar', iconCls : 'btn-clear-filter', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleDelFilter] + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleDelFilter, _set.editPivot] }); } else { Common.UI.Mixtbar.prototype.initialize.call(this, { @@ -494,7 +495,7 @@ define([ enableToggle: true, allowDepress: true, split : true, - lock : [_set.editCell, _set.selShape, _set.selShapeText, _set.selChart, _set.selChartText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleMerge], + lock : [_set.editCell, _set.selShape, _set.selShapeText, _set.selChart, _set.selChartText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleMerge, _set.editPivot], menu : new Common.UI.Menu({ items: [ { @@ -618,7 +619,7 @@ define([ cls : 'btn-toolbar x-huge icon-top', iconCls : 'btn-inserthyperlink', caption : me.capInsertHyperlink, - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selImage, _set.selShape, _set.cantHyperlink, _set.multiselect, _set.lostConnect, _set.coAuth] + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selImage, _set.selShape, _set.cantHyperlink, _set.multiselect, _set.lostConnect, _set.coAuth, _set.editPivot] }); me.btnInsertChart = new Common.UI.Button({ @@ -681,21 +682,21 @@ define([ id : 'id-toolbar-btn-sort-down', cls : 'btn-toolbar', iconCls : 'btn-sort-down', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter] + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter, _set.editPivot] }); me.btnSortUp = new Common.UI.Button({ id : 'id-toolbar-btn-sort-up', cls : 'btn-toolbar', iconCls : 'btn-sort-up', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter] + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter, _set.editPivot] }); me.btnSetAutofilter = new Common.UI.Button({ id : 'id-toolbar-btn-setautofilter', cls : 'btn-toolbar', iconCls : 'btn-autofilter', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter], + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter, _set.editPivot], enableToggle: true }); @@ -703,7 +704,7 @@ define([ id : 'id-toolbar-btn-clearfilter', cls : 'btn-toolbar', iconCls : 'btn-clear-filter', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleDelFilter] + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleDelFilter, _set.editPivot] }); me.btnTableTemplate = new Common.UI.Button({ @@ -1147,7 +1148,7 @@ define([ id : 'id-toolbar-btn-autofilter', cls : 'btn-toolbar', iconCls : 'btn-autofilter', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter], + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter, _set.editPivot], menu : new Common.UI.Menu({ items : [ me.mnuitemSortAZ = new Common.UI.MenuItem({ From f2b129b362129a306507e8b97308c51a469dedfe Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Tue, 8 Aug 2017 15:14:18 +0300 Subject: [PATCH 36/39] Update close button icon. --- .../img/controls/common-controls@2x.png | Bin 17907 -> 30251 bytes 1 file changed, 0 insertions(+), 0 deletions(-) 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 2d98028730896161c41475b0407e3982efb1d009..4af0c3e62f3c6404b6db1e0b7adf24cd321249f6 100755 GIT binary patch literal 30251 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 literal 17907 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 From 71d36de7f0a0be881bded8b3cb6ec3f6b7ff94ac Mon Sep 17 00:00:00 2001 From: Maxim Kadushkin Date: Tue, 8 Aug 2017 15:40:31 +0300 Subject: [PATCH 37/39] [DE] changed 'Layout' buttons order --- apps/documenteditor/main/app/template/Toolbar.template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/documenteditor/main/app/template/Toolbar.template b/apps/documenteditor/main/app/template/Toolbar.template index dc62ea73b..fd2fd7e23 100644 --- a/apps/documenteditor/main/app/template/Toolbar.template +++ b/apps/documenteditor/main/app/template/Toolbar.template @@ -141,11 +141,11 @@
- - + +
From 83be5f9a4e6f45b25fe131a324641fb2279d2b16 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Tue, 8 Aug 2017 16:39:47 +0300 Subject: [PATCH 38/39] FIx Bug 35487. --- .../main/app/template/Toolbar.template | 8 +++---- .../main/app/template/Toolbar.template | 24 +++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/apps/presentationeditor/main/app/template/Toolbar.template b/apps/presentationeditor/main/app/template/Toolbar.template index a92b9b5f2..2f6fd53fa 100644 --- a/apps/presentationeditor/main/app/template/Toolbar.template +++ b/apps/presentationeditor/main/app/template/Toolbar.template @@ -32,11 +32,11 @@
- +
- +
@@ -103,11 +103,11 @@
- +
- +
diff --git a/apps/spreadsheeteditor/main/app/template/Toolbar.template b/apps/spreadsheeteditor/main/app/template/Toolbar.template index f0ccaacbc..e7dcbbb47 100644 --- a/apps/spreadsheeteditor/main/app/template/Toolbar.template +++ b/apps/spreadsheeteditor/main/app/template/Toolbar.template @@ -33,11 +33,11 @@
- +
- +
@@ -64,17 +64,17 @@
- - - - + + + +
- - - - + + + +
@@ -90,11 +90,11 @@
- +
- +
From 7183a7bbb430a6280a4851a443ae12930c018915 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Tue, 8 Aug 2017 16:40:21 +0300 Subject: [PATCH 39/39] [SSE] Fix Bug 35550. --- apps/spreadsheeteditor/main/app/view/Toolbar.js | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/spreadsheeteditor/main/app/view/Toolbar.js b/apps/spreadsheeteditor/main/app/view/Toolbar.js index 431bcd670..e47f84fff 100644 --- a/apps/spreadsheeteditor/main/app/view/Toolbar.js +++ b/apps/spreadsheeteditor/main/app/view/Toolbar.js @@ -660,6 +660,7 @@ define([ cls : 'btn-toolbar x-huge icon-top', iconCls : 'btn-textart', caption : me.capInsertTextart, + lock : [_set.editCell, _set.selChartText, _set.selImage, _set.lostConnect, _set.coAuth], menu : new Common.UI.Menu({ cls: 'menu-shapes', items: [