From e0575a4db6172363ad5ddad28ef137090ae66272 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Fri, 23 Sep 2016 14:24:54 +0300 Subject: [PATCH] Fix Bug 33139. --- apps/common/main/lib/component/Button.js | 2 +- .../main/app/controller/Toolbar.js | 22 +- .../main/app/view/Toolbar.js | 387 +++++++++--------- 3 files changed, 211 insertions(+), 200 deletions(-) diff --git a/apps/common/main/lib/component/Button.js b/apps/common/main/lib/component/Button.js index ad4f22674..cc142495a 100644 --- a/apps/common/main/lib/component/Button.js +++ b/apps/common/main/lib/component/Button.js @@ -494,7 +494,7 @@ define([ }, setMenu: function (m) { - if (m && _.isObject(m) && _.isFunction(m.render)){ + if (this.rendered && m && _.isObject(m) && _.isFunction(m.render)){ this.menu = m; this.menu.render(this.cmpEl); } diff --git a/apps/spreadsheeteditor/main/app/controller/Toolbar.js b/apps/spreadsheeteditor/main/app/controller/Toolbar.js index 7a5704594..8e4845781 100644 --- a/apps/spreadsheeteditor/main/app/controller/Toolbar.js +++ b/apps/spreadsheeteditor/main/app/controller/Toolbar.js @@ -183,9 +183,11 @@ define([ toolbar.mnuTextColorPicker.on('select', _.bind(this.onTextColorSelect, this)); toolbar.mnuBackColorPicker.on('select', _.bind(this.onBackColorSelect, this)); toolbar.btnBorders.on('click', _.bind(this.onBorders, this)); - toolbar.btnBorders.menu.on('item:click', _.bind(this.onBordersMenu, this)); - toolbar.mnuBorderWidth.on('item:toggle', _.bind(this.onBordersWidth, this)); - toolbar.mnuBorderColorPicker.on('select', _.bind(this.onBordersColor, this)); + if (toolbar.btnBorders.rendered) { + toolbar.btnBorders.menu.on('item:click', _.bind(this.onBordersMenu, this)); + toolbar.mnuBorderWidth.on('item:toggle', _.bind(this.onBordersWidth, this)); + toolbar.mnuBorderColorPicker.on('select', _.bind(this.onBordersColor, this)); + } toolbar.btnAlignLeft.on('click', _.bind(this.onHorizontalAlign, this, 'left')); toolbar.btnAlignCenter.on('click', _.bind(this.onHorizontalAlign, this, 'center')); toolbar.btnAlignRight.on('click', _.bind(this.onHorizontalAlign, this, 'right')); @@ -244,11 +246,11 @@ define([ toolbar.cmbFontSize.on('combo:focusin', _.bind(this.onComboOpen, this, false)); if (toolbar.mnuZoomIn) toolbar.mnuZoomIn.on('click', _.bind(this.onZoomInClick, this)); if (toolbar.mnuZoomOut) toolbar.mnuZoomOut.on('click', _.bind(this.onZoomOutClick, this)); - toolbar.btnShowMode.menu.on('item:click', _.bind(this.onHideMenu, this)); + if (toolbar.btnShowMode.rendered) toolbar.btnShowMode.menu.on('item:click', _.bind(this.onHideMenu, this)); toolbar.listStyles.on('click', _.bind(this.onListStyleSelect, this)); - toolbar.btnNumberFormat.menu.on('item:click', _.bind(this.onNumberFormatMenu, this)); + if (toolbar.btnNumberFormat.rendered) toolbar.btnNumberFormat.menu.on('item:click', _.bind(this.onNumberFormatMenu, this)); toolbar.btnCurrencyStyle.menu.on('item:click', _.bind(this.onNumberFormatMenu, this)); - toolbar.mnuitemCompactToolbar.on('toggle', _.bind(this.onChangeViewMode, this)); + if (toolbar.mnuitemCompactToolbar) toolbar.mnuitemCompactToolbar.on('toggle', _.bind(this.onChangeViewMode, this)); $('#id-toolbar-menu-new-fontcolor').on('click', _.bind(this.onNewTextColor, this)); $('#id-toolbar-menu-new-paracolor').on('click', _.bind(this.onNewBackColor, this)); $('#id-toolbar-menu-new-bordercolor').on('click', _.bind(this.onNewBorderColor, this)); @@ -1254,7 +1256,10 @@ define([ } if (me.toolbar.btnInsertText.rendered) - SSE.getController('Toolbar').fillTextArt(); + me.fillTextArt(); + + if (me.toolbar.btnTableTemplate.rendered) + me.fillTableTemplates(); }, 100); } @@ -1268,8 +1273,9 @@ define([ }, fillTableTemplates: function() { - var me = this; + if (!this.toolbar.btnTableTemplate.rendered) return; + var me = this; function createPicker(element, menu) { var picker = new Common.UI.DataView({ el: element, diff --git a/apps/spreadsheeteditor/main/app/view/Toolbar.js b/apps/spreadsheeteditor/main/app/view/Toolbar.js index 48e2d3cd2..5d4f096c6 100644 --- a/apps/spreadsheeteditor/main/app/view/Toolbar.js +++ b/apps/spreadsheeteditor/main/app/view/Toolbar.js @@ -1293,198 +1293,203 @@ define([ this.btnAutofilter.updateHint(this.tipAutofilter); // set menus - this.btnShowMode.setMenu(new Common.UI.Menu({ - items: [ - this.mnuitemCompactToolbar = new Common.UI.MenuItem({ - caption : this.textCompactToolbar, - checkable : true, - value : 'compact' - }), - this.mnuitemHideTitleBar = new Common.UI.MenuItem({ - caption : this.textHideTBar, - checkable : true, - value : 'title' - }), - this.mnuitemHideFormulaBar = new Common.UI.MenuItem({ - caption : this.textHideFBar, - checkable : true, - value : 'formula' - }), - this.mnuitemHideHeadings = new Common.UI.MenuItem({ - caption : this.textHideHeadings, - checkable : true, - checked : this.mnuitemHideHeadings.isChecked(), - value : 'headings' - }), - this.mnuitemHideGridlines = new Common.UI.MenuItem({ - caption : this.textHideGridlines, - checkable : true, - checked : this.mnuitemHideGridlines.isChecked(), - value : 'gridlines' - }), - {caption: '--'}, - this.mnuZoom = new Common.UI.MenuItem({ - template: _.template([ - '' - ].join('')), - stopPropagation: true, - value: this.mnuZoom.options.value - }) - ] - })); - - this.mnuZoomOut = new Common.UI.Button({ - el : $('#id-menu-zoom-out'), - cls : 'btn-toolbar' - }); - this.mnuZoomIn = new Common.UI.Button({ - el : $('#id-menu-zoom-in'), - cls : 'btn-toolbar' - }); - - var options = {}; - JSON.parse(Common.localStorage.getItem('sse-hidden-title')) && (options.title = true); - JSON.parse(Common.localStorage.getItem('sse-hidden-formula')) && (options.formula = true); -// JSON.parse(Common.localStorage.getItem('sse-hidden-headings')) && (options.headings = true); - var isCompactView = JSON.parse(Common.localStorage.getItem('sse-toolbar-compact')); - isCompactView = !!(isCompactView!==null && parseInt(isCompactView) == 1 || isCompactView === null && this.mode.customization && this.mode.customization.compactToolbar); - - this.mnuitemCompactToolbar.setChecked(isCompactView); - this.mnuitemHideTitleBar.setChecked(!!options.title); - this.mnuitemHideFormulaBar.setChecked(!!options.formula); - this.mnuitemHideHeadings.setChecked(!!options.headings); - - if (this.mode.isDesktopApp) - this.mnuitemHideTitleBar.hide(); - - this.btnBorders.setMenu( new Common.UI.Menu({ - items: [ - { - caption : this.textOutBorders, - iconCls : 'mnu-border-out', - icls : 'btn-border-out', - borderId : 'outer' - }, - { - caption : this.textAllBorders, - iconCls : 'mnu-border-all', - icls : 'btn-border-all', - borderId : 'all' - }, - { - caption : this.textTopBorders, - iconCls : 'mnu-border-top', - icls : 'btn-border-top', - borderId : Asc.c_oAscBorderOptions.Top - }, - { - caption : this.textBottomBorders, - iconCls : 'mnu-border-bottom', - icls : 'btn-border-bottom', - borderId : Asc.c_oAscBorderOptions.Bottom - }, - { - caption : this.textLeftBorders, - iconCls : 'mnu-border-left', - icls : 'btn-border-left', - borderId : Asc.c_oAscBorderOptions.Left - }, - { - caption : this.textRightBorders, - iconCls : 'mnu-border-right', - icls : 'btn-border-right', - borderId : Asc.c_oAscBorderOptions.Right - }, - { - caption : this.textNoBorders, - iconCls : 'mnu-border-no', - icls : 'btn-border-no', - borderId : 'none' - }, - {caption: '--'}, - { - caption : this.textInsideBorders, - iconCls : 'mnu-border-center', - icls : 'btn-border-center', - borderId : 'inner' - }, - { - caption : this.textCenterBorders, - iconCls : 'mnu-border-vmiddle', - icls : 'btn-border-vmiddle', - borderId : Asc.c_oAscBorderOptions.InnerV - }, - { - caption : this.textMiddleBorders, - iconCls : 'mnu-border-hmiddle', - icls : 'btn-border-hmiddle', - borderId : Asc.c_oAscBorderOptions.InnerH - }, - { - caption : this.textDiagUpBorder, - iconCls : 'mnu-border-diagup', - icls : 'btn-border-diagup', - borderId : Asc.c_oAscBorderOptions.DiagU - }, - { - caption : this.textDiagDownBorder, - iconCls : 'mnu-border-diagdown', - icls : 'btn-border-diagdown', - borderId : Asc.c_oAscBorderOptions.DiagD - }, - {caption: '--'}, - { - id : 'id-toolbar-mnu-item-border-width', - caption : this.textBordersWidth, - iconCls : 'mnu-icon-item mnu-border-width', - template : _.template('<%= caption %>'), - menu : (function(){ - var itemTemplate = _.template('
'); - - me.mnuBorderWidth = new Common.UI.Menu({ - style : 'min-width: 100px;', - menuAlign : 'tl-tr', - id : 'toolbar-menu-borders-width', - items: [ - { template: itemTemplate, stopPropagation: true, checkable: true, toggleGroup: 'border-width', value: 'thin', offsety: 0, checked:true}, - { template: itemTemplate, stopPropagation: true, checkable: true, toggleGroup: 'border-width', value: 'medium', offsety: 20}, - { template: itemTemplate, stopPropagation: true, checkable: true, toggleGroup: 'border-width', value: 'thick', offsety: 40} - ] - }); - - return me.mnuBorderWidth; - })() - }, - this.mnuBorderColor = new Common.UI.MenuItem({ - id : 'id-toolbar-mnu-item-border-color', - caption : this.textBordersColor, - iconCls : 'mnu-icon-item mnu-border-color', - template : _.template('<%= caption %>'), - menu : new Common.UI.Menu({ - menuAlign : 'tl-tr', - items : [ - { template: _.template('
'), stopPropagation: true }, - { template: _.template('' + this.textNewColor + ''), stopPropagation: true } - ] + if (this.btnShowMode.rendered) { + this.btnShowMode.setMenu(new Common.UI.Menu({ + items: [ + this.mnuitemCompactToolbar = new Common.UI.MenuItem({ + caption : this.textCompactToolbar, + checkable : true, + value : 'compact' + }), + this.mnuitemHideTitleBar = new Common.UI.MenuItem({ + caption : this.textHideTBar, + checkable : true, + value : 'title' + }), + this.mnuitemHideFormulaBar = new Common.UI.MenuItem({ + caption : this.textHideFBar, + checkable : true, + value : 'formula' + }), + this.mnuitemHideHeadings = new Common.UI.MenuItem({ + caption : this.textHideHeadings, + checkable : true, + checked : this.mnuitemHideHeadings.isChecked(), + value : 'headings' + }), + this.mnuitemHideGridlines = new Common.UI.MenuItem({ + caption : this.textHideGridlines, + checkable : true, + checked : this.mnuitemHideGridlines.isChecked(), + value : 'gridlines' + }), + {caption: '--'}, + this.mnuZoom = new Common.UI.MenuItem({ + template: _.template([ + '' + ].join('')), + stopPropagation: true, + value: this.mnuZoom.options.value }) - }) - ] - })); - var colorVal = $('
'); - $('button:first-child', this.btnBorders.cmpEl).append(colorVal); - colorVal.css('background-color', this.btnBorders.currentColor || 'transparent'); + ] + })); - this.mnuBorderColorPicker = new Common.UI.ThemeColorPalette({ - el: $('#id-toolbar-menu-bordercolor') - }); + this.mnuZoomOut = new Common.UI.Button({ + el : $('#id-menu-zoom-out'), + cls : 'btn-toolbar' + }); + this.mnuZoomIn = new Common.UI.Button({ + el : $('#id-menu-zoom-in'), + cls : 'btn-toolbar' + }); + + var options = {}; + JSON.parse(Common.localStorage.getItem('sse-hidden-title')) && (options.title = true); + JSON.parse(Common.localStorage.getItem('sse-hidden-formula')) && (options.formula = true); + // JSON.parse(Common.localStorage.getItem('sse-hidden-headings')) && (options.headings = true); + var isCompactView = JSON.parse(Common.localStorage.getItem('sse-toolbar-compact')); + isCompactView = !!(isCompactView!==null && parseInt(isCompactView) == 1 || isCompactView === null && this.mode.customization && this.mode.customization.compactToolbar); + + this.mnuitemCompactToolbar.setChecked(isCompactView); + this.mnuitemHideTitleBar.setChecked(!!options.title); + this.mnuitemHideFormulaBar.setChecked(!!options.formula); + this.mnuitemHideHeadings.setChecked(!!options.headings); + + if (this.mode.isDesktopApp) + this.mnuitemHideTitleBar.hide(); + } + + if (this.btnBorders.rendered) { + this.btnBorders.setMenu( new Common.UI.Menu({ + items: [ + { + caption : this.textOutBorders, + iconCls : 'mnu-border-out', + icls : 'btn-border-out', + borderId : 'outer' + }, + { + caption : this.textAllBorders, + iconCls : 'mnu-border-all', + icls : 'btn-border-all', + borderId : 'all' + }, + { + caption : this.textTopBorders, + iconCls : 'mnu-border-top', + icls : 'btn-border-top', + borderId : Asc.c_oAscBorderOptions.Top + }, + { + caption : this.textBottomBorders, + iconCls : 'mnu-border-bottom', + icls : 'btn-border-bottom', + borderId : Asc.c_oAscBorderOptions.Bottom + }, + { + caption : this.textLeftBorders, + iconCls : 'mnu-border-left', + icls : 'btn-border-left', + borderId : Asc.c_oAscBorderOptions.Left + }, + { + caption : this.textRightBorders, + iconCls : 'mnu-border-right', + icls : 'btn-border-right', + borderId : Asc.c_oAscBorderOptions.Right + }, + { + caption : this.textNoBorders, + iconCls : 'mnu-border-no', + icls : 'btn-border-no', + borderId : 'none' + }, + {caption: '--'}, + { + caption : this.textInsideBorders, + iconCls : 'mnu-border-center', + icls : 'btn-border-center', + borderId : 'inner' + }, + { + caption : this.textCenterBorders, + iconCls : 'mnu-border-vmiddle', + icls : 'btn-border-vmiddle', + borderId : Asc.c_oAscBorderOptions.InnerV + }, + { + caption : this.textMiddleBorders, + iconCls : 'mnu-border-hmiddle', + icls : 'btn-border-hmiddle', + borderId : Asc.c_oAscBorderOptions.InnerH + }, + { + caption : this.textDiagUpBorder, + iconCls : 'mnu-border-diagup', + icls : 'btn-border-diagup', + borderId : Asc.c_oAscBorderOptions.DiagU + }, + { + caption : this.textDiagDownBorder, + iconCls : 'mnu-border-diagdown', + icls : 'btn-border-diagdown', + borderId : Asc.c_oAscBorderOptions.DiagD + }, + {caption: '--'}, + { + id : 'id-toolbar-mnu-item-border-width', + caption : this.textBordersWidth, + iconCls : 'mnu-icon-item mnu-border-width', + template : _.template('<%= caption %>'), + menu : (function(){ + var itemTemplate = _.template('
'); + + me.mnuBorderWidth = new Common.UI.Menu({ + style : 'min-width: 100px;', + menuAlign : 'tl-tr', + id : 'toolbar-menu-borders-width', + items: [ + { template: itemTemplate, stopPropagation: true, checkable: true, toggleGroup: 'border-width', value: 'thin', offsety: 0, checked:true}, + { template: itemTemplate, stopPropagation: true, checkable: true, toggleGroup: 'border-width', value: 'medium', offsety: 20}, + { template: itemTemplate, stopPropagation: true, checkable: true, toggleGroup: 'border-width', value: 'thick', offsety: 40} + ] + }); + + return me.mnuBorderWidth; + })() + }, + this.mnuBorderColor = new Common.UI.MenuItem({ + id : 'id-toolbar-mnu-item-border-color', + caption : this.textBordersColor, + iconCls : 'mnu-icon-item mnu-border-color', + template : _.template('<%= caption %>'), + menu : new Common.UI.Menu({ + menuAlign : 'tl-tr', + items : [ + { template: _.template('
'), stopPropagation: true }, + { template: _.template('' + this.textNewColor + ''), stopPropagation: true } + ] + }) + }) + ] + })); + + var colorVal = $('
'); + $('button:first-child', this.btnBorders.cmpEl).append(colorVal); + colorVal.css('background-color', this.btnBorders.currentColor || 'transparent'); + + this.mnuBorderColorPicker = new Common.UI.ThemeColorPalette({ + el: $('#id-toolbar-menu-bordercolor') + }); + } var formatTemplate = _.template('<%= caption %><%= options.tplval ? options.tplval : options.value %>'); this.btnNumberFormat.setMenu( new Common.UI.Menu({ @@ -1692,7 +1697,7 @@ define([ if (mode.isDesktopApp) { $('.toolbar-group-native').hide(); - this.mnuitemHideTitleBar.hide(); + this.mnuitemHideTitleBar && this.mnuitemHideTitleBar.hide(); } this.lockToolbar(SSE.enumLock.cantPrint, !mode.canPrint, {array: [this.btnPrint]});