diff --git a/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js b/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js index f1a26acaa..c746cd32e 100644 --- a/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js +++ b/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js @@ -275,6 +275,8 @@ define([ this.api.asc_registerCallback('asc_onFormulaCompleteMenu', _.bind(this.onFormulaCompleteMenu, this)); this.api.asc_registerCallback('asc_onShowSpecialPasteOptions', _.bind(this.onShowSpecialPasteOptions, this)); this.api.asc_registerCallback('asc_onHideSpecialPasteOptions', _.bind(this.onHideSpecialPasteOptions, this)); + this.api.asc_registerCallback('asc_onShowAutoCorrectOptions', _.bind(this.onShowAutoCorrectOptions, this)); + this.api.asc_registerCallback('asc_onHideAutoCorrectOptions', _.bind(this.onHideAutoCorrectOptions, this)); } return this; }, @@ -1866,6 +1868,65 @@ define([ pasteContainer.hide(); }, + onShowAutoCorrectOptions: function(autoCorrectOptions) { + var me = this, + documentHolderView = me.documentHolder, + coord = autoCorrectOptions.asc_getCellCoord(), + pasteContainer = documentHolderView.cmpEl.find('#autocorrect-paste-container'), + pasteItems = autoCorrectOptions.asc_getOptions(); + + // Prepare menu container + if (pasteContainer.length < 1) { + me._arrAutoCorrectPaste = []; + me._arrAutoCorrectPaste[Asc.c_oAscAutoCorrectOptions.UndoTableAutoExpansion] = me.txtUndoExpansion; + me._arrAutoCorrectPaste[Asc.c_oAscAutoCorrectOptions.RedoTableAutoExpansion] = me.txtRedoExpansion; + + pasteContainer = $('
'); + documentHolderView.cmpEl.append(pasteContainer); + + me.btnAutoCorrectPaste = new Common.UI.Button({ + cls : 'btn-toolbar', + iconCls : 'btn-paste', + menu : new Common.UI.Menu({items: []}) + }); + me.btnAutoCorrectPaste.render($('#id-document-holder-btn-autocorrect-paste')) ; + } + + if (pasteItems.length>0) { + var menu = me.btnAutoCorrectPaste.menu; + for (var i = 0; i < menu.items.length; i++) { + menu.removeItem(menu.items[i]); + i--; + } + + var group_prev = -1; + _.each(pasteItems, function(menuItem, index) { + var mnu = new Common.UI.MenuItem({ + caption: me._arrAutoCorrectPaste[menuItem], + value: menuItem + }).on('click', function(item, e) { + me.api.asc_applyAutoCorrectOptions(item.value); + setTimeout(function(){menu.hide();}, 100); + }); + menu.addItem(mnu); + }); + } + + if ( coord.asc_getX()<0 || coord.asc_getY()<0) { + if (pasteContainer.is(':visible')) pasteContainer.hide(); + } else { + var showPoint = [coord.asc_getX() + coord.asc_getWidth() + 3, coord.asc_getY() + coord.asc_getHeight() + 3]; + pasteContainer.css({left: showPoint[0], top : showPoint[1]}); + pasteContainer.show(); + } + }, + + onHideAutoCorrectOptions: function() { + var pasteContainer = this.documentHolder.cmpEl.find('#autocorrect-paste-container'); + if (pasteContainer.is(':visible')) + pasteContainer.hide(); + }, + onCellsRange: function(status) { this.rangeSelectionMode = (status != Asc.c_oAscSelectionDialogType.None); }, @@ -2648,7 +2709,9 @@ define([ txtPastePicture: 'Picture', txtPasteLinkPicture: 'Linked Picture', txtPasteSourceFormat: 'Source formatting', - txtPasteDestFormat: 'Destination formatting' + txtPasteDestFormat: 'Destination formatting', + txtUndoExpansion: 'Undo table autoexpansion', + txtRedoExpansion: 'Redo table autoexpansion' }, SSE.Controllers.DocumentHolder || {})); }); \ No newline at end of file diff --git a/apps/spreadsheeteditor/main/locale/en.json b/apps/spreadsheeteditor/main/locale/en.json index c393de08f..764ae44e9 100644 --- a/apps/spreadsheeteditor/main/locale/en.json +++ b/apps/spreadsheeteditor/main/locale/en.json @@ -311,6 +311,8 @@ "SSE.Controllers.DocumentHolder.txtTop": "Top", "SSE.Controllers.DocumentHolder.txtUnderbar": "Bar under text", "SSE.Controllers.DocumentHolder.txtWidth": "Width", + "SSE.Controllers.DocumentHolder.txtUndoExpansion": "Undo table autoexpansion", + "SSE.Controllers.DocumentHolder.txtRedoExpansion": "Redo table autoexpansion", "SSE.Controllers.LeftMenu.newDocumentTitle": "Unnamed spreadsheet", "SSE.Controllers.LeftMenu.textByColumns": "By columns", "SSE.Controllers.LeftMenu.textByRows": "By rows", diff --git a/apps/spreadsheeteditor/main/resources/less/toolbar.less b/apps/spreadsheeteditor/main/resources/less/toolbar.less index 3eaf7619d..85e94bb2b 100644 --- a/apps/spreadsheeteditor/main/resources/less/toolbar.less +++ b/apps/spreadsheeteditor/main/resources/less/toolbar.less @@ -238,7 +238,8 @@ .background-ximage('@{app-image-path}/toolbar/math.png', '@{app-image-path}/toolbar/math@2x.png', 1500px); } -#special-paste-container { +#special-paste-container, +#autocorrect-paste-container { position: absolute; z-index: @zindex-dropdown - 20; background-color: @gray-light;