Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Hughes <me@iamphill.com>2016-07-26 12:46:44 +0300
committerPhil Hughes <me@iamphill.com>2016-08-17 19:12:47 +0300
commit61fa7b756e2bbb96206effeb78f85de0de3d663b (patch)
tree8d517eee0ecad4597e8c37d95e7a62ff1a0fad90
parentc369ea6c9b09a8d552f1917859cee33401a3e797 (diff)
Removes boards correctly
-rw-r--r--app/assets/javascripts/boards/components/board.js.coffee4
-rw-r--r--app/assets/javascripts/boards/components/board_delete.js.coffee6
-rw-r--r--app/assets/javascripts/boards/components/board_list.js.coffee2
-rw-r--r--app/assets/javascripts/boards/stores/boards_store.js.coffee3
-rw-r--r--app/assets/stylesheets/pages/boards.scss1
-rw-r--r--app/views/projects/boards/components/_board.html.haml4
-rw-r--r--vendor/assets/javascripts/clipboard.js20
7 files changed, 27 insertions, 13 deletions
diff --git a/app/assets/javascripts/boards/components/board.js.coffee b/app/assets/javascripts/boards/components/board.js.coffee
index fde62ba569b..c6bd177b2a8 100644
--- a/app/assets/javascripts/boards/components/board.js.coffee
+++ b/app/assets/javascripts/boards/components/board.js.coffee
@@ -10,7 +10,7 @@ Board = Vue.extend
isPreset: ->
typeof this.board.id != 'number'
ready: ->
- Sortable.create this.$el.parentNode,
+ this.sortable = Sortable.create this.$el.parentNode,
group: 'boards'
animation: 150
draggable: '.is-draggable'
@@ -19,5 +19,7 @@ Board = Vue.extend
ghostClass: 'is-ghost'
onUpdate: (e) ->
BoardsStore.moveBoard(e.oldIndex + 1, e.newIndex + 1)
+ beforeDestroy: ->
+ this.sortable.destroy()
Vue.component('board', Board)
diff --git a/app/assets/javascripts/boards/components/board_delete.js.coffee b/app/assets/javascripts/boards/components/board_delete.js.coffee
index d08831ddafa..47fa22b0ab0 100644
--- a/app/assets/javascripts/boards/components/board_delete.js.coffee
+++ b/app/assets/javascripts/boards/components/board_delete.js.coffee
@@ -1,5 +1,11 @@
BoardDelete = Vue.extend
props:
boardId: Number
+ methods:
+ deleteBoard: ->
+ $(this.$el).tooltip('destroy')
+
+ if confirm('Are you sure you want to delete this list?')
+ BoardsStore.removeBoard(this.boardId)
Vue.component 'board-delete', BoardDelete
diff --git a/app/assets/javascripts/boards/components/board_list.js.coffee b/app/assets/javascripts/boards/components/board_list.js.coffee
index b063cf4f2ee..494f61f6047 100644
--- a/app/assets/javascripts/boards/components/board_list.js.coffee
+++ b/app/assets/javascripts/boards/components/board_list.js.coffee
@@ -56,5 +56,7 @@ BoardList = Vue.extend
this.$els.list.onscroll = =>
if (this.scrollTop() > this.scrollHeight() - this.scrollOffset) and !this.loadMore
this.loadFromLastId()
+ beforeDestroy: ->
+ this.sortable.destroy()
Vue.component('board-list', BoardList)
diff --git a/app/assets/javascripts/boards/stores/boards_store.js.coffee b/app/assets/javascripts/boards/stores/boards_store.js.coffee
index 8d28c24a2b1..d008cdd7d03 100644
--- a/app/assets/javascripts/boards/stores/boards_store.js.coffee
+++ b/app/assets/javascripts/boards/stores/boards_store.js.coffee
@@ -6,6 +6,9 @@
author: {}
assignee: {}
milestone: {}
+ removeBoard: (id) ->
+ BoardsStore.state.boards = _.reject BoardsStore.state.boards, (board) ->
+ board.id is id
moveBoard: (oldIndex, newIndex) ->
boardFrom = _.find BoardsStore.state.boards, (board) ->
board.index is oldIndex
diff --git a/app/assets/stylesheets/pages/boards.scss b/app/assets/stylesheets/pages/boards.scss
index 65c29bea905..4151d34094b 100644
--- a/app/assets/stylesheets/pages/boards.scss
+++ b/app/assets/stylesheets/pages/boards.scss
@@ -110,6 +110,7 @@
color: $gray-darkest;
background-color: transparent;
border: 0;
+ outline: 0;
&:hover {
color: $gl-link-color;
diff --git a/app/views/projects/boards/components/_board.html.haml b/app/views/projects/boards/components/_board.html.haml
index 15eae09ea90..f49a1970082 100644
--- a/app/views/projects/boards/components/_board.html.haml
+++ b/app/views/projects/boards/components/_board.html.haml
@@ -6,8 +6,8 @@
{{ board.title }}
%span.pull-right
{{ board.issues.length }}
- %board-delete{ "inline-template" => true, "v-if" => "!isPreset" }
- %button.board-delete.has-tooltip.pull-right{ type: "button", title: "Delete board", data: { placement: "bottom" } }
+ %board-delete{ "inline-template" => true, "v-if" => "!isPreset", ":board-id" => "board.id" }
+ %button.board-delete.has-tooltip.pull-right{ type: "button", title: "Delete board", data: { placement: "bottom" }, "@click" => "deleteBoard" }
%span.sr-only
Delete board
= icon("trash")
diff --git a/vendor/assets/javascripts/clipboard.js b/vendor/assets/javascripts/clipboard.js
index 1b1f4f0bd63..39d7d2306f8 100644
--- a/vendor/assets/javascripts/clipboard.js
+++ b/vendor/assets/javascripts/clipboard.js
@@ -154,12 +154,12 @@ function E () {
E.prototype = {
on: function (name, callback, ctx) {
var e = this.e || (this.e = {});
-
+
(e[name] || (e[name] = [])).push({
fn: callback,
ctx: ctx
});
-
+
return this;
},
@@ -169,7 +169,7 @@ E.prototype = {
self.off(name, fn);
callback.apply(ctx, arguments);
};
-
+
return this.on(name, fn, ctx);
},
@@ -178,11 +178,11 @@ E.prototype = {
var evtArr = ((this.e || (this.e = {}))[name] || []).slice();
var i = 0;
var len = evtArr.length;
-
+
for (i; i < len; i++) {
evtArr[i].fn.apply(evtArr[i].ctx, data);
}
-
+
return this;
},
@@ -190,21 +190,21 @@ E.prototype = {
var e = this.e || (this.e = {});
var evts = e[name];
var liveEvents = [];
-
+
if (evts && callback) {
for (var i = 0, len = evts.length; i < len; i++) {
if (evts[i].fn !== callback) liveEvents.push(evts[i]);
}
}
-
+
// Remove event from queue to prevent memory leak
// Suggested by https://github.com/lazd
// Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910
- (liveEvents.length)
+ (liveEvents.length)
? e[name] = liveEvents
: delete e[name];
-
+
return this;
}
};
@@ -618,4 +618,4 @@ exports['default'] = Clipboard;
module.exports = exports['default'];
},{"./clipboard-action":6,"delegate-events":1,"tiny-emitter":5}]},{},[7])(7)
-}); \ No newline at end of file
+});