From 31720084dd957431931dee2d4612aba95123a55e Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Wed, 22 Jan 2025 16:29:57 +0300 Subject: [PATCH 01/12] [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 02/12] 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 03/12] [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 04/12] 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 05/12] 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; From 4ca29487a0fba2f17f4a4152b39920392fbf7a8d Mon Sep 17 00:00:00 2001 From: maxkadushkin Date: Mon, 3 Feb 2025 23:01:02 +0300 Subject: [PATCH 06/12] [desktop] for bug 72892 --- apps/common/main/lib/controller/Desktop.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/apps/common/main/lib/controller/Desktop.js b/apps/common/main/lib/controller/Desktop.js index ae4be1f344..bd944955d6 100644 --- a/apps/common/main/lib/controller/Desktop.js +++ b/apps/common/main/lib/controller/Desktop.js @@ -924,6 +924,14 @@ define([ t == utils.defines.FileFormat.FILE_CROSSPLATFORM_PDF || t == utils.defines.FileFormat.FILE_CROSSPLATFORM_DJVU || t == utils.defines.FileFormat.FILE_CROSSPLATFORM_XPS; + } else + if ( window.VE ) { + return t == utils.defines.FileFormat.FILE_DRAW_VSDX || + t == utils.defines.FileFormat.FILE_DRAW_VSDM || + t == utils.defines.FileFormat.FILE_DRAW_VSTX || + t == utils.defines.FileFormat.FILE_DRAW_VSTM || + t == utils.defines.FileFormat.FILE_DRAW_VSSX || + t == utils.defines.FileFormat.FILE_DRAW_VSSM; } return false; From ced14bbe25d4d6323832513cca226f09730ca88d Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Wed, 5 Feb 2025 18:03:01 +0300 Subject: [PATCH 07/12] [DE] Fix disconnect on start --- apps/documenteditor/main/app/view/Toolbar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/documenteditor/main/app/view/Toolbar.js b/apps/documenteditor/main/app/view/Toolbar.js index bd71d64022..51c3318612 100644 --- a/apps/documenteditor/main/app/view/Toolbar.js +++ b/apps/documenteditor/main/app/view/Toolbar.js @@ -2927,7 +2927,7 @@ define([ // Numbering var loadPreset = function(url, lang, callback) { - lang = lang.replace('_', '-').toLowerCase(); + lang = (lang || 'en').replace('_', '-').toLowerCase(); Common.Utils.loadConfig(url, function (langJson) { var presets; if (langJson !== 'error') { From 899aae592ac21b8a32f77bd178b92b9e70c2699c Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Thu, 6 Feb 2025 19:51:28 +0300 Subject: [PATCH 08/12] Add description for isForm parameter --- apps/api/documents/api.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/api/documents/api.js b/apps/api/documents/api.js index a340d34f4b..16794501ef 100644 --- a/apps/api/documents/api.js +++ b/apps/api/documents/api.js @@ -332,7 +332,8 @@ url: 'document url', fileType: 'document file type', key: 'key', - vkey: 'vkey' + vkey: 'vkey', + isForm: 'pdf form' / false/true }, editorConfig: { licenseUrl: , From 0cb191ffb69f9e9e8631fd3a4161fa530e4cc434 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Tue, 4 Feb 2025 20:05:24 +0300 Subject: [PATCH 09/12] Bug 73058, Bug 73077 --- .../main/app/view/DocumentPreview.js | 38 ++++++++++++++++--- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/apps/presentationeditor/main/app/view/DocumentPreview.js b/apps/presentationeditor/main/app/view/DocumentPreview.js index d03897ec39..b7f2c46e0c 100644 --- a/apps/presentationeditor/main/app/view/DocumentPreview.js +++ b/apps/presentationeditor/main/app/view/DocumentPreview.js @@ -103,11 +103,26 @@ define([ this.pages.on('change', _.bind(_updatePagesCaption,this)); this.currentDrawColor = 'E81416'; this.drawTool = { - pen: () => Common.NotificationCenter.trigger('draw-tool:pen', { index: 0, color: this.currentDrawColor, size: 1, opacity: 100 }), - highlighter: () => Common.NotificationCenter.trigger('draw-tool:pen', { index: 1, color: this.currentDrawColor, size: 6, opacity: 50 }), - eraser: () => Common.NotificationCenter.trigger('draw-tool:eraser'), - eraseAll: () => Common.NotificationCenter.trigger('draw-tool:erase-all'), - select: () => Common.NotificationCenter.trigger('draw-tool:select'), + pen: () => { + Common.NotificationCenter.trigger('draw-tool:pen', { index: 0, color: this.currentDrawColor, size: 1, opacity: 100 }); + this.editComplete(); + }, + highlighter: () => { + Common.NotificationCenter.trigger('draw-tool:pen', { index: 1, color: this.currentDrawColor, size: 6, opacity: 50 }); + this.editComplete(); + }, + eraser: () => { + Common.NotificationCenter.trigger('draw-tool:eraser'); + this.editComplete(); + }, + eraseAll: () => { + Common.NotificationCenter.trigger('draw-tool:erase-all'); + this.editComplete(); + }, + select: () => { + Common.NotificationCenter.trigger('draw-tool:select'); + this.editComplete(); + } }; }, @@ -231,6 +246,7 @@ define([ }); this.btnPrev.on('click', _.bind(function() { if (this.api) this.api.DemonstrationPrevSlide(); + this.editComplete(); }, this)); this.btnNext = new Common.UI.Button({ @@ -241,6 +257,7 @@ define([ }); this.btnNext.on('click', _.bind(function() { if (this.api) this.api.DemonstrationNextSlide(); + this.editComplete(); }, this)); this.btnPlay = new Common.UI.Button({ @@ -262,6 +279,7 @@ define([ if (this.api) this.api.DemonstrationPlay (); } + this.editComplete(); }, this)); this.btnClose = new Common.UI.Button({ @@ -287,6 +305,7 @@ define([ }); this.btnFullScreen.on('click', _.bind(function(btn) { this.toggleFullScreen(); + this.editComplete(); }, this)); this.txtGoToPage = new Common.UI.InputField({ @@ -384,6 +403,7 @@ define([ me.btnClose.updateHint( fselem ? '' : me.txtClose); } else me.btnFullScreen.updateHint( fselem ? me.txtExitFullScreen: me.txtFullScreen); + me.editComplete(); }); if (Common.Utils.isIE) { @@ -532,6 +552,14 @@ define([ } }, + editComplete: function() { + var me = this; + setTimeout(function() { + $(me.el).focus(); + me.api && me.api.asc_enableKeyEvents(true); + }, 10); + }, + txtDraw: 'Draw', txtPen: 'Pen', txtHighlighter: 'Highlighter', From fb6985e635ea90487b20f7847200ef2769b0552e Mon Sep 17 00:00:00 2001 From: maxkadushkin Date: Fri, 7 Feb 2025 17:17:33 +0300 Subject: [PATCH 10/12] [i18n] changed the instruction --- translation/help/Readme.md | 51 ++++++++++++++++++++++++++++++++ translation/help/instruction.txt | 37 ----------------------- translation/help/readme.txt | 37 ----------------------- 3 files changed, 51 insertions(+), 74 deletions(-) create mode 100644 translation/help/Readme.md delete mode 100644 translation/help/instruction.txt delete mode 100644 translation/help/readme.txt diff --git a/translation/help/Readme.md b/translation/help/Readme.md new file mode 100644 index 0000000000..e062653d65 --- /dev/null +++ b/translation/help/Readme.md @@ -0,0 +1,51 @@ +# Sprite Image Build Script Requirements + +To run the sprite image build script, Python version 3.6 or higher is required. + +# Adding an Image Common to All Languages + +1. Open the folder: + - `web-apps/apps/common/main/resources/help/images/src` if the image is used in at least two editors, + - or `web-apps/apps/{editor}/main/resources/help/images/src` if the image is used in only one editor: + * Place images for button or icon in the `icons` folder. The image name will correspond to the CSS selector name. + * Place larger images in the `big` folder. + * Place symbols in the `symbols` folder. + +2. Launch the terminal (command line). + +3. Navigate to the `web-apps/translation/help` folder using the command: `cd path_to_folder` + - **NOTE!** [For Windows] If the folder is not on the C drive, switch to another drive using the command `cd Drive_Letter:` and then press `Enter` (e.g., `cd F:`). + +4. Run the script with the command: `python helpsprite.py` + + - If the command returns an error `ModuleNotFoundError: No module named 'PIL'`, execute the following in the terminal: + - For Windows: `python -m pip install Pillow` + - For other OS: `python pip install Pillow` + + - If the error `ImportError: cannot import name '_imaging' from 'PIL'...` occurs, execute: + - For Windows: + ```bash + python -m pip uninstall Pillow + python -m pip install Pillow + ``` + - For other OS: + ```bash + python pip uninstall Pillow + python pip install Pillow + ``` + +5. Example of Using an Image from the Sprite + To add an image to the page text, insert: + - For images from the `icons` folder: + ```html +
+ ``` + - For images from the `big` folder: + ```html +
+ ``` + - For images from the `symbols` folder: + ```html +
+ ``` +``` \ No newline at end of file diff --git a/translation/help/instruction.txt b/translation/help/instruction.txt deleted file mode 100644 index b77ab8ffa2..0000000000 --- a/translation/help/instruction.txt +++ /dev/null @@ -1,37 +0,0 @@ -Для работы скрипта сборки спрайта картинок нужен python версии 3.6+ - -Для добавления картинки общей для всех языков -1. Откройте папку web-apps/apps/common/main/resources/help/images/src, если картинка используется как минимум в двух редакторах - или web-apps/apps/{редактор}/main/resources/help/images/src, если картинка используется только в одном редакторе: - a) изображение кнопки или иконки положите в папку"icons". название картинки будет соответствовать названию селектора для css; - b) более крупное изображение положите в папку "big"; - c) символ в папку "symbols". - -2. Запустите терминал(командную строку) - -3. Передите в папку web-apps/translation/help c помощью команды: cd путь_к_папке - (ВНИМАНИЕ! [для windows] ecли папка лежит не на дике С, перейти на другой диск можно комадой "cd Буква_диска:" после нажать "enter" ([Пример:] cd F:)) - -4. Запустить скрипт командой: python helpsprite.py - - если команда выдаст ошибку "ModuleNotFoundError: No module named 'PIL'", нужно выполнить в терминале - для windows: python -m pip install Pillow - для остальных os: python pip install Pillow - - если при выполнении появилась ошибка "ImportError: cannot import name '_imaging' from 'PIL'....", нужно выполнить - для windows: - python -m pip uninstall Pillow - python -m pip install Pillow - - для остальных os: - python pip uninstall Pillow - python pip install Pillow - -5. Пример использования картинки из спрайта - Чтобы добавить картинку в текст страницы нужно вставить: - a) Для изображений из папки icons: -
- b) Для изображений из папки big: -
- c) Для изображений из папки big: -
diff --git a/translation/help/readme.txt b/translation/help/readme.txt deleted file mode 100644 index b77ab8ffa2..0000000000 --- a/translation/help/readme.txt +++ /dev/null @@ -1,37 +0,0 @@ -Для работы скрипта сборки спрайта картинок нужен python версии 3.6+ - -Для добавления картинки общей для всех языков -1. Откройте папку web-apps/apps/common/main/resources/help/images/src, если картинка используется как минимум в двух редакторах - или web-apps/apps/{редактор}/main/resources/help/images/src, если картинка используется только в одном редакторе: - a) изображение кнопки или иконки положите в папку"icons". название картинки будет соответствовать названию селектора для css; - b) более крупное изображение положите в папку "big"; - c) символ в папку "symbols". - -2. Запустите терминал(командную строку) - -3. Передите в папку web-apps/translation/help c помощью команды: cd путь_к_папке - (ВНИМАНИЕ! [для windows] ecли папка лежит не на дике С, перейти на другой диск можно комадой "cd Буква_диска:" после нажать "enter" ([Пример:] cd F:)) - -4. Запустить скрипт командой: python helpsprite.py - - если команда выдаст ошибку "ModuleNotFoundError: No module named 'PIL'", нужно выполнить в терминале - для windows: python -m pip install Pillow - для остальных os: python pip install Pillow - - если при выполнении появилась ошибка "ImportError: cannot import name '_imaging' from 'PIL'....", нужно выполнить - для windows: - python -m pip uninstall Pillow - python -m pip install Pillow - - для остальных os: - python pip uninstall Pillow - python pip install Pillow - -5. Пример использования картинки из спрайта - Чтобы добавить картинку в текст страницы нужно вставить: - a) Для изображений из папки icons: -
- b) Для изображений из папки big: -
- c) Для изображений из папки big: -
From 062a6c84bd1bad53a88bdf6a21eb31871796520a Mon Sep 17 00:00:00 2001 From: svetlana maleeva Date: Fri, 7 Feb 2025 18:17:12 +0300 Subject: [PATCH 11/12] Update help --- .../help/en/HelpfulHints/AdvancedSettings.htm | 5 - .../help/en/HelpfulHints/Comparison.htm | 3 + .../help/en/HelpfulHints/SupportedFormats.htm | 16 ++ .../help/en/ProgramInterface/HomeTab.htm | 1 + .../UsageInstructions/AlignArrangeObjects.htm | 91 ++++--- .../help/en/UsageInstructions/AlignText.htm | 5 + .../UsageInstructions/CreateFillableForms.htm | 12 + .../en/UsageInstructions/InsertFieldCodes.htm | 11 + .../en/UsageInstructions/InsertImages.htm | 24 +- .../en/images/interface/desktop_hometab.png | Bin 15233 -> 14769 bytes .../help/en/images/interface/hometab.png | Bin 17687 -> 17763 bytes .../help/en/images/paradvsettings_indents.png | Bin 19401 -> 9115 bytes .../resources/help/en/images/right_image.png | Bin 13154 -> 6797 bytes .../main/resources/help/en/search/indexes.js | 42 ++-- .../help/en/HelpfulHints/AdvancedSettings.htm | 6 +- .../help/en/UsageInstructions/EditPDF.htm | 233 ++++++++++-------- .../help/en/images/interface/commenttab.png | Bin 10040 -> 10382 bytes .../interface/commenttab_textcomment.png | Bin 13064 -> 13394 bytes .../en/images/interface/hometab_editing.png | Bin 11542 -> 12294 bytes .../main/resources/help/en/search/indexes.js | 8 +- .../main/resources/help/en/Contents.json | 4 +- .../help/en/HelpfulHints/AdvancedSettings.htm | 6 +- .../help/en/ProgramInterface/DesignTab.htm | 33 +++ .../help/en/ProgramInterface/HomeTab.htm | 4 +- .../help/en/ProgramInterface/InsertTab.htm | 2 +- .../en/ProgramInterface/ProgramInterface.htm | 4 +- .../help/en/ProgramInterface/ViewTab.htm | 3 +- .../UsageInstructions/AlignArrangeObjects.htm | 147 +++++------ .../en/UsageInstructions/InsertImages.htm | 76 +++--- .../UsageInstructions/PresentationViewer.htm | 37 +++ .../UsageInstructions/PreviewPresentation.htm | 3 +- .../help/en/UsageInstructions/SlideMaster.htm | 11 +- .../help/en/images/animationgallery.png | Bin 26177 -> 25764 bytes .../resources/help/en/images/applylayout.png | Bin 22072 -> 91064 bytes .../help/en/images/imagesettingstab.png | Bin 9541 -> 5273 bytes .../help/en/images/interface/animationtab.png | Bin 12681 -> 13020 bytes .../en/images/interface/collaborationtab.png | Bin 7786 -> 7971 bytes .../help/en/images/interface/designtab.png | Bin 0 -> 48499 bytes .../images/interface/desktop_animationtab.png | Bin 14411 -> 14144 bytes .../interface/desktop_collaborationtab.png | Bin 8331 -> 7594 bytes .../en/images/interface/desktop_designtab.png | Bin 0 -> 49834 bytes .../en/images/interface/desktop_drawtab.png | Bin 8421 -> 7748 bytes .../images/interface/desktop_editorwindow.png | Bin 709362 -> 579674 bytes .../en/images/interface/desktop_filetab.png | Bin 23356 -> 21286 bytes .../en/images/interface/desktop_hometab.png | Bin 22080 -> 12525 bytes .../en/images/interface/desktop_inserttab.png | Bin 13598 -> 13076 bytes .../images/interface/desktop_pluginstab.png | Bin 8241 -> 8162 bytes .../interface/desktop_transitionstab.png | Bin 12294 -> 12058 bytes .../en/images/interface/desktop_viewtab.png | Bin 12788 -> 12037 bytes .../help/en/images/interface/drawtab.png | Bin 6719 -> 6910 bytes .../help/en/images/interface/editorwindow.png | Bin 562095 -> 551721 bytes .../help/en/images/interface/filetab.png | Bin 26442 -> 26026 bytes .../help/en/images/interface/hometab.png | Bin 25626 -> 12384 bytes .../help/en/images/interface/inserttab.png | Bin 11802 -> 12824 bytes .../help/en/images/interface/pluginstab.png | Bin 15867 -> 17351 bytes .../en/images/interface/transitionstab.png | Bin 10612 -> 10882 bytes .../help/en/images/interface/viewtab.png | Bin 10729 -> 10913 bytes .../help/en/images/presentation_viewer.png | Bin 0 -> 723882 bytes .../help/en/images/presenter_mode.png | Bin 1517 -> 1505 bytes .../resources/help/en/images/slidemaster.png | Bin 4735 -> 4810 bytes .../main/resources/help/en/search/indexes.js | 38 +-- .../main/resources/help/images/big.png | Bin 147403 -> 147565 bytes .../main/resources/help/images/sprite.css | 14 +- .../help/images/src/big/leftpart.png | Bin 481 -> 594 bytes .../help/en/HelpfulHints/AdvancedSettings.htm | 7 +- .../en/UsageInstructions/AddExternalLinks.htm | 8 +- .../en/UsageInstructions/CopyPasteData.htm | 142 ++++++----- .../en/UsageInstructions/InsertImages.htm | 23 +- .../UsageInstructions/ManipulateObjects.htm | 47 ++-- .../help/en/UsageInstructions/PivotTables.htm | 17 ++ .../help/en/images/calculateditems_edit.png | Bin 0 -> 3697 bytes .../help/en/images/calculateditems_new.png | Bin 0 -> 5133 bytes .../help/en/images/externallinks.png | Bin 3831 -> 3841 bytes .../help/en/images/functionarguments.png | Bin 6022 -> 6513 bytes .../help/en/images/imagesettings.png | Bin 9577 -> 5460 bytes .../en/images/interface/pivottabletab.png | Bin 11883 -> 11744 bytes .../resources/help/en/images/right_image.png | Bin 3684 -> 4883 bytes .../help/en/images/series_context_menu.png | Bin 7950 -> 5575 bytes .../main/resources/help/en/search/indexes.js | 24 +- 79 files changed, 674 insertions(+), 433 deletions(-) create mode 100644 apps/presentationeditor/main/resources/help/en/ProgramInterface/DesignTab.htm create mode 100644 apps/presentationeditor/main/resources/help/en/UsageInstructions/PresentationViewer.htm create mode 100644 apps/presentationeditor/main/resources/help/en/images/interface/designtab.png create mode 100644 apps/presentationeditor/main/resources/help/en/images/interface/desktop_designtab.png create mode 100644 apps/presentationeditor/main/resources/help/en/images/presentation_viewer.png create mode 100644 apps/spreadsheeteditor/main/resources/help/en/images/calculateditems_edit.png create mode 100644 apps/spreadsheeteditor/main/resources/help/en/images/calculateditems_new.png diff --git a/apps/documenteditor/main/resources/help/en/HelpfulHints/AdvancedSettings.htm b/apps/documenteditor/main/resources/help/en/HelpfulHints/AdvancedSettings.htm index 8a016b84f3..843c1c9556 100644 --- a/apps/documenteditor/main/resources/help/en/HelpfulHints/AdvancedSettings.htm +++ b/apps/documenteditor/main/resources/help/en/HelpfulHints/AdvancedSettings.htm @@ -91,11 +91,6 @@
  • The Alignment guides option is used to turn on/off alignment guides that appear when you move objects. It allows for a more precise object positioning on the page.
  • The Use Alt key to navigate the user interface using the keyboard option is used to enable using the Alt / Option key in keyboard shortcuts.
  • Show the Quick Print button in the editor header is used in the desktop version to enable quick printing via the corresponding button at the top toolbar. The file will be printed on the last selected or default printer.
  • -
  • - The RTL Interface (Beta) option is used to change the direction in which elements of the interface are displayed. - In the desktop editors, the RTL Interface (Beta) option can be accessed on the main settings page. To learn more, please refer to the desktop getting started guide. -

    This option is available only for interface languages that require RTL.

    -
  • The Customize quick access button is used to choose which buttons shall be available in the top toolbar, i.e., Save, Print, Undo, and Redo.
  • The Unit of measurement option is used to specify what units are used on the rulers and in properties of objects when setting such parameters as width, height, spacing, margins etc. The available units are Centimeter, Point, and Inch.
  • diff --git a/apps/documenteditor/main/resources/help/en/HelpfulHints/Comparison.htm b/apps/documenteditor/main/resources/help/en/HelpfulHints/Comparison.htm index bf46e0b2df..8b3643d210 100644 --- a/apps/documenteditor/main/resources/help/en/HelpfulHints/Comparison.htm +++ b/apps/documenteditor/main/resources/help/en/HelpfulHints/Comparison.htm @@ -34,6 +34,7 @@

    Note: The direct link allows downloading the file directly without opening it in a web browser. For example, to get a direct link in Nextcloud, find the necessary document in the file list, select the Details option from the file menu. Click the Copy direct link (only works for users who have access to this file/folder) icon on the right of the file name on the details panel. To find out how to get a direct link for downloading the file in a different third-party web storage, please refer to the corresponding third-party service documentation.

  • the Document from Storage option will open the Select Data Source window. It displays the list of all the .docx documents stored on your portal you have corresponding access rights to. To navigate through the sections of the Documents module, use the menu on the left part of the window. Select the necessary .docx document and click the OK button.
  • +
  • the Comparison settings option will open the settings window for document comparison. Choose whether you want to show changes at character level, where all characters are included, or at word level, where the process relies on words rather than characters.
  • @@ -51,6 +52,8 @@ the Document from URL option will open the window where you can enter a link to the file stored in a third-party web storage (for example, Nextcloud) if you have corresponding access rights to it. The link must be a direct link for downloading the file. When the link is specified, click the OK button.

    Note: The direct link allows downloading the file directly without opening it in a web browser. For example, to get a direct link in Nextcloud, find the necessary document in the file list, select the Details option from the file menu. Click the Copy direct link (only works for users who have access to this file/folder) icon on the right of the file name on the details panel. To find out how to get a direct link for downloading the file in a different third-party web storage, please refer to the corresponding third-party service documentation.

    +
  • the Document from Storage option will open the Select Data Source window. It displays the list of all the .docx documents stored on your portal you have corresponding access rights to. To navigate through the sections of the Documents module, use the menu on the left part of the window. Select the necessary .docx document and click the OK button.
  • +
  • the Comparison settings option will open the settings window for document comparison. Choose whether you want to show changes at character level, where all characters are included, or at word level, where the process relies on words rather than characters.
  • diff --git a/apps/documenteditor/main/resources/help/en/HelpfulHints/SupportedFormats.htm b/apps/documenteditor/main/resources/help/en/HelpfulHints/SupportedFormats.htm index c7b9b6d3cd..ec13a9644f 100644 --- a/apps/documenteditor/main/resources/help/en/HelpfulHints/SupportedFormats.htm +++ b/apps/documenteditor/main/resources/help/en/HelpfulHints/SupportedFormats.htm @@ -104,6 +104,22 @@ + + + HWP + Hangul Word Processor
    Hanword document file + + + + + + + + + HWPX + Hangul Word Processor 2010 Document
    Hanword document file + + + + + + + MHTML MIME (Multipurpose Internet Mail Extensions) HTML
    A web archive format that combines all the contents of a webpage. diff --git a/apps/documenteditor/main/resources/help/en/ProgramInterface/HomeTab.htm b/apps/documenteditor/main/resources/help/en/ProgramInterface/HomeTab.htm index ef16bf79d5..ae0233b237 100644 --- a/apps/documenteditor/main/resources/help/en/ProgramInterface/HomeTab.htm +++ b/apps/documenteditor/main/resources/help/en/ProgramInterface/HomeTab.htm @@ -33,6 +33,7 @@
  • change paragraph indents,
  • set paragraph line spacing,
  • align your text in a paragraph,
  • +
  • change the text direction,
  • show/hide non-printing characters,
  • copy/clear text formatting,
  • manage styles.
  • diff --git a/apps/documenteditor/main/resources/help/en/UsageInstructions/AlignArrangeObjects.htm b/apps/documenteditor/main/resources/help/en/UsageInstructions/AlignArrangeObjects.htm index 8bde257702..3ca5f204d9 100644 --- a/apps/documenteditor/main/resources/help/en/UsageInstructions/AlignArrangeObjects.htm +++ b/apps/documenteditor/main/resources/help/en/UsageInstructions/AlignArrangeObjects.htm @@ -10,40 +10,42 @@ -
    -
    - -
    -

    Align and arrange objects on the page

    +
    +
    + +
    +

    Align and arrange objects on the page

    In the Document Editor, the added autoshapes, images, charts or text boxes can be aligned, grouped and ordered on the page. To perform any of these actions, first select a separate object or several objects on the page. To select several objects, hold down the Ctrl key and left-click the required objects. To select a text box, click on its border, not the text within it. After that, you can use either the icons on the Layout tab of the top toolbar, described below, or the corresponding options from the right-click menu.

    -

    Align objects

    +

    Align objects

    To align two or more selected objects,

    -
      -
    1. Click the
      Align icon on the Layout tab of the top toolbar and select one of the following options: -
        -
      • Align to Page to align objects relative to the edges of the page,
      • -
      • Align to Margin to align objects relative to the page margins,
      • -
      • Align Selected Objects (this option is selected by default) to align objects relative to each other,
      • -
      -
    2. -
    3. Click the
      Align icon once again and select the necessary alignment type from the list: -
        -
      • Align Left
        - to line up the objects horizontally by the left edge of the leftmost object/left edge of the page/left page margin,
      • -
      • Align Center
        - to line up the objects horizontally by their centers/center of the page/center of the space between the left and right page margins,
      • -
      • Align Right
        - to line up the objects horizontally by the right edge of the rightmost object/right edge of the page/right page margin,
      • -
      • Align Top
        - to line up the objects vertically by the top edge of the topmost object/top edge of the page/top page margin,
      • -
      • Align Middle
        - to line up the objects vertically by their middles/middle of the page/middle of the space between the top and bottom page margins,
      • -
      • Align Bottom
        - to line up the objects vertically by the bottom edge of the bottommost object/bottom edge of the page/bottom page margin.
      • -
      -
    4. -
    +
      +
    1. + Click the
      Align icon on the Layout tab of the top toolbar and select one of the following options: +
        +
      • Align to Page to align objects relative to the edges of the page,
      • +
      • Align to Margin to align objects relative to the page margins,
      • +
      • Align Selected Objects (this option is selected by default) to align objects relative to each other,
      • +
      +
    2. +
    3. + Click the
      Align icon once again and select the necessary alignment type from the list: +
        +
      • Align Left
        - to line up the objects horizontally by the left edge of the leftmost object/left edge of the page/left page margin,
      • +
      • Align Center
        - to line up the objects horizontally by their centers/center of the page/center of the space between the left and right page margins,
      • +
      • Align Right
        - to line up the objects horizontally by the right edge of the rightmost object/right edge of the page/right page margin,
      • +
      • Align Top
        - to line up the objects vertically by the top edge of the topmost object/top edge of the page/top page margin,
      • +
      • Align Middle
        - to line up the objects vertically by their middles/middle of the page/middle of the space between the top and bottom page margins,
      • +
      • Align Bottom
        - to line up the objects vertically by the bottom edge of the bottommost object/bottom edge of the page/bottom page margin.
      • +
      +
    4. +

    Alternatively, you can right-click the selected objects, choose the Align option from the contextual menu and then use one of the available alignment options.

    If you want to align a single object, it can be aligned relative to the edges of the page or to the page margins. The Align to Margin option is selected by default in this case.

    Distribute objects

    To distribute three or more selected objects horizontally or vertically so that there is equal space between them,

    1. - Click the
      Align icon on the Layout tab of the top toolbar and select one of the following options: + Click the
      Align icon on the Layout tab of the top toolbar and select one of the following options:
      • Align to Page to distribute objects between the edges of the page,
      • Align to Margin to distribute objects between the page margins,
      • @@ -51,36 +53,45 @@
    2. - Click the
      Align icon once again and select the necessary distribution type from the list: + Click the
      Align icon once again and select the necessary distribution type from the list:
        -
      • Distribute Horizontally
        - to distribute objects evenly between the leftmost and rightmost selected objects/left and right edges of the page/left and right page margins.
      • -
      • Distribute Vertically
        - to distribute objects evenly between the topmost and bottommost selected objects/top and bottom edges of the page/top and bottom page margins.
      • +
      • Distribute Horizontally
        - to distribute objects evenly between the leftmost and rightmost selected objects/left and right edges of the page/left and right page margins.
      • +
      • Distribute Vertically
        - to distribute objects evenly between the topmost and bottommost selected objects/top and bottom edges of the page/top and bottom page margins.

    Alternatively, you can right-click the selected objects, choose the Align option from the contextual menu and then use one of the available distribution options.

    Note: the distribution options are disabled if you select less than three objects.

    Group objects

    -

    To group two or more selected objects or ungroup them, click the arrow next to the Group icon at the Layout tab on the top toolbar and select the necessary option from the list:

    +

    To group two or more selected objects or ungroup them, click the arrow next to the Group icon at the Layout tab on the top toolbar and select the necessary option from the list:

      -
    • Group
      - to combine several objects into a group so that they can be simultaneously rotated, moved, resized, aligned, arranged, copied, pasted, formatted like a single object.
    • -
    • Ungroup
      - to ungroup the selected group of the previously combined objects.
    • +
    • Group
      - to combine several objects into a group so that they can be simultaneously rotated, moved, resized, aligned, arranged, copied, pasted, formatted like a single object.
    • +
    • Ungroup
      - to ungroup the selected group of the previously combined objects.

    Alternatively, you can right-click the selected objects, choose the Arrange option from the contextual menu and then use the Group or Ungroup option.

    Note: the Group option is disabled if you select less than two objects. The Ungroup option is available only when a group of the previously combined objects is selected.

    Arrange objects

    -

    To arrange objects (i.e., to change their order when several objects overlap each other), you can use the Bring Forward and Send Backward icons on the Layout tab of the top toolbar and select the required arrangement type from the list.

    -

    To move the selected object(s) forward, click the arrow next to the Bring Forward icon on the Layout tab of the top toolbar and select the required arrangement type from the list:

    +

    To arrange objects (i.e., to change their order when several objects overlap each other), you can use the Bring Forward and Send Backward icons on the Layout tab of the top toolbar and select the required arrangement type from the list.

    +

    To move the selected object(s) forward, click the arrow next to the Bring Forward icon on the Layout tab of the top toolbar and select the required arrangement type from the list:

      -
    • Bring To Foreground
      - to move the object(s) in front of all other objects,
    • -
    • Bring Forward
      - to move the selected object(s) by one level forward as related to other objects.
    • +
    • Bring To Foreground
      - to move the object(s) in front of all other objects,
    • +
    • Bring Forward
      - to move the selected object(s) by one level forward as related to other objects.
    -

    To move the selected object(s) backward, click the arrow next to the Send Backward icon on the Layout tab of the top toolbar and select the required arrangement type from the list:

    +

    To move the selected object(s) backward, click the arrow next to the Send Backward icon on the Layout tab of the top toolbar and select the required arrangement type from the list:

      -
    • Send To Background
      - to move the object(s) behind all other objects,
    • -
    • Send Backward
      - to move the selected object(s) by one level backward as related to other objects.
    • +
    • Send To Background
      - to move the object(s) behind all other objects,
    • +
    • Send Backward
      - to move the selected object(s) by one level backward as related to other objects.

    Alternatively, you can right-click the selected object(s), choose the Arrange option from the contextual menu and then use one of the available arrangement options.

    -
    +

    Boolean operations on shapes

    +

    To access the logical operations on shapes, select the Merge shapes menu item in the context menu. The Boolean operations include the following:

    +
      +
    • Union - the shapes will be united into one group and share one area.
    • +
    • Combine - the shapes will be united into one group, but the shared area will be highlighted.
    • +
    • Fragment - the shapes will be united into one group, but the shared area will be outlined.
    • +
    • Intersect - creates a new shape from the areas where the selected shapes overlap.
    • +
    • Subtract - removes the area of a shape from the one underneath it.
    • +
    +
    \ No newline at end of file diff --git a/apps/documenteditor/main/resources/help/en/UsageInstructions/AlignText.htm b/apps/documenteditor/main/resources/help/en/UsageInstructions/AlignText.htm index 1750966a6f..a257582e92 100644 --- a/apps/documenteditor/main/resources/help/en/UsageInstructions/AlignText.htm +++ b/apps/documenteditor/main/resources/help/en/UsageInstructions/AlignText.htm @@ -36,6 +36,11 @@
  • click the OK button to apply the changes.
  • Paragraph Advanced Settings - Indents & Spacing

    +

    Here, you can change the text direction as well in the Direction section:

    +
      +
    • Left-to-right - the text will be written and formatted left-to-right.
    • +
    • Right-to-left - the text will be written and formatted right-to-left.
    • +
    \ No newline at end of file diff --git a/apps/documenteditor/main/resources/help/en/UsageInstructions/CreateFillableForms.htm b/apps/documenteditor/main/resources/help/en/UsageInstructions/CreateFillableForms.htm index 06a5523cd8..7968b60813 100644 --- a/apps/documenteditor/main/resources/help/en/UsageInstructions/CreateFillableForms.htm +++ b/apps/documenteditor/main/resources/help/en/UsageInstructions/CreateFillableForms.htm @@ -589,6 +589,18 @@ +

    Editing fields

    +
      +
    1. Select the required field and click with the right mouse button to open the context menu.
    2. +
    3. +
        +
      • Update field - update the information in the field.
      • +
      • Edit field - open the window for editing the field.
      • +
      • Toggle field codes - display the field code.
      • +
      +
    4. +
    +

    Managing Roles

    You can create new roles that will determine who can fill in certain form fields.

    diff --git a/apps/documenteditor/main/resources/help/en/UsageInstructions/InsertFieldCodes.htm b/apps/documenteditor/main/resources/help/en/UsageInstructions/InsertFieldCodes.htm index b6c60b68a1..e11cabed58 100644 --- a/apps/documenteditor/main/resources/help/en/UsageInstructions/InsertFieldCodes.htm +++ b/apps/documenteditor/main/resources/help/en/UsageInstructions/InsertFieldCodes.htm @@ -217,6 +217,17 @@
    +

    The field codes can be edited and updated on the go:

    +
      +
    1. Select the required field and click with the right mouse button to open the context menu.
    2. +
    3. +
        +
      • Update field - update the information in the field.
      • +
      • Edit field - open the window for editing the field.
      • +
      • Toggle field codes - display the field code.
      • +
      +
    4. +
    \ No newline at end of file diff --git a/apps/documenteditor/main/resources/help/en/UsageInstructions/InsertImages.htm b/apps/documenteditor/main/resources/help/en/UsageInstructions/InsertImages.htm index 4c215e4881..b035edbd21 100644 --- a/apps/documenteditor/main/resources/help/en/UsageInstructions/InsertImages.htm +++ b/apps/documenteditor/main/resources/help/en/UsageInstructions/InsertImages.htm @@ -47,9 +47,10 @@

    Adjust image settings

    Image Settings tab

    Some of the image settings can be altered using the Image settings tab of the right sidebar. To activate it click the image and choose the Image settings icon on the right. Here you can change the following properties:

    -
      -
    • Size is used to view the Width and Height of the current image. If necessary, you can restore the actual image size clicking the Actual Size button. The Fit to Margin button allows you to resize the image, so that it occupies all the space between the left and right page margin. -

      The Crop button is used to crop the image. Click the Crop button to activate cropping handles which appear on the image corners and in the center of each its side. Manually drag the handles to set the cropping area. You can move the mouse cursor over the cropping area border so that it turns into the icon and drag the area.

      +
        +
      • + Size is used to view the Width and Height of the current image. If necessary, you can restore the actual image size clicking the Actual Size button. The Fit to Margin button allows you to resize the image, so that it occupies all the space between the left and right page margin. +

        The Crop button is used to crop the image. Click the Crop button to activate cropping handles which appear on the image corners and in the center of each its side. Manually drag the handles to set the cropping area. You can move the mouse cursor over the cropping area border so that it turns into the icon and drag the area.

        • To crop a single side, drag the handle located in the center of this side.
        • To simultaneously crop two adjacent sides, drag one of the corner handles.
        • @@ -63,18 +64,21 @@
        • If you select the Fill option, the central part of the original image will be preserved and used to fill the selected cropping area, while the other parts of the image will be removed.
        • If you select the Fit option, the image will be resized so that it fits the height and the width of the cropping area. No parts of the original image will be removed, but empty spaces may appear within the selected cropping area.
        -
      • -
      • Rotation is used to rotate the image by 90 degrees clockwise or counterclockwise as well as to flip the image horizontally or vertically. Click one of the buttons: +

        To return the image to its default pixel dimensions, click the Reset crop button.

        +
      • +
      • Opacity - use this section to set an Opacity level dragging the slider or entering the percent value manually. The default value is 100%. It corresponds to the full opacity. The 0% value corresponds to the full transparency.
      • +
      • + Rotation is used to rotate the image by 90 degrees clockwise or counterclockwise as well as to flip the image horizontally or vertically. Click one of the buttons:
          -
        • to rotate the image by 90 degrees counterclockwise
        • -
        • to rotate the image by 90 degrees clockwise
        • -
        • to flip the image horizontally (left to right)
        • -
        • to flip the image vertically (upside down)
        • +
        • to rotate the image by 90 degrees counterclockwise
        • +
        • to rotate the image by 90 degrees clockwise
        • +
        • to flip the image horizontally (left to right)
        • +
        • to flip the image vertically (upside down)
      • Wrapping Style is used to select a text wrapping style from the available ones - inline, square, tight, through, top and bottom, in front, behind (for more information see the advanced settings description below).
      • Replace Image is used to replace the current image by loading another one From File, From Storage, or From URL.
      • -
      +

    You can also find some of these options in the right-click menu. The menu options are: