diff --git a/apps/common/main/lib/component/Tab.js b/apps/common/main/lib/component/Tab.js
index 199911557..5fa0194b6 100644
--- a/apps/common/main/lib/component/Tab.js
+++ b/apps/common/main/lib/component/Tab.js
@@ -53,7 +53,7 @@ define([
this.cls = '';
this.index = -1;
this.template = _.template(['
',
- '<%- label %>',
+ '<%- label %>',
''].join(''));
this.initialize.call(this, opts);
@@ -125,7 +125,7 @@ define([
},
setCaption: function(text) {
- this.$el.find('> a').text(text);
+ this.$el.find('> span').text(text);
}
});
diff --git a/apps/common/main/lib/component/TabBar.js b/apps/common/main/lib/component/TabBar.js
index b9563e70f..40f5e29c2 100644
--- a/apps/common/main/lib/component/TabBar.js
+++ b/apps/common/main/lib/component/TabBar.js
@@ -233,15 +233,18 @@ define([
this.trigger('tab:contextmenu', this, this.tabs.indexOf(tab), tab, this.selectTabs);
}, this.bar),
mousedown: $.proxy(function (e) {
- if ((3 !== e.which) && !e.ctrlKey && !e.metaKey && !e.shiftKey)
+ if ((3 !== e.which) && !e.ctrlKey && !e.metaKey && !e.shiftKey) {
+ var lockDrag = tab.isLockTheDrag;
+ this.bar.selectTabs.forEach(function (item) {
+ if (item.isLockTheDrag) {
+ lockDrag = true;
+ }
+ });
+ this.bar.$el.find('ul > li > span').attr('draggable', !lockDrag);
tab.changeState();
- /*if (this.bar.options.draggable && !_.isUndefined(dragHelper) && (3 !== e.which)) {
- if (!tab.isLockTheDrag) {
- if (!e.ctrlKey && !e.metaKey && !e.shiftKey)
- tab.changeState();
- dragHelper.setHookTabs(e, this.bar, this.bar.selectTabs);
- }
- }*/
+ } else {
+ this.bar.$el.find('ul > li > span').attr('draggable', 'false');
+ }
this.bar.trigger('tab:drag', this.bar.selectTabs);
}, this)
});
@@ -263,6 +266,7 @@ define([
event.preventDefault(); // Necessary. Allows us to drop.
}
event.dataTransfer.dropEffect = 'move';
+ this.bar.$el.find('.mousemove').removeClass('mousemove right');
$(e.currentTarget).parent().addClass('mousemove');
return false;
}, this),
diff --git a/apps/common/main/resources/less/tabbar.less b/apps/common/main/resources/less/tabbar.less
index f7059ca7b..b3a5ac2c2 100644
--- a/apps/common/main/resources/less/tabbar.less
+++ b/apps/common/main/resources/less/tabbar.less
@@ -4,10 +4,10 @@
> li {
float: none;
- display: inline;
+ display: inline-block;
&.active {
- > a, > a:hover, > a:focus {
+ > span, > span:hover, > span:focus {
background-color: #fff;
color: #000;
border-color: #fff;
@@ -19,7 +19,7 @@
transition: left .2s;
}
- > a {
+ > span {
display: inline;
background-color: #7a7a7a;
color: #fff;
@@ -50,7 +50,7 @@
> li {
vertical-align: middle;
- > a {
+ > span {
padding-bottom: 1px;
border-radius: 0 0 4px 4px;
}
diff --git a/apps/spreadsheeteditor/main/app/controller/Statusbar.js b/apps/spreadsheeteditor/main/app/controller/Statusbar.js
index cb2809a3c..0b62d0794 100644
--- a/apps/spreadsheeteditor/main/app/controller/Statusbar.js
+++ b/apps/spreadsheeteditor/main/app/controller/Statusbar.js
@@ -159,6 +159,7 @@ define([
// else item.reorderable = !this.api.asc_isWorksheetLockedOrDeleted(item.sheetindex);
} else {
item.disable(locked);
+ item.$el.children(':first-child').attr('draggable', locked?'false':'true');
}
}
},
@@ -170,6 +171,7 @@ define([
if (index == tab.sheetindex) {
tab[locked?'addClass':'removeClass']('coauth-locked');
tab.isLockTheDrag = locked || (this.statusbar.rangeSelectionMode==Asc.c_oAscSelectionDialogType.FormatTable);
+ tab.$el.children(':first-child').attr('draggable', tab.isLockTheDrag?'false':'true');
break;
}
}
@@ -550,7 +552,7 @@ define([
if ('transparent' === color) {
this.api.asc_setWorksheetTabColor(null, arrIndex);
selectTabs.forEach(function (tab) {
- tab.$el.find('a').css('box-shadow', '');
+ tab.$el.find('span').css('box-shadow', '');
});
} else {
var asc_clr = Common.Utils.ThemeColor.getRgbColor(color);
@@ -681,9 +683,9 @@ define([
color = '0px 4px 0 ' + color + ' inset';
}
- tab.$el.find('a').css('box-shadow', color);
+ tab.$el.find('span').css('box-shadow', color);
} else {
- tab.$el.find('a').css('box-shadow', '');
+ tab.$el.find('span').css('box-shadow', '');
}
}
},
diff --git a/apps/spreadsheeteditor/main/app/view/Statusbar.js b/apps/spreadsheeteditor/main/app/view/Statusbar.js
index 5eeef398d..0505f69ef 100644
--- a/apps/spreadsheeteditor/main/app/view/Statusbar.js
+++ b/apps/spreadsheeteditor/main/app/view/Statusbar.js
@@ -202,13 +202,27 @@ define([
}, this),
'tab:dragstart' : _.bind(function (dataTransfer, selectTabs) {
- var tabs = selectTabs,
- arrTabs = [],
+ var arrTabs = [],
arrName = [],
me = this;
- tabs.forEach(function (item) {
- arrTabs.push(item.sheetindex);
- arrName.push(me.api.asc_getWorksheetName(item.sheetindex));
+ var wc = me.api.asc_getWorksheetsCount(), items = [], i = -1;
+ while (++i < wc) {
+ if (!this.api.asc_isWorksheetHidden(i)) {
+ items.push({
+ value: me.api.asc_getWorksheetName(i),
+ inindex: i
+ });
+ }
+ }
+ var arrSelectIndex = [];
+ selectTabs.forEach(function (item) {
+ arrSelectIndex.push(item.sheetindex);
+ });
+ items.forEach(function (item) {
+ if (arrSelectIndex.indexOf(item.inindex) !== -1) {
+ arrTabs.push(item.inindex);
+ arrName.push(item.value);
+ }
});
var stringSheet,
stringSheetJson,
@@ -231,7 +245,30 @@ define([
if (Common.Utils.InternalSettings.get("sse-doc-info-key") === key) {
this.api.asc_moveWorksheet(index, arrIndex);
} else {
- this.api.asc_EndMoveSheet(index, arrNames, arrSheets);
+ var names = [], wc = this.api.asc_getWorksheetsCount();
+ while (wc--) {
+ names.push(this.api.asc_getWorksheetName(wc).toLowerCase());
+ }
+ var newNames = [];
+ arrNames.forEach(function (name) {
+ var ind = 0,
+ name = name;
+ var first = name;
+ if (names.indexOf(name.toLowerCase()) !== -1) {
+ while (true) {
+ if (names.indexOf(name.toLowerCase()) === -1) {
+ newNames.push(name);
+ break;
+ } else {
+ ind++;
+ name = first + '(' + ind + ')';
+ }
+ }
+ } else {
+ newNames.push(name);
+ }
+ });
+ this.api.asc_EndMoveSheet(index, newNames, arrSheets);
}
}, this)
});
@@ -391,6 +428,7 @@ define([
this.tabbar.setTabVisible(sindex);
this.btnAddWorksheet.setDisabled(me.mode.isDisconnected || me.api.asc_isWorkbookLocked() || me.api.isCellEdited);
+ $('#status-addtabs-box').css('border-right', 'none');
$('#status-label-zoom').text(Common.Utils.String.format(this.zoomText, Math.floor((this.api.asc_getZoom() +.005)*100)));
me.fireEvent('sheet:changed', [me, sindex]);
diff --git a/apps/spreadsheeteditor/main/resources/less/statusbar.less b/apps/spreadsheeteditor/main/resources/less/statusbar.less
index 138443085..83fe622b0 100644
--- a/apps/spreadsheeteditor/main/resources/less/statusbar.less
+++ b/apps/spreadsheeteditor/main/resources/less/statusbar.less
@@ -159,11 +159,7 @@
> li {
background-color: @gray-light;
- &:first-child > a {
- border-left: 0 none;
- }
-
- > a {
+ > span {
display: inline-block;
.border-radius(0);
padding: 0 10px 0;
@@ -171,9 +167,9 @@
margin-right: -1px;
background-color: @gray-light;
outline: none;
- border-left-color: @gray-dark;
- border-right-color: @gray-dark;
- border-top-color: @gray-dark;
+ border-left: 1px solid @gray-dark;
+ border-right: 1px solid @gray-dark;
+ border-top: 1px solid @gray-dark;
&:hover {
border-top-color: @gray-dark;
@@ -183,7 +179,7 @@
}
&.active {
- > a {
+ > span {
border-bottom-color: @body-bg;
background-color: @body-bg;
outline: none;
@@ -195,7 +191,7 @@
}
&.selected {
- > a {
+ > span {
border-bottom-color: @body-bg;
background-color: @body-bg;
box-shadow: 0px 4px 0 #49795d inset;
@@ -205,14 +201,14 @@
&.coauth-locked {
vertical-align: top;
&.active {
- > a {
+ > span {
border-top-width: 1px;
}
}
- > a {
+ > span {
outline: none;
}
- > a:after {
+ > span:after {
position: absolute;
content: '';
width: 7px;
@@ -228,24 +224,28 @@
&.disabled {
opacity: 0.5;
- > a {
+ > span {
cursor: default;
}
}
&:not(.active) {
- > a {
+ > span {
color: @gray-darker;
}
}
&.mousemove {
- > a {
- background: linear-gradient(to right, #49795d, @gray-light 3px);
+ > span {
+ border-left: 3px solid #49795d;
+ padding-left: 8px;
}
&.right {
- > a {
- background: linear-gradient(to left, #49795d, @gray-light 3px);
+ > span {
+ border-left: 1px solid @gray-dark;
+ border-right: 3px solid #49795d;
+ padding-right: 8px;
+ padding-left: 10px;
}
}
}
@@ -303,7 +303,7 @@
li {
text-align: center;
- > a {
+ > span {
padding-left: 15px;
padding-right: 15px;
}