From b77d63340273db0de85362c580025dc8342d523a Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Wed, 10 Aug 2022 22:29:53 +0300 Subject: [PATCH] [PE] Fix Bug 58462 --- .../main/app/controller/Toolbar.js | 12 +++++++++++- .../main/app/view/DocumentHolder.js | 15 ++++++++++++--- apps/presentationeditor/main/app/view/Toolbar.js | 7 ++++--- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/apps/presentationeditor/main/app/controller/Toolbar.js b/apps/presentationeditor/main/app/controller/Toolbar.js index 7be6a9554..917fb1299 100644 --- a/apps/presentationeditor/main/app/controller/Toolbar.js +++ b/apps/presentationeditor/main/app/controller/Toolbar.js @@ -108,7 +108,8 @@ define([ in_equation: undefined, in_chart: false, no_columns: false, - clrhighlight: undefined + clrhighlight: undefined, + can_copycut: undefined }; this._isAddingShape = false; this.slideSizeArr = [ @@ -403,6 +404,7 @@ define([ this.api.asc_registerCallback('asc_onTextLanguage', _.bind(this.onTextLanguage, this)); Common.NotificationCenter.on('storage:image-load', _.bind(this.openImageFromStorage, this)); Common.NotificationCenter.on('storage:image-insert', _.bind(this.insertImageFromStorage, this)); + this.api.asc_registerCallback('asc_onCanCopyCut', _.bind(this.onApiCanCopyCut, this)); } else if (this.mode.isRestrictedEdit) { this.api.asc_registerCallback('asc_onCountPages', _.bind(this.onApiCountPagesRestricted, this)); } @@ -2531,6 +2533,7 @@ define([ activateControls: function() { this.onApiPageSize(this.api.get_PresentationWidth(), this.api.get_PresentationHeight()); this.toolbar.lockToolbar(Common.enumLock.disableOnStart, false, {array: this.toolbar.slideOnlyControls.concat(this.toolbar.shapeControls)}); + this.toolbar.lockToolbar(Common.enumLock.copyLock, this._state.can_copycut!==true, {array: [this.toolbar.btnCopy, this.toolbar.btnCut]}); this._state.activated = true; }, @@ -2677,6 +2680,13 @@ define([ this.api && this.api.asc_AddVideo(); }, + onApiCanCopyCut: function(can) { + if (this._state.can_copycut !== can) { + this.toolbar.lockToolbar(Common.enumLock.copyLock, !can, {array: [this.toolbar.btnCopy, this.toolbar.btnCut]}); + this._state.can_copycut = can; + } + }, + textEmptyImgUrl : 'You need to specify image URL.', textWarning : 'Warning', textFontSizeErr : 'The entered value is incorrect.
Please enter a numeric value between 1 and 300', diff --git a/apps/presentationeditor/main/app/view/DocumentHolder.js b/apps/presentationeditor/main/app/view/DocumentHolder.js index 44fdb2786..beda3d420 100644 --- a/apps/presentationeditor/main/app/view/DocumentHolder.js +++ b/apps/presentationeditor/main/app/view/DocumentHolder.js @@ -819,6 +819,8 @@ define([ menuViewCopySeparator.setVisible(!value.isChart && me.api.can_AddQuotedComment() !== false && me.mode.canCoAuthoring && me.mode.canComments && !me._isDisabled); me.menuViewAddComment.setVisible(!value.isChart && me.api.can_AddQuotedComment() !== false && me.mode.canCoAuthoring && me.mode.canComments && !me._isDisabled); me.menuViewAddComment.setDisabled(value.locked); + var cancopy = me.api && me.api.can_CopyCut(); + me.menuViewCopy.setDisabled(!cancopy); }, items: [ me.menuViewCopy, @@ -1894,7 +1896,9 @@ define([ /** coauthoring end **/ me.menuParagraphAdvanced.setDisabled(disabled); - me.menuParaCut.setDisabled(disabled); + var cancopy = me.api && me.api.can_CopyCut(); + me.menuParaCopy.setDisabled(!cancopy); + me.menuParaCut.setDisabled(disabled || !cancopy); me.menuParaPaste.setDisabled(disabled); // spellCheck @@ -2007,7 +2011,10 @@ define([ me.menuTableCellAlign.setDisabled(value.tableProps.locked || disabled); me.menuTableAdvanced.setDisabled(value.tableProps.locked || disabled); - me.menuTableCut.setDisabled(value.tableProps.locked || disabled); + + var cancopy = me.api && me.api.can_CopyCut(); + me.menuTableCopy.setDisabled(!cancopy); + me.menuTableCut.setDisabled(value.tableProps.locked || disabled || !cancopy); me.menuTablePaste.setDisabled(value.tableProps.locked || disabled); // hyperlink properties @@ -2173,7 +2180,9 @@ define([ if (me.menuChartEdit.isVisible()) me.menuChartEdit.setDisabled(disabled); - me.menuImgCut.setDisabled(disabled); + var cancopy = me.api && me.api.can_CopyCut(); + me.menuImgCopy.setDisabled(!cancopy); + me.menuImgCut.setDisabled(disabled || !cancopy); me.menuImgPaste.setDisabled(disabled); menuImgShapeArrange.setDisabled(disabled); me.menuAddToLayoutImg.setDisabled(disabled); diff --git a/apps/presentationeditor/main/app/view/Toolbar.js b/apps/presentationeditor/main/app/view/Toolbar.js index 41ff4c21f..66cb3de83 100644 --- a/apps/presentationeditor/main/app/view/Toolbar.js +++ b/apps/presentationeditor/main/app/view/Toolbar.js @@ -99,7 +99,8 @@ define([ noAnimationPreview: 'no-animation-preview', noAnimationRepeat: 'no-animation-repeat', noAnimationDuration: 'no-animation-duration', - timingLock: 'timing-lock' + timingLock: 'timing-lock', + copyLock: 'can-copy' }; for (var key in enumLock) { if (enumLock.hasOwnProperty(key)) { @@ -256,7 +257,7 @@ define([ id: 'id-toolbar-btn-copy', cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-copy', - lock: [_set.slideDeleted, _set.lostConnect, _set.noSlides, _set.disableOnStart], + lock: [_set.slideDeleted, _set.lostConnect, _set.noSlides, _set.disableOnStart, _set.copyLock], dataHint: '1', dataHintDirection: 'top', dataHintTitle: 'C' @@ -278,7 +279,7 @@ define([ id: 'id-toolbar-btn-cut', cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-cut', - lock: [_set.slideDeleted, _set.paragraphLock, _set.shapeLock, _set.slideLock, _set.lostConnect, _set.noSlides, _set.disableOnStart], + lock: [_set.slideDeleted, _set.paragraphLock, _set.shapeLock, _set.slideLock, _set.lostConnect, _set.noSlides, _set.disableOnStart, _set.copyLock], dataHint: '1', dataHintDirection: 'top', dataHintTitle: 'X'