diff --git a/apps/presentationeditor/main/app/view/Toolbar.js b/apps/presentationeditor/main/app/view/Toolbar.js
index a5ee77c60..d65c85791 100644
--- a/apps/presentationeditor/main/app/view/Toolbar.js
+++ b/apps/presentationeditor/main/app/view/Toolbar.js
@@ -83,45 +83,6 @@ define([
commentLock: 'can-comment'
};
- var buttonsArray = function (opts) {
- var arr = [];
- arr.push.apply(arr, arguments);
- arr.__proto__ = buttonsArray.prototype;
- return arr;
- };
-
- buttonsArray.prototype = new Array;
-
- buttonsArray.prototype.disable = function (state) {
- this.forEach(function(btn) {
- btn.setDisabled(state);
- });
- };
-
- buttonsArray.prototype.toggle = function (state, suppress) {
- this.forEach(function(btn) {
- btn.toggle(state, suppress);
- });
- };
-
- buttonsArray.prototype.pressed = function () {
- return this.some(function(btn) {
- return btn.pressed;
- });
- };
-
- buttonsArray.prototype.on = function (event, func) {
- this.forEach(function(btn) {
- btn.on.apply(btn, arguments);
- });
- };
-
- buttonsArray.prototype.contains = function (id) {
- return this.some(function(btn) {
- return btn.id == id;
- });
- };
-
PE.Views.Toolbar = Common.UI.Mixtbar.extend(_.extend((function(){
return {
@@ -209,15 +170,17 @@ define([
id : 'id-toolbar-btn-save',
cls : 'btn-toolbar',
iconCls : 'no-mask ' + me.btnSaveCls,
- lock : [_set.lostConnect]
+ lock : [_set.lostConnect],
+ signals : ['disabled']
});
- me.btnsSave = [me.btnSave];
+ me.btnCollabChanges = me.btnSave;
me.btnUndo = new Common.UI.Button({
id : 'id-toolbar-btn-undo',
cls : 'btn-toolbar',
iconCls : 'btn-undo',
- lock : [_set.undoLock, _set.slideDeleted, _set.lostConnect, _set.disableOnStart]
+ lock : [_set.undoLock, _set.slideDeleted, _set.lostConnect, _set.disableOnStart],
+ signals : ['disabled']
});
me.slideOnlyControls.push(me.btnUndo);
@@ -225,7 +188,8 @@ define([
id : 'id-toolbar-btn-redo',
cls : 'btn-toolbar',
iconCls : 'btn-redo',
- lock : [_set.redoLock, _set.slideDeleted, _set.lostConnect, _set.disableOnStart]
+ lock : [_set.redoLock, _set.slideDeleted, _set.lostConnect, _set.disableOnStart],
+ signals : ['disabled']
});
me.slideOnlyControls.push(me.btnRedo);
@@ -612,31 +576,6 @@ define([
});
me.slideOnlyControls.push(me.btnColorSchemas);
- me.btnHide = new Common.UI.Button({
- id : 'id-toolbar-btn-hidebars',
- cls : 'btn-toolbar',
- iconCls : 'btn-hidebars no-mask',
- lock : [_set.menuFileOpen, _set.slideDeleted, _set.disableOnStart],
- menu : true
- });
- me.slideOnlyControls.push(me.btnHide);
-
- this.btnFitPage = {
- conf: {checked:false},
- setChecked: function(val) { this.conf.checked = val;},
- isChecked: function () { return this.conf.checked; }
- };
- this.btnFitWidth = clone(this.btnFitPage);
- this.mnuZoom = {options: {value: 100}};
-
- me.btnAdvSettings = new Common.UI.Button({
- id : 'id-toolbar-btn-settings',
- cls : 'btn-toolbar',
- iconCls : 'btn-settings no-mask',
- lock : [_set.slideDeleted, _set.disableOnStart]
- });
- me.slideOnlyControls.push(me.btnAdvSettings);
-
me.btnShapeAlign = new Common.UI.Button({
id : 'id-toolbar-btn-shape-align',
cls : 'btn-toolbar',
@@ -911,9 +850,9 @@ define([
}
});
+ me.setTab('home');
if ( me.isCompactView )
- me.setFolded(true); else
- me.setTab('home');
+ me.setFolded(true);
return this;
},
@@ -979,11 +918,9 @@ define([
_injectComponent('#slot-btn-colorschemas', this.btnColorSchemas);
_injectComponent('#slot-btn-slidesize', this.btnSlideSize);
_injectComponent('#slot-field-styles', this.listTheme);
- _injectComponent('#slot-btn-hidebars', this.btnHide);
- _injectComponent('#slot-btn-settings', this.btnAdvSettings);
function _injectBtns(opts) {
- var array = new buttonsArray;
+ var array = createButtonSet();
var $slots = $host.find(opts.slot);
var id = opts.btnconfig.id;
$slots.each(function(index, el) {
@@ -992,7 +929,7 @@ define([
var button = new Common.UI.Button(opts.btnconfig);
button.render( $slots.eq(index) );
- array.push(button);
+ array.add(button);
});
return array;
@@ -1141,8 +1078,6 @@ define([
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);
this.btnShapeAlign.updateHint(this.tipShapeAlign);
this.btnShapeArrange.updateHint(this.tipShapeArrange);
this.btnSlideSize.updateHint(this.tipSlideSize);
@@ -1151,66 +1086,6 @@ define([
var me = this;
- this.btnHide.setMenu(
- new Common.UI.Menu({
- cls: 'pull-right',
- style: 'min-width: 180px;',
- items: [
- this.mnuitemCompactToolbar = new Common.UI.MenuItem({
- caption: this.textCompactView,
- checkable: true,
- checked: me.isCompactView
- }),
- this.mnuitemHideStatusBar = new Common.UI.MenuItem({
- caption: this.textHideStatusBar,
- checkable: true
- }),
- this.mnuitemHideRulers = new Common.UI.MenuItem({
- caption: this.textHideLines,
- checkable: true
- }),
- {caption: '--'},
- this.btnFitPage = new Common.UI.MenuItem({
- caption: this.textFitPage,
- checkable: true,
- checked: this.btnFitPage.isChecked()
- }),
- this.btnFitWidth = new Common.UI.MenuItem({
- caption: this.textFitWidth,
- checkable: true,
- checked: this.btnFitWidth.isChecked()
- }),
- this.mnuZoom = new Common.UI.MenuItem({
- template: _.template([
- ''
- ].join('')),
- stopPropagation: true,
- value: this.mnuZoom.options.value
- })
- ]
- })
- );
- if (this.mode.canBrandingExt && this.mode.customization && this.mode.customization.statusBar === false)
- this.mnuitemHideStatusBar.hide();
-
- 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'
- });
-
this.btnMarkers.setMenu(
new Common.UI.Menu({
style: 'min-width: 139px',
@@ -1375,19 +1250,9 @@ define([
me.mnuChangeSlidePicker._needRecalcSlideLayout = true;
});
- this.mnuitemHideStatusBar.setChecked(Common.localStorage.getBool('pe-hidden-status'), true);
- this.mnuitemHideRulers.setChecked(Common.localStorage.getBool("pe-hidden-rulers", true), true);
-
// // Enable none paragraph components
this.lockToolbar(PE.enumLock.disableOnStart, false, {array: this.slideOnlyControls.concat(this.shapeControls)});
- var btnsave = PE.getController('LeftMenu').getView('LeftMenu').getMenu('file').getButton('save');
- if (btnsave && this.btnsSave) {
- this.btnsSave.push(btnsave);
- this.lockControls.push(btnsave);
- btnsave.setDisabled(this.btnsSave[0].isDisabled());
- }
-
/** coauthoring begin **/
this.showSynchTip = !Common.localStorage.getBool('pe-hide-synch');
this.needShowSynchTip = false;
@@ -1511,7 +1376,7 @@ define([
/** coauthoring begin **/
onCollaborativeChanges: function () {
if (this._state.hasCollaborativeChanges) return;
- if (!this.btnSave.rendered) {
+ if (!this.btnCollabChanges.rendered) {
this.needShowSynchTip = true;
return;
}
@@ -1523,59 +1388,47 @@ define([
}
this._state.hasCollaborativeChanges = true;
- var iconEl = $('.icon', this.btnSave.cmpEl);
- iconEl.removeClass(this.btnSaveCls);
- iconEl.addClass('btn-synch');
+ this.btnCollabChanges.$icon.removeClass(this.btnSaveCls).addClass('btn-synch');
if (this.showSynchTip) {
- this.btnSave.updateHint('');
+ this.btnCollabChanges.updateHint('');
if (this.synchTooltip === undefined)
this.createSynchTip();
this.synchTooltip.show();
} else {
- this.btnSave.updateHint(this.tipSynchronize + Common.Utils.String.platformKey('Ctrl+S'));
+ this.btnCollabChanges.updateHint(this.tipSynchronize + Common.Utils.String.platformKey('Ctrl+S'));
}
- this.btnsSave.forEach(function(button) {
- if ( button ) {
- button.setDisabled(false);
- }
- });
+ this.btnSave.setDisabled(false);
Common.Gateway.collaborativeChanges();
},
createSynchTip: function () {
this.synchTooltip = new Common.UI.SynchronizeTip({
- target: $('#id-toolbar-btn-save')
+ target: this.btnCollabChanges.$el
});
this.synchTooltip.on('dontshowclick', function () {
this.showSynchTip = false;
this.synchTooltip.hide();
- this.btnSave.updateHint(this.tipSynchronize + Common.Utils.String.platformKey('Ctrl+S'));
+ this.btnCollabChanges.updateHint(this.tipSynchronize + Common.Utils.String.platformKey('Ctrl+S'));
Common.localStorage.setItem("pe-hide-synch", 1);
}, this);
this.synchTooltip.on('closeclick', function () {
this.synchTooltip.hide();
- this.btnSave.updateHint(this.tipSynchronize + Common.Utils.String.platformKey('Ctrl+S'));
+ this.btnCollabChanges.updateHint(this.tipSynchronize + Common.Utils.String.platformKey('Ctrl+S'));
}, this);
},
synchronizeChanges: function () {
- if (this.btnSave.rendered) {
- var iconEl = $('.icon', this.btnSave.cmpEl),
- me = this;
+ if (this.btnCollabChanges.rendered) {
+ var me = this;
- if (iconEl.hasClass('btn-synch')) {
- iconEl.removeClass('btn-synch');
- iconEl.addClass(this.btnSaveCls);
+ if ( me.btnCollabChanges.$icon.hasClass('btn-synch') ) {
+ me.btnCollabChanges.$icon.removeClass('btn-synch').addClass(this.btnSaveCls);
if (this.synchTooltip)
this.synchTooltip.hide();
- this.btnSave.updateHint(this.btnSaveTip);
- this.btnsSave.forEach(function(button) {
- if ( button ) {
- button.setDisabled(!me.mode.forcesave);
- }
- });
+ this.btnCollabChanges.updateHint(this.btnSaveTip);
+ this.btnSave.setDisabled(!me.mode.forcesave);
this._state.hasCollaborativeChanges = false;
}
@@ -1591,14 +1444,12 @@ define([
var length = _.size(editusers);
var cls = (length > 1) ? 'btn-save-coauth' : 'btn-save';
- if (cls !== this.btnSaveCls && this.btnSave.rendered) {
+ if (cls !== this.btnSaveCls && this.btnCollabChanges.rendered) {
this.btnSaveTip = ((length > 1) ? this.tipSaveCoauth : this.tipSave ) + Common.Utils.String.platformKey('Ctrl+S');
- var iconEl = $('.icon', this.btnSave.cmpEl);
- if (!iconEl.hasClass('btn-synch')) {
- iconEl.removeClass(this.btnSaveCls);
- iconEl.addClass(cls);
- this.btnSave.updateHint(this.btnSaveTip);
+ if ( !this.btnCollabChanges.$icon.hasClass('btn-synch') ) {
+ this.btnCollabChanges.$icon.removeClass(this.btnSaveCls).addClass(cls);
+ this.btnCollabChanges.updateHint(this.btnSaveTip);
}
this.btnSaveCls = cls;
}
@@ -1804,15 +1655,6 @@ define([
mniSlideWide: 'Widescreen (16:9)',
mniSlideAdvanced: 'Advanced Settings',
tipSlideSize: 'Select Slide Size',
- tipViewSettings: 'View Settings',
- tipAdvSettings: 'Advanced Settings',
- textCompactView: 'Hide Toolbar',
- textHideTitleBar: 'Hide Title Bar',
- textHideStatusBar: 'Hide Status Bar',
- textHideLines: 'Hide Rulers',
- textFitPage: 'Fit to Slide',
- textFitWidth: 'Fit to Width',
- textZoom: 'Zoom',
tipInsertChart: 'Insert Chart',
textLine: 'Line',
textColumn: 'Column',
diff --git a/apps/presentationeditor/main/app/view/Viewport.js b/apps/presentationeditor/main/app/view/Viewport.js
index c8ef97ac0..62652613f 100644
--- a/apps/presentationeditor/main/app/view/Viewport.js
+++ b/apps/presentationeditor/main/app/view/Viewport.js
@@ -86,13 +86,19 @@ define([
this.vlayout = new Common.UI.VBoxLayout({
box: $container,
items: [{
- el: items[0],
- height: Common.localStorage.getBool('pe-compact-toolbar') ? 32 : 32+67
+ el: $container.find('> .layout-item#app-title').hide(),
+ alias: 'title',
+ height: Common.Utils.InternalSettings.get('document-title-height')
}, {
el: items[1],
- stretch: true
+ alias: 'toolbar',
+ height: Common.localStorage.getBool('pe-compact-toolbar') ?
+ Common.Utils.InternalSettings.get('toolbar-height-compact') : Common.Utils.InternalSettings.get('toolbar-height-normal')
}, {
el: items[2],
+ stretch: true
+ }, {
+ el: items[3],
height: 25
}]
});
diff --git a/apps/presentationeditor/main/app_dev.js b/apps/presentationeditor/main/app_dev.js
index c9322309e..e7fbad44b 100644
--- a/apps/presentationeditor/main/app_dev.js
+++ b/apps/presentationeditor/main/app_dev.js
@@ -181,6 +181,7 @@ require([
'common/main/lib/controller/ExternalDiagramEditor'
,'common/main/lib/controller/ReviewChanges'
,'common/main/lib/controller/Protection'
+ ,'common/main/lib/controller/Desktop'
], function() {
window.compareVersions = true;
app.start();
diff --git a/apps/presentationeditor/main/locale/en.json b/apps/presentationeditor/main/locale/en.json
index 6aba18f05..23227e68e 100644
--- a/apps/presentationeditor/main/locale/en.json
+++ b/apps/presentationeditor/main/locale/en.json
@@ -92,6 +92,12 @@
"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.Header.textAdvSettings": "Advanced settings",
+ "Common.Views.Header.textCompactView": "Hide Toolbar",
+ "Common.Views.Header.textHideStatusBar": "Hide Status Bar",
+ "Common.Views.Header.textZoom": "Zoom",
+ "Common.Views.Header.tipViewSettings": "View settings",
+ "Common.Views.Header.textHideLines": "Hide Rulers",
"Common.Views.ImageFromUrlDialog.cancelButtonText": "Cancel",
"Common.Views.ImageFromUrlDialog.okButtonText": "OK",
"Common.Views.ImageFromUrlDialog.textUrl": "Paste an image URL:",
@@ -700,6 +706,8 @@
"PE.Controllers.Toolbar.txtSymbol_vdots": "Vertical ellipsis",
"PE.Controllers.Toolbar.txtSymbol_xsi": "Xi",
"PE.Controllers.Toolbar.txtSymbol_zeta": "Zeta",
+ "PE.Controllers.Viewport.textFitPage": "Fit to Slide",
+ "PE.Controllers.Viewport.textFitWidth": "Fit to Width",
"PE.Views.ChartSettings.textAdvanced": "Show advanced settings",
"PE.Views.ChartSettings.textArea": "Area",
"PE.Views.ChartSettings.textBar": "Bar",
@@ -1405,12 +1413,12 @@
"PE.Views.Toolbar.textCancel": "Cancel",
"PE.Views.Toolbar.textCharts": "Charts",
"PE.Views.Toolbar.textColumn": "Column",
- "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",
- "PE.Views.Toolbar.textHideStatusBar": "Hide Status Bar",
- "PE.Views.Toolbar.textHideTitleBar": "Hide Title Bar",
+ "del_PE.Views.Toolbar.textCompactView": "Hide Toolbar",
+ "del_PE.Views.Toolbar.textFitPage": "Fit to Slide",
+ "del_PE.Views.Toolbar.textFitWidth": "Fit to Width",
+ "del_PE.Views.Toolbar.textHideLines": "Hide Rulers",
+ "del_PE.Views.Toolbar.textHideStatusBar": "Hide Status Bar",
+ "del_PE.Views.Toolbar.textHideTitleBar": "Hide Title Bar",
"PE.Views.Toolbar.textItalic": "Italic",
"PE.Views.Toolbar.textLine": "Line",
"PE.Views.Toolbar.textNewColor": "Custom Color",
@@ -1439,9 +1447,9 @@
"PE.Views.Toolbar.textTabProtect": "Protection",
"PE.Views.Toolbar.textTitleError": "Error",
"PE.Views.Toolbar.textUnderline": "Underline",
- "PE.Views.Toolbar.textZoom": "Zoom",
+ "del_PE.Views.Toolbar.textZoom": "Zoom",
"PE.Views.Toolbar.tipAddSlide": "Add slide",
- "PE.Views.Toolbar.tipAdvSettings": "Advanced settings",
+ "del_PE.Views.Toolbar.tipAdvSettings": "Advanced settings",
"PE.Views.Toolbar.tipBack": "Back",
"PE.Views.Toolbar.tipChangeChart": "Change chart type",
"PE.Views.Toolbar.tipChangeSlide": "Change slide layout",
@@ -1454,7 +1462,7 @@
"PE.Views.Toolbar.tipFontName": "Font",
"PE.Views.Toolbar.tipFontSize": "Font size",
"PE.Views.Toolbar.tipHAligh": "Horizontal align",
- "PE.Views.Toolbar.tipHideBars": "Hide Title bar & Status bar",
+ "del_PE.Views.Toolbar.tipHideBars": "Hide Title bar & Status bar",
"PE.Views.Toolbar.tipIncPrLeft": "Increase indent",
"PE.Views.Toolbar.tipInsertChart": "Insert chart",
"PE.Views.Toolbar.tipInsertEquation": "Insert equation",
diff --git a/apps/spreadsheeteditor/main/app.js b/apps/spreadsheeteditor/main/app.js
index a3a88d38b..fdf262dbe 100644
--- a/apps/spreadsheeteditor/main/app.js
+++ b/apps/spreadsheeteditor/main/app.js
@@ -196,6 +196,7 @@ require([
'common/main/lib/controller/Plugins'
,'common/main/lib/controller/ReviewChanges'
,'common/main/lib/controller/Protection'
+ ,'common/main/lib/controller/Desktop'
], function() {
app.start();
});
diff --git a/apps/spreadsheeteditor/main/app/controller/CellEditor.js b/apps/spreadsheeteditor/main/app/controller/CellEditor.js
index ab413d942..7c9c69def 100644
--- a/apps/spreadsheeteditor/main/app/controller/CellEditor.js
+++ b/apps/spreadsheeteditor/main/app/controller/CellEditor.js
@@ -67,6 +67,13 @@ define([
'CellEditor': {},
'Viewport': {
'layout:resizedrag': _.bind(this.onLayoutResize, this)
+ },
+ 'Common.Views.Header': {
+ 'formulabar:hide': function (state) {
+ this.editor.setVisible(!state);
+ Common.localStorage.setBool('sse-hidden-formula', state);
+ Common.NotificationCenter.trigger('layout:changed', 'celleditor', state?'hidden':'showed');
+ }.bind(this)
}
});
},
diff --git a/apps/spreadsheeteditor/main/app/controller/LeftMenu.js b/apps/spreadsheeteditor/main/app/controller/LeftMenu.js
index c72fb08f9..c6fa3a093 100644
--- a/apps/spreadsheeteditor/main/app/controller/LeftMenu.js
+++ b/apps/spreadsheeteditor/main/app/controller/LeftMenu.js
@@ -55,6 +55,7 @@ define([
'hide': _.bind(this.onHidePlugins, this)
},
'Common.Views.Header': {
+ 'file:settings': _.bind(this.clickToolbarSettings,this),
'click:users': _.bind(this.clickStatusbarUsers, this)
},
'LeftMenu': {
@@ -79,7 +80,8 @@ define([
'Toolbar': {
'file:settings': _.bind(this.clickToolbarSettings,this),
'file:open': this.clickToolbarTab.bind(this, 'file'),
- 'file:close': this.clickToolbarTab.bind(this, 'other')
+ 'file:close': this.clickToolbarTab.bind(this, 'other'),
+ 'save:disabled' : this.changeToolbarSaveState.bind(this)
},
'SearchDialog': {
'hide': _.bind(this.onSearchDlgHide, this),
@@ -342,6 +344,10 @@ define([
this.leftMenu.menuFile.hide();
},
+ changeToolbarSaveState: function (state) {
+ this.leftMenu.menuFile.getButton('save').setDisabled(state);
+ },
+
/** coauthoring begin **/
clickStatusbarUsers: function() {
this.leftMenu.menuFile.panels['rights'].changeAccessRights();
diff --git a/apps/spreadsheeteditor/main/app/controller/Main.js b/apps/spreadsheeteditor/main/app/controller/Main.js
index 0534ef5b9..37d9ec71b 100644
--- a/apps/spreadsheeteditor/main/app/controller/Main.js
+++ b/apps/spreadsheeteditor/main/app/controller/Main.js
@@ -307,7 +307,8 @@ define([
this.plugins = this.editorConfig.plugins;
this.headerView = this.getApplication().getController('Viewport').getView('Common.Views.Header');
- this.headerView.setCanBack(this.appOptions.canBackToFolder === true, (this.appOptions.canBackToFolder) ? this.editorConfig.customization.goback.text : '');
+ this.headerView.setCanBack(this.appOptions.canBackToFolder === true, (this.appOptions.canBackToFolder) ? this.editorConfig.customization.goback.text : '')
+ .setUserName(this.appOptions.user.fullname);
var value = Common.localStorage.getItem("sse-settings-reg-settings");
if (value!==null)
@@ -332,6 +333,7 @@ define([
Common.Utils.Metric.setDefaultMetric(Common.Utils.Metric.c_MetricUnits.inch);
this.isFrameClosed = (this.appOptions.isEditDiagram || this.appOptions.isEditMailMerge);
+ Common.Controllers.Desktop.init(this.appOptions);
},
loadDocument: function(data) {
@@ -425,11 +427,14 @@ define([
},
goBack: function() {
- var href = this.appOptions.customization.goback.url;
- if (this.appOptions.customization.goback.blank!==false) {
- window.open(href, "_blank");
- } else {
- parent.location.href = href;
+ var me = this;
+ if ( !Common.Controllers.Desktop.process('goback') ) {
+ var href = me.appOptions.customization.goback.url;
+ if (me.appOptions.customization.goback.blank!==false) {
+ window.open(href, "_blank");
+ } else {
+ parent.location.href = href;
+ }
}
},
@@ -908,16 +913,12 @@ define([
applyModeCommonElements: function() {
window.editor_elements_prepared = true;
- var value = Common.localStorage.getItem("sse-hidden-title");
- value = this.appOptions.isEdit && (value!==null && parseInt(value) == 1);
-
var app = this.getApplication(),
viewport = app.getController('Viewport').getView('Viewport'),
statusbarView = app.getController('Statusbar').getView('Statusbar');
if (this.headerView) {
- this.headerView.setHeaderCaption(this.appOptions.isEdit ? 'Spreadsheet Editor' : 'Spreadsheet Viewer');
- this.headerView.setVisible(!this.appOptions.nativeApp && !value && !this.appOptions.isEditMailMerge &&
+ this.headerView.setVisible(!this.appOptions.nativeApp && !this.appOptions.isEditMailMerge &&
!this.appOptions.isDesktopApp && !this.appOptions.isEditDiagram);
}
@@ -1413,12 +1414,7 @@ define([
forcesave = this.appOptions.forcesave,
cansave = this.api.asc_isDocumentCanSave(),
isDisabled = !cansave && !isSyncButton && !forcesave || this._state.isDisconnected || this._state.fastCoauth && this._state.usersCount>1 && !forcesave;
- if (this.toolbarView.btnSave.isDisabled() !== isDisabled)
- this.toolbarView.btnsSave.forEach(function(button) {
- if ( button ) {
- button.setDisabled(isDisabled);
- }
- });
+ this.toolbarView.btnSave.setDisabled(isDisabled);
}
},
@@ -1427,12 +1423,7 @@ define([
var isSyncButton = $('.icon', this.toolbarView.btnSave.cmpEl).hasClass('btn-synch'),
forcesave = this.appOptions.forcesave,
isDisabled = !isCanSave && !isSyncButton && !forcesave || this._state.isDisconnected || this._state.fastCoauth && this._state.usersCount>1 && !forcesave;
- if (this.toolbarView.btnSave.isDisabled() !== isDisabled)
- this.toolbarView.btnsSave.forEach(function(button) {
- if ( button ) {
- button.setDisabled(isDisabled);
- }
- });
+ this.toolbarView.btnSave.setDisabled(isDisabled);
}
},
diff --git a/apps/spreadsheeteditor/main/app/controller/Toolbar.js b/apps/spreadsheeteditor/main/app/controller/Toolbar.js
index 2a2fd26c2..193244a5d 100644
--- a/apps/spreadsheeteditor/main/app/controller/Toolbar.js
+++ b/apps/spreadsheeteditor/main/app/controller/Toolbar.js
@@ -80,10 +80,16 @@ define([
'settings:apply': _.bind(this.applyFormulaSettings, this)
},
'Common.Views.Header': {
+ 'toolbar:setcompact': this.onChangeViewMode.bind(this),
'print': function (opts) {
var _main = this.getApplication().getController('Main');
_main.onPrint();
},
+ 'save': function (opts) {
+ this.api.asc_Save();
+ },
+ 'undo': this.onUndo,
+ 'redo': this.onRedo,
'downloadas': function (opts) {
var _main = this.getApplication().getController('Main');
var _file_type = _main.appOptions.spreadsheet.fileType,
@@ -242,8 +248,11 @@ define([
} else {
toolbar.btnPrint.on('click', _.bind(this.onPrint, this));
toolbar.btnSave.on('click', _.bind(this.onSave, this));
+ toolbar.btnSave.on('disabled', _.bind(this.onBtnChangeState, this, 'save:disabled'));
toolbar.btnUndo.on('click', _.bind(this.onUndo, this));
+ toolbar.btnUndo.on('disabled', _.bind(this.onBtnChangeState, this, 'undo:disabled'));
toolbar.btnRedo.on('click', _.bind(this.onRedo, this));
+ toolbar.btnRedo.on('disabled', _.bind(this.onBtnChangeState, this, 'redo:disabled'));
toolbar.btnCopy.on('click', _.bind(this.onCopyPaste, this, true));
toolbar.btnPaste.on('click', _.bind(this.onCopyPaste, this, false));
toolbar.btnIncFontSize.on('click', _.bind(this.onIncreaseFontSize, this));
@@ -297,7 +306,6 @@ define([
toolbar.btnDecDecimal.on('click', _.bind(this.onDecrement, this));
toolbar.btnIncDecimal.on('click', _.bind(this.onIncrement, this));
toolbar.btnInsertFormula.on('click', _.bind(this.onInsertFormulaMenu, this));
- toolbar.btnSettings.on('click', _.bind(this.onAdvSettingsClick, this));
toolbar.btnInsertFormula.menu.on('item:click', _.bind(this.onInsertFormulaMenu, this));
toolbar.btnNamedRange.menu.on('item:click', _.bind(this.onNamedRangeMenu, this));
toolbar.btnNamedRange.menu.on('show:after', _.bind(this.onNamedRangeMenuOpen, this));
@@ -318,16 +326,12 @@ define([
toolbar.cmbFontSize.on('hide:after', _.bind(this.onHideMenus, this));
toolbar.cmbFontSize.on('combo:blur', _.bind(this.onComboBlur, this));
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));
- if (toolbar.btnShowMode.rendered) toolbar.btnShowMode.menu.on('item:click', _.bind(this.onHideMenu, this));
toolbar.listStyles.on('click', _.bind(this.onListStyleSelect, this));
toolbar.cmbNumberFormat.on('selected', _.bind(this.onNumberFormatSelect, this));
toolbar.cmbNumberFormat.on('show:before', _.bind(this.onNumberFormatOpenBefore, this, true));
if (toolbar.cmbNumberFormat.cmpEl)
toolbar.cmbNumberFormat.cmpEl.on('click', '#id-toolbar-mnu-item-more-formats a', _.bind(this.onNumberFormatSelect, this));
toolbar.btnCurrencyStyle.menu.on('item:click', _.bind(this.onNumberFormatMenu, 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));
@@ -378,7 +382,7 @@ define([
onSave: function(e) {
if (this.api) {
var isModified = this.api.asc_isDocumentCanSave();
- var isSyncButton = $('.icon', this.toolbar.btnSave.cmpEl).hasClass('btn-synch');
+ var isSyncButton = this.toolbar.btnCollabChanges.$icon.hasClass('btn-synch');
if (!isModified && !isSyncButton && !this.toolbar.mode.forcesave)
return;
@@ -391,6 +395,13 @@ define([
Common.component.Analytics.trackEvent('ToolBar', 'Save');
},
+ onBtnChangeState: function(prop) {
+ if ( /\:disabled$/.test(prop) ) {
+ var _is_disabled = arguments[2];
+ this.toolbar.fireEvent(prop, [_is_disabled]);
+ }
+ },
+
onUndo: function(btn, e) {
if (this.api)
this.api.asc_Undo();
@@ -480,8 +491,7 @@ define([
},
onSubscriptMenu: function(menu, item) {
- var btnSubscript = this.toolbar.btnSubscript,
- iconEl = $('.icon', btnSubscript.cmpEl);
+ var btnSubscript = this.toolbar.btnSubscript;
if (item.value == 'sub') {
this._state.subscript = undefined;
@@ -491,9 +501,8 @@ define([
this.api.asc_setCellSuperscript(item.checked);
}
if (item.checked) {
- iconEl.removeClass(btnSubscript.options.icls);
+ btnSubscript.$icon.removeClass(btnSubscript.options.icls).addClass(item.options.icls);
btnSubscript.options.icls = item.options.icls;
- iconEl.addClass(btnSubscript.options.icls);
}
Common.NotificationCenter.trigger('edit:complete', this.toolbar);
@@ -597,14 +606,9 @@ define([
bordersWidth = btnBorders.options.borderswidth,
bordersColor = btnBorders.options.borderscolor;
- if (btnBorders.rendered) {
- var iconEl = $('.icon', btnBorders.cmpEl);
-
- if (iconEl) {
- iconEl.removeClass(btnBorders.options.icls);
- btnBorders.options.icls = item.options.icls;
- iconEl.addClass(btnBorders.options.icls);
- }
+ if ( btnBorders.rendered ) {
+ btnBorders.$icon.removeClass(btnBorders.options.icls).addClass(item.options.icls);
+ btnBorders.options.icls = item.options.icls;
}
btnBorders.options.borderId = item.options.borderId;
@@ -666,14 +670,11 @@ define([
},
onHorizontalAlignMenu: function(menu, item) {
- var btnHorizontalAlign = this.toolbar.btnHorizontalAlign,
- iconEl = $('.icon', btnHorizontalAlign.cmpEl);
+ var btnHorizontalAlign = this.toolbar.btnHorizontalAlign;
- if (iconEl) {
- iconEl.removeClass(btnHorizontalAlign.options.icls);
- btnHorizontalAlign.options.icls = !item.checked ? 'btn-align-left' : item.options.icls;
- iconEl.addClass(btnHorizontalAlign.options.icls);
- }
+ btnHorizontalAlign.$icon.removeClass(btnHorizontalAlign.options.icls);
+ btnHorizontalAlign.options.icls = !item.checked ? 'btn-align-left' : item.options.icls;
+ btnHorizontalAlign.$icon.addClass(btnHorizontalAlign.options.icls);
this._state.pralign = undefined;
if (this.api)
@@ -686,14 +687,11 @@ define([
},
onVerticalAlignMenu: function(menu, item) {
- var btnVerticalAlign = this.toolbar.btnVerticalAlign,
- iconEl = $('.icon', btnVerticalAlign.cmpEl);
+ var btnVerticalAlign = this.toolbar.btnVerticalAlign;
- if (iconEl) {
- iconEl.removeClass(btnVerticalAlign.options.icls);
- btnVerticalAlign.options.icls = !item.checked ? 'btn-valign-bottom' : item.options.icls;
- iconEl.addClass(btnVerticalAlign.options.icls);
- }
+ btnVerticalAlign.$icon.removeClass(btnVerticalAlign.options.icls);
+ btnVerticalAlign.options.icls = !item.checked ? 'btn-valign-bottom' : item.options.icls;
+ btnVerticalAlign.$icon.addClass(btnVerticalAlign.options.icls);
this._state.valign = undefined;
if (this.api)
@@ -1359,53 +1357,6 @@ define([
}
},
- onAdvSettingsClick: function(btn, e) {
- this.toolbar.fireEvent('file:settings', this);
- btn.cmpEl.blur();
- },
-
- onZoomInClick: function(btn) {
- if (this.api) {
- var f = Math.floor(this.api.asc_getZoom() * 10)/10;
- f += .1;
- if (f > 0 && !(f > 2.)) {
- this.api.asc_setZoom(f);
- }
- }
-
- Common.NotificationCenter.trigger('edit:complete', this.toolbar);
- },
-
- onZoomOutClick: function(btn) {
- if (this.api) {
- var f = Math.ceil(this.api.asc_getZoom() * 10)/10;
- f -= .1;
- if (!(f < .5)) {
- this.api.asc_setZoom(f);
- }
- }
-
- Common.NotificationCenter.trigger('edit:complete', this.toolbar);
- },
-
- onHideMenu: function(menu, item) {
- var params = {},
- option;
-
- switch(item.value) {
- case 'title': params.title = item.checked; option = 'sse-hidden-title'; break;
- case 'formula': params.formula = item.checked; option = 'sse-hidden-formula'; break;
- case 'headings': params.headings = item.checked; break;
- case 'gridlines': params.gridlines = item.checked; break;
- case 'freezepanes': params.freezepanes = item.checked; break;
- }
-
- this.hideElements(params);
- option && Common.localStorage.setBool(option, item.checked);
-
- Common.NotificationCenter.trigger('edit:complete', this.toolbar);
- },
-
onListStyleSelect: function(combo, record) {
this._state.prstyle = undefined;
if (this.api) {
@@ -1511,7 +1462,6 @@ define([
if ( from != 'file' ) {
Common.Utils.asyncCall(function () {
this.onChangeViewMode(null, !this.toolbar.isCompact());
- this.toolbar.mnuitemCompactToolbar.setChecked(this.toolbar.isCompact(), true);
}, this);
}
},
@@ -1709,26 +1659,9 @@ define([
this.checkInsertAutoshape({action:'cancel'});
},
- onApiZoomChange: function(zf, type){
- switch (type) {
- case 1: // FitWidth
- case 2: // FitPage
- case 0:
- default: {
- this.toolbar.mnuZoom.options.value = Math.floor((zf + .005) * 100);
- $('.menu-zoom .zoom', this.toolbar.el).html(Math.floor((zf + .005) * 100) + '%');
- }
- }
- },
+ onApiZoomChange: function(zf, type){},
- onApiSheetChanged: function() {
- if ( this.api && !this.appConfig.isEditDiagram && !this.appConfig.isEditMailMerge ) {
- var params = this.api.asc_getSheetViewSettings();
- this.toolbar.mnuitemHideHeadings.setChecked(!params.asc_getShowRowColHeaders());
- this.toolbar.mnuitemHideGridlines.setChecked(!params.asc_getShowGridLines());
- this.toolbar.mnuitemFreezePanes.setChecked(params.asc_getIsFreezePane());
- }
- },
+ onApiSheetChanged: function() {},
onApiEditorSelectionChanged: function(fontobj) {
if (!this.editMode) return;
@@ -1777,13 +1710,10 @@ define([
btnSubscript.menu.clearAll();
} else {
btnSubscript.menu.items[index].setChecked(true);
- if (btnSubscript.rendered) {
- var iconEl = $('.icon', btnSubscript.cmpEl);
- if (iconEl) {
- iconEl.removeClass(btnSubscript.options.icls);
- btnSubscript.options.icls = btnSubscript.menu.items[index].options.icls;
- iconEl.addClass(btnSubscript.options.icls);
- }
+ if ( btnSubscript.rendered && btnSubscript.$icon ) {
+ btnSubscript.$icon.removeClass(btnSubscript.options.icls);
+ btnSubscript.options.icls = btnSubscript.menu.items[index].options.icls;
+ btnSubscript.$icon.addClass(btnSubscript.options.icls);
}
}
@@ -1918,13 +1848,10 @@ define([
btnSubscript.menu.clearAll();
} else {
btnSubscript.menu.items[index].setChecked(true);
- if (btnSubscript.rendered) {
- var iconEl = $('.icon', btnSubscript.cmpEl);
- if (iconEl) {
- iconEl.removeClass(btnSubscript.options.icls);
- btnSubscript.options.icls = btnSubscript.menu.items[index].options.icls;
- iconEl.addClass(btnSubscript.options.icls);
- }
+ if ( btnSubscript.rendered ) {
+ btnSubscript.$icon.removeClass(btnSubscript.options.icls);
+ btnSubscript.options.icls = btnSubscript.menu.items[index].options.icls;
+ btnSubscript.$icon.addClass(btnSubscript.options.icls);
}
}
@@ -2053,14 +1980,9 @@ define([
}
var btnHorizontalAlign = this.toolbar.btnHorizontalAlign;
- if (btnHorizontalAlign.rendered) {
- var hIconEl = $('.icon', btnHorizontalAlign.cmpEl);
-
- if (hIconEl) {
- hIconEl.removeClass(btnHorizontalAlign.options.icls);
- btnHorizontalAlign.options.icls = align;
- hIconEl.addClass(btnHorizontalAlign.options.icls);
- }
+ if ( btnHorizontalAlign.rendered ) {
+ btnHorizontalAlign.$icon.removeClass(btnHorizontalAlign.options.icls).addClass(align);
+ btnHorizontalAlign.options.icls = align;
}
}
@@ -2088,14 +2010,9 @@ define([
toolbar.btnVerticalAlign.menu.items[index].setChecked(true, false);
var btnVerticalAlign = this.toolbar.btnVerticalAlign;
- if (btnVerticalAlign.rendered) {
- var vIconEl = $('.icon', btnVerticalAlign.cmpEl);
-
- if (vIconEl) {
- vIconEl.removeClass(btnVerticalAlign.options.icls);
- btnVerticalAlign.options.icls = align;
- vIconEl.addClass(btnVerticalAlign.options.icls);
- }
+ if ( btnVerticalAlign.rendered ) {
+ btnVerticalAlign.$icon.removeClass(btnVerticalAlign.options.icls).addClass(align);
+ btnVerticalAlign.options.icls = align;
}
}
}
@@ -2425,13 +2342,6 @@ define([
},
hideElements: function(opts) {
- if (!_.isUndefined(opts.title)) {
- var headerView = this.getApplication().getController('Viewport').getView('Common.Views.Header');
- headerView && headerView.setVisible(!opts.title);
-
- Common.NotificationCenter.trigger('layout:changed', 'header');
- }
-
if (!_.isUndefined(opts.compact)) {
this.onChangeViewMode(opts.compact);
}
@@ -2995,7 +2905,7 @@ define([
var toolbar = this.toolbar;
toolbar.$el.find('.toolbar').toggleClass('masked', disable);
- this.toolbar.lockToolbar(SSE.enumLock.menuFileOpen, disable, {array: [toolbar.btnShowMode]});
+ this.toolbar.lockToolbar(SSE.enumLock.menuFileOpen, disable);
if(disable) {
mask = $("
").appendTo(toolbar.$el.find('.toolbar'));
Common.util.Shortcuts.suspendEvents('command+l, ctrl+l, command+shift+l, ctrl+shift+l, command+k, ctrl+k, command+alt+h, ctrl+alt+h, command+1, ctrl+1');
@@ -3034,6 +2944,9 @@ define([
me.toolbar.setMode(config);
if ( config.isEdit ) {
+ me.toolbar.btnSave && me.toolbar.btnSave.on('disabled', _.bind(me.onBtnChangeState, me, 'save:disabled'));
+ me.toolbar.btnUndo && me.toolbar.btnUndo.on('disabled', _.bind(me.onBtnChangeState, me, 'undo:disabled'));
+ me.toolbar.btnRedo && me.toolbar.btnRedo.on('disabled', _.bind(me.onBtnChangeState, me, 'redo:disabled'));
me.toolbar.setApi(me.api);
if ( !config.isEditDiagram && !config.isEditMailMerge ) {
@@ -3049,11 +2962,23 @@ define([
if ( $panel )
me.toolbar.addTab(tab, $panel, 4);
- if (config.isDesktopApp && config.isOffline) {
- tab = {action: 'protect', caption: me.toolbar.textTabProtect};
- var $panel = me.getApplication().getController('Common.Controllers.Protection').createToolbarPanel();
- if ( $panel )
- me.toolbar.addTab(tab, $panel, 5);
+ if ( config.isDesktopApp ) {
+ // hide 'print' and 'save' buttons group and next separator
+ me.toolbar.btnPrint.$el.parents('.group').hide().next().hide();
+
+ // hide 'undo' and 'redo' buttons and get container
+ var $box = me.toolbar.btnUndo.$el.hide().next().hide().parent();
+
+ // move 'paste' button to the container instead of 'undo' and 'redo'
+ me.toolbar.btnPaste.$el.detach().appendTo($box);
+ me.toolbar.btnCopy.$el.removeClass('split');
+
+ if ( config.isOffline ) {
+ tab = {action: 'protect', caption: me.toolbar.textTabProtect};
+ var $panel = me.getApplication().getController('Common.Controllers.Protection').createToolbarPanel();
+ if ($panel)
+ me.toolbar.addTab(tab, $panel, 5);
+ }
}
}
}
diff --git a/apps/spreadsheeteditor/main/app/controller/Viewport.js b/apps/spreadsheeteditor/main/app/controller/Viewport.js
index 6ecf2250e..aacac3680 100644
--- a/apps/spreadsheeteditor/main/app/controller/Viewport.js
+++ b/apps/spreadsheeteditor/main/app/controller/Viewport.js
@@ -48,7 +48,7 @@ define([
], function (Viewport) {
'use strict';
- SSE.Controllers.Viewport = Backbone.Controller.extend({
+ SSE.Controllers.Viewport = Backbone.Controller.extend(_.assign({
// Specifying a Viewport model
models: [],
@@ -67,36 +67,212 @@ define([
// This most important part when we will tell our controller what events should be handled
this.addListeners({
+ 'FileMenu': {
+ 'menu:hide': me.onFileMenu.bind(me, 'hide'),
+ 'menu:show': me.onFileMenu.bind(me, 'show')
+ },
+ 'Statusbar': {
+ 'sheet:changed': me.onApiSheetChanged.bind(me)
+ },
'Toolbar': {
'render:before' : function (toolbar) {
var config = SSE.getController('Main').appOptions;
toolbar.setExtra('right', me.header.getPanel('right', config));
toolbar.setExtra('left', me.header.getPanel('left', config));
+
+ if ( me.appConfig && me.appConfig.isDesktopApp &&
+ me.appConfig.isEdit && toolbar.btnCollabChanges )
+ toolbar.btnCollabChanges = me.header.btnSave;
+
},
'view:compact' : function (toolbar, state) {
- me.viewport.vlayout.panels[0].height = state ? 32 : 32+67;
+ me.header.mnuitemCompactToolbar.setChecked(state, true);
+ me.viewport.vlayout.getItem('toolbar').height = state ?
+ Common.Utils.InternalSettings.get('toolbar-height-compact') : Common.Utils.InternalSettings.get('toolbar-height-normal');
+ },
+ 'undo:disabled' : function (state) {
+ if ( me.header.btnUndo ) {
+ if ( me.header.btnUndo.keepState )
+ me.header.btnUndo.keepState.disabled = state;
+ else me.header.btnUndo.setDisabled(state);
+ }
+ },
+ 'redo:disabled' : function (state) {
+ if ( me.header.btnRedo ) {
+ if ( me.header.btnRedo.keepState )
+ me.header.btnRedo.keepState.disabled = state;
+ else me.header.btnRedo.setDisabled(state);
+ }
+ },
+ 'save:disabled' : function (state) {
+ if ( me.header.btnSave )
+ me.header.btnSave.setDisabled(state);
}
}
});
Common.NotificationCenter.on('app:face', this.onAppShowed.bind(this));
+ Common.NotificationCenter.on('app:ready', this.onAppReady.bind(this));
+ Common.NotificationCenter.on('cells:range', this.onCellsRange.bind(this));
},
setApi: function(api) {
this.api = api;
+ this.api.asc_registerCallback('asc_onZoomChanged', this.onApiZoomChange.bind(this));
+ this.api.asc_registerCallback('asc_onSheetsChanged', this.onApiSheetChanged.bind(this));
+ this.api.asc_registerCallback('asc_onUpdateSheetViewSettings', this.onApiSheetChanged.bind(this));
+ this.api.asc_registerCallback('asc_onEditCell', this.onApiEditCell.bind(this));
},
onAppShowed: function (config) {
var me = this;
+ me.appConfig = config;
+
+ var _intvars = Common.Utils.InternalSettings;
+ var $filemenu = $('.toolbar-fullview-panel');
+ $filemenu.css('top', _intvars.get('toolbar-height-tabs'));
if ( !config.isEdit ||
( !Common.localStorage.itemExists("sse-compact-toolbar") &&
config.customization && config.customization.compactToolbar ))
{
- me.viewport.vlayout.panels[0].height = 32;
+ me.viewport.vlayout.getItem('toolbar').height = _intvars.get('toolbar-height-compact');
} else
if ( config.isEditDiagram || config.isEditMailMerge ) {
- me.viewport.vlayout.panels[0].height = 41;
+ me.viewport.vlayout.getItem('toolbar').height = 41;
+ }
+
+ if ( config.isDesktopApp && config.isEdit && !config.isEditDiagram && !config.isEditMailMerge ) {
+ var $title = me.viewport.vlayout.getItem('title').el;
+ $title.html(me.header.getPanel('title', config)).show();
+
+ var toolbar = me.viewport.vlayout.getItem('toolbar');
+ toolbar.el.addClass('top-title');
+ toolbar.height -= _intvars.get('toolbar-height-tabs') - _intvars.get('toolbar-height-tabs-top-title');
+
+ var _tabs_new_height = _intvars.get('toolbar-height-tabs-top-title');
+ _intvars.set('toolbar-height-tabs', _tabs_new_height);
+ _intvars.set('toolbar-height-compact', _tabs_new_height);
+ _intvars.set('toolbar-height-normal', _tabs_new_height + _intvars.get('toolbar-height-controls'));
+
+ $filemenu.css('top', _tabs_new_height + _intvars.get('document-title-height'));
+ }
+ },
+
+ onAppReady: function (config) {
+ var me = this;
+ if ( me.header.btnOptions ) {
+ var compactview = !config.isEdit;
+ if ( config.isEdit && !config.isEditDiagram && !config.isEditMailMerge ) {
+ if ( Common.localStorage.itemExists("sse-compact-toolbar") ) {
+ compactview = Common.localStorage.getBool("sse-compact-toolbar");
+ } else
+ if ( config.customization && config.customization.compactToolbar )
+ compactview = true;
+ }
+
+ me.header.mnuitemCompactToolbar = new Common.UI.MenuItem({
+ caption : me.header.textCompactView,
+ checked : compactview,
+ checkable : true,
+ value : 'toolbar'
+ });
+
+ var mnuitemHideFormulaBar = new Common.UI.MenuItem({
+ caption : me.textHideFBar,
+ checked : Common.localStorage.getBool('sse-hidden-formula'),
+ checkable : true,
+ value : 'formula'
+ });
+
+ me.header.mnuitemHideHeadings = new Common.UI.MenuItem({
+ caption : me.textHideHeadings,
+ checkable : true,
+ checked : me.header.mnuitemHideHeadings.isChecked(),
+ value : 'headings'
+ });
+
+ me.header.mnuitemHideGridlines = new Common.UI.MenuItem({
+ caption : me.textHideGridlines,
+ checkable : true,
+ checked : me.header.mnuitemHideGridlines.isChecked(),
+ value : 'gridlines'
+ });
+
+ me.header.mnuitemFreezePanes = new Common.UI.MenuItem({
+ caption : me.textFreezePanes,
+ checkable : true,
+ checked : me.header.mnuitemFreezePanes.isChecked(),
+ value : 'freezepanes'
+ });
+
+ me.header.mnuZoom = new Common.UI.MenuItem({
+ template: _.template([
+ ''
+ ].join('')),
+ stopPropagation: true,
+ value: me.header.mnuZoom.options.value
+ });
+
+ var mnuitemAdvSettings = new Common.UI.MenuItem({
+ caption: me.header.textAdvSettings,
+ value: 'advanced'
+ });
+
+ me.header.btnOptions.setMenu(new Common.UI.Menu({
+ cls: 'pull-right',
+ style: 'min-width: 180px;',
+ items: [
+ me.header.mnuitemCompactToolbar,
+ mnuitemHideFormulaBar,
+ {caption:'--'},
+ me.header.mnuitemHideHeadings,
+ me.header.mnuitemHideGridlines,
+ {caption:'--'},
+ me.header.mnuitemFreezePanes,
+ {caption:'--'},
+ me.header.mnuZoom,
+ {caption:'--'},
+ mnuitemAdvSettings
+ ]
+ })
+ );
+
+ var _on_btn_zoom = function (btn) {
+ if ( btn == 'up' ) {
+ var _f = Math.floor(this.api.asc_getZoom() * 10)/10;
+ _f += .1;
+ if (_f > 0 && !(_f > 2.))
+ this.api.asc_setZoom(_f);
+ } else {
+ _f = Math.ceil(this.api.asc_getZoom() * 10)/10;
+ _f -= .1;
+ if (!(_f < .5))
+ this.api.asc_setZoom(_f);
+ }
+
+ Common.NotificationCenter.trigger('edit:complete', me.header);
+ };
+
+ (new Common.UI.Button({
+ el : $('#hdr-menu-zoom-out', me.header.mnuZoom.$el),
+ cls : 'btn-toolbar'
+ })).on('click', _on_btn_zoom.bind(me, 'down'));
+
+ (new Common.UI.Button({
+ el : $('#hdr-menu-zoom-in', me.header.mnuZoom.$el),
+ cls : 'btn-toolbar'
+ })).on('click', _on_btn_zoom.bind(me, 'up'));
+
+ me.header.btnOptions.menu.on('item:click', me.onOptionsItemClick.bind(this));
}
},
@@ -127,6 +303,10 @@ define([
this.boxFormula = $('#cell-editing-box');
this.boxSdk.css('border-left', 'none');
this.boxFormula.css('border-left', 'none');
+
+ this.header.mnuitemHideHeadings = this.header.fakeMenuItem();
+ this.header.mnuitemHideGridlines = this.header.fakeMenuItem();
+ this.header.mnuitemFreezePanes = this.header.fakeMenuItem();
},
onLayoutChanged: function(area) {
@@ -171,6 +351,67 @@ define([
onWindowResize: function(e) {
this.onLayoutChanged('window');
Common.NotificationCenter.trigger('window:resize');
- }
- });
+ },
+
+ onFileMenu: function (opts) {
+ var me = this;
+ var _need_disable = opts == 'show';
+
+ me.header.lockHeaderBtns( 'undo', _need_disable );
+ me.header.lockHeaderBtns( 'redo', _need_disable );
+ me.header.lockHeaderBtns( 'opts', _need_disable );
+ },
+
+ onApiZoomChange: function(zf, type){
+ switch (type) {
+ case 1: // FitWidth
+ case 2: // FitPage
+ case 0:
+ default: {
+ this.header.mnuZoom.options.value = Math.floor((zf + .005) * 100);
+ $('.menu-zoom .zoom', this.header.mnuZoom.$el).html(Math.floor((zf + .005) * 100) + '%');
+ }
+ }
+ },
+
+ onApiSheetChanged: function() {
+ var me = this;
+ var appConfig = me.viewport.mode;
+ if ( !!appConfig && !appConfig.isEditDiagram && !appConfig.isEditMailMerge ) {
+ var params = me.api.asc_getSheetViewSettings();
+ me.header.mnuitemHideHeadings.setChecked(!params.asc_getShowRowColHeaders());
+ me.header.mnuitemHideGridlines.setChecked(!params.asc_getShowGridLines());
+ me.header.mnuitemFreezePanes.setChecked(params.asc_getIsFreezePane());
+ }
+ },
+
+ onApiEditCell: function(state) {
+ if ( state == Asc.c_oAscCellEditorState.editStart )
+ this.header.lockHeaderBtns('opts', true); else
+ if ( state == Asc.c_oAscCellEditorState.editEnd )
+ this.header.lockHeaderBtns('opts', false);
+ },
+
+ onCellsRange: function(status) {
+ this.onApiEditCell(status != Asc.c_oAscSelectionDialogType.None ? Asc.c_oAscCellEditorState.editStart : Asc.c_oAscCellEditorState.editEnd);
+ },
+
+ onOptionsItemClick: function (menu, item, e) {
+ var me = this;
+
+ switch ( item.value ) {
+ case 'toolbar': me.header.fireEvent('toolbar:setcompact', [menu, item.isChecked()]); break;
+ case 'formula': me.header.fireEvent('formulabar:hide', [item.isChecked()]); break;
+ case 'headings': me.api.asc_setDisplayHeadings(!item.isChecked()); break;
+ case 'gridlines': me.api.asc_setDisplayGridlines(!item.isChecked()); break;
+ case 'freezepanes': me.api.asc_freezePane(); break;
+ case 'advanced': me.header.fireEvent('file:settings', me.header); break;
+ }
+ },
+
+ textHideFBar: 'Hide Formula Bar',
+ textHideHeadings: 'Hide Headings',
+ textHideGridlines: 'Hide Gridlines',
+ textFreezePanes: 'Freeze Panes'
+ }, SSE.Controllers.Viewport));
});
diff --git a/apps/spreadsheeteditor/main/app/template/Toolbar.template b/apps/spreadsheeteditor/main/app/template/Toolbar.template
index b4c6605f6..5bb2ae135 100644
--- a/apps/spreadsheeteditor/main/app/template/Toolbar.template
+++ b/apps/spreadsheeteditor/main/app/template/Toolbar.template
@@ -8,7 +8,6 @@