diff --git a/apps/common/main/lib/component/Tab.js b/apps/common/main/lib/component/Tab.js index be04ba493..199911557 100644 --- a/apps/common/main/lib/component/Tab.js +++ b/apps/common/main/lib/component/Tab.js @@ -51,8 +51,9 @@ define([ this.active = false; this.label = 'Tab'; this.cls = ''; + this.index = -1; this.template = _.template(['
  • ', - '<%- label %>', + '<%- label %>', '
  • '].join('')); this.initialize.call(this, opts); diff --git a/apps/common/main/lib/component/TabBar.js b/apps/common/main/lib/component/TabBar.js index d0d82bd6a..a7a93d000 100644 --- a/apps/common/main/lib/component/TabBar.js +++ b/apps/common/main/lib/component/TabBar.js @@ -249,6 +249,11 @@ define([ img = document.createElement('div'); event.dataTransfer.setDragImage(img, 0, 0); event.dataTransfer.effectAllowed = 'move'; + this.bar.trigger('tab:dragstart', event.dataTransfer, this.bar.selectTabs); + }, this), + dragenter: $.proxy(function (e) { + this.bar.$el.find('.mousemove').removeClass('mousemove right'); + $(e.currentTarget).parent().addClass('mousemove'); }, this), dragover: $.proxy(function (e) { var event = e.originalEvent; @@ -258,6 +263,15 @@ define([ event.dataTransfer.dropEffect = 'move'; return false; }, this), + dragend: $.proxy(function (e) { + this.bar.$el.find('.mousemove').removeClass('mousemove right'); + }, this), + drop: $.proxy(function (e) { + var event = e.originalEvent, + index = $(event.currentTarget).data('index'); + this.bar.$el.find('.mousemove').removeClass('mousemove right'); + this.bar.trigger('tab:drop', event.dataTransfer, index); + }, this) }); }; @@ -273,7 +287,7 @@ define([ }, tabs: [], - template: _.template('