diff --git a/apps/common/main/lib/component/TabBar.js b/apps/common/main/lib/component/TabBar.js index 19ac737ee..40171a2ba 100644 --- a/apps/common/main/lib/component/TabBar.js +++ b/apps/common/main/lib/component/TabBar.js @@ -222,6 +222,12 @@ define([ this.bar.trigger('tab:manual', this.bar, this.bar.tabs.indexOf(tab), tab); } else { tab.changeState(); + if (this.bar.isEditFormula) + setTimeout(function(){ + $('#ce-cell-content').focus(); + var $cellContent = $('#ce-cell-content')[0]; + $cellContent.selectionStart = $cellContent.selectionEnd = $cellContent.value.length; + }, 500); } } } @@ -250,7 +256,14 @@ define([ } else { this.bar.$el.find('ul > li > span').attr('draggable', 'false'); } - this.bar.trigger('tab:drag', this.bar.selectTabs); + if ($('#ce-cell-content').is(':focus')) + if (!this.bar.isEditFormula) { + $('#ce-cell-content').blur(); + } else { + setTimeout(function () { + $('#ce-cell-content').focus(); + }, 500) + } }, this) }); tab.$el.children().on( @@ -351,10 +364,9 @@ define([ this.tabs[this.tabs.length - 1].$el.removeClass('mousemove right'); }, this)); addEvent(this.$bar[0], 'drop', _.bind(function (event) { - var index = this.tabs.length; this.$el.find('.mousemove').removeClass('mousemove right'); if (this.isDrop === undefined) { - this.trigger('tab:drop', event.dataTransfer, index); + this.trigger('tab:drop', event.dataTransfer, 'last'); } else { this.isDrop = undefined; } @@ -543,12 +555,17 @@ define([ this.checkInvisible(suppress); } else if ( index >= (this.tabs.length - 1) || index == 'last') { var tab = this.tabs[this.tabs.length-1].$el; + if (this.$bar.find('.separator-item').length === 0) { + this.$bar.append('
  • '); + } this.$bar.scrollLeft(this.$bar.scrollLeft() + (tab.position().left + parseInt(tab.css('width')) - this.$bar.width()) + (this.$bar.width() > 400 ? 20 : 5)); this.checkInvisible(suppress); } else { + if (!this.isTabVisible(this.tabs.length - 1) && this.$bar.find('.separator-item').length === 0) { + this.$bar.append('
  • '); + } var rightbound = this.$bar.width(), tab, right, left; - if (index == 'forward') { for (var i = 0; i < this.tabs.length; i++) { tab = this.tabs[i].$el; @@ -624,7 +641,7 @@ define([ //left = tab.position().left; //right = left + tab.width(); - return !(left < leftbound) && !(right - rightbound > 0.1); + return !(left < leftbound) && !(right - rightbound > 0.5); } return false; diff --git a/apps/common/main/resources/less/tabbar.less b/apps/common/main/resources/less/tabbar.less index 0ccdcd736..b3a5ac2c2 100644 --- a/apps/common/main/resources/less/tabbar.less +++ b/apps/common/main/resources/less/tabbar.less @@ -41,9 +41,6 @@ cursor: pointer; } } - &:last-of-type { - margin-right: 20px; - } } &.bottom { diff --git a/apps/spreadsheeteditor/main/app/view/PivotSettings.js b/apps/spreadsheeteditor/main/app/view/PivotSettings.js index b6738db20..f298f50b7 100644 --- a/apps/spreadsheeteditor/main/app/view/PivotSettings.js +++ b/apps/spreadsheeteditor/main/app/view/PivotSettings.js @@ -212,13 +212,15 @@ define([ }, onFieldsDragStart: function (item, index, event) { + this._state.field = {record: item.model}; event.originalEvent.dataTransfer.effectAllowed = 'move'; event.originalEvent.dataTransfer.setDragImage(this.getDragElement(item.model.get('value')), 14, 14); this.pivotIndex = index; this.fromListView = this.fieldsList.$el[0].id; }, - onItemsDragStart: function (listview, item, index, event) { + onItemsDragStart: function (type, listview, item, index, event) { + this._state.field = {record: item.model, type: type}; event.originalEvent.dataTransfer.effectAllowed = 'move'; event.originalEvent.dataTransfer.setDragImage(this.getDragElement(item.model.get('value')), 14, 14); this.itemIndex = index; @@ -267,7 +269,7 @@ define([ }, onDragOver: function (listview, event) { - if ((this.pivotIndex === -2 && (this.enterListView === 'pivot-list-filters' || this.enterListView === 'pivot-list-values')) || + if (event.originalEvent.dataTransfer.types[0] === 'onlyoffice' || (this.pivotIndex === -2 && (this.enterListView === 'pivot-list-filters' || this.enterListView === 'pivot-list-values')) || (this.fromListView === 'pivot-list-fields' && this.enterListView === 'pivot-list-fields')) { event.originalEvent.dataTransfer.dropEffect = 'none'; } else { @@ -502,7 +504,7 @@ define([ }); this.columnsList.dataViewItems.forEach(function (item, index) { item.$el.attr('draggable', true); - item.$el.on('dragstart', _.bind(me.onItemsDragStart, me, me.columnsList, item, index)); + item.$el.on('dragstart', _.bind(me.onItemsDragStart, me, 0, me.columnsList, item, index)); item.$el.on('dragenter', _.bind(me.onDragItemEnter, me, item, index)); item.$el.on('dragleave', _.bind(me.onDragItemLeave, me, item, index)); item.$el.on('dragover', _.bind(me.onDragItemOver, me, me.columnsList, item, index)); @@ -512,7 +514,7 @@ define([ this.columnsList.$el.find('.item').last().css({'margin-bottom': '10px'}); this.rowsList.dataViewItems.forEach(function (item, index) { item.$el.attr('draggable', true); - item.$el.on('dragstart', _.bind(me.onItemsDragStart, me, me.rowsList, item, index)); + item.$el.on('dragstart', _.bind(me.onItemsDragStart, me, 1, me.rowsList, item, index)); item.$el.on('dragenter', _.bind(me.onDragItemEnter, me, item, index)); item.$el.on('dragleave', _.bind(me.onDragItemLeave, me, item, index)); item.$el.on('dragover', _.bind(me.onDragItemOver, me, me.rowsList, item, index)); @@ -522,7 +524,7 @@ define([ this.rowsList.$el.find('.item').last().css({'margin-bottom': '10px'}); this.valuesList.dataViewItems.forEach(function (item, index) { item.$el.attr('draggable', true); - item.$el.on('dragstart', _.bind(me.onItemsDragStart, me, me.valuesList, item, index)); + item.$el.on('dragstart', _.bind(me.onItemsDragStart, me, 2, me.valuesList, item, index)); item.$el.on('dragenter', _.bind(me.onDragItemEnter, me, item, index)); item.$el.on('dragleave', _.bind(me.onDragItemLeave, me, item, index)); item.$el.on('dragover', _.bind(me.onDragItemOver, me, me.valuesList, item, index)); @@ -532,7 +534,7 @@ define([ this.valuesList.$el.find('.item').last().css({'margin-bottom': '10px'}); this.filtersList.dataViewItems.forEach(function (item, index) { item.$el.attr('draggable', true); - item.$el.on('dragstart', _.bind(me.onItemsDragStart, me, me.filtersList, item, index)); + item.$el.on('dragstart', _.bind(me.onItemsDragStart, me, 3, me.filtersList, item, index)); item.$el.on('dragenter', _.bind(me.onDragItemEnter, me, item, index)); item.$el.on('dragleave', _.bind(me.onDragItemLeave, me, item, index)); item.$el.on('dragover', _.bind(me.onDragItemOver, me, me.filtersList, item, index)); diff --git a/apps/spreadsheeteditor/main/app/view/Statusbar.js b/apps/spreadsheeteditor/main/app/view/Statusbar.js index 484b12272..b59d9d617 100644 --- a/apps/spreadsheeteditor/main/app/view/Statusbar.js +++ b/apps/spreadsheeteditor/main/app/view/Statusbar.js @@ -243,7 +243,7 @@ define([ if (arrData) { var key = _.findWhere(arrData, {type: 'key'}).value; if (Common.Utils.InternalSettings.get("sse-doc-info-key") === key) { - this.api.asc_moveWorksheet(index, _.findWhere(arrData, {type: 'indexes'}).value); + this.api.asc_moveWorksheet(_.isNumber(index) ? index : this.api.asc_getWorksheetsCount(), _.findWhere(arrData, {type: 'indexes'}).value); this.api.asc_enableKeyEvents(true); Common.NotificationCenter.trigger('tabs:dragend', this); } else { diff --git a/apps/spreadsheeteditor/main/resources/less/statusbar.less b/apps/spreadsheeteditor/main/resources/less/statusbar.less index 650e1cf2c..57d21312f 100644 --- a/apps/spreadsheeteditor/main/resources/less/statusbar.less +++ b/apps/spreadsheeteditor/main/resources/less/statusbar.less @@ -166,6 +166,12 @@ } } + &:last-of-type { + span { + margin-right: 0; + } + } + > span { display: inline-block; .border-radius(0); @@ -266,6 +272,18 @@ } } } + &.separator-item { + margin-left: 20px; + width: 1px; + > span { + padding: 0; + margin: 0; + width: 1px; + &::after { + content: none; + } + } + } } }