debian-mirror-gitlab/app/helpers/boards_helper.rb

139 lines
3.4 KiB
Ruby
Raw Normal View History

2018-12-05 23:21:45 +05:30
# frozen_string_literal: true
2016-11-03 12:29:30 +05:30
module BoardsHelper
2018-03-17 18:26:18 +05:30
def board
@board ||= @board || @boards.first
end
2016-11-03 12:29:30 +05:30
2018-03-17 18:26:18 +05:30
def board_data
2016-11-03 12:29:30 +05:30
{
2018-03-17 18:26:18 +05:30
boards_endpoint: @boards_endpoint,
lists_endpoint: board_lists_path(board),
2016-11-03 12:29:30 +05:30
board_id: board.id,
2021-06-08 01:23:25 +05:30
disabled: board.disabled_for?(current_user).to_s,
2017-08-17 22:00:37 +05:30
root_path: root_path,
2020-04-08 14:13:33 +05:30
full_path: full_path,
2018-03-17 18:26:18 +05:30
bulk_update_path: @bulk_issues_path,
2021-04-29 21:17:54 +05:30
can_update: can_update?.to_s,
can_admin_list: can_admin_list?.to_s,
2022-06-21 17:19:12 +05:30
can_admin_board: can_admin_board?.to_s,
2019-09-30 21:07:59 +05:30
time_tracking_limit_to_hours: Gitlab::CurrentSettings.time_tracking_limit_to_hours.to_s,
2020-11-24 15:15:51 +05:30
parent: current_board_parent.model_name.param_key,
2021-04-17 20:07:23 +05:30
group_id: group_id,
2021-01-03 14:25:43 +05:30
labels_filter_base_path: build_issue_link_base,
labels_fetch_path: labels_fetch_path,
2021-03-11 19:13:27 +05:30
labels_manage_path: labels_manage_path,
2022-01-26 12:08:38 +05:30
releases_fetch_path: releases_fetch_path,
2022-06-21 17:19:12 +05:30
board_type: board.to_type,
has_missing_boards: has_missing_boards?.to_s,
multiple_boards_available: multiple_boards_available?.to_s,
board_base_url: board_base_url
2016-11-03 12:29:30 +05:30
}
end
2018-03-17 18:26:18 +05:30
2021-04-17 20:07:23 +05:30
def group_id
return @group.id if board.group_board?
@project&.group&.id
end
2020-04-08 14:13:33 +05:30
def full_path
if board.group_board?
@group.full_path
else
@project.full_path
end
end
2018-03-17 18:26:18 +05:30
def build_issue_link_base
2018-03-27 19:54:05 +05:30
if board.group_board?
2021-12-11 22:18:48 +05:30
"/:project_path/-/issues"
2018-03-27 19:54:05 +05:30
else
project_issues_path(@project)
end
2018-03-17 18:26:18 +05:30
end
2021-01-03 14:25:43 +05:30
def labels_fetch_path
if board.group_board?
group_labels_path(@group, format: :json, only_group_labels: true, include_ancestor_groups: true)
else
project_labels_path(@project, format: :json, include_ancestor_groups: true)
end
end
def labels_manage_path
if board.group_board?
group_labels_path(@group)
else
project_labels_path(@project)
end
end
2022-01-26 12:08:38 +05:30
def releases_fetch_path
if board.group_board?
group_releases_path(@group)
else
project_releases_path(@project)
end
end
2018-03-17 18:26:18 +05:30
def board_base_url
2018-03-27 19:54:05 +05:30
if board.group_board?
group_boards_url(@group)
else
project_boards_path(@project)
end
2018-03-17 18:26:18 +05:30
end
def multiple_boards_available?
2018-03-27 19:54:05 +05:30
current_board_parent.multiple_issue_boards_available?
2018-03-17 18:26:18 +05:30
end
2022-06-21 17:19:12 +05:30
# Boards are hidden when extra boards were created but the license does not allow multiple boards
def has_missing_boards?
!multiple_boards_available? && current_board_parent.boards.size > 1
end
2018-03-17 18:26:18 +05:30
def current_board_path(board)
2018-03-27 19:54:05 +05:30
@current_board_path ||= if board.group_board?
group_board_path(current_board_parent, board)
else
project_board_path(current_board_parent, board)
end
2018-03-17 18:26:18 +05:30
end
def current_board_parent
2018-03-27 19:54:05 +05:30
@current_board_parent ||= @group || @project
2018-03-17 18:26:18 +05:30
end
2021-06-08 01:23:25 +05:30
def current_board_namespace
@current_board_namespace = board.group_board? ? @group : @project.namespace
end
2021-04-29 21:17:54 +05:30
def can_update?
can?(current_user, :admin_issue, board)
end
def can_admin_list?
can?(current_user, :admin_issue_board_list, current_board_parent)
end
2022-06-21 17:19:12 +05:30
def can_admin_board?
can?(current_user, :admin_issue_board, current_board_parent)
2018-03-17 18:26:18 +05:30
end
2022-06-21 17:19:12 +05:30
def can_admin_issue?
can?(current_user, :admin_issue, current_board_parent)
2018-03-17 18:26:18 +05:30
end
2019-09-30 21:07:59 +05:30
def serializer
CurrentBoardSerializer.new
end
def current_board_json
serializer.represent(board).as_json
2018-03-17 18:26:18 +05:30
end
2016-11-03 12:29:30 +05:30
end
2019-12-04 20:38:33 +05:30
2021-06-08 01:23:25 +05:30
BoardsHelper.prepend_mod_with('BoardsHelper')