diff --git a/apps/presentationeditor/main/app/view/DocumentHolder.js b/apps/presentationeditor/main/app/view/DocumentHolder.js index 3b7142a96..0b18d1321 100644 --- a/apps/presentationeditor/main/app/view/DocumentHolder.js +++ b/apps/presentationeditor/main/app/view/DocumentHolder.js @@ -1983,6 +1983,28 @@ define([ } }); + var mnuMoveSlideToStart = new Common.UI.MenuItem({ + caption: me.txtMoveSlidesToStart + }).on('click', function(item){ + if (me.api) { + me.api.asc_moveSelectedSlidesToStart(); + + me.fireEvent('editcomplete', me); + Common.component.Analytics.trackEvent('DocumentHolder', 'Move Slide to Start'); + } + }); + + var mnuMoveSlideToEnd = new Common.UI.MenuItem({ + caption: me.txtMoveSlidesToEnd + }).on('click', function(item){ + if (me.api) { + me.api.asc_moveSelectedSlidesToEnd(); + + me.fireEvent('editcomplete', me); + Common.component.Analytics.trackEvent('DocumentHolder', 'Move Slide to End'); + } + }); + var menuSlidePaste = new Common.UI.MenuItem({ iconCls: 'menu__icon btn-paste', caption : me.textPaste, @@ -2010,9 +2032,13 @@ define([ } }); + + me.slideMenu = new Common.UI.Menu({ cls: 'shifted-right', initMenu: function(value) { + var selectedLast = me.api.asc_IsLastSlideSelected(), + selectedFirst = me.api.asc_IsFirstSlideSelected(); menuSlidePaste.setVisible(value.fromThumbs!==true); me.slideMenu.items[1].setVisible(value.fromThumbs===true); // New Slide me.slideMenu.items[2].setVisible(value.isSlideSelect===true); // Duplicate Slide @@ -2025,10 +2051,16 @@ define([ mnuChangeTheme.setVisible(value.isSlideSelect===true || value.fromThumbs!==true); menuSlideSettings.setVisible(value.isSlideSelect===true || value.fromThumbs!==true); menuSlideSettings.options.value = null; - - for (var i = 10; i < 15; i++) { + me.slideMenu.items[13].setVisible((!selectedLast || !selectedFirst) && value.isSlideSelect===true); + mnuMoveSlideToEnd.setVisible(!selectedLast && value.isSlideSelect===true); + mnuMoveSlideToStart.setVisible(!selectedFirst && value.isSlideSelect===true); + me.slideMenu.items[16].setVisible(value.fromThumbs===true); + me.slideMenu.items[17].setVisible(value.fromThumbs===true); + + for (var i = 10; i < 13; i++) { me.slideMenu.items[i].setVisible(value.fromThumbs===true); } + mnuPrintSelection.setVisible(me.mode.canPrint && value.fromThumbs===true); var selectedElements = me.api.getSelectedElements(), @@ -2095,6 +2127,9 @@ define([ mnuSelectAll, mnuPrintSelection, {caption: '--'}, + mnuMoveSlideToStart, + mnuMoveSlideToEnd, + {caption: '--'}, mnuPreview ] }).on('hide:after', function(menu, e, isFromInputControl) { @@ -3985,7 +4020,9 @@ define([ mniCustomTable: 'Insert Custom Table', textFromStorage: 'From Storage', txtWarnUrl: 'Clicking this link can be harmful to your device and data.
Are you sure you want to continue?', - textEditPoints: 'Edit Points' + textEditPoints: 'Edit Points', + txtMoveSlidesToEnd: 'Move Slide to End', + txtMoveSlidesToStart: 'Move Slide to Beginning' }, PE.Views.DocumentHolder || {})); }); \ No newline at end of file diff --git a/apps/presentationeditor/main/locale/en.json b/apps/presentationeditor/main/locale/en.json index 601d573cd..9f7b48d76 100644 --- a/apps/presentationeditor/main/locale/en.json +++ b/apps/presentationeditor/main/locale/en.json @@ -1255,6 +1255,8 @@ "PE.Views.DocumentHolder.txtLimitUnder": "Limit under text", "PE.Views.DocumentHolder.txtMatchBrackets": "Match brackets to argument height", "PE.Views.DocumentHolder.txtMatrixAlign": "Matrix alignment", + "PE.Views.DocumentHolder.txtMoveSlidesToEnd": "Move Slide to End", + "PE.Views.DocumentHolder.txtMoveSlidesToStart": "Move Slide to Beginning", "PE.Views.DocumentHolder.txtNewSlide": "New Slide", "PE.Views.DocumentHolder.txtOverbar": "Bar over text", "PE.Views.DocumentHolder.txtPasteDestFormat": "Use destination theme",