diff --git a/apps/presentationeditor/main/app/controller/Toolbar.js b/apps/presentationeditor/main/app/controller/Toolbar.js index b24ce66d3..259b27c33 100644 --- a/apps/presentationeditor/main/app/controller/Toolbar.js +++ b/apps/presentationeditor/main/app/controller/Toolbar.js @@ -813,6 +813,11 @@ define([ if (this._state.in_smartart_internal !== in_smartart_internal) { this.toolbar.lockToolbar(PE.enumLock.inSmartartInternal, in_smartart_internal, {array: me.toolbar.paragraphControls}); this._state.in_smartart_internal = in_smartart_internal; + + this.toolbar.mnuArrangeFront.setDisabled(in_smartart_internal); + this.toolbar.mnuArrangeBack.setDisabled(in_smartart_internal); + this.toolbar.mnuArrangeForward.setDisabled(in_smartart_internal); + this.toolbar.mnuArrangeBackward.setDisabled(in_smartart_internal); } }, diff --git a/apps/presentationeditor/main/app/view/DocumentHolder.js b/apps/presentationeditor/main/app/view/DocumentHolder.js index 3b7142a96..dd6c23309 100644 --- a/apps/presentationeditor/main/app/view/DocumentHolder.js +++ b/apps/presentationeditor/main/app/view/DocumentHolder.js @@ -2654,56 +2654,64 @@ define([ Common.component.Analytics.trackEvent('DocumentHolder', 'Ungroup Image'); }); + var mnuArrangeFront = new Common.UI.MenuItem({ + caption : this.textArrangeFront, + iconCls : 'menu__icon arrange-front' + }).on('click', function(item) { + if (me.api) { + me.api.shapes_bringToFront(); + } + + me.fireEvent('editcomplete', me); + Common.component.Analytics.trackEvent('DocumentHolder', 'Bring To Front'); + }); + + var mnuArrangeBack = new Common.UI.MenuItem({ + caption : this.textArrangeBack, + iconCls : 'menu__icon arrange-back' + }).on('click', function(item) { + if (me.api) { + me.api.shapes_bringToBack(); + } + + me.fireEvent('editcomplete', me); + Common.component.Analytics.trackEvent('DocumentHolder', 'Bring To Back'); + }); + + var mnuArrangeForward = new Common.UI.MenuItem({ + caption : this.textArrangeForward, + iconCls : 'menu__icon arrange-forward' + }).on('click', function(item) { + if (me.api) { + me.api.shapes_bringForward(); + } + + me.fireEvent('editcomplete', me); + Common.component.Analytics.trackEvent('DocumentHolder', 'Send Forward'); + }); + + var mnuArrangeBackward = new Common.UI.MenuItem({ + caption : this.textArrangeBackward, + iconCls : 'menu__icon arrange-backward' + }).on('click', function(item) { + if (me.api) { + me.api.shapes_bringBackward(); + } + + me.fireEvent('editcomplete', me); + Common.component.Analytics.trackEvent('DocumentHolder', 'Send Backward'); + }); + var menuImgShapeArrange = new Common.UI.MenuItem({ caption : me.txtArrange, menu : new Common.UI.Menu({ cls: 'shifted-right', menuAlign: 'tl-tr', items: [ - new Common.UI.MenuItem({ - caption : this.textArrangeFront, - iconCls : 'menu__icon arrange-front' - }).on('click', function(item) { - if (me.api) { - me.api.shapes_bringToFront(); - } - - me.fireEvent('editcomplete', me); - Common.component.Analytics.trackEvent('DocumentHolder', 'Bring To Front'); - }), - new Common.UI.MenuItem({ - caption : this.textArrangeBack, - iconCls : 'menu__icon arrange-back' - }).on('click', function(item) { - if (me.api) { - me.api.shapes_bringToBack(); - } - - me.fireEvent('editcomplete', me); - Common.component.Analytics.trackEvent('DocumentHolder', 'Bring To Back'); - }), - new Common.UI.MenuItem({ - caption : this.textArrangeForward, - iconCls : 'menu__icon arrange-forward' - }).on('click', function(item) { - if (me.api) { - me.api.shapes_bringForward(); - } - - me.fireEvent('editcomplete', me); - Common.component.Analytics.trackEvent('DocumentHolder', 'Send Forward'); - }), - new Common.UI.MenuItem({ - caption : this.textArrangeBackward, - iconCls : 'menu__icon arrange-backward' - }).on('click', function(item) { - if (me.api) { - me.api.shapes_bringBackward(); - } - - me.fireEvent('editcomplete', me); - Common.component.Analytics.trackEvent('DocumentHolder', 'Send Backward'); - }), + mnuArrangeFront, + mnuArrangeBack, + mnuArrangeForward, + mnuArrangeBackward, {caption: '--'}, mnuGroupImg, mnuUnGroupImg @@ -3503,11 +3511,17 @@ define([ shapedisabled = (value.shapeProps!==undefined && value.shapeProps.locked), chartdisabled = (value.chartProps!==undefined && value.chartProps.locked), disabled = imgdisabled || shapedisabled || chartdisabled || (value.slideProps!==undefined && value.slideProps.locked), - pluginGuid = (value.imgProps) ? value.imgProps.value.asc_getPluginGuid() : null; + pluginGuid = (value.imgProps) ? value.imgProps.value.asc_getPluginGuid() : null, + inSmartartInternal = value.shapeProps && value.shapeProps.value.get_FromSmartArtInternal(); + + mnuArrangeFront.setDisabled(inSmartartInternal); + mnuArrangeBack.setDisabled(inSmartartInternal); + mnuArrangeForward.setDisabled(inSmartartInternal); + mnuArrangeBackward.setDisabled(inSmartartInternal); menuImgShapeRotate.setVisible(_.isUndefined(value.chartProps) && (pluginGuid===null || pluginGuid===undefined)); if (menuImgShapeRotate.isVisible()) - menuImgShapeRotate.setDisabled(disabled); + menuImgShapeRotate.setDisabled(disabled || (value.shapeProps && value.shapeProps.value.get_FromSmartArt())); // image properties menuImgOriginalSize.setVisible(isimage); diff --git a/apps/presentationeditor/main/app/view/Toolbar.js b/apps/presentationeditor/main/app/view/Toolbar.js index c0822a2f3..fcc338dab 100644 --- a/apps/presentationeditor/main/app/view/Toolbar.js +++ b/apps/presentationeditor/main/app/view/Toolbar.js @@ -597,7 +597,7 @@ define([ id: 'id-toolbar-btn-decoffset', cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-decoffset', - lock: [_set.decIndentLock, _set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noParagraphSelected, _set.inSmartart], + lock: [_set.decIndentLock, _set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noParagraphSelected, _set.inSmartart, _set.inSmartartInternal], dataHint: '1', dataHintDirection: 'top' }); @@ -607,7 +607,7 @@ define([ id: 'id-toolbar-btn-incoffset', cls: 'btn-toolbar', iconCls: 'toolbar__icon btn-incoffset', - lock: [_set.incIndentLock, _set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noParagraphSelected, _set.inSmartart], + lock: [_set.incIndentLock, _set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noParagraphSelected, _set.inSmartart, _set.inSmartartInternal], dataHint: '1', dataHintDirection: 'top' }); @@ -925,26 +925,26 @@ define([ lock: [_set.slideDeleted, _set.lostConnect, _set.noSlides, _set.noObjectSelected, _set.disableOnStart], menu: new Common.UI.Menu({ items: [ - { + me.mnuArrangeFront = new Common.UI.MenuItem({ caption: me.textArrangeFront, iconCls: 'menu__icon arrange-front', value: 1 - }, - { + }), + me.mnuArrangeBack = new Common.UI.MenuItem({ caption: me.textArrangeBack, iconCls: 'menu__icon arrange-back', value: 2 - }, - { + }), + me.mnuArrangeForward = new Common.UI.MenuItem({ caption: me.textArrangeForward, iconCls: 'menu__icon arrange-forward', value: 3 - }, - { + }), + me.mnuArrangeBackward = new Common.UI.MenuItem({ caption: me.textArrangeBackward, iconCls: 'menu__icon arrange-backward', value: 4 - }, + }), {caption: '--'}, me.mnuGroupShapes = new Common.UI.MenuItem({ caption: me.txtGroup, diff --git a/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js b/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js index 77a596703..824c6b102 100644 --- a/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js +++ b/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js @@ -1831,7 +1831,9 @@ define([ isObjLocked = false, commentsController = this.getApplication().getController('Common.Controllers.Comments'), internaleditor = this.permissions.isEditMailMerge || this.permissions.isEditDiagram, - xfs = cellinfo.asc_getXfs(); + xfs = cellinfo.asc_getXfs(), + isSmartArt = false, + isSmartArtInternal = false; switch (seltype) { case Asc.c_oAscSelectionType.RangeCells: iscellmenu = true; break; @@ -1871,6 +1873,10 @@ define([ else { documentHolder.mnuShapeAdvanced.shapeInfo = elValue; isshapemenu = true; + if (shapeprops.asc_getFromSmartArt()) + isSmartArt = true; + if (shapeprops.asc_getFromSmartArtInternal()) + isSmartArtInternal = true; } } else if ( elValue.asc_getChartProperties() ) { documentHolder.mnuChartEdit.chartInfo = elValue; @@ -1888,6 +1894,11 @@ define([ } } + documentHolder.mnuBringToFront.setDisabled(isSmartArtInternal); + documentHolder.mnuSendToBack.setDisabled(isSmartArtInternal); + documentHolder.mnuBringForward.setDisabled(isSmartArtInternal); + documentHolder.mnuSendBackward.setDisabled(isSmartArtInternal); + var cangroup = this.api.asc_canGroupGraphicsObjects(); documentHolder.mnuUnGroupImg.setDisabled(isObjLocked || !this.api.asc_canUnGroupGraphicsObjects()); documentHolder.mnuGroupImg.setDisabled(isObjLocked || !cangroup); @@ -1919,7 +1930,7 @@ define([ documentHolder.menuImageArrange.setDisabled(isObjLocked); documentHolder.menuImgRotate.setVisible(!ischartmenu && (pluginGuid===null || pluginGuid===undefined) && !isslicermenu); - documentHolder.menuImgRotate.setDisabled(isObjLocked); + documentHolder.menuImgRotate.setDisabled(isObjLocked || isSmartArt); documentHolder.menuImgCrop.setVisible(this.api.asc_canEditCrop()); documentHolder.menuImgCrop.setDisabled(isObjLocked); @@ -1957,8 +1968,11 @@ define([ var value = selectedObjects[i].asc_getObjectValue(), align = value.asc_getVerticalTextAlign(), direct = value.asc_getVert(), - listtype = this.api.asc_getCurrentListType(); + listtype = this.api.asc_getCurrentListType(), + shapeProps = value ? value.asc_getShapeProperties() : null; isObjLocked = isObjLocked || value.asc_getLocked(); + isSmartArt = shapeProps ? shapeProps.asc_getFromSmartArt() : false; + isSmartArtInternal = shapeProps ? shapeProps.asc_getFromSmartArtInternal() : false; var cls = ''; switch (align) { case Asc.c_oAscVAlign.Top: @@ -2033,6 +2047,8 @@ define([ this.clearEquationMenu(4); if (showMenu) this.showPopupMenu(documentHolder.textInShapeMenu, {}, event); + + documentHolder.menuParagraphBullets.setDisabled(isSmartArt || isSmartArtInternal); } else if (!this.permissions.isEditMailMerge && !this.permissions.isEditDiagram || (seltype !== Asc.c_oAscSelectionType.RangeImage && seltype !== Asc.c_oAscSelectionType.RangeShape && seltype !== Asc.c_oAscSelectionType.RangeChart && seltype !== Asc.c_oAscSelectionType.RangeChartText && seltype !== Asc.c_oAscSelectionType.RangeShapeText && seltype !== Asc.c_oAscSelectionType.RangeSlicer)) { if (!documentHolder.ssMenu || !showMenu && !documentHolder.ssMenu.isVisible()) return; diff --git a/apps/spreadsheeteditor/main/app/controller/Toolbar.js b/apps/spreadsheeteditor/main/app/controller/Toolbar.js index 9b29a6259..0e1080b31 100644 --- a/apps/spreadsheeteditor/main/app/controller/Toolbar.js +++ b/apps/spreadsheeteditor/main/app/controller/Toolbar.js @@ -3457,7 +3457,8 @@ define([ is_image = seltype == Asc.c_oAscSelectionType.RangeImage, is_slicer = seltype == Asc.c_oAscSelectionType.RangeSlicer, is_mode_2 = is_shape_text || is_shape || is_chart_text || is_chart || is_slicer, - is_objLocked = false; + is_objLocked = false, + is_smartart_internal = false; if (!(is_mode_2 || is_image) && this._state.selection_type===seltype && this._state.coauthdisable===coauth_disable) return (seltype===Asc.c_oAscSelectionType.RangeImage); @@ -3465,8 +3466,14 @@ define([ var SelectedObjects = this.api.asc_getGraphicObjectProps(); for (var i=0; i