summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-09-20 13:54:29 -0300
committerDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-10-19 14:58:24 -0200
commit2910896b53f107558904e228340009bb9fccca4e (patch)
tree7327d33719f2cf21fa88627fcbcbc507c34ea5cb /app
parent1c73d302e2ce5a27aba7171af741b3590d48aba9 (diff)
downloadgitlab-ce-2910896b53f107558904e228340009bb9fccca4e.tar.gz
Remove duplication between global and the regular label partials
Diffstat (limited to 'app')
-rw-r--r--app/helpers/labels_helper.rb52
-rw-r--r--app/views/groups/labels/_label.html.haml53
-rw-r--r--app/views/groups/labels/_label_row.html.haml6
-rw-r--r--app/views/groups/labels/index.html.haml2
-rw-r--r--app/views/projects/issues/_issue.html.haml2
-rw-r--r--app/views/projects/labels/index.html.haml6
-rw-r--r--app/views/projects/merge_requests/_merge_request.html.haml2
-rw-r--r--app/views/shared/_label.html.haml (renamed from app/views/projects/labels/_label.html.haml)4
-rw-r--r--app/views/shared/_label_row.html.haml3
9 files changed, 33 insertions, 97 deletions
diff --git a/app/helpers/labels_helper.rb b/app/helpers/labels_helper.rb
index 8e5321c05fa..65fc460c670 100644
--- a/app/helpers/labels_helper.rb
+++ b/app/helpers/labels_helper.rb
@@ -4,9 +4,8 @@ module LabelsHelper
# Link to a Label
#
# label - Label object to link to
- # project - Project object which will be used as the context for the label's
- # link. If omitted, defaults to `@project`, or the label's own
- # project.
+ # subject - Project/Group object which will be used as the context for the
+ # label's link. If omitted, defaults to the label's own group/project.
# type - The type of item the link will point to (:issue or
# :merge_request). If omitted, defaults to :issue.
# block - An optional block that will be passed to `link_to`, forming the
@@ -18,12 +17,11 @@ module LabelsHelper
# # Allow the generated link to use the label's own project
# link_to_label(label)
#
- # # Force the generated link to use @project
- # @project = Project.first
- # link_to_label(label)
+ # # Force the generated link to use a provided group
+ # link_to_label(label, subject: Group.last)
#
# # Force the generated link to use a provided project
- # link_to_label(label, project: Project.last)
+ # link_to_label(label, subject: Project.last)
#
# # Force the generated link to point to merge requests instead of issues
# link_to_label(label, type: :merge_request)
@@ -32,9 +30,8 @@ module LabelsHelper
# link_to_label(label) { "My Custom Label Text" }
#
# Returns a String
- def link_to_label(label, project: nil, type: :issue, tooltip: true, css_class: nil, &block)
- project ||= @project || label.project
- link = label_filter_path(project, label, type: type)
+ def link_to_label(label, subject: nil, type: :issue, tooltip: true, css_class: nil, &block)
+ link = label_filter_path(label, type: type)
if block_given?
link_to link, class: css_class, &block
@@ -43,27 +40,16 @@ module LabelsHelper
end
end
- def link_to_group_label(label, group: nil, type: :issue, tooltip: true, css_class: nil, &block)
- group ||= @group || label.group
- link = label_filter_path(group, label, type: type)
-
- if block_given?
- link_to link, class: css_class, &block
+ def label_filter_path(label, type: issue)
+ case label
+ when GroupLabel
+ send("#{type.to_s.pluralize}_group_path",
+ label.group,
+ label_name: [label.name])
else
- link_to render_colored_label(label, tooltip: tooltip), link, class: css_class
- end
- end
-
- def label_filter_path(subject, label, type: issue)
- case subject
- when Project
send("namespace_project_#{type.to_s.pluralize}_path",
- subject.namespace,
- subject,
- label_name: [label.name])
- when Group
- send("#{type.to_s.pluralize}_group_path",
- subject,
+ label.project.namespace,
+ label.project,
label_name: [label.name])
end
end
@@ -92,6 +78,13 @@ module LabelsHelper
end
end
+ def toggle_subscription_label_path(label)
+ case label
+ when GroupLabel then toggle_subscription_group_label_path(label.group, label)
+ else toggle_subscription_namespace_project_label_path(label.project.namespace, label.project, label)
+ end
+ end
+
def label_type_icon(label, options = {})
title, icon =
case label
@@ -101,6 +94,7 @@ module LabelsHelper
options[:class] ||= ''
options[:class] << ' has-tooltip js-label-type'
+ options[:class] << ' hidden' if options.fetch(:hidden, false)
content_tag :span,
class: options[:class],
diff --git a/app/views/groups/labels/_label.html.haml b/app/views/groups/labels/_label.html.haml
deleted file mode 100644
index 9faf90c303e..00000000000
--- a/app/views/groups/labels/_label.html.haml
+++ /dev/null
@@ -1,53 +0,0 @@
-- label_css_id = dom_id(label)
-- open_issues_count = label.open_issues_count(current_user)
-- open_merge_requests_count = label.open_merge_requests_count(current_user)
-
-%li{id: label_css_id, data: { id: label.id } }
- = render 'label_row', label: label
-
- .visible-xs.visible-sm-inline-block.visible-md-inline-block.dropdown
- %button.btn.btn-default.label-options-toggle{ data: { toggle: 'dropdown' } }
- Options
- %span.caret
- .dropdown-menu.dropdown-menu-align-right
- %ul
- %li
- = link_to_group_label(label, type: :merge_request) do
- = pluralize open_merge_requests_count, 'merge request'
- %li
- = link_to_group_label(label) do
- = pluralize open_issues_count, 'open issue'
- - if current_user
- %li.label-subscription{ data: { url: toggle_subscription_group_label_path(@group, label) } }
- %a.js-subscribe-button.label-subscribe-button.subscription-status{ role: "button", href: "#", data: { toggle: "tooltip", status: label_subscription_status(label) } }
- %span= label_subscription_toggle_button_text(label)
- - if can? current_user, :admin_label, @group
- %li
- = link_to 'Edit', edit_group_label_path(@group, label)
- %li
- = link_to 'Delete', group_label_path(@group, label), title: 'Delete', method: :delete, remote: true, data: {confirm: "Remove this label? Are you sure?"}
-
- .pull-right.hidden-xs.hidden-sm.hidden-md
- = link_to_group_label(label, type: :merge_request, css_class: 'btn btn-transparent btn-action') do
- = pluralize open_merge_requests_count, 'merge request'
- = link_to_group_label(label, css_class: 'btn btn-transparent btn-action') do
- = pluralize open_issues_count, 'open issue'
-
- - if current_user
- .label-subscription.inline{ data: { url: toggle_subscription_group_label_path(@group, label) } }
- %button.js-subscribe-button.label-subscribe-button.btn.btn-transparent.btn-action.subscription-status{ type: "button", title: label_subscription_toggle_button_text(label), data: { toggle: "tooltip", status: label_subscription_status(label) } }
- %span.sr-only= label_subscription_toggle_button_text(label)
- = icon('eye', class: 'label-subscribe-button-icon')
- = icon('spinner spin', class: 'label-subscribe-button-loading')
-
- - if can? current_user, :admin_label, @group
- = link_to edit_group_label_path(@group, label), title: 'Edit', class: 'btn btn-transparent btn-action', data: {toggle: 'tooltip'} do
- %span.sr-only Edit
- = icon('pencil-square-o')
- = link_to group_label_path(@group, label), title: 'Delete', class: 'btn btn-transparent btn-action remove-row', method: :delete, remote: true, data: {confirm: 'Remove this label? Are you sure?', toggle: 'tooltip'} do
- %span.sr-only Delete
- = icon('trash-o')
-
- - if current_user
- :javascript
- new Subscription('##{dom_id(label)} .label-subscription');
diff --git a/app/views/groups/labels/_label_row.html.haml b/app/views/groups/labels/_label_row.html.haml
deleted file mode 100644
index e21fac25b01..00000000000
--- a/app/views/groups/labels/_label_row.html.haml
+++ /dev/null
@@ -1,6 +0,0 @@
-%span.label-row
- %span.label-name
- = link_to_group_label(label, tooltip: false)
- - if label.description
- %span.label-description
- = markdown(label.description, pipeline: :single_line)
diff --git a/app/views/groups/labels/index.html.haml b/app/views/groups/labels/index.html.haml
index d9f1d350cb3..8e93ea4f625 100644
--- a/app/views/groups/labels/index.html.haml
+++ b/app/views/groups/labels/index.html.haml
@@ -17,7 +17,7 @@
Group Labels
- if @labels.present?
%ul.content-list.manage-labels-list.js-group-labels
- = render partial: 'label', collection: @labels, as: :label
+ = render partial: 'shared/label', collection: @labels, as: :label
= paginate @labels, theme: 'gitlab'
- else
.nothing-here-block
diff --git a/app/views/projects/issues/_issue.html.haml b/app/views/projects/issues/_issue.html.haml
index 8b1a8a8a2d9..c80210d6ff4 100644
--- a/app/views/projects/issues/_issue.html.haml
+++ b/app/views/projects/issues/_issue.html.haml
@@ -50,7 +50,7 @@
- if issue.labels.any?
&nbsp;
- issue.labels.each do |label|
- = link_to_label(label, project: issue.project)
+ = link_to_label(label, subject: issue.project)
- if issue.tasks?
&nbsp;
%span.task-status
diff --git a/app/views/projects/labels/index.html.haml b/app/views/projects/labels/index.html.haml
index 05282338493..8e6f84fc430 100644
--- a/app/views/projects/labels/index.html.haml
+++ b/app/views/projects/labels/index.html.haml
@@ -23,7 +23,7 @@
%ul.content-list.manage-labels-list.js-prioritized-labels{ "data-url" => set_priorities_namespace_project_labels_path(@project.namespace, @project) }
%p.empty-message{ class: ('hidden' unless @prioritized_labels.empty?) } No prioritized labels yet
- if @prioritized_labels.present?
- = render partial: 'label', collection: @prioritized_labels, as: :label
+ = render partial: 'shared/label', collection: @prioritized_labels, as: :label
.group-labels{ class: ('hide' if hide || @project.group.blank?) }
%h5
@@ -32,7 +32,7 @@
%ul.content-list.manage-labels-list.js-group-labels
%p.empty-message{ class: ('hidden' unless @group_labels.empty?) } No group labels
- if @group_labels.present?
- = render partial: 'label', collection: @group_labels, as: :label
+ = render partial: 'shared/label', collection: @group_labels, as: :label
.project-labels
%h5{ class: ('hide' if hide) }
@@ -41,7 +41,7 @@
%ul.content-list.manage-labels-list.js-project-labels
%p.empty-message{ class: ('hidden' unless @project_labels.empty?) } No project labels
- if @project_labels.present?
- = render @project_labels
+ = render partial: 'shared/label', collection: @project_labels, as: :label
= paginate @project_labels, theme: 'gitlab'
- else
.nothing-here-block
diff --git a/app/views/projects/merge_requests/_merge_request.html.haml b/app/views/projects/merge_requests/_merge_request.html.haml
index 68fb7d5a414..ad62bf50b57 100644
--- a/app/views/projects/merge_requests/_merge_request.html.haml
+++ b/app/views/projects/merge_requests/_merge_request.html.haml
@@ -62,7 +62,7 @@
- if merge_request.labels.any?
&nbsp;
- merge_request.labels.each do |label|
- = link_to_label(label, project: merge_request.project, type: 'merge_request')
+ = link_to_label(label, subject: merge_request.project, type: 'merge_request')
- if merge_request.tasks?
&nbsp;
%span.task-status
diff --git a/app/views/projects/labels/_label.html.haml b/app/views/shared/_label.html.haml
index 2b7b79390f7..13795807ab8 100644
--- a/app/views/projects/labels/_label.html.haml
+++ b/app/views/shared/_label.html.haml
@@ -18,7 +18,7 @@
= link_to_label(label) do
= pluralize open_issues_count, 'open issue'
- if current_user
- %li.label-subscription{ data: { url: toggle_subscription_namespace_project_label_path(@project.namespace, @project, label) } }
+ %li.label-subscription{ data: { url: toggle_subscription_label_path(label) } }
%a.js-subscribe-button.label-subscribe-button.subscription-status{ role: "button", href: "#", data: { toggle: "tooltip", status: label_subscription_status(label) } }
%span= label_subscription_toggle_button_text(label)
- if can_admin_label(label)
@@ -34,7 +34,7 @@
= pluralize open_issues_count, 'open issue'
- if current_user
- .label-subscription.inline{ data: { url: toggle_subscription_namespace_project_label_path(@project.namespace, @project, label) } }
+ .label-subscription.inline{ data: { url: toggle_subscription_label_path(label) } }
%button.js-subscribe-button.label-subscribe-button.btn.btn-transparent.btn-action.subscription-status{ type: "button", title: label_subscription_toggle_button_text(label), data: { toggle: "tooltip", status: label_subscription_status(label) } }
%span.sr-only= label_subscription_toggle_button_text(label)
= icon('eye', class: 'label-subscribe-button-icon')
diff --git a/app/views/shared/_label_row.html.haml b/app/views/shared/_label_row.html.haml
index 751b2d1c158..8a1ebdd7fb6 100644
--- a/app/views/shared/_label_row.html.haml
+++ b/app/views/shared/_label_row.html.haml
@@ -10,7 +10,8 @@
= icon('star')
%span.label-name
= link_to_label(label, tooltip: false)
- = label_type_icon(label, class: "#{'hidden' if label.priority.blank?}" )
+ - if can?(current_user, :admin_label, @project)
+ = label_type_icon(label, hidden: label.priority.blank?)
- if label.description
%span.label-description
= markdown_field(label, :description)