diff --git a/apps/common/main/lib/component/Mixtbar.js b/apps/common/main/lib/component/Mixtbar.js index 0f1eaa71a5..81bd6cf10d 100644 --- a/apps/common/main/lib/component/Mixtbar.js +++ b/apps/common/main/lib/component/Mixtbar.js @@ -143,7 +143,8 @@ define([ this.$layout = $(options.template({ tabsmarkup: _.template(_template_tabs)({items: options.tabs}), - isRTL: Common.UI.isRTL() + isRTL: Common.UI.isRTL(), + config: options.config })); config.tabs = options.tabs; diff --git a/apps/common/main/lib/view/Header.js b/apps/common/main/lib/view/Header.js index 2568e8cba2..44ab50c734 100644 --- a/apps/common/main/lib/view/Header.js +++ b/apps/common/main/lib/view/Header.js @@ -222,7 +222,7 @@ define([ function updateDocNamePosition(config) { if ( $labelDocName && config) { var $parent = $labelDocName.parent(); - if (!config.isEdit) { + if (!(config.isEdit || isPDFEditor && config.isRestrictedEdit)) { var _left_width = $parent.position().left, _right_width = $parent.next().outerWidth(); $parent.css('padding-left', _left_width < _right_width ? Math.max(2, _right_width - _left_width) : 2); @@ -242,7 +242,7 @@ define([ } } - if (!(config.customization && config.customization.toolbarHideFileName) && (!config.isEdit || config.customization && config.customization.compactHeader)) { + if (!(config.customization && config.customization.toolbarHideFileName) && (!(config.isEdit || isPDFEditor && config.isRestrictedEdit) || config.customization && config.customization.compactHeader)) { var basis = parseFloat($parent.css('padding-left') || 0) + parseFloat($parent.css('padding-right') || 0) + parseInt($labelDocName.css('min-width') || 50); // 2px - box-shadow config.isCrypted && (basis += 20); $parent.css('flex-basis', Math.ceil(basis) + 'px'); @@ -262,7 +262,7 @@ define([ } function onResize() { - if (appConfig && appConfig.isEdit && !(appConfig.customization && appConfig.customization.compactHeader)) { + if (appConfig && (appConfig.isEdit || isPDFEditor && appConfig.isRestrictedEdit) && !(appConfig.customization && appConfig.customization.compactHeader)) { updateDocNamePosition(appConfig); } } @@ -383,7 +383,7 @@ define([ }); } - if ( !mode.isEdit ) { + if ( !(mode.isEdit || isPDFEditor && mode.isRestrictedEdit) ) { if ( me.btnDownload ) { me.btnDownload.updateHint(me.tipDownload); me.btnDownload.on('click', function (e) { @@ -443,7 +443,7 @@ define([ Common.NotificationCenter.trigger('pdf:mode', item.value, _.bind(changePDFMode, me)); }); } - if (appConfig.isEdit && !(appConfig.customization && appConfig.customization.compactHeader)) + if ((appConfig.isEdit || isPDFEditor && appConfig.isRestrictedEdit) && !(appConfig.customization && appConfig.customization.compactHeader)) Common.NotificationCenter.on('window:resize', onResize); } @@ -638,7 +638,7 @@ define([ $html.find('#slot-btn-favorite').hide(); } - if ( !config.isEdit ) { + if ( !(config.isEdit || isPDFEditor && config.isRestrictedEdit)) { if ( (config.canDownload || config.canDownloadOrigin) && !config.isOffline ) this.btnDownload = createTitleButton('toolbar__icon icon--inverse btn-download', $html.findById('#slot-hbtn-download'), undefined, 'bottom', 'big'); @@ -653,7 +653,7 @@ define([ } me.btnSearch.render($html.find('#slot-btn-search')); - if (!config.isEdit || config.customization && !!config.customization.compactHeader) { + if (!(config.isEdit || isPDFEditor && config.isRestrictedEdit) || config.customization && !!config.customization.compactHeader) { if (config.user.guest && config.canRenameAnonymous) { me.btnUserName = new Common.UI.Button({ el: $html.findById('.slot-btn-user-name'), @@ -734,13 +734,15 @@ define([ $btnUserName = $html.find('.color-user-name'); me.setUserName(me.options.userName); - if ( config.canPrint && config.isEdit ) { + if ( config.canPrint && (config.isEdit || isPDFEditor && config.isRestrictedEdit) ) { me.btnPrint = createTitleButton('toolbar__icon icon--inverse btn-print', $html.findById('#slot-btn-dt-print'), true, undefined, undefined, 'P'); } - if ( config.canQuickPrint && config.isEdit ) + if ( config.canQuickPrint && (config.isEdit || isPDFEditor && config.isRestrictedEdit) ) me.btnPrintQuick = createTitleButton('toolbar__icon icon--inverse btn-quick-print', $html.findById('#slot-btn-dt-print-quick'), true, undefined, undefined, 'Q'); - me.btnSave = createTitleButton('toolbar__icon icon--inverse btn-save', $html.findById('#slot-btn-dt-save'), true, undefined, undefined, 'S'); + if (!isPDFEditor || !config.isForm) + me.btnSave = createTitleButton('toolbar__icon icon--inverse btn-save', $html.findById('#slot-btn-dt-save'), true, undefined, undefined, 'S'); + me.btnUndo = createTitleButton('toolbar__icon icon--inverse btn-undo', $html.findById('#slot-btn-dt-undo'), true, undefined, undefined, 'Z'); me.btnRedo = createTitleButton('toolbar__icon icon--inverse btn-redo', $html.findById('#slot-btn-dt-redo'), true, undefined, undefined, 'Y'); diff --git a/apps/pdfeditor/main/app/controller/DocumentHolder.js b/apps/pdfeditor/main/app/controller/DocumentHolder.js index 24f2e858e4..4170c6c63a 100644 --- a/apps/pdfeditor/main/app/controller/DocumentHolder.js +++ b/apps/pdfeditor/main/app/controller/DocumentHolder.js @@ -41,7 +41,10 @@ define([ 'core', - 'pdfeditor/main/app/view/DocumentHolder' + 'pdfeditor/main/app/view/DocumentHolder', + 'common/main/lib/view/ImageFromUrlDialog', + 'common/main/lib/view/SelectFileDlg', + 'common/main/lib/view/SaveAsDlg' ], function () { 'use strict'; @@ -164,6 +167,13 @@ define([ this.api.asc_registerCallback('asc_onShowPDFFormsActions', _.bind(this.onShowFormsPDFActions, this)); this.api.asc_registerCallback('asc_onHidePdfFormsActions', _.bind(this.onHidePdfFormsActions, this)); } + if (this.mode.isRestrictedEdit) { + this.api.asc_registerCallback('asc_onShowContentControlsActions', _.bind(this.onShowContentControlsActions, this)); + this.api.asc_registerCallback('asc_onHideContentControlsActions', _.bind(this.onHideContentControlsActions, this)); + Common.Gateway.on('insertimage', _.bind(this.insertImage, this)); + Common.NotificationCenter.on('storage:image-load', _.bind(this.openImageFromStorage, this)); // try to load image from storage + Common.NotificationCenter.on('storage:image-insert', _.bind(this.insertImageFromStorage, this)); // set loaded image to control + } this.api.asc_registerCallback('asc_onCoAuthoringDisconnect', _.bind(this.onCoAuthoringDisconnect, this)); Common.NotificationCenter.on('api:disconnect', _.bind(this.onCoAuthoringDisconnect, this)); @@ -836,8 +846,8 @@ define([ }, onHidePdfFormsActions: function() { - this.listControlMenu && this.listControlMenu.isVisible() && this.listControlMenu.hide(); - var controlsContainer = this.documentHolder.cmpEl.find('#calendar-control-container'); + this.listControlMenuPdf && this.listControlMenuPdf.isVisible() && this.listControlMenuPdf.hide(); + var controlsContainer = this.documentHolder.cmpEl.find('#calendar-control-container-pdf'); if (controlsContainer.is(':visible')) controlsContainer.hide(); }, @@ -848,7 +858,7 @@ define([ this.onShowListActionsPDF(obj, x, y); break; case AscPDF.FIELD_TYPES.text: - this.onShowDateActions(obj, x, y); + this.onShowDateActionsPDF(obj, x, y); break; } }, @@ -856,16 +866,16 @@ define([ onShowListActionsPDF: function(obj) { var isForm = true, cmpEl = this.documentHolder.cmpEl, - menu = this.listControlMenu, + menu = this.listControlMenuPdf, menuContainer = menu ? cmpEl.find(Common.Utils.String.format('#menu-container-{0}', menu.id)) : null, me = this; - me._listObj = obj; + me._listObjPdf = obj; this._fromShowContentControls = true; Common.UI.Menu.Manager.hideAll(); if (!menu) { - this.listControlMenu = menu = new Common.UI.Menu({ + this.listControlMenuPdf = menu = new Common.UI.Menu({ maxHeight: 207, menuAlign: 'tr-bl', items: [] @@ -885,7 +895,7 @@ define([ menu.render(menuContainer); menu.cmpEl.attr({tabindex: "-1"}); menu.on('hide:after', function(){ - me.listControlMenu.removeAll(); + me.listControlMenuPdf.removeAll(); if (!me._fromShowContentControls) me.api.asc_UncheckContentControlButtons(); }); @@ -925,15 +935,15 @@ define([ this._fromShowContentControls = false; }, - onShowDateActions: function(obj, x, y) { + onShowDateActionsPDF: function(obj, x, y) { var cmpEl = this.documentHolder.cmpEl, - controlsContainer = cmpEl.find('#calendar-control-container'), + controlsContainer = cmpEl.find('#calendar-control-container-pdf'), me = this; - this._dateObj = obj; + this._dateObjPdf = obj; if (controlsContainer.length < 1) { - controlsContainer = $('