diff options
author | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2017-01-27 21:21:11 +0300 |
---|---|---|
committer | Fatih Acet <acetfatih@gmail.com> | 2017-02-03 17:02:44 +0300 |
commit | 274987d5c0f7b04a9b7510c318c8df6dfab477df (patch) | |
tree | 965fd6bb67839793d6c7757a74d1290a6bc0f89d /app | |
parent | 7f58fc0e997a6784d978396747f39ce573dfe289 (diff) |
Reuse endpoint to list issues for a list instead of create a new one
Diffstat (limited to 'app')
5 files changed, 16 insertions, 31 deletions
diff --git a/app/assets/javascripts/boards/components/modal/index.js.es6 b/app/assets/javascripts/boards/components/modal/index.js.es6 index eedfd826787..ababe3af0e3 100644 --- a/app/assets/javascripts/boards/components/modal/index.js.es6 +++ b/app/assets/javascripts/boards/components/modal/index.js.es6 @@ -48,7 +48,7 @@ }).then((res) => { const data = res.json(); - data.forEach((issueObj) => { + data.issues.forEach((issueObj) => { const issue = new ListIssue(issueObj); const foundSelectedIssue = ModalStore.findSelectedIssue(issue); issue.selected = foundSelectedIssue !== undefined; diff --git a/app/assets/javascripts/boards/services/board_service.js.es6 b/app/assets/javascripts/boards/services/board_service.js.es6 index 20df8f2b373..993f8599fd4 100644 --- a/app/assets/javascripts/boards/services/board_service.js.es6 +++ b/app/assets/javascripts/boards/services/board_service.js.es6 @@ -4,9 +4,9 @@ class BoardService { constructor (root, boardId) { this.boards = Vue.resource(`${root}{/id}.json`, {}, { - backlog: { + issues: { method: 'GET', - url: `${root}/${boardId}/backlog.json` + url: `${root}/${boardId}/issues.json` } }); this.lists = Vue.resource(`${root}/${boardId}/lists{/id}`, {}, { @@ -73,7 +73,7 @@ class BoardService { } getBacklog(data) { - return this.boards.backlog(data); + return this.boards.issues(data); } } diff --git a/app/controllers/projects/boards/issues_controller.rb b/app/controllers/projects/boards/issues_controller.rb index dc33e1405f2..a061b575e21 100644 --- a/app/controllers/projects/boards/issues_controller.rb +++ b/app/controllers/projects/boards/issues_controller.rb @@ -59,7 +59,7 @@ module Projects end def filter_params - params.merge(board_id: params[:board_id], id: params[:list_id]) + params.merge(board_id: params[:board_id], id: params[:list_id]).compact end def move_params diff --git a/app/controllers/projects/boards_controller.rb b/app/controllers/projects/boards_controller.rb index 1eaa2ffdf29..808affa4f98 100644 --- a/app/controllers/projects/boards_controller.rb +++ b/app/controllers/projects/boards_controller.rb @@ -1,7 +1,7 @@ class Projects::BoardsController < Projects::ApplicationController include IssuableCollections - # before_action :authorize_read_board!, only: [:index, :show, :backlog] + before_action :authorize_read_board!, only: [:index, :show] def index @boards = ::Boards::ListService.new(project, current_user).execute @@ -25,27 +25,6 @@ class Projects::BoardsController < Projects::ApplicationController end end - def backlog - board = project.boards.find(params[:id]) - - @issues = issues_collection - @issues = @issues.where.not( - LabelLink.where("label_links.target_type = 'Issue' AND label_links.target_id = issues.id") - .where(label_id: board.lists.movable.pluck(:label_id)).limit(1).arel.exists - ) - @issues = @issues.page(params[:page]).per(params[:per]) - - render json: @issues.as_json( - labels: true, - only: [:id, :iid, :title, :confidential, :due_date], - include: { - assignee: { only: [:id, :name, :username], methods: [:avatar_url] }, - milestone: { only: [:id, :title] } - }, - user: current_user - ) - end - private def authorize_read_board! diff --git a/app/services/boards/issues/list_service.rb b/app/services/boards/issues/list_service.rb index fd4a462c7b2..8a94c54b6ab 100644 --- a/app/services/boards/issues/list_service.rb +++ b/app/services/boards/issues/list_service.rb @@ -3,8 +3,8 @@ module Boards class ListService < BaseService def execute issues = IssuesFinder.new(current_user, filter_params).execute - issues = without_board_labels(issues) unless list.movable? - issues = with_list_label(issues) if list.movable? + issues = without_board_labels(issues) unless movable_list? + issues = with_list_label(issues) if movable_list? issues end @@ -15,7 +15,13 @@ module Boards end def list - @list ||= board.lists.find(params[:id]) + return @list if defined?(@list) + + @list = board.lists.find(params[:id]) if params.key?(:id) + end + + def movable_list? + @movable_list ||= list.present? && list.movable? end def filter_params @@ -40,7 +46,7 @@ module Boards end def set_state - params[:state] = list.done? ? 'closed' : 'opened' + params[:state] = list && list.done? ? 'closed' : 'opened' end def board_label_ids |