[PE] Show File and Plugins tabs in view mode

This commit is contained in:
Julia Radzhabova 2018-05-15 15:39:26 +03:00
parent 869bc1a7a6
commit 232ced3282
6 changed files with 739 additions and 670 deletions

View file

@ -423,7 +423,7 @@ define([
toolbarView = application.getController('Toolbar').getView('Toolbar');
application.getController('DocumentHolder').getView('DocumentHolder').focus();
if (this.api && this.api.asc_isDocumentCanSave) {
if (this.api && this.appOptions.isEdit && this.api.asc_isDocumentCanSave) {
var cansave = this.api.asc_isDocumentCanSave(),
forcesave = this.appOptions.forcesave,
isSyncButton = (toolbarView.btnCollabChanges.rendered) ? toolbarView.btnCollabChanges.$icon.hasClass('btn-synch') : false,
@ -889,14 +889,15 @@ define([
var app = this.getApplication(),
viewport = app.getController('Viewport').getView('Viewport'),
statusbarView = app.getController('Statusbar').getView('Statusbar'),
documentHolder = app.getController('DocumentHolder').getView('DocumentHolder');
documentHolder = app.getController('DocumentHolder').getView('DocumentHolder'),
toolbarController = app.getController('Toolbar');
// appHeader.setHeaderCaption(this.appOptions.isEdit ? 'Presentation Editor' : 'Presentation Viewer');
// appHeader.setVisible(!this.appOptions.nativeApp && !value && !this.appOptions.isDesktopApp);
viewport && viewport.setMode(this.appOptions, true);
statusbarView && statusbarView.setMode(this.appOptions);
toolbarController.setMode(this.appOptions);
documentHolder.setMode(this.appOptions);
this.api.asc_registerCallback('asc_onSendThemeColors', _.bind(this.onSendThemeColors, this));
@ -936,20 +937,17 @@ define([
viewport.applyEditorMode();
var toolbarView = (toolbarController) ? toolbarController.getView('Toolbar') : null;
_.each([
toolbarView,
rightmenuController.getView('RightMenu')
], function(view) {
if (view) {
view.setApi(me.api);
view.on('editcomplete', _.bind(me.onEditComplete, me));
view.setMode(me.appOptions);
var rightmenuView = rightmenuController.getView('RightMenu');
if (rightmenuView) {
rightmenuView.setApi(me.api);
rightmenuView.on('editcomplete', _.bind(me.onEditComplete, me));
rightmenuView.setMode(me.appOptions);
}
});
var toolbarView = (toolbarController) ? toolbarController.getView('Toolbar') : null;
if (toolbarView) {
toolbarView.setApi(me.api);
toolbarView.on('editcomplete', _.bind(me.onEditComplete, me));
toolbarView.on('insertimage', _.bind(me.onInsertImage, me));
toolbarView.on('inserttable', _.bind(me.onInsertTable, me));
toolbarView.on('insertshape', _.bind(me.onInsertShape, me));

View file

@ -222,9 +222,6 @@ define([
// Create toolbar view
me.toolbar = me.createView('Toolbar');
me.toolbar.btnSave.on('disabled', _.bind(this.onBtnChangeState, this, 'save:disabled'));
me.toolbar.btnUndo.on('disabled', _.bind(this.onBtnChangeState, this, 'undo:disabled'));
me.toolbar.btnRedo.on('disabled', _.bind(this.onBtnChangeState, this, 'redo:disabled'));
Common.NotificationCenter.on('app:ready', me.onAppReady.bind(me));
Common.NotificationCenter.on('app:face', me.onAppShowed.bind(me));
@ -242,6 +239,11 @@ define([
});
},
setMode: function(mode) {
this.mode = mode;
this.toolbar.applyLayout(mode);
},
attachUIEvents: function(toolbar) {
/**
* UI Events
@ -253,8 +255,11 @@ define([
toolbar.btnPreview.menu.on('item:click', _.bind(this.onPreviewItemClick, this));
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.btnBold.on('click', _.bind(this.onBold, this));
@ -349,7 +354,7 @@ define([
},
onChangeCompactView: function(view, compact) {
this.toolbar.setFolded(compact);
this.toolbar.setFolded(compact, 1);
this.toolbar.fireEvent('view:compact', [this.toolbar, compact]);
Common.localStorage.setBool('pe-compact-toolbar', compact);
@ -1963,6 +1968,7 @@ define([
var toolbar = this.toolbar;
toolbar.$el.find('.toolbar').toggleClass('masked', disable);
if (toolbar.btnsAddSlide) // toolbar buttons are rendered
this.toolbar.lockToolbar(PE.enumLock.menuFileOpen, disable, {array: toolbar.btnsAddSlide.concat(toolbar.btnChangeSlide, toolbar.btnPreview)});
if(disable) {
mask = $("<div class='toolbar-mask'>").appendTo(toolbar.$el.find('.toolbar'));
@ -1993,6 +1999,8 @@ define([
me.toolbar.render(_.extend({compactview: compactview}, config));
if ( config.isEdit ) {
me.toolbar.setMode(config);
var tab = {action: 'review', caption: me.toolbar.textTabCollaboration};
var $panel = me.getApplication().getController('Common.Controllers.ReviewChanges').createToolbarPanel();
if ( $panel )
@ -2053,12 +2061,6 @@ define([
this.toolbar.lockToolbar(PE.enumLock.noSlides, this._state.no_slides, { array: this.btnsComment });
}
}
Common.Utils.asyncCall(function () {
if ( config.isEdit ) {
me.toolbar.onAppReady(config);
}
});
},
onFileMenu: function (opts) {

View file

@ -198,6 +198,14 @@ define([
checkable: true,
value: 'toolbar'
});
if (!config.isEdit) {
me.header.mnuitemCompactToolbar.hide();
Common.NotificationCenter.on('tab:visible', _.bind(function(action, visible){
if (action=='plugins' && visible) {
me.header.mnuitemCompactToolbar.show();
}
}, this));
}
var mnuitemHideStatusBar = new Common.UI.MenuItem({
caption: me.header.textHideStatusBar,

View file

@ -0,0 +1,26 @@
<div class="toolbar">
<div class="box-tabs">
<div class="extra left"></div>
<section class="tabs">
<a class="scroll left">
<i class="icon">&lt;</i>
</a>
<ul>
<% for(var i in tabs) { %>
<li class="ribtab<% if (tabs[i].extcls) print(' ' + tabs[i].extcls) %>">
<a data-tab="<%= tabs[i].action %>" data-title="<%= tabs[i].caption %>"><%= tabs[i].caption %></a>
</li>
<% } %>
</ul>
<a class="scroll right">
<i class="icon">&gt;</i>
</a>
</section>
<div class="extra right">
</div>
</div>
<section class="box-controls">
<section class="box-panels">
</section>
</section>
</div>

View file

@ -179,7 +179,7 @@ define([
} else {
btn.panel['hide']();
}
if (this.mode.isEdit) PE.getController('Toolbar').DisableToolbar(state==true);
PE.getController('Toolbar').DisableToolbar(state==true);
Common.NotificationCenter.trigger('layout:changed', 'leftmenu');
},

View file

@ -43,6 +43,7 @@
define([
'backbone',
'text!presentationeditor/main/app/template/Toolbar.template',
'text!documenteditor/main/app/template/ToolbarView.template',
'common/main/lib/collection/Fonts',
'common/main/lib/component/Button',
'common/main/lib/component/ComboBox',
@ -56,7 +57,7 @@ define([
'common/main/lib/component/ComboDataView'
,'common/main/lib/component/SynchronizeTip'
,'common/main/lib/component/Mixtbar'
], function (Backbone, template) {
], function (Backbone, template, template_view) {
'use strict';
PE.enumLock = {
@ -96,15 +97,6 @@ define([
initialize: function () {
var me = this;
Common.UI.Mixtbar.prototype.initialize.call(this, {
template: _.template(template),
tabs: [
{ caption: me.textTabFile, action: 'file', extcls: 'canedit'},
{ caption: me.textTabHome, action: 'home', extcls: 'canedit'},
{ caption: me.textTabInsert, action: 'ins', extcls: 'canedit'}
]}
);
me.paragraphControls = [];
me.shapeControls = [];
me.slideOnlyControls = [];
@ -121,6 +113,25 @@ define([
me._state = {
hasCollaborativeChanges: undefined
};
Common.NotificationCenter.on('app:ready', me.onAppReady.bind(this));
return this;
},
applyLayout: function (config) {
var me = this;
if ( config.isEdit ) {
Common.UI.Mixtbar.prototype.initialize.call(this, {
template: _.template(template),
tabs: [
{caption: me.textTabFile, action: 'file', extcls: 'canedit'},
{caption: me.textTabHome, action: 'home', extcls: 'canedit'},
{caption: me.textTabInsert, action: 'ins', extcls: 'canedit'}
]
}
);
me.btnSaveCls = 'btn-save';
me.btnSaveTip = this.tipSave + Common.Utils.String.platformKey('Ctrl+S');
@ -130,22 +141,22 @@ define([
var _set = PE.enumLock;
me.btnChangeSlide = new Common.UI.Button({
id : 'id-toolbar-button-change-slide',
cls : 'btn-toolbar',
iconCls : 'btn-changeslide',
lock : [_set.menuFileOpen, _set.slideDeleted, _set.slideLock, _set.lostConnect, _set.noSlides, _set.disableOnStart],
menu : true
id: 'id-toolbar-button-change-slide',
cls: 'btn-toolbar',
iconCls: 'btn-changeslide',
lock: [_set.menuFileOpen, _set.slideDeleted, _set.slideLock, _set.lostConnect, _set.noSlides, _set.disableOnStart],
menu: true
});
me.slideOnlyControls.push(me.btnChangeSlide);
me.btnPreview = new Common.UI.Button({
id : 'id-toolbar-button-preview',
cls : 'btn-toolbar',
iconCls : 'btn-preview',
lock : [_set.menuFileOpen, _set.slideDeleted, _set.noSlides, _set.disableOnStart],
split : true,
menu : new Common.UI.Menu({
items : [
id: 'id-toolbar-button-preview',
cls: 'btn-toolbar',
iconCls: 'btn-preview',
lock: [_set.menuFileOpen, _set.slideDeleted, _set.noSlides, _set.disableOnStart],
split: true,
menu: new Common.UI.Menu({
items: [
{caption: this.textShowBegin, value: 0},
{caption: this.textShowCurrent, value: 1},
{caption: this.textShowPresenterView, value: 2},
@ -161,213 +172,213 @@ define([
me.slideOnlyControls.push(me.btnPreview);
me.btnPrint = new Common.UI.Button({
id : 'id-toolbar-btn-print',
cls : 'btn-toolbar',
iconCls : 'btn-print no-mask',
lock : [_set.slideDeleted, _set.noSlides, _set.cantPrint]
id: 'id-toolbar-btn-print',
cls: 'btn-toolbar',
iconCls: 'btn-print no-mask',
lock: [_set.slideDeleted, _set.noSlides, _set.cantPrint]
});
me.paragraphControls.push(me.btnPrint);
me.btnSave = new Common.UI.Button({
id : 'id-toolbar-btn-save',
cls : 'btn-toolbar',
iconCls : 'no-mask ' + me.btnSaveCls,
lock : [_set.lostConnect],
signals : ['disabled']
id: 'id-toolbar-btn-save',
cls: 'btn-toolbar',
iconCls: 'no-mask ' + me.btnSaveCls,
lock: [_set.lostConnect],
signals: ['disabled']
});
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],
signals : ['disabled']
id: 'id-toolbar-btn-undo',
cls: 'btn-toolbar',
iconCls: 'btn-undo',
lock: [_set.undoLock, _set.slideDeleted, _set.lostConnect, _set.disableOnStart],
signals: ['disabled']
});
me.slideOnlyControls.push(me.btnUndo);
me.btnRedo = new Common.UI.Button({
id : 'id-toolbar-btn-redo',
cls : 'btn-toolbar',
iconCls : 'btn-redo',
lock : [_set.redoLock, _set.slideDeleted, _set.lostConnect, _set.disableOnStart],
signals : ['disabled']
id: 'id-toolbar-btn-redo',
cls: 'btn-toolbar',
iconCls: 'btn-redo',
lock: [_set.redoLock, _set.slideDeleted, _set.lostConnect, _set.disableOnStart],
signals: ['disabled']
});
me.slideOnlyControls.push(me.btnRedo);
me.btnCopy = new Common.UI.Button({
id : 'id-toolbar-btn-copy',
cls : 'btn-toolbar',
iconCls : 'btn-copy',
lock : [_set.slideDeleted, _set.lostConnect, _set.noSlides, _set.disableOnStart]
id: 'id-toolbar-btn-copy',
cls: 'btn-toolbar',
iconCls: 'btn-copy',
lock: [_set.slideDeleted, _set.lostConnect, _set.noSlides, _set.disableOnStart]
});
me.slideOnlyControls.push(me.btnCopy);
me.btnPaste = new Common.UI.Button({
id : 'id-toolbar-btn-paste',
cls : 'btn-toolbar',
iconCls : 'btn-paste',
lock : [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides]
id: 'id-toolbar-btn-paste',
cls: 'btn-toolbar',
iconCls: 'btn-paste',
lock: [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides]
});
me.paragraphControls.push(me.btnPaste);
me.cmbFontName = new Common.UI.ComboBoxFonts({
cls : 'input-group-nr',
menuCls : 'scrollable-menu',
menuStyle : 'min-width: 325px;',
hint : me.tipFontName,
lock : [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noTextSelected, _set.shapeLock],
store : new Common.Collections.Fonts()
cls: 'input-group-nr',
menuCls: 'scrollable-menu',
menuStyle: 'min-width: 325px;',
hint: me.tipFontName,
lock: [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noTextSelected, _set.shapeLock],
store: new Common.Collections.Fonts()
});
me.paragraphControls.push(me.cmbFontName);
me.cmbFontSize = new Common.UI.ComboBox({
cls : 'input-group-nr',
menuStyle : 'min-width: 55px;',
hint : me.tipFontSize,
lock : [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noTextSelected, _set.shapeLock],
data : [
{ value: 8, displayValue: "8" },
{ value: 9, displayValue: "9" },
{ value: 10, displayValue: "10" },
{ value: 11, displayValue: "11" },
{ value: 12, displayValue: "12" },
{ value: 14, displayValue: "14" },
{ value: 16, displayValue: "16" },
{ value: 18, displayValue: "18" },
{ value: 20, displayValue: "20" },
{ value: 22, displayValue: "22" },
{ value: 24, displayValue: "24" },
{ value: 26, displayValue: "26" },
{ value: 28, displayValue: "28" },
{ value: 36, displayValue: "36" },
{ value: 48, displayValue: "48" },
{ value: 72, displayValue: "72" }
cls: 'input-group-nr',
menuStyle: 'min-width: 55px;',
hint: me.tipFontSize,
lock: [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noTextSelected, _set.shapeLock],
data: [
{value: 8, displayValue: "8"},
{value: 9, displayValue: "9"},
{value: 10, displayValue: "10"},
{value: 11, displayValue: "11"},
{value: 12, displayValue: "12"},
{value: 14, displayValue: "14"},
{value: 16, displayValue: "16"},
{value: 18, displayValue: "18"},
{value: 20, displayValue: "20"},
{value: 22, displayValue: "22"},
{value: 24, displayValue: "24"},
{value: 26, displayValue: "26"},
{value: 28, displayValue: "28"},
{value: 36, displayValue: "36"},
{value: 48, displayValue: "48"},
{value: 72, displayValue: "72"}
]
});
me.paragraphControls.push(me.cmbFontSize);
me.btnBold = new Common.UI.Button({
id : 'id-toolbar-btn-bold',
cls : 'btn-toolbar',
iconCls : 'btn-bold',
lock : [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noTextSelected, _set.shapeLock],
id: 'id-toolbar-btn-bold',
cls: 'btn-toolbar',
iconCls: 'btn-bold',
lock: [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noTextSelected, _set.shapeLock],
enableToggle: true
});
me.paragraphControls.push(me.btnBold);
me.btnItalic = new Common.UI.Button({
id : 'id-toolbar-btn-italic',
cls : 'btn-toolbar',
iconCls : 'btn-italic',
lock : [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noTextSelected, _set.shapeLock],
id: 'id-toolbar-btn-italic',
cls: 'btn-toolbar',
iconCls: 'btn-italic',
lock: [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noTextSelected, _set.shapeLock],
enableToggle: true
});
me.paragraphControls.push(me.btnItalic);
me.btnUnderline = new Common.UI.Button({
id : 'id-toolbar-btn-underline',
cls : 'btn-toolbar',
iconCls : 'btn-underline',
lock : [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noTextSelected, _set.shapeLock],
id: 'id-toolbar-btn-underline',
cls: 'btn-toolbar',
iconCls: 'btn-underline',
lock: [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noTextSelected, _set.shapeLock],
enableToggle: true
});
me.paragraphControls.push(me.btnUnderline);
me.btnStrikeout = new Common.UI.Button({
id : 'id-toolbar-btn-strikeout',
cls : 'btn-toolbar',
iconCls : 'btn-strikeout',
lock : [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noTextSelected, _set.shapeLock],
id: 'id-toolbar-btn-strikeout',
cls: 'btn-toolbar',
iconCls: 'btn-strikeout',
lock: [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noTextSelected, _set.shapeLock],
enableToggle: true
});
me.paragraphControls.push(me.btnStrikeout);
me.btnSuperscript = new Common.UI.Button({
id : 'id-toolbar-btn-superscript',
cls : 'btn-toolbar',
iconCls : 'btn-superscript',
lock : [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noTextSelected, _set.shapeLock, _set.inEquation],
id: 'id-toolbar-btn-superscript',
cls: 'btn-toolbar',
iconCls: 'btn-superscript',
lock: [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noTextSelected, _set.shapeLock, _set.inEquation],
enableToggle: true,
toggleGroup : 'superscriptGroup'
toggleGroup: 'superscriptGroup'
});
me.paragraphControls.push(me.btnSuperscript);
me.btnSubscript = new Common.UI.Button({
id : 'id-toolbar-btn-subscript',
cls : 'btn-toolbar',
iconCls : 'btn-subscript',
lock : [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noTextSelected, _set.shapeLock, _set.inEquation],
id: 'id-toolbar-btn-subscript',
cls: 'btn-toolbar',
iconCls: 'btn-subscript',
lock: [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noTextSelected, _set.shapeLock, _set.inEquation],
enableToggle: true,
toggleGroup : 'superscriptGroup'
toggleGroup: 'superscriptGroup'
});
me.paragraphControls.push(me.btnSubscript);
me.btnFontColor = new Common.UI.Button({
id : 'id-toolbar-btn-fontcolor',
cls : 'btn-toolbar',
iconCls : 'btn-fontcolor',
lock : [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noTextSelected, _set.shapeLock],
split : true,
menu : new Common.UI.Menu({
id: 'id-toolbar-btn-fontcolor',
cls: 'btn-toolbar',
iconCls: 'btn-fontcolor',
lock: [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noTextSelected, _set.shapeLock],
split: true,
menu: new Common.UI.Menu({
items: [
{ template: _.template('<div id="id-toolbar-menu-fontcolor" style="width: 169px; height: 220px; margin: 10px;"></div>') },
{ template: _.template('<a id="id-toolbar-menu-new-fontcolor" style="padding-left:12px;">' + me.textNewColor + '</a>') }
{template: _.template('<div id="id-toolbar-menu-fontcolor" style="width: 169px; height: 220px; margin: 10px;"></div>')},
{template: _.template('<a id="id-toolbar-menu-new-fontcolor" style="padding-left:12px;">' + me.textNewColor + '</a>')}
]
})
});
me.paragraphControls.push(me.btnFontColor);
me.btnClearStyle = new Common.UI.Button({
id : 'id-toolbar-btn-clearstyle',
cls : 'btn-toolbar',
iconCls : 'btn-clearstyle',
lock : [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noParagraphSelected]
id: 'id-toolbar-btn-clearstyle',
cls: 'btn-toolbar',
iconCls: 'btn-clearstyle',
lock: [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noParagraphSelected]
});
me.paragraphControls.push(me.btnClearStyle);
me.btnCopyStyle = new Common.UI.Button({
id : 'id-toolbar-btn-copystyle',
cls : 'btn-toolbar',
iconCls : 'btn-copystyle',
lock : [_set.slideDeleted, _set.lostConnect, _set.noSlides, _set.noParagraphSelected, _set.disableOnStart],
id: 'id-toolbar-btn-copystyle',
cls: 'btn-toolbar',
iconCls: 'btn-copystyle',
lock: [_set.slideDeleted, _set.lostConnect, _set.noSlides, _set.noParagraphSelected, _set.disableOnStart],
enableToggle: true
});
me.slideOnlyControls.push(me.btnCopyStyle);
me.btnMarkers = new Common.UI.Button({
id : 'id-toolbar-btn-markers',
cls : 'btn-toolbar',
iconCls : 'btn-setmarkers',
lock : [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noParagraphSelected],
id: 'id-toolbar-btn-markers',
cls: 'btn-toolbar',
iconCls: 'btn-setmarkers',
lock: [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noParagraphSelected],
enableToggle: true,
toggleGroup : 'markersGroup',
split : true,
menu : true
toggleGroup: 'markersGroup',
split: true,
menu: true
});
me.paragraphControls.push(me.btnMarkers);
me.btnNumbers = new Common.UI.Button({
id : 'id-toolbar-btn-numbering',
cls : 'btn-toolbar',
iconCls : 'btn-numbering',
lock : [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noParagraphSelected],
id: 'id-toolbar-btn-numbering',
cls: 'btn-toolbar',
iconCls: 'btn-numbering',
lock: [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noParagraphSelected],
enableToggle: true,
toggleGroup : 'markersGroup',
split : true,
menu : true
toggleGroup: 'markersGroup',
split: true,
menu: true
});
me.paragraphControls.push(me.btnNumbers);
var clone = function(source) {
var clone = function (source) {
var obj = {};
for (var prop in source)
obj[prop] = (typeof(source[prop])=='object') ? clone(source[prop]) : source[prop];
obj[prop] = (typeof(source[prop]) == 'object') ? clone(source[prop]) : source[prop];
return obj;
};
this.mnuMarkersPicker = {
conf: {index:0},
conf: {index: 0},
selectByIndex: function (idx) {
this.conf.index = idx;
}
@ -375,45 +386,45 @@ define([
this.mnuNumbersPicker = clone(this.mnuMarkersPicker);
me.btnHorizontalAlign = new Common.UI.Button({
id : 'id-toolbar-btn-halign',
cls : 'btn-toolbar',
iconCls : 'btn-align-left',
icls : 'btn-align-left',
lock : [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noParagraphSelected],
menu : new Common.UI.Menu({
id: 'id-toolbar-btn-halign',
cls: 'btn-toolbar',
iconCls: 'btn-align-left',
icls: 'btn-align-left',
lock: [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noParagraphSelected],
menu: new Common.UI.Menu({
items: [
{
caption : me.textAlignLeft + Common.Utils.String.platformKey('Ctrl+L'),
iconCls : 'mnu-align-left',
icls : 'btn-align-left',
checkable : true,
toggleGroup : 'halignGroup',
checked : true,
value : 1
caption: me.textAlignLeft + Common.Utils.String.platformKey('Ctrl+L'),
iconCls: 'mnu-align-left',
icls: 'btn-align-left',
checkable: true,
toggleGroup: 'halignGroup',
checked: true,
value: 1
},
{
caption : me.textAlignCenter + Common.Utils.String.platformKey('Ctrl+E'),
iconCls : 'mnu-align-center',
icls : 'btn-align-center',
checkable : true,
toggleGroup : 'halignGroup',
value : 2
caption: me.textAlignCenter + Common.Utils.String.platformKey('Ctrl+E'),
iconCls: 'mnu-align-center',
icls: 'btn-align-center',
checkable: true,
toggleGroup: 'halignGroup',
value: 2
},
{
caption : me.textAlignRight + Common.Utils.String.platformKey('Ctrl+R'),
iconCls : 'mnu-align-right',
icls : 'btn-align-right',
checkable : true,
toggleGroup : 'halignGroup',
value : 0
caption: me.textAlignRight + Common.Utils.String.platformKey('Ctrl+R'),
iconCls: 'mnu-align-right',
icls: 'btn-align-right',
checkable: true,
toggleGroup: 'halignGroup',
value: 0
},
{
caption : me.textAlignJust + Common.Utils.String.platformKey('Ctrl+J'),
iconCls : 'mnu-align-just',
icls : 'btn-align-just',
checkable : true,
toggleGroup : 'halignGroup',
value : 3
caption: me.textAlignJust + Common.Utils.String.platformKey('Ctrl+J'),
iconCls: 'mnu-align-just',
icls: 'btn-align-just',
checkable: true,
toggleGroup: 'halignGroup',
value: 3
}
]
})
@ -421,37 +432,37 @@ define([
me.paragraphControls.push(me.btnHorizontalAlign);
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, _set.noObjectSelected],
iconCls : 'btn-align-middle',
icls : 'btn-align-middle',
menu : new Common.UI.Menu({
id: 'id-toolbar-btn-valign',
cls: 'btn-toolbar',
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({
items: [
{
caption : me.textAlignTop,
iconCls : 'mnu-align-top',
icls : 'btn-align-top',
checkable : true,
toggleGroup : 'valignGroup',
value : Asc.c_oAscVAlign.Top
caption: me.textAlignTop,
iconCls: 'mnu-align-top',
icls: 'btn-align-top',
checkable: true,
toggleGroup: 'valignGroup',
value: Asc.c_oAscVAlign.Top
},
{
caption : me.textAlignMiddle,
iconCls : 'mnu-align-middle',
icls : 'btn-align-middle',
checkable : true,
toggleGroup : 'valignGroup',
value : Asc.c_oAscVAlign.Center,
checked : true
caption: me.textAlignMiddle,
iconCls: 'mnu-align-middle',
icls: 'btn-align-middle',
checkable: true,
toggleGroup: 'valignGroup',
value: Asc.c_oAscVAlign.Center,
checked: true
},
{
caption : me.textAlignBottom,
iconCls : 'mnu-align-bottom',
icls : 'btn-align-bottom',
checkable : true,
toggleGroup : 'valignGroup',
value : Asc.c_oAscVAlign.Bottom
caption: me.textAlignBottom,
iconCls: 'mnu-align-bottom',
icls: 'btn-align-bottom',
checkable: true,
toggleGroup: 'valignGroup',
value: Asc.c_oAscVAlign.Bottom
}
]
})
@ -459,87 +470,87 @@ define([
me.paragraphControls.push(me.btnVerticalAlign);
me.btnDecLeftOffset = new Common.UI.Button({
id : 'id-toolbar-btn-decoffset',
cls : 'btn-toolbar',
iconCls : 'btn-decoffset',
lock : [_set.decIndentLock, _set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noParagraphSelected]
id: 'id-toolbar-btn-decoffset',
cls: 'btn-toolbar',
iconCls: 'btn-decoffset',
lock: [_set.decIndentLock, _set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noParagraphSelected]
});
me.paragraphControls.push(me.btnDecLeftOffset);
me.btnIncLeftOffset = new Common.UI.Button({
id : 'id-toolbar-btn-incoffset',
cls : 'btn-toolbar',
iconCls : 'btn-incoffset',
lock : [_set.incIndentLock, _set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noParagraphSelected]
id: 'id-toolbar-btn-incoffset',
cls: 'btn-toolbar',
iconCls: 'btn-incoffset',
lock: [_set.incIndentLock, _set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noParagraphSelected]
});
me.paragraphControls.push(me.btnIncLeftOffset);
me.btnLineSpace = new Common.UI.Button({
id : 'id-toolbar-btn-linespace',
cls : 'btn-toolbar',
iconCls : 'btn-linespace',
lock : [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noParagraphSelected],
menu : new Common.UI.Menu({
id: 'id-toolbar-btn-linespace',
cls: 'btn-toolbar',
iconCls: 'btn-linespace',
lock: [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noParagraphSelected],
menu: new Common.UI.Menu({
style: 'min-width: 60px;',
items: [
{ caption: '1.0', value: 1.0, checkable: true, toggleGroup: 'linesize' },
{ caption: '1.15', value: 1.15, checkable: true, toggleGroup: 'linesize' },
{ caption: '1.5', value: 1.5, checkable: true, toggleGroup: 'linesize' },
{ caption: '2.0', value: 2.0, checkable: true, toggleGroup: 'linesize' },
{ caption: '2.5', value: 2.5, checkable: true, toggleGroup: 'linesize' },
{ caption: '3.0', value: 3.0, checkable: true, toggleGroup: 'linesize' }
{caption: '1.0', value: 1.0, checkable: true, toggleGroup: 'linesize'},
{caption: '1.15', value: 1.15, checkable: true, toggleGroup: 'linesize'},
{caption: '1.5', value: 1.5, checkable: true, toggleGroup: 'linesize'},
{caption: '2.0', value: 2.0, checkable: true, toggleGroup: 'linesize'},
{caption: '2.5', value: 2.5, checkable: true, toggleGroup: 'linesize'},
{caption: '3.0', value: 3.0, checkable: true, toggleGroup: 'linesize'}
]
})
});
me.paragraphControls.push(me.btnLineSpace);
me.btnInsertTable = new Common.UI.Button({
id : 'tlbtn-inserttable',
cls : 'btn-toolbar x-huge icon-top',
iconCls : 'btn-inserttable',
caption : me.capInsertTable,
lock : [_set.slideDeleted, _set.lostConnect, _set.noSlides, _set.disableOnStart],
menu : new Common.UI.Menu({
id: 'tlbtn-inserttable',
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'btn-inserttable',
caption: me.capInsertTable,
lock: [_set.slideDeleted, _set.lostConnect, _set.noSlides, _set.disableOnStart],
menu: new Common.UI.Menu({
items: [
{ template: _.template('<div id="id-toolbar-menu-tablepicker" class="dimension-picker" style="margin: 5px 10px;"></div>') },
{ caption: me.mniCustomTable, value: 'custom' }
{template: _.template('<div id="id-toolbar-menu-tablepicker" class="dimension-picker" style="margin: 5px 10px;"></div>')},
{caption: me.mniCustomTable, value: 'custom'}
]
})
});
me.slideOnlyControls.push(me.btnInsertTable);
me.btnInsertChart = new Common.UI.Button({
id : 'tlbtn-insertchart',
cls : 'btn-toolbar x-huge icon-top',
iconCls : 'btn-insertchart',
caption : me.capInsertChart,
lock : [_set.slideDeleted, _set.lostConnect, _set.noSlides, _set.disableOnStart],
menu : new Common.UI.Menu({
id: 'tlbtn-insertchart',
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'btn-insertchart',
caption: me.capInsertChart,
lock: [_set.slideDeleted, _set.lostConnect, _set.noSlides, _set.disableOnStart],
menu: new Common.UI.Menu({
style: 'width: 435px;',
items: [
{ template: _.template('<div id="id-toolbar-menu-insertchart" class="menu-insertchart" style="margin: 5px 5px 5px 10px;"></div>') }
{template: _.template('<div id="id-toolbar-menu-insertchart" class="menu-insertchart" style="margin: 5px 5px 5px 10px;"></div>')}
]
})
});
me.slideOnlyControls.push(me.btnInsertChart);
me.btnInsertEquation = new Common.UI.Button({
id : 'tlbtn-insertequation',
cls : 'btn-toolbar x-huge icon-top',
iconCls : 'btn-insertequation',
caption : me.capInsertEquation,
lock : [_set.slideDeleted, _set.lostConnect, _set.noSlides, _set.disableOnStart],
split : true,
menu : new Common.UI.Menu({cls: 'menu-shapes'})
id: 'tlbtn-insertequation',
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'btn-insertequation',
caption: me.capInsertEquation,
lock: [_set.slideDeleted, _set.lostConnect, _set.noSlides, _set.disableOnStart],
split: true,
menu: new Common.UI.Menu({cls: 'menu-shapes'})
});
me.slideOnlyControls.push(this.btnInsertEquation);
me.btnInsertHyperlink = new Common.UI.Button({
id : 'tlbtn-insertlink',
cls : 'btn-toolbar x-huge icon-top',
iconCls : 'btn-inserthyperlink',
caption : me.capInsertHyperlink,
lock : [_set.hyperlinkLock, _set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noParagraphSelected]
id: 'tlbtn-insertlink',
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'btn-inserthyperlink',
caption: me.capInsertHyperlink,
lock: [_set.hyperlinkLock, _set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noParagraphSelected]
});
me.paragraphControls.push(me.btnInsertHyperlink);
@ -548,7 +559,7 @@ define([
cls: 'btn-toolbar x-huge icon-top',
iconCls: 'btn-textart',
caption: me.capInsertTextArt,
lock : [_set.slideDeleted, _set.lostConnect, _set.noSlides, _set.disableOnStart],
lock: [_set.slideDeleted, _set.lostConnect, _set.noSlides, _set.disableOnStart],
menu: new Common.UI.Menu({
cls: 'menu-shapes',
items: [
@ -559,19 +570,19 @@ define([
me.slideOnlyControls.push(me.btnInsertTextArt);
me.btnColorSchemas = new Common.UI.Button({
id : 'id-toolbar-btn-colorschemas',
cls : 'btn-toolbar',
iconCls : 'btn-colorschemas',
lock : [_set.themeLock, _set.slideDeleted, _set.lostConnect, _set.noSlides, _set.disableOnStart],
menu : new Common.UI.Menu({
items : [],
maxHeight : 560,
id: 'id-toolbar-btn-colorschemas',
cls: 'btn-toolbar',
iconCls: 'btn-colorschemas',
lock: [_set.themeLock, _set.slideDeleted, _set.lostConnect, _set.noSlides, _set.disableOnStart],
menu: new Common.UI.Menu({
items: [],
maxHeight: 560,
restoreHeight: 560
}).on('show:before', function(mnu) {
}).on('show:before', function (mnu) {
this.scroller = new Common.UI.Scroller({
el: $(this.el).find('.dropdown-menu '),
useKeyboard: this.enableKeyEvents && !this.handleSelect,
minScrollbarLength : 40,
minScrollbarLength: 40,
alwaysVisibleY: true
});
})
@ -579,52 +590,52 @@ define([
me.slideOnlyControls.push(me.btnColorSchemas);
me.btnShapeAlign = new Common.UI.Button({
id : 'id-toolbar-btn-shape-align',
cls : 'btn-toolbar',
iconCls : 'btn-align-shape',
lock : [_set.slideDeleted, _set.shapeLock, _set.lostConnect, _set.noSlides, _set.noObjectSelected, _set.disableOnStart],
menu : new Common.UI.Menu({
id: 'id-toolbar-btn-shape-align',
cls: 'btn-toolbar',
iconCls: 'btn-align-shape',
lock: [_set.slideDeleted, _set.shapeLock, _set.lostConnect, _set.noSlides, _set.noObjectSelected, _set.disableOnStart],
menu: new Common.UI.Menu({
items: [
{
caption : me.textShapeAlignLeft,
iconCls : 'mnu-shape-align-left',
value : Asc.c_oAscAlignShapeType.ALIGN_LEFT
caption: me.textShapeAlignLeft,
iconCls: 'mnu-shape-align-left',
value: Asc.c_oAscAlignShapeType.ALIGN_LEFT
},
{
caption : me.textShapeAlignCenter,
iconCls : 'mnu-shape-align-center',
value : Asc.c_oAscAlignShapeType.ALIGN_CENTER
caption: me.textShapeAlignCenter,
iconCls: 'mnu-shape-align-center',
value: Asc.c_oAscAlignShapeType.ALIGN_CENTER
},
{
caption : me.textShapeAlignRight,
iconCls : 'mnu-shape-align-right',
value : Asc.c_oAscAlignShapeType.ALIGN_RIGHT
caption: me.textShapeAlignRight,
iconCls: 'mnu-shape-align-right',
value: Asc.c_oAscAlignShapeType.ALIGN_RIGHT
},
{
caption : me.textShapeAlignTop,
iconCls : 'mnu-shape-align-top',
value : Asc.c_oAscAlignShapeType.ALIGN_TOP
caption: me.textShapeAlignTop,
iconCls: 'mnu-shape-align-top',
value: Asc.c_oAscAlignShapeType.ALIGN_TOP
},
{
caption : me.textShapeAlignMiddle,
iconCls : 'mnu-shape-align-middle',
value : Asc.c_oAscAlignShapeType.ALIGN_MIDDLE
caption: me.textShapeAlignMiddle,
iconCls: 'mnu-shape-align-middle',
value: Asc.c_oAscAlignShapeType.ALIGN_MIDDLE
},
{
caption : me.textShapeAlignBottom,
iconCls : 'mnu-shape-align-bottom',
value : Asc.c_oAscAlignShapeType.ALIGN_BOTTOM
caption: me.textShapeAlignBottom,
iconCls: 'mnu-shape-align-bottom',
value: Asc.c_oAscAlignShapeType.ALIGN_BOTTOM
},
{caption: '--' },
{caption: '--'},
{
caption : me.txtDistribHor,
iconCls : 'mnu-distrib-hor',
value : 6
caption: me.txtDistribHor,
iconCls: 'mnu-distrib-hor',
value: 6
},
{
caption : me.txtDistribVert,
iconCls : 'mnu-distrib-vert',
value : 7
caption: me.txtDistribVert,
iconCls: 'mnu-distrib-vert',
value: 7
}
]
})
@ -633,33 +644,33 @@ define([
me.slideOnlyControls.push(me.btnShapeAlign);
me.btnShapeArrange = new Common.UI.Button({
id : 'id-toolbar-btn-shape-arrange',
cls : 'btn-toolbar',
iconCls : 'btn-arrange-shape',
lock : [_set.slideDeleted, _set.lostConnect, _set.noSlides, _set.noObjectSelected, _set.disableOnStart],
menu : new Common.UI.Menu({
id: 'id-toolbar-btn-shape-arrange',
cls: 'btn-toolbar',
iconCls: 'btn-arrange-shape',
lock: [_set.slideDeleted, _set.lostConnect, _set.noSlides, _set.noObjectSelected, _set.disableOnStart],
menu: new Common.UI.Menu({
items: [
{
caption : me.textArrangeFront,
iconCls : 'mnu-arrange-front',
value : 1
caption: me.textArrangeFront,
iconCls: 'mnu-arrange-front',
value: 1
},
{
caption : me.textArrangeBack,
iconCls : 'mnu-arrange-back',
value : 2
caption: me.textArrangeBack,
iconCls: 'mnu-arrange-back',
value: 2
},
{
caption : me.textArrangeForward,
iconCls : 'mnu-arrange-forward',
value : 3
caption: me.textArrangeForward,
iconCls: 'mnu-arrange-forward',
value: 3
},
{
caption : me.textArrangeBackward,
iconCls : 'mnu-arrange-backward',
value : 4
caption: me.textArrangeBackward,
iconCls: 'mnu-arrange-backward',
value: 4
},
{caption: '--' },
{caption: '--'},
me.mnuGroupShapes = new Common.UI.MenuItem({
caption: me.txtGroup,
iconCls: 'mnu-group',
@ -673,31 +684,31 @@ define([
]
})
});
me.slideOnlyControls.push(me.btnShapeArrange );
me.slideOnlyControls.push(me.btnShapeArrange);
me.btnSlideSize = new Common.UI.Button({
id : 'id-toolbar-btn-slide-size',
cls : 'btn-toolbar',
iconCls : 'btn-slidesize',
lock : [_set.docPropsLock, _set.slideDeleted, _set.lostConnect, _set.disableOnStart],
menu : new Common.UI.Menu({
id: 'id-toolbar-btn-slide-size',
cls: 'btn-toolbar',
iconCls: 'btn-slidesize',
lock: [_set.docPropsLock, _set.slideDeleted, _set.lostConnect, _set.disableOnStart],
menu: new Common.UI.Menu({
items: [
{
caption : me.mniSlideStandard,
checkable : true,
toggleGroup : 'slidesize',
value : 0
caption: me.mniSlideStandard,
checkable: true,
toggleGroup: 'slidesize',
value: 0
},
{
caption : me.mniSlideWide,
checkable : true,
toggleGroup : 'slidesize',
value : 1
caption: me.mniSlideWide,
checkable: true,
toggleGroup: 'slidesize',
value: 1
},
{caption: '--'},
{
caption : me.mniSlideAdvanced,
value : 'advanced'
caption: me.mniSlideAdvanced,
value: 'advanced'
}
]
})
@ -705,12 +716,12 @@ define([
me.slideOnlyControls.push(me.btnSlideSize);
me.listTheme = new Common.UI.ComboDataView({
cls : 'combo-styles',
itemWidth : 85,
cls: 'combo-styles',
itemWidth: 85,
enableKeyEvents: true,
itemHeight : 38,
itemHeight: 38,
lock: [_set.themeLock, _set.lostConnect, _set.noSlides],
beforeOpenHandler: function(e) {
beforeOpenHandler: function (e) {
var cmp = this,
menu = cmp.openButton.menu,
minMenuColumn = 6;
@ -733,7 +744,7 @@ define([
menu.setOffset(Math.min(offset, 0));
menu.cmpEl.css({
'width' : columnCount * (itemWidth + itemMargin),
'width': columnCount * (itemWidth + itemMargin),
'min-height': cmp.cmpEl.height()
});
}
@ -758,7 +769,7 @@ define([
'</div>'
].join(''));
this.lockControls = [ this.btnChangeSlide, this.btnSave,
this.lockControls = [this.btnChangeSlide, this.btnSave,
this.btnCopy, this.btnPaste, this.btnUndo, this.btnRedo, this.cmbFontName, this.cmbFontSize,
this.btnBold, this.btnItalic, this.btnUnderline, this.btnStrikeout, this.btnSuperscript,
this.btnSubscript, this.btnFontColor, this.btnClearStyle, this.btnCopyStyle, this.btnMarkers,
@ -770,13 +781,37 @@ define([
// Disable all components before load document
_.each([me.btnSave]
.concat(me.paragraphControls),
function(cmp) {
function (cmp) {
if (_.isFunction(cmp.setDisabled))
cmp.setDisabled(true);
});
this.lockToolbar(PE.enumLock.disableOnStart, true, {array: me.slideOnlyControls.concat(me.shapeControls)});
this.on('render:after', _.bind(this.onToolbarAfterRender, this));
} else {
Common.UI.Mixtbar.prototype.initialize.call(this, {
template: _.template(template_view),
tabs: [
{caption: me.textTabFile, action: 'file', extcls: ''}
]
}
);
Common.NotificationCenter.on('tab:visible', _.bind(function(action, visible){
if (action=='plugins' && visible) {
var compactview = false;
if ( Common.localStorage.itemExists("pe-compact-toolbar") ) {
compactview = Common.localStorage.getBool("pe-compact-toolbar");
} else if ( config.customization && config.customization.compactToolbar )
compactview = true;
if (!compactview) {
me.setFolded(false, 1);
me.setTab('plugins');
me.fireEvent('view:compact', [me, compactview]);
Common.NotificationCenter.trigger('layout:changed', 'toolbar');
}
}
}, this));
}
return this;
},
@ -837,21 +872,21 @@ define([
} else {
me.$layout.find('.canedit').hide();
me.$layout.addClass('folded');
me.$el.html(me.$layout);
}
this.fireEvent('render:after', [this]);
Common.UI.Mixtbar.prototype.afterRender.call(this);
Common.NotificationCenter.on({
'window:resize': function() {
Common.UI.Mixtbar.prototype.onResize.apply(me, arguments);
}
});
if ( mode.isEdit )
me.setTab('home');
if ( me.isCompactView )
me.setFolded(true);