Fix Bug 33139.

This commit is contained in:
Julia Radzhabova 2016-09-23 14:24:54 +03:00
parent d4c0969dbc
commit e0575a4db6
3 changed files with 211 additions and 200 deletions

View file

@ -494,7 +494,7 @@ define([
}, },
setMenu: function (m) { setMenu: function (m) {
if (m && _.isObject(m) && _.isFunction(m.render)){ if (this.rendered && m && _.isObject(m) && _.isFunction(m.render)){
this.menu = m; this.menu = m;
this.menu.render(this.cmpEl); this.menu.render(this.cmpEl);
} }

View file

@ -183,9 +183,11 @@ define([
toolbar.mnuTextColorPicker.on('select', _.bind(this.onTextColorSelect, this)); toolbar.mnuTextColorPicker.on('select', _.bind(this.onTextColorSelect, this));
toolbar.mnuBackColorPicker.on('select', _.bind(this.onBackColorSelect, this)); toolbar.mnuBackColorPicker.on('select', _.bind(this.onBackColorSelect, this));
toolbar.btnBorders.on('click', _.bind(this.onBorders, this)); toolbar.btnBorders.on('click', _.bind(this.onBorders, this));
toolbar.btnBorders.menu.on('item:click', _.bind(this.onBordersMenu, this)); if (toolbar.btnBorders.rendered) {
toolbar.mnuBorderWidth.on('item:toggle', _.bind(this.onBordersWidth, this)); toolbar.btnBorders.menu.on('item:click', _.bind(this.onBordersMenu, this));
toolbar.mnuBorderColorPicker.on('select', _.bind(this.onBordersColor, 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.btnAlignLeft.on('click', _.bind(this.onHorizontalAlign, this, 'left'));
toolbar.btnAlignCenter.on('click', _.bind(this.onHorizontalAlign, this, 'center')); toolbar.btnAlignCenter.on('click', _.bind(this.onHorizontalAlign, this, 'center'));
toolbar.btnAlignRight.on('click', _.bind(this.onHorizontalAlign, this, 'right')); toolbar.btnAlignRight.on('click', _.bind(this.onHorizontalAlign, this, 'right'));
@ -244,11 +246,11 @@ define([
toolbar.cmbFontSize.on('combo:focusin', _.bind(this.onComboOpen, this, false)); toolbar.cmbFontSize.on('combo:focusin', _.bind(this.onComboOpen, this, false));
if (toolbar.mnuZoomIn) toolbar.mnuZoomIn.on('click', _.bind(this.onZoomInClick, this)); if (toolbar.mnuZoomIn) toolbar.mnuZoomIn.on('click', _.bind(this.onZoomInClick, this));
if (toolbar.mnuZoomOut) toolbar.mnuZoomOut.on('click', _.bind(this.onZoomOutClick, 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.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.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-fontcolor').on('click', _.bind(this.onNewTextColor, this));
$('#id-toolbar-menu-new-paracolor').on('click', _.bind(this.onNewBackColor, this)); $('#id-toolbar-menu-new-paracolor').on('click', _.bind(this.onNewBackColor, this));
$('#id-toolbar-menu-new-bordercolor').on('click', _.bind(this.onNewBorderColor, this)); $('#id-toolbar-menu-new-bordercolor').on('click', _.bind(this.onNewBorderColor, this));
@ -1254,7 +1256,10 @@ define([
} }
if (me.toolbar.btnInsertText.rendered) if (me.toolbar.btnInsertText.rendered)
SSE.getController('Toolbar').fillTextArt(); me.fillTextArt();
if (me.toolbar.btnTableTemplate.rendered)
me.fillTableTemplates();
}, 100); }, 100);
} }
@ -1268,8 +1273,9 @@ define([
}, },
fillTableTemplates: function() { fillTableTemplates: function() {
var me = this; if (!this.toolbar.btnTableTemplate.rendered) return;
var me = this;
function createPicker(element, menu) { function createPicker(element, menu) {
var picker = new Common.UI.DataView({ var picker = new Common.UI.DataView({
el: element, el: element,

View file

@ -1293,198 +1293,203 @@ define([
this.btnAutofilter.updateHint(this.tipAutofilter); this.btnAutofilter.updateHint(this.tipAutofilter);
// set menus // set menus
this.btnShowMode.setMenu(new Common.UI.Menu({ if (this.btnShowMode.rendered) {
items: [ this.btnShowMode.setMenu(new Common.UI.Menu({
this.mnuitemCompactToolbar = new Common.UI.MenuItem({ items: [
caption : this.textCompactToolbar, this.mnuitemCompactToolbar = new Common.UI.MenuItem({
checkable : true, caption : this.textCompactToolbar,
value : 'compact' checkable : true,
}), value : 'compact'
this.mnuitemHideTitleBar = new Common.UI.MenuItem({ }),
caption : this.textHideTBar, this.mnuitemHideTitleBar = new Common.UI.MenuItem({
checkable : true, caption : this.textHideTBar,
value : 'title' checkable : true,
}), value : 'title'
this.mnuitemHideFormulaBar = new Common.UI.MenuItem({ }),
caption : this.textHideFBar, this.mnuitemHideFormulaBar = new Common.UI.MenuItem({
checkable : true, caption : this.textHideFBar,
value : 'formula' checkable : true,
}), value : 'formula'
this.mnuitemHideHeadings = new Common.UI.MenuItem({ }),
caption : this.textHideHeadings, this.mnuitemHideHeadings = new Common.UI.MenuItem({
checkable : true, caption : this.textHideHeadings,
checked : this.mnuitemHideHeadings.isChecked(), checkable : true,
value : 'headings' checked : this.mnuitemHideHeadings.isChecked(),
}), value : 'headings'
this.mnuitemHideGridlines = new Common.UI.MenuItem({ }),
caption : this.textHideGridlines, this.mnuitemHideGridlines = new Common.UI.MenuItem({
checkable : true, caption : this.textHideGridlines,
checked : this.mnuitemHideGridlines.isChecked(), checkable : true,
value : 'gridlines' checked : this.mnuitemHideGridlines.isChecked(),
}), value : 'gridlines'
{caption: '--'}, }),
this.mnuZoom = new Common.UI.MenuItem({ {caption: '--'},
template: _.template([ this.mnuZoom = new Common.UI.MenuItem({
'<div id="id-toolbar-menu-zoom" class="menu-zoom" style="height: 25px;" ', template: _.template([
'<% if(!_.isUndefined(options.stopPropagation)) { %>', '<div id="id-toolbar-menu-zoom" class="menu-zoom" style="height: 25px;" ',
'data-stopPropagation="true"', '<% if(!_.isUndefined(options.stopPropagation)) { %>',
'<% } %>', '>', 'data-stopPropagation="true"',
'<label class="title">' + this.textZoom + '</label>', '<% } %>', '>',
'<button id="id-menu-zoom-in" type="button" style="float:right; margin: 2px 5px 0 0;" class="btn small btn-toolbar"><span class="btn-icon btn-zoomin">&nbsp;</span></button>', '<label class="title">' + this.textZoom + '</label>',
'<label class="zoom"><%= options.value %>%</label>', '<button id="id-menu-zoom-in" type="button" style="float:right; margin: 2px 5px 0 0;" class="btn small btn-toolbar"><span class="btn-icon btn-zoomin">&nbsp;</span></button>',
'<button id="id-menu-zoom-out" type="button" style="float:right; margin-top: 2px;" class="btn small btn-toolbar"><span class="btn-icon btn-zoomout">&nbsp;</span></button>', '<label class="zoom"><%= options.value %>%</label>',
'</div>' '<button id="id-menu-zoom-out" type="button" style="float:right; margin-top: 2px;" class="btn small btn-toolbar"><span class="btn-icon btn-zoomout">&nbsp;</span></button>',
].join('')), '</div>'
stopPropagation: true, ].join('')),
value: this.mnuZoom.options.value 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('<a id="<%= id %>" tabindex="-1" type="menuitem"><span class="menu-item-icon" style="background-image: none; width: 11px; height: 11px; margin: 2px 7px 0 -9px; border-style: solid; border-width: 1px; border-color: #000;"></span><%= caption %></a>'),
menu : (function(){
var itemTemplate = _.template('<a id="<%= id %>" tabindex="-1" type="menuitem"><div class="border-size-item" style="background-position: 0 -<%= options.offsety %>px;"></div></a>');
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('<a id="<%= id %>"tabindex="-1" type="menuitem"><span class="menu-item-icon" style="background-image: none; width: 11px; height: 11px; margin: 2px 7px 0 -9px; border-style: solid; border-width: 3px; border-color: #000;"></span><%= caption %></a>'),
menu : new Common.UI.Menu({
menuAlign : 'tl-tr',
items : [
{ template: _.template('<div id="id-toolbar-menu-bordercolor" style="width: 165px; height: 220px; margin: 10px;"></div>'), stopPropagation: true },
{ template: _.template('<a id="id-toolbar-menu-new-bordercolor" style="padding-left:12px;">' + this.textNewColor + '</a>'), stopPropagation: true }
]
}) })
}) ]
] }));
}));
var colorVal = $('<div class="btn-color-value-line"></div>');
$('button:first-child', this.btnBorders.cmpEl).append(colorVal);
colorVal.css('background-color', this.btnBorders.currentColor || 'transparent');
this.mnuBorderColorPicker = new Common.UI.ThemeColorPalette({ this.mnuZoomOut = new Common.UI.Button({
el: $('#id-toolbar-menu-bordercolor') 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('<a id="<%= id %>" tabindex="-1" type="menuitem"><span class="menu-item-icon" style="background-image: none; width: 11px; height: 11px; margin: 2px 7px 0 -9px; border-style: solid; border-width: 1px; border-color: #000;"></span><%= caption %></a>'),
menu : (function(){
var itemTemplate = _.template('<a id="<%= id %>" tabindex="-1" type="menuitem"><div class="border-size-item" style="background-position: 0 -<%= options.offsety %>px;"></div></a>');
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('<a id="<%= id %>"tabindex="-1" type="menuitem"><span class="menu-item-icon" style="background-image: none; width: 11px; height: 11px; margin: 2px 7px 0 -9px; border-style: solid; border-width: 3px; border-color: #000;"></span><%= caption %></a>'),
menu : new Common.UI.Menu({
menuAlign : 'tl-tr',
items : [
{ template: _.template('<div id="id-toolbar-menu-bordercolor" style="width: 165px; height: 220px; margin: 10px;"></div>'), stopPropagation: true },
{ template: _.template('<a id="id-toolbar-menu-new-bordercolor" style="padding-left:12px;">' + this.textNewColor + '</a>'), stopPropagation: true }
]
})
})
]
}));
var colorVal = $('<div class="btn-color-value-line"></div>');
$('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('<a id="<%= id %>" style="white-space: normal;" tabindex="-1" type="menuitem"><%= caption %><span style="float: right; color: silver;"><%= options.tplval ? options.tplval : options.value %></span></a>'); var formatTemplate = _.template('<a id="<%= id %>" style="white-space: normal;" tabindex="-1" type="menuitem"><%= caption %><span style="float: right; color: silver;"><%= options.tplval ? options.tplval : options.value %></span></a>');
this.btnNumberFormat.setMenu( new Common.UI.Menu({ this.btnNumberFormat.setMenu( new Common.UI.Menu({
@ -1692,7 +1697,7 @@ define([
if (mode.isDesktopApp) { if (mode.isDesktopApp) {
$('.toolbar-group-native').hide(); $('.toolbar-group-native').hide();
this.mnuitemHideTitleBar.hide(); this.mnuitemHideTitleBar && this.mnuitemHideTitleBar.hide();
} }
this.lockToolbar(SSE.enumLock.cantPrint, !mode.canPrint, {array: [this.btnPrint]}); this.lockToolbar(SSE.enumLock.cantPrint, !mode.canPrint, {array: [this.btnPrint]});