Skip to content
Snippets Groups Projects
Commit 1fb9de2b authored by blackst0ne's avatar blackst0ne
Browse files

Change Done column to Closed in issue boards

parent 6eeba4b1
No related branches found
No related tags found
1 merge request!10198Change Done column to Closed in issue boards
Showing
with 49 additions and 45 deletions
Loading
@@ -79,7 +79,7 @@ $(() => {
Loading
@@ -79,7 +79,7 @@ $(() => {
resp.json().forEach((board) => { resp.json().forEach((board) => {
const list = Store.addList(board); const list = Store.addList(board);
   
if (list.type === 'done') { if (list.type === 'closed') {
list.position = Infinity; list.position = Infinity;
} }
}); });
Loading
Loading
Loading
@@ -48,7 +48,7 @@ import Vue from 'vue';
Loading
@@ -48,7 +48,7 @@ import Vue from 'vue';
template: ` template: `
<div <div
class="block list" class="block list"
v-if="list.type !== 'done'"> v-if="list.type !== 'closed'">
<button <button
class="btn btn-default btn-block" class="btn btn-default btn-block"
type="button" type="button"
Loading
Loading
Loading
@@ -10,7 +10,7 @@ class List {
Loading
@@ -10,7 +10,7 @@ class List {
this.position = obj.position; this.position = obj.position;
this.title = obj.title; this.title = obj.title;
this.type = obj.list_type; this.type = obj.list_type;
this.preset = ['done', 'blank'].indexOf(this.type) > -1; this.preset = ['closed', 'blank'].indexOf(this.type) > -1;
this.page = 1; this.page = 1;
this.loading = true; this.loading = true;
this.loadingMore = false; this.loadingMore = false;
Loading
Loading
Loading
@@ -45,7 +45,7 @@ import Cookies from 'js-cookie';
Loading
@@ -45,7 +45,7 @@ import Cookies from 'js-cookie';
}, },
shouldAddBlankState () { shouldAddBlankState () {
// Decide whether to add the blank state // Decide whether to add the blank state
return !(this.state.lists.filter(list => list.type !== 'done')[0]); return !(this.state.lists.filter(list => list.type !== 'closed')[0]);
}, },
addBlankState () { addBlankState () {
if (!this.shouldAddBlankState() || this.welcomeIsHidden() || this.disabled) return; if (!this.shouldAddBlankState() || this.welcomeIsHidden() || this.disabled) return;
Loading
@@ -98,7 +98,7 @@ import Cookies from 'js-cookie';
Loading
@@ -98,7 +98,7 @@ import Cookies from 'js-cookie';
issueTo.removeLabel(listFrom.label); issueTo.removeLabel(listFrom.label);
} }
   
if (listTo.type === 'done') { if (listTo.type === 'closed') {
issueLists.forEach((list) => { issueLists.forEach((list) => {
list.removeIssue(issue); list.removeIssue(issue);
}); });
Loading
Loading
Loading
@@ -5,7 +5,7 @@ class Board < ActiveRecord::Base
Loading
@@ -5,7 +5,7 @@ class Board < ActiveRecord::Base
   
validates :project, presence: true validates :project, presence: true
   
def done_list def closed_list
lists.merge(List.done).take lists.merge(List.closed).take
end end
end end
Loading
@@ -2,7 +2,7 @@ class List < ActiveRecord::Base
Loading
@@ -2,7 +2,7 @@ class List < ActiveRecord::Base
belongs_to :board belongs_to :board
belongs_to :label belongs_to :label
   
enum list_type: { label: 1, done: 2 } enum list_type: { label: 1, closed: 2 }
   
validates :board, :list_type, presence: true validates :board, :list_type, presence: true
validates :label, :position, presence: true, if: :label? validates :label, :position, presence: true, if: :label?
Loading
Loading
Loading
@@ -12,7 +12,7 @@ module Boards
Loading
@@ -12,7 +12,7 @@ module Boards
   
def create_board! def create_board!
board = project.boards.create board = project.boards.create
board.lists.create(list_type: :done) board.lists.create(list_type: :closed)
   
board board
end end
Loading
Loading
Loading
@@ -41,7 +41,7 @@ module Boards
Loading
@@ -41,7 +41,7 @@ module Boards
end end
   
def set_state def set_state
params[:state] = list && list.done? ? 'closed' : 'opened' params[:state] = list && list.closed? ? 'closed' : 'opened'
end end
   
def board_label_ids def board_label_ids
Loading
Loading
Loading
@@ -48,8 +48,8 @@ module Boards
Loading
@@ -48,8 +48,8 @@ module Boards
end end
   
def issue_state def issue_state
return 'reopen' if moving_from_list.done? return 'reopen' if moving_from_list.closed?
return 'close' if moving_to_list.done? return 'close' if moving_to_list.closed?
end end
   
def add_label_ids def add_label_ids
Loading
Loading
Loading
@@ -7,12 +7,12 @@
Loading
@@ -7,12 +7,12 @@
data: { container: "body", placement: "bottom" } } data: { container: "body", placement: "bottom" } }
{{ list.title }} {{ list.title }}
.board-issue-count-holder.pull-right.clearfix{ "v-if" => 'list.type !== "blank"' } .board-issue-count-holder.pull-right.clearfix{ "v-if" => 'list.type !== "blank"' }
%span.board-issue-count.pull-left{ ":class" => '{ "has-btn": list.type !== "done" && !disabled }' } %span.board-issue-count.pull-left{ ":class" => '{ "has-btn": list.type !== "closed" && !disabled }' }
{{ list.issuesSize }} {{ list.issuesSize }}
- if can?(current_user, :admin_issue, @project) - if can?(current_user, :admin_issue, @project)
%button.btn.btn-small.btn-default.pull-right.has-tooltip{ type: "button", %button.btn.btn-small.btn-default.pull-right.has-tooltip{ type: "button",
"@click" => "showNewIssueForm", "@click" => "showNewIssueForm",
"v-if" => 'list.type !== "done"', "v-if" => 'list.type !== "closed"',
"aria-label" => "Add an issue", "aria-label" => "Add an issue",
"title" => "Add an issue", "title" => "Add an issue",
data: { placement: "top", container: "body" } } data: { placement: "top", container: "body" } }
Loading
Loading
Loading
@@ -3,7 +3,7 @@
Loading
@@ -3,7 +3,7 @@
= icon("spinner spin") = icon("spinner spin")
- if can? current_user, :create_issue, @project - if can? current_user, :create_issue, @project
%board-new-issue{ ":list" => "list", %board-new-issue{ ":list" => "list",
"v-if" => 'list.type !== "done" && showIssueForm' } "v-if" => 'list.type !== "closed" && showIssueForm' }
%ul.board-list{ "ref" => "list", %ul.board-list{ "ref" => "list",
"v-show" => "!loading", "v-show" => "!loading",
":data-board" => "list.id", ":data-board" => "list.id",
Loading
Loading
---
title: Change Done column to Closed in issue boards
merge_request: 10198
author: blackst0ne
Loading
@@ -63,7 +63,7 @@ Example response:
Loading
@@ -63,7 +63,7 @@ Example response:
## List board lists ## List board lists
   
Get a list of the board's lists. Get a list of the board's lists.
Does not include `backlog` and `done` lists Does not include `backlog` and `closed` lists
   
``` ```
GET /projects/:id/boards/:board_id/lists GET /projects/:id/boards/:board_id/lists
Loading
Loading
Loading
@@ -3,7 +3,7 @@ FactoryGirl.define do
Loading
@@ -3,7 +3,7 @@ FactoryGirl.define do
project factory: :empty_project project factory: :empty_project
   
after(:create) do |board| after(:create) do |board|
board.lists.create(list_type: :done) board.lists.create(list_type: :closed)
end end
end end
end end
Loading
@@ -6,8 +6,8 @@ FactoryGirl.define do
Loading
@@ -6,8 +6,8 @@ FactoryGirl.define do
sequence(:position) sequence(:position)
end end
   
factory :done_list, parent: :list do factory :closed_list, parent: :list do
list_type :done list_type :closed
label nil label nil
position nil position nil
end end
Loading
Loading
Loading
@@ -42,7 +42,7 @@ describe 'Issue Boards', feature: true, js: true do
Loading
@@ -42,7 +42,7 @@ describe 'Issue Boards', feature: true, js: true do
end end
   
it 'creates default lists' do it 'creates default lists' do
lists = ['To Do', 'Doing', 'Done'] lists = ['To Do', 'Doing', 'Closed']
   
page.within(find('.board-blank-state')) do page.within(find('.board-blank-state')) do
click_button('Add default lists') click_button('Add default lists')
Loading
@@ -65,7 +65,7 @@ describe 'Issue Boards', feature: true, js: true do
Loading
@@ -65,7 +65,7 @@ describe 'Issue Boards', feature: true, js: true do
let(:testing) { create(:label, project: project, name: 'Testing') } let(:testing) { create(:label, project: project, name: 'Testing') }
let(:bug) { create(:label, project: project, name: 'Bug') } let(:bug) { create(:label, project: project, name: 'Bug') }
let!(:backlog) { create(:label, project: project, name: 'Backlog') } let!(:backlog) { create(:label, project: project, name: 'Backlog') }
let!(:done) { create(:label, project: project, name: 'Done') } let!(:closed) { create(:label, project: project, name: 'Closed') }
let!(:accepting) { create(:label, project: project, name: 'Accepting Merge Requests') } let!(:accepting) { create(:label, project: project, name: 'Accepting Merge Requests') }
   
let!(:list1) { create(:list, board: board, label: planning, position: 0) } let!(:list1) { create(:list, board: board, label: planning, position: 0) }
Loading
@@ -114,7 +114,7 @@ describe 'Issue Boards', feature: true, js: true do
Loading
@@ -114,7 +114,7 @@ describe 'Issue Boards', feature: true, js: true do
end end
end end
   
it 'search done list' do it 'search closed list' do
find('.filtered-search').set(issue8.title) find('.filtered-search').set(issue8.title)
find('.filtered-search').native.send_keys(:enter) find('.filtered-search').native.send_keys(:enter)
   
Loading
@@ -186,13 +186,13 @@ describe 'Issue Boards', feature: true, js: true do
Loading
@@ -186,13 +186,13 @@ describe 'Issue Boards', feature: true, js: true do
end end
end end
   
context 'done' do context 'closed' do
it 'shows list of done issues' do it 'shows list of closed issues' do
wait_for_board_cards(3, 1) wait_for_board_cards(3, 1)
wait_for_ajax wait_for_ajax
end end
   
it 'moves issue to done' do it 'moves issue to closed' do
drag(list_from_index: 0, list_to_index: 2) drag(list_from_index: 0, list_to_index: 2)
   
wait_for_board_cards(1, 7) wait_for_board_cards(1, 7)
Loading
@@ -205,7 +205,7 @@ describe 'Issue Boards', feature: true, js: true do
Loading
@@ -205,7 +205,7 @@ describe 'Issue Boards', feature: true, js: true do
expect(find('.board:nth-child(3)')).not_to have_content(planning.title) expect(find('.board:nth-child(3)')).not_to have_content(planning.title)
end end
   
it 'removes all of the same issue to done' do it 'removes all of the same issue to closed' do
drag(list_from_index: 0, list_to_index: 2) drag(list_from_index: 0, list_to_index: 2)
   
wait_for_board_cards(1, 7) wait_for_board_cards(1, 7)
Loading
@@ -252,7 +252,7 @@ describe 'Issue Boards', feature: true, js: true do
Loading
@@ -252,7 +252,7 @@ describe 'Issue Boards', feature: true, js: true do
expect(find('.board:nth-child(1)').all('.card').first).not_to have_content(planning.title) expect(find('.board:nth-child(1)').all('.card').first).not_to have_content(planning.title)
end end
   
it 'issue moves from done' do it 'issue moves from closed' do
drag(list_from_index: 2, list_to_index: 1) drag(list_from_index: 2, list_to_index: 1)
   
expect(find('.board:nth-child(2)')).to have_content(issue8.title) expect(find('.board:nth-child(2)')).to have_content(issue8.title)
Loading
@@ -308,12 +308,12 @@ describe 'Issue Boards', feature: true, js: true do
Loading
@@ -308,12 +308,12 @@ describe 'Issue Boards', feature: true, js: true do
expect(page).to have_selector('.board', count: 4) expect(page).to have_selector('.board', count: 4)
end end
   
it 'creates new list for Done label' do it 'creates new list for Closed label' do
click_button 'Add list' click_button 'Add list'
wait_for_ajax wait_for_ajax
   
page.within('.dropdown-menu-issues-board-new') do page.within('.dropdown-menu-issues-board-new') do
click_link done.title click_link closed.title
end end
   
wait_for_vue_resource wait_for_vue_resource
Loading
@@ -326,7 +326,7 @@ describe 'Issue Boards', feature: true, js: true do
Loading
@@ -326,7 +326,7 @@ describe 'Issue Boards', feature: true, js: true do
wait_for_ajax wait_for_ajax
   
page.within('.dropdown-menu-issues-board-new') do page.within('.dropdown-menu-issues-board-new') do
click_link done.title click_link closed.title
end end
   
wait_for_vue_resource wait_for_vue_resource
Loading
Loading
Loading
@@ -25,7 +25,7 @@ describe 'Issue Boards new issue', feature: true, js: true do
Loading
@@ -25,7 +25,7 @@ describe 'Issue Boards new issue', feature: true, js: true do
expect(page).to have_selector('.board-issue-count-holder .btn', count: 1) expect(page).to have_selector('.board-issue-count-holder .btn', count: 1)
end end
   
it 'does not display new issue button in done list' do it 'does not display new issue button in closed list' do
page.within('.board:nth-child(2)') do page.within('.board:nth-child(2)') do
expect(page).not_to have_selector('.board-issue-count-holder .btn') expect(page).not_to have_selector('.board-issue-count-holder .btn')
end end
Loading
Loading
Loading
@@ -10,7 +10,7 @@
Loading
@@ -10,7 +10,7 @@
"id": { "type": "integer" }, "id": { "type": "integer" },
"list_type": { "list_type": {
"type": "string", "type": "string",
"enum": ["label", "done"] "enum": ["label", "closed"]
}, },
"label": { "label": {
"type": ["object", "null"], "type": ["object", "null"],
Loading
Loading
Loading
@@ -106,9 +106,9 @@ describe('Store', () => {
Loading
@@ -106,9 +106,9 @@ describe('Store', () => {
expect(gl.issueBoards.BoardsStore.shouldAddBlankState()).toBe(false); expect(gl.issueBoards.BoardsStore.shouldAddBlankState()).toBe(false);
}); });
   
it('check for blank state adding when done list exist', () => { it('check for blank state adding when closed list exist', () => {
gl.issueBoards.BoardsStore.addList({ gl.issueBoards.BoardsStore.addList({
list_type: 'done' list_type: 'closed'
}); });
   
expect(gl.issueBoards.BoardsStore.shouldAddBlankState()).toBe(true); expect(gl.issueBoards.BoardsStore.shouldAddBlankState()).toBe(true);
Loading
Loading
Loading
@@ -19,8 +19,8 @@ describe List do
Loading
@@ -19,8 +19,8 @@ describe List do
expect(subject).to validate_uniqueness_of(:label_id).scoped_to(:board_id) expect(subject).to validate_uniqueness_of(:label_id).scoped_to(:board_id)
end end
   
context 'when list_type is set to done' do context 'when list_type is set to closed' do
subject { described_class.new(list_type: :done) } subject { described_class.new(list_type: :closed) }
   
it { is_expected.not_to validate_presence_of(:label) } it { is_expected.not_to validate_presence_of(:label) }
it { is_expected.not_to validate_presence_of(:position) } it { is_expected.not_to validate_presence_of(:position) }
Loading
@@ -34,8 +34,8 @@ describe List do
Loading
@@ -34,8 +34,8 @@ describe List do
expect(subject.destroy).to be_truthy expect(subject.destroy).to be_truthy
end end
   
it 'can not be destroyed when when list_type is set to done' do it 'can not be destroyed when when list_type is set to closed' do
subject = create(:done_list) subject = create(:closed_list)
   
expect(subject.destroy).to be_falsey expect(subject.destroy).to be_falsey
end end
Loading
@@ -48,8 +48,8 @@ describe List do
Loading
@@ -48,8 +48,8 @@ describe List do
expect(subject).to be_destroyable expect(subject).to be_destroyable
end end
   
it 'returns false when list_type is set to done' do it 'returns false when list_type is set to closed' do
subject.list_type = :done subject.list_type = :closed
   
expect(subject).not_to be_destroyable expect(subject).not_to be_destroyable
end end
Loading
@@ -62,8 +62,8 @@ describe List do
Loading
@@ -62,8 +62,8 @@ describe List do
expect(subject).to be_movable expect(subject).to be_movable
end end
   
it 'returns false when list_type is set to done' do it 'returns false when list_type is set to closed' do
subject.list_type = :done subject.list_type = :closed
   
expect(subject).not_to be_movable expect(subject).not_to be_movable
end end
Loading
@@ -77,10 +77,10 @@ describe List do
Loading
@@ -77,10 +77,10 @@ describe List do
expect(subject.title).to eq 'Development' expect(subject.title).to eq 'Development'
end end
   
it 'returns Done when list_type is set to done' do it 'returns Closed when list_type is set to closed' do
subject.list_type = :done subject.list_type = :closed
   
expect(subject.title).to eq 'Done' expect(subject.title).to eq 'Closed'
end end
end end
end end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment