From 31720084dd957431931dee2d4612aba95123a55e Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Wed, 22 Jan 2025 16:29:57 +0300 Subject: [PATCH 1/5] [PDF] Lock interface elements when delete/rotate page or edit text --- apps/common/main/lib/view/Draw.js | 1 + .../main/app/controller/DocumentHolder.js | 5 +- .../main/app/controller/DocumentHolderExt.js | 22 ++++-- apps/pdfeditor/main/app/controller/InsTab.js | 10 ++- .../main/app/controller/RightMenu.js | 13 ++++ apps/pdfeditor/main/app/controller/Toolbar.js | 61 +++++++++++---- .../main/app/view/DocumentHolderExt.js | 64 ++++++++++----- apps/pdfeditor/main/app/view/InsTab.js | 26 +++---- apps/pdfeditor/main/app/view/Toolbar.js | 78 ++++++++++--------- 9 files changed, 188 insertions(+), 92 deletions(-) diff --git a/apps/common/main/lib/view/Draw.js b/apps/common/main/lib/view/Draw.js index be816f7883..8bf18d6a6b 100644 --- a/apps/common/main/lib/view/Draw.js +++ b/apps/common/main/lib/view/Draw.js @@ -112,6 +112,7 @@ define([ ], lock = (this.appPrefix === 'de-') ? [_set.headerLock, _set.previewReviewMode, _set.viewFormMode, _set.lostConnect, _set.docLockView, _set.docLockForms, _set.docLockComments, _set.viewMode] : (this.appPrefix === 'pe-') ? [_set.slideDeleted, _set.lostConnect, _set.noSlides] : + (this.appPrefix === 'pdfe-') ? [_set.pageDeleted, _set.lostConnect] : [_set.editCell, _set.lostConnect, _set.coAuth, _set['Objects']], me = this; penOptions.forEach(function (props) { diff --git a/apps/pdfeditor/main/app/controller/DocumentHolder.js b/apps/pdfeditor/main/app/controller/DocumentHolder.js index eb6ae98035..62ce0d4fdf 100644 --- a/apps/pdfeditor/main/app/controller/DocumentHolder.js +++ b/apps/pdfeditor/main/app/controller/DocumentHolder.js @@ -281,7 +281,7 @@ define([ } } } - if (this.mode && this.mode.isEdit && this.mode.isPDFEdit) { + if (this.mode && this.mode.isEdit && (this.mode.isPDFEdit || this.mode.isPDFAnnotate)) { var i = -1, in_equation = false, locked = false; @@ -292,12 +292,15 @@ define([ } else if (type === Asc.c_oAscTypeSelectElement.Paragraph) { var value = selectedElements[i].get_ObjectValue(); value && (locked = locked || value.get_Locked()); + } else if (type === Asc.c_oAscTypeSelectElement.PdfPage) { + this._state.pageDeleted = selectedElements[i].get_ObjectValue().asc_getDeleteLock(); } } if (in_equation) { this._state.equationLocked = locked; this.disableEquationBar(); } + this._state.pageDeleted && this.clearSelection(); } }, diff --git a/apps/pdfeditor/main/app/controller/DocumentHolderExt.js b/apps/pdfeditor/main/app/controller/DocumentHolderExt.js index f71b6d6aa7..ab44df406e 100644 --- a/apps/pdfeditor/main/app/controller/DocumentHolderExt.js +++ b/apps/pdfeditor/main/app/controller/DocumentHolderExt.js @@ -246,9 +246,15 @@ define([], function () { var menu_props = {}; selectedElements && _.each(selectedElements, function(element, index) { - if (Asc.c_oAscTypeSelectElement.Annot == element.get_ObjectType()) { + var elType = element.get_ObjectType(), + elValue = element.get_ObjectValue(); + if (Asc.c_oAscTypeSelectElement.Annot == elType) { menu_props.annotProps = {}; - menu_props.annotProps.value = element.get_ObjectValue(); + menu_props.annotProps.value = elValue; + } else if (Asc.c_oAscTypeSelectElement.PdfPage == elType) { + menu_props.pageProps = {}; + menu_props.pageProps.value = elValue; + menu_props.pageProps.locked = (elValue) ? elValue.asc_getDeleteLock() : false; } }); @@ -314,6 +320,10 @@ define([], function () { menu_to_show = documentHolder.editPDFModeMenu; menu_props.annotProps = {}; menu_props.annotProps.value = elValue; + } else if (Asc.c_oAscTypeSelectElement.PdfPage == elType) { + menu_props.pageProps = {}; + menu_props.pageProps.value = elValue; + menu_props.pageProps.locked = (elValue) ? elValue.asc_getDeleteLock() : false; } }); if (menu_to_show === null) { @@ -362,7 +372,7 @@ define([], function () { }; dh.onShowTextBar = function(bounds) { - if (this.mode && !(!this.mode.isPDFEdit && this.mode.isEdit)) return; + if (this.mode && !(!this.mode.isPDFEdit && this.mode.isEdit) || this._state.pageDeleted) return; if (_.isUndefined(this._XY)) { this._XY = [ @@ -732,7 +742,7 @@ define([], function () { }; dh.onShowAnnotBar = function(bounds, mouseOnTop) { - if (this.mode && !this.mode.isEdit) return; + if (this.mode && !this.mode.isEdit || this._state.pageDeleted) return; if (_.isUndefined(this._XY)) { this._XY = [ @@ -824,7 +834,7 @@ define([], function () { }; dh.onShowAnnotSelectBar = function(bounds, mouseOnTop) { - if (this.mode && !this.mode.isEdit) return; + if (this.mode && !this.mode.isEdit || this._state.pageDeleted) return; if (_.isUndefined(this._XY)) { this._XY = [ @@ -946,7 +956,7 @@ define([], function () { }; dh.onShowMathTrack = function(bounds) { - if (this.mode && !(this.mode.isPDFEdit && this.mode.isEdit)) return; + if (this.mode && !(this.mode.isPDFEdit && this.mode.isEdit) || this._state.pageDeleted) return; this.lastMathTrackBounds = bounds; if (!Common.Controllers.LaunchController.isScriptLoaded()) { diff --git a/apps/pdfeditor/main/app/controller/InsTab.js b/apps/pdfeditor/main/app/controller/InsTab.js index 0897adcc6d..605de1152d 100644 --- a/apps/pdfeditor/main/app/controller/InsTab.js +++ b/apps/pdfeditor/main/app/controller/InsTab.js @@ -927,7 +927,8 @@ define([ var pr, i = -1, type, paragraph_locked = false, no_paragraph = true, - in_chart = false; + in_chart = false, + page_deleted = false; while (++i < selectedObjects.length) { type = selectedObjects[i].get_ObjectType(); @@ -944,6 +945,8 @@ define([ if (type == Asc.c_oAscTypeSelectElement.Chart) { in_chart = true; } + } else if (type == Asc.c_oAscTypeSelectElement.PdfPage) { + page_deleted = pr.asc_getDeleteLock(); } } @@ -961,6 +964,11 @@ define([ if (this._state.activated) this._state.no_paragraph = no_paragraph; Common.Utils.lockControls(Common.enumLock.noParagraphSelected, no_paragraph, {array: this.view.lockedControls}); } + + if (page_deleted !== undefined && this._state.pagecontrolsdisable !== page_deleted) { + if (this._state.activated) this._state.pagecontrolsdisable = page_deleted; + Common.Utils.lockControls(Common.enumLock.pageDeleted, page_deleted, {array: this.view.lockedControls}); + } }, onApiCanAddHyperlink: function(value) { diff --git a/apps/pdfeditor/main/app/controller/RightMenu.js b/apps/pdfeditor/main/app/controller/RightMenu.js index c0b091a712..6258b1f3ed 100644 --- a/apps/pdfeditor/main/app/controller/RightMenu.js +++ b/apps/pdfeditor/main/app/controller/RightMenu.js @@ -145,10 +145,16 @@ define([ } // this._settings[Common.Utils.documentSettingsType.Signature].locked = false; + var page_deleted = false; for (i=0; i=this._settings.length || this._settings[settingsType]===undefined) continue; @@ -167,6 +173,13 @@ define([ } } + if ( page_deleted ) { // all elements are locked if the page is locked + for (i=0; i Date: Thu, 23 Jan 2025 12:54:51 +0300 Subject: [PATCH 2/5] Fix lock --- apps/pdfeditor/main/app/view/Toolbar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/pdfeditor/main/app/view/Toolbar.js b/apps/pdfeditor/main/app/view/Toolbar.js index 51f864d011..0b9208d532 100644 --- a/apps/pdfeditor/main/app/view/Toolbar.js +++ b/apps/pdfeditor/main/app/view/Toolbar.js @@ -541,7 +541,7 @@ define([ id: 'id-toolbar-btn-incoffset', cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-incoffset', - lock: [_set.incIndentLock, _set.paragraphLock, _set.lostConnect, _set.noParagraphSelected, _set.inSmartart, _set.inSmartartInternal, _set.disableOnStart, _set.inAnnotation], + lock: [_set.incIndentLock, _set.pageDeleted, _set.paragraphLock, _set.lostConnect, _set.noParagraphSelected, _set.inSmartart, _set.inSmartartInternal, _set.disableOnStart, _set.inAnnotation], dataHint: '1', dataHintDirection: 'top' }); From 7294cce3e7da057e4ce0a6eeadaaf856254704cc Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Tue, 28 Jan 2025 13:16:19 +0300 Subject: [PATCH 3/5] [PDF] Change lock for text/shape objects --- .../main/app/controller/DocumentHolderExt.js | 8 +-- .../main/app/view/DocumentHolderExt.js | 6 +-- apps/pdfeditor/main/app/view/InsTab.js | 4 +- apps/pdfeditor/main/app/view/Toolbar.js | 54 +++++++++---------- 4 files changed, 36 insertions(+), 36 deletions(-) diff --git a/apps/pdfeditor/main/app/controller/DocumentHolderExt.js b/apps/pdfeditor/main/app/controller/DocumentHolderExt.js index ab44df406e..a5a2132bed 100644 --- a/apps/pdfeditor/main/app/controller/DocumentHolderExt.js +++ b/apps/pdfeditor/main/app/controller/DocumentHolderExt.js @@ -372,7 +372,7 @@ define([], function () { }; dh.onShowTextBar = function(bounds) { - if (this.mode && !(!this.mode.isPDFEdit && this.mode.isEdit) || this._state.pageDeleted) return; + if (this.mode && !(!this.mode.isPDFEdit && this.mode.isEdit)) return; if (_.isUndefined(this._XY)) { this._XY = [ @@ -742,7 +742,7 @@ define([], function () { }; dh.onShowAnnotBar = function(bounds, mouseOnTop) { - if (this.mode && !this.mode.isEdit || this._state.pageDeleted) return; + if (this.mode && !this.mode.isEdit) return; if (_.isUndefined(this._XY)) { this._XY = [ @@ -834,7 +834,7 @@ define([], function () { }; dh.onShowAnnotSelectBar = function(bounds, mouseOnTop) { - if (this.mode && !this.mode.isEdit || this._state.pageDeleted) return; + if (this.mode && !this.mode.isEdit) return; if (_.isUndefined(this._XY)) { this._XY = [ @@ -956,7 +956,7 @@ define([], function () { }; dh.onShowMathTrack = function(bounds) { - if (this.mode && !(this.mode.isPDFEdit && this.mode.isEdit) || this._state.pageDeleted) return; + if (this.mode && !(this.mode.isPDFEdit && this.mode.isEdit)) return; this.lastMathTrackBounds = bounds; if (!Common.Controllers.LaunchController.isScriptLoaded()) { diff --git a/apps/pdfeditor/main/app/view/DocumentHolderExt.js b/apps/pdfeditor/main/app/view/DocumentHolderExt.js index 7b50fd9e5b..5d79c4d3ba 100644 --- a/apps/pdfeditor/main/app/view/DocumentHolderExt.js +++ b/apps/pdfeditor/main/app/view/DocumentHolderExt.js @@ -354,7 +354,7 @@ define([], function () { me.tableMenu.items[i].setVisible(!isEquation); } - var disabled = (value.pageProps!==undefined && value.pageProps.locked); + var disabled = false;//(value.pageProps!==undefined && value.pageProps.locked); var align = value.tableProps.value.get_CellsVAlign(); var cls = ''; @@ -776,7 +776,7 @@ define([], function () { imgdisabled = (value.imgProps!==undefined && value.imgProps.locked), shapedisabled = (value.shapeProps!==undefined && value.shapeProps.locked), chartdisabled = (value.chartProps!==undefined && value.chartProps.locked), - page_deleted = (value.pageProps!==undefined && value.pageProps.locked), + page_deleted = false,//(value.pageProps!==undefined && value.pageProps.locked), disabled = imgdisabled || shapedisabled || chartdisabled || page_deleted, pluginGuid = (value.imgProps) ? value.imgProps.value.asc_getPluginGuid() : null, inSmartartInternal = value.shapeProps && value.shapeProps.value.get_FromSmartArtInternal(), @@ -1044,7 +1044,7 @@ define([], function () { initMenu: function(value){ var isInShape = (value.shapeProps && !_.isNull(value.shapeProps.value)); var isInChart = (value.chartProps && !_.isNull(value.chartProps.value)); - var page_deleted = (value.pageProps!==undefined && value.pageProps.locked); + var page_deleted = false;//(value.pageProps!==undefined && value.pageProps.locked); var disabled = (value.paraProps!==undefined && value.paraProps.locked) || page_deleted || (isInShape && value.shapeProps.locked); diff --git a/apps/pdfeditor/main/app/view/InsTab.js b/apps/pdfeditor/main/app/view/InsTab.js index a91f8df561..3645bdcac2 100644 --- a/apps/pdfeditor/main/app/view/InsTab.js +++ b/apps/pdfeditor/main/app/view/InsTab.js @@ -195,7 +195,7 @@ define([ cls: 'btn-toolbar x-huge icon-top', iconCls: 'toolbar__icon btn-symbol', caption: me.capBtnInsSymbol, - lock: [_set.pageDeleted, _set.paragraphLock, _set.lostConnect, _set.noParagraphSelected], + lock: [_set.paragraphLock, _set.lostConnect, _set.noParagraphSelected], menu: new Common.UI.Menu({ style: 'min-width: 100px;', items: [ @@ -218,7 +218,7 @@ define([ cls: 'btn-toolbar x-huge icon-top', iconCls: 'toolbar__icon btn-big-inserthyperlink', caption: me.capInsertHyperlink, - lock: [_set.hyperlinkLock, _set.paragraphLock, _set.pageDeleted, _set.lostConnect, _set.noParagraphSelected], + lock: [_set.hyperlinkLock, _set.paragraphLock, _set.lostConnect, _set.noParagraphSelected], dataHint: '1', dataHintDirection: 'bottom', dataHintOffset: 'small' diff --git a/apps/pdfeditor/main/app/view/Toolbar.js b/apps/pdfeditor/main/app/view/Toolbar.js index 0b9208d532..ea3b86e9c8 100644 --- a/apps/pdfeditor/main/app/view/Toolbar.js +++ b/apps/pdfeditor/main/app/view/Toolbar.js @@ -161,7 +161,7 @@ define([ menuCls: 'scrollable-menu', menuStyle: 'min-width: 325px;', hint: this.tipFontName, - lock: [_set.paragraphLock, _set.pageDeleted, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart], + lock: [_set.paragraphLock, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart], store: new Common.Collections.Fonts(), dataHint: '1', dataHintDirection: 'top' @@ -173,7 +173,7 @@ define([ cls: 'input-group-nr', menuStyle: 'min-width: 55px;', hint: this.tipFontSize, - lock: [_set.paragraphLock, _set.pageDeleted, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart], + lock: [_set.paragraphLock, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart], data: [ {value: 8, displayValue: "8"}, {value: 9, displayValue: "9"}, @@ -203,7 +203,7 @@ define([ id: 'id-toolbar-btn-incfont', cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-incfont', - lock: [_set.paragraphLock, _set.pageDeleted, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart], + lock: [_set.paragraphLock, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart], dataHint: '1', dataHintDirection: 'top' }); @@ -214,7 +214,7 @@ define([ id: 'id-toolbar-btn-decfont', cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-decfont', - lock: [_set.paragraphLock, _set.pageDeleted, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart], + lock: [_set.paragraphLock, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart], dataHint: '1', dataHintDirection: 'top' }); @@ -225,7 +225,7 @@ define([ id: 'id-toolbar-btn-bold', cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-bold', - lock: [_set.paragraphLock, _set.pageDeleted, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart], + lock: [_set.paragraphLock, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart], enableToggle: true, dataHint: '1', dataHintDirection: 'bottom' @@ -237,7 +237,7 @@ define([ id: 'id-toolbar-btn-italic', cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-italic', - lock: [_set.paragraphLock, _set.pageDeleted, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart], + lock: [_set.paragraphLock, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart], enableToggle: true, dataHint: '1', dataHintDirection: 'bottom' @@ -249,7 +249,7 @@ define([ id: 'id-toolbar-btn-underline', cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-underline', - lock: [_set.paragraphLock, _set.pageDeleted, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart], + lock: [_set.paragraphLock, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart], enableToggle: true, dataHint: '1', dataHintDirection: 'bottom' @@ -261,7 +261,7 @@ define([ id: 'id-toolbar-btn-strikeout', cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-strikeout', - lock: [_set.paragraphLock, _set.pageDeleted, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart], + lock: [_set.paragraphLock, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart], enableToggle: true, dataHint: '1', dataHintDirection: 'bottom' @@ -273,7 +273,7 @@ define([ id: 'id-toolbar-btn-superscript', cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-superscript', - lock: [_set.paragraphLock, _set.pageDeleted, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart, _set.inEquation], + lock: [_set.paragraphLock, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart, _set.inEquation], enableToggle: true, toggleGroup: 'superscriptGroup', dataHint: '1', @@ -286,7 +286,7 @@ define([ id: 'id-toolbar-btn-subscript', cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-subscript', - lock: [_set.paragraphLock, _set.pageDeleted, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart, _set.inEquation], + lock: [_set.paragraphLock, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart, _set.inEquation], enableToggle: true, toggleGroup: 'superscriptGroup', dataHint: '1', @@ -302,7 +302,7 @@ define([ enableToggle: true, allowDepress: true, split: true, - lock: [_set.paragraphLock, _set.pageDeleted, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart, _set.inAnnotation], + lock: [_set.paragraphLock, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart, _set.inAnnotation], dataHint: '1', dataHintDirection: 'bottom', dataHintOffset: '0, -16', @@ -326,7 +326,7 @@ define([ id: 'id-toolbar-btn-fontcolor', cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-fontcolor', - lock: [_set.paragraphLock, _set.pageDeleted, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart], + lock: [_set.paragraphLock, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart], split: true, menu: true, colors: colorsconfig.colors, @@ -349,7 +349,7 @@ define([ cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-change-case', action: 'change-case', - lock: [_set.paragraphLock, _set.pageDeleted, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart], + lock: [_set.paragraphLock, _set.lostConnect, _set.noTextSelected, _set.shapeLock, _set.disableOnStart], menu: new Common.UI.Menu({ items: [ {caption: this.mniSentenceCase, value: Asc.c_oAscChangeTextCaseType.SentenceCase}, @@ -371,7 +371,7 @@ define([ id: 'id-toolbar-btn-clearstyle', cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-clearstyle', - lock: [ _set.paragraphLock, _set.pageDeleted, _set.lostConnect, _set.noTextSelected, _set.disableOnStart], + lock: [ _set.paragraphLock, _set.lostConnect, _set.noTextSelected, _set.disableOnStart], dataHint: '1', dataHintDirection: 'bottom' }); @@ -382,7 +382,7 @@ define([ id: 'id-toolbar-btn-markers', cls: 'btn-toolbar', iconCls: 'toolbar__icon ' + (!Common.UI.isRTL() ? 'btn-setmarkers' : 'btn-setmarkers-rtl'), - lock: [_set.paragraphLock, _set.pageDeleted, _set.lostConnect, _set.noParagraphSelected, _set.inSmartart, _set.inSmartartInternal, _set.disableOnStart, _set.inAnnotation], + lock: [_set.paragraphLock, _set.lostConnect, _set.noParagraphSelected, _set.inSmartart, _set.inSmartartInternal, _set.disableOnStart, _set.inAnnotation], enableToggle: true, toggleGroup: 'markersGroup', split: true, @@ -398,7 +398,7 @@ define([ id: 'id-toolbar-btn-numbering', cls: 'btn-toolbar', iconCls: 'toolbar__icon ' + (!Common.UI.isRTL() ? 'btn-numbering' : 'btn-numbering-rtl'), - lock: [_set.paragraphLock, _set.pageDeleted, _set.lostConnect, _set.noParagraphSelected, _set.inSmartart, _set.inSmartartInternal, _set.disableOnStart, _set.inAnnotation], + lock: [_set.paragraphLock, _set.lostConnect, _set.noParagraphSelected, _set.inSmartart, _set.inSmartartInternal, _set.disableOnStart, _set.inAnnotation], enableToggle: true, toggleGroup: 'markersGroup', split: true, @@ -430,7 +430,7 @@ define([ cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-align-left', icls: 'btn-align-left', - lock: [_set.paragraphLock, _set.pageDeleted, _set.lostConnect, _set.noParagraphSelected, _set.disableOnStart, _set.inAnnotation], + lock: [_set.paragraphLock, _set.lostConnect, _set.noParagraphSelected, _set.disableOnStart, _set.inAnnotation], menu: new Common.UI.Menu({ items: [ { @@ -483,7 +483,7 @@ define([ this.btnVerticalAlign = new Common.UI.Button({ id: 'id-toolbar-btn-valign', cls: 'btn-toolbar', - lock: [_set.paragraphLock, _set.pageDeleted, _set.lostConnect, _set.noParagraphSelected, _set.noObjectSelected, _set.disableOnStart, _set.inAnnotation], + lock: [_set.paragraphLock, _set.lostConnect, _set.noParagraphSelected, _set.noObjectSelected, _set.disableOnStart, _set.inAnnotation], iconCls: 'toolbar__icon btn-align-middle', icls: 'btn-align-middle', menu: new Common.UI.Menu({ @@ -530,7 +530,7 @@ define([ id: 'id-toolbar-btn-decoffset', cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-decoffset', - lock: [_set.decIndentLock, _set.pageDeleted, _set.paragraphLock, _set.lostConnect, _set.noParagraphSelected, _set.inSmartart, _set.inSmartartInternal, _set.disableOnStart, _set.inAnnotation], + lock: [_set.decIndentLock, _set.paragraphLock, _set.lostConnect, _set.noParagraphSelected, _set.inSmartart, _set.inSmartartInternal, _set.disableOnStart, _set.inAnnotation], dataHint: '1', dataHintDirection: 'top' }); @@ -541,7 +541,7 @@ define([ id: 'id-toolbar-btn-incoffset', cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-incoffset', - lock: [_set.incIndentLock, _set.pageDeleted, _set.paragraphLock, _set.lostConnect, _set.noParagraphSelected, _set.inSmartart, _set.inSmartartInternal, _set.disableOnStart, _set.inAnnotation], + lock: [_set.incIndentLock, _set.paragraphLock, _set.lostConnect, _set.noParagraphSelected, _set.inSmartart, _set.inSmartartInternal, _set.disableOnStart, _set.inAnnotation], dataHint: '1', dataHintDirection: 'top' }); @@ -552,7 +552,7 @@ define([ id: 'id-toolbar-btn-linespace', cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-linespace', - lock: [_set.paragraphLock, _set.pageDeleted, _set.lostConnect, _set.noParagraphSelected, _set.disableOnStart, _set.inAnnotation], + lock: [_set.paragraphLock, _set.lostConnect, _set.noParagraphSelected, _set.disableOnStart, _set.inAnnotation], menu: new Common.UI.Menu({ style: 'min-width: 60px;', items: [ @@ -576,7 +576,7 @@ define([ id: 'id-toolbar-btn-columns', cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-columns-two', - lock: [_set.paragraphLock, _set.pageDeleted, _set.lostConnect, _set.noParagraphSelected, _set.noColumns, _set.disableOnStart, _set.inAnnotation], + lock: [_set.paragraphLock, _set.lostConnect, _set.noParagraphSelected, _set.noColumns, _set.disableOnStart, _set.inAnnotation], menu: new Common.UI.Menu({ cls: 'ppm-toolbar shifted-right', items: [ @@ -648,7 +648,7 @@ define([ id: 'id-toolbar-btn-shape-align', cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-shape-align-left', - lock: [_set.shapeLock, _set.pageDeleted, _set.lostConnect, _set.noDrawingObjects, _set.disableOnStart], + lock: [_set.shapeLock, _set.lostConnect, _set.noDrawingObjects, _set.disableOnStart], menu: new Common.UI.Menu({ cls: 'shifted-right', items: [ @@ -702,7 +702,7 @@ define([ id: 'id-toolbar-btn-shape-arrange', cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-arrange-front', - lock: [_set.pageDeleted, _set.lostConnect, _set.noDrawingObjects, _set.disableOnStart], + lock: [_set.shapeLock, _set.lostConnect, _set.noDrawingObjects, _set.disableOnStart], menu: new Common.UI.Menu({ items: [ this.mnuArrangeFront = new Common.UI.MenuItem({ @@ -750,7 +750,7 @@ define([ id: 'id-toolbar-btn-merge-shapes', cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-combine-shapes', - lock: [_set.shapeLock, _set.pageDeleted, _set.lostConnect, _set.noDrawingObjects, _set.disableOnStart, _set.cantMergeShape], + lock: [_set.shapeLock, _set.lostConnect, _set.noDrawingObjects, _set.disableOnStart, _set.cantMergeShape], menu: new Common.UI.Menu({ cls: 'shifted-right', items: [ @@ -1160,7 +1160,7 @@ define([ id: 'id-toolbar-btn-paste', cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-paste', - lock: [_set.paragraphLock, _set.pageDeleted, _set.lostConnect, _set.disableOnStart], + lock: [_set.paragraphLock, _set.lostConnect, _set.disableOnStart], dataHint: '1', dataHintDirection: 'top', dataHintTitle: 'V' @@ -1171,7 +1171,7 @@ define([ id: 'id-toolbar-btn-cut', cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-cut', - lock: [_set.cutLock, _set.paragraphLock, _set.pageDeleted, _set.shapeLock, _set.lostConnect, _set.disableOnStart], + lock: [_set.cutLock, _set.paragraphLock, _set.shapeLock, _set.lostConnect, _set.disableOnStart], dataHint: '1', dataHintDirection: 'top', dataHintTitle: 'X' From 5d72155d24b96029b59c11ba07306a3415d56a90 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Tue, 28 Jan 2025 16:11:55 +0300 Subject: [PATCH 4/5] Fix lock on deleted page --- .../main/app/controller/DocumentHolder.js | 3 -- .../main/app/controller/RightMenu.js | 12 ------ .../main/app/view/DocumentHolderExt.js | 43 +++++++++---------- apps/pdfeditor/main/app/view/Toolbar.js | 6 +-- 4 files changed, 23 insertions(+), 41 deletions(-) diff --git a/apps/pdfeditor/main/app/controller/DocumentHolder.js b/apps/pdfeditor/main/app/controller/DocumentHolder.js index 62ce0d4fdf..0314911470 100644 --- a/apps/pdfeditor/main/app/controller/DocumentHolder.js +++ b/apps/pdfeditor/main/app/controller/DocumentHolder.js @@ -292,15 +292,12 @@ define([ } else if (type === Asc.c_oAscTypeSelectElement.Paragraph) { var value = selectedElements[i].get_ObjectValue(); value && (locked = locked || value.get_Locked()); - } else if (type === Asc.c_oAscTypeSelectElement.PdfPage) { - this._state.pageDeleted = selectedElements[i].get_ObjectValue().asc_getDeleteLock(); } } if (in_equation) { this._state.equationLocked = locked; this.disableEquationBar(); } - this._state.pageDeleted && this.clearSelection(); } }, diff --git a/apps/pdfeditor/main/app/controller/RightMenu.js b/apps/pdfeditor/main/app/controller/RightMenu.js index 6258b1f3ed..1338e3ee57 100644 --- a/apps/pdfeditor/main/app/controller/RightMenu.js +++ b/apps/pdfeditor/main/app/controller/RightMenu.js @@ -145,16 +145,11 @@ define([ } // this._settings[Common.Utils.documentSettingsType.Signature].locked = false; - var page_deleted = false; for (i=0; i=this._settings.length || this._settings[settingsType]===undefined) continue; @@ -173,13 +168,6 @@ define([ } } - if ( page_deleted ) { // all elements are locked if the page is locked - for (i=0; i Date: Tue, 28 Jan 2025 16:27:10 +0300 Subject: [PATCH 5/5] Refactoring --- apps/pdfeditor/main/app/controller/DocumentHolder.js | 2 +- apps/pdfeditor/main/app/controller/RightMenu.js | 1 - apps/pdfeditor/main/app/view/DocumentHolderExt.js | 7 +++---- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/apps/pdfeditor/main/app/controller/DocumentHolder.js b/apps/pdfeditor/main/app/controller/DocumentHolder.js index 0314911470..eb6ae98035 100644 --- a/apps/pdfeditor/main/app/controller/DocumentHolder.js +++ b/apps/pdfeditor/main/app/controller/DocumentHolder.js @@ -281,7 +281,7 @@ define([ } } } - if (this.mode && this.mode.isEdit && (this.mode.isPDFEdit || this.mode.isPDFAnnotate)) { + if (this.mode && this.mode.isEdit && this.mode.isPDFEdit) { var i = -1, in_equation = false, locked = false; diff --git a/apps/pdfeditor/main/app/controller/RightMenu.js b/apps/pdfeditor/main/app/controller/RightMenu.js index 1338e3ee57..c0b091a712 100644 --- a/apps/pdfeditor/main/app/controller/RightMenu.js +++ b/apps/pdfeditor/main/app/controller/RightMenu.js @@ -149,7 +149,6 @@ define([ { var eltype = SelectedObjects[i].get_ObjectType(), settingsType = this.getDocumentSettingsType(eltype); - if (settingsType===undefined || settingsType>=this._settings.length || this._settings[settingsType]===undefined) continue; diff --git a/apps/pdfeditor/main/app/view/DocumentHolderExt.js b/apps/pdfeditor/main/app/view/DocumentHolderExt.js index bb3117eaa5..90a25b4f03 100644 --- a/apps/pdfeditor/main/app/view/DocumentHolderExt.js +++ b/apps/pdfeditor/main/app/view/DocumentHolderExt.js @@ -418,13 +418,12 @@ define([], function () { me.menuAddHyperlinkTable.hyperProps.value.put_Text(text); } if (!_.isUndefined(value.paraProps)) { - me.menuAddHyperlinkTable.setDisabled(value.paraProps.locked || disabled); - menuHyperlinkTable.setDisabled(value.paraProps.locked || disabled); - me._currentParaObjDisabled = value.paraProps.locked || disabled; + me.menuAddHyperlinkTable.setDisabled(value.paraProps.locked); + menuHyperlinkTable.setDisabled(value.paraProps.locked); + me._currentParaObjDisabled = value.paraProps.locked; } me.menuAddCommentTable.setVisible(me.mode && me.mode.canComments); - me.menuAddCommentTable.setDisabled(disabled); //equation menu var eqlen = 0;