summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Barbosa Alexandre <dbalexandre@gmail.com>2017-06-23 15:30:13 -0300
committerDouglas Barbosa Alexandre <dbalexandre@gmail.com>2017-06-26 17:55:52 -0300
commit46e4c966168f212eb647aa0d2622a025bcd2bd75 (patch)
tree899ae4d69a0ad5b8da1115cd33c5050dbe4406a7
parentfe37ca87599865081a8e94fd778b89134fc0c088 (diff)
downloadgitlab-ce-46e4c966168f212eb647aa0d2622a025bcd2bd75.tar.gz
Add can_subscribe_to_label_in_different_levels helper method
-rw-r--r--app/helpers/labels_helper.rb4
-rw-r--r--app/views/shared/_label.html.haml24
2 files changed, 16 insertions, 12 deletions
diff --git a/app/helpers/labels_helper.rb b/app/helpers/labels_helper.rb
index 6c99d993a5f..8a2987dca42 100644
--- a/app/helpers/labels_helper.rb
+++ b/app/helpers/labels_helper.rb
@@ -133,6 +133,10 @@ module LabelsHelper
end
end
+ def can_subscribe_to_label_in_different_levels?(label)
+ defined?(@project) || label.is_a?(GroupLabel)
+ end
+
def label_subscription_status(label, project)
return 'group-level' if label.subscribed?(current_user)
return 'project-level' if label.subscribed?(current_user, project)
diff --git a/app/views/shared/_label.html.haml b/app/views/shared/_label.html.haml
index 8b5bd3d49ed..4794541c89e 100644
--- a/app/views/shared/_label.html.haml
+++ b/app/views/shared/_label.html.haml
@@ -20,16 +20,16 @@
view open issues
- if current_user
%li.label-subscription
- - if defined?(@group) || label.is_a?(ProjectLabel)
- %a.js-subscribe-button.label-subscribe-button{ role: 'button', href: '#', data: { status: status, url: toggle_subscription_path } }
- %span= label_subscription_toggle_button_text(label, @project)
- - else
+ - if can_subscribe_to_label_in_different_levels?(label)
%a.js-unsubscribe-button.label-subscribe-button{ role: 'button', href: '#', class: ('hidden' if status.unsubscribed?), data: { url: toggle_subscription_path } }
%span Unsubscribe
%a.js-subscribe-button.label-subscribe-button{ role: 'button', href: '#', class: ('hidden' unless status.unsubscribed?), data: { url: toggle_subscription_namespace_project_label_path(@project.namespace, @project, label) } }
%span Subscribe at project level
%a.js-subscribe-button.label-subscribe-button{ role: 'button', href: '#', class: ('hidden' unless status.unsubscribed?), data: { url: toggle_subscription_group_label_path(label.group, label) } }
%span Subscribe at group level
+ - else
+ %a.js-subscribe-button.label-subscribe-button{ role: 'button', href: '#', data: { status: status, url: toggle_subscription_path } }
+ %span= label_subscription_toggle_button_text(label, @project)
- if can?(current_user, :admin_label, label)
%li
@@ -45,11 +45,7 @@
- if current_user
.label-subscription.inline
- - if defined?(@group) || label.is_a?(ProjectLabel)
- %button.js-subscribe-button.label-subscribe-button.btn.btn-default{ type: 'button', data: { status: status, url: toggle_subscription_path } }
- %span= label_subscription_toggle_button_text(label, @project)
- = icon('spinner spin', class: 'label-subscribe-button-loading')
- - else
+ - if can_subscribe_to_label_in_different_levels?(label)
%button.js-unsubscribe-button.label-subscribe-button.btn.btn-default{ type: 'button', class: ('hidden' if status.unsubscribed?), data: { url: toggle_subscription_path } }
%span Unsubscribe
= icon('spinner spin', class: 'label-subscribe-button-loading')
@@ -64,6 +60,10 @@
Project level
%a.js-subscribe-button{ data: { url: toggle_subscription_group_label_path(label.group, label) } }
Group level
+ - else
+ %button.js-subscribe-button.label-subscribe-button.btn.btn-default{ type: 'button', data: { status: status, url: toggle_subscription_path } }
+ %span= label_subscription_toggle_button_text(label, @project)
+ = icon('spinner spin', class: 'label-subscribe-button-loading')
- if label.is_a?(ProjectLabel) && label.project.group && can?(current_user, :admin_label, label.project.group)
= link_to promote_namespace_project_label_path(label.project.namespace, label.project, label), title: "Promote to Group Label", class: 'btn btn-transparent btn-action', data: {confirm: "Promoting this label will make this label available to all projects inside this group. Existing project labels with the same name will be merged. Are you sure?", toggle: "tooltip"}, method: :post do
@@ -78,9 +78,9 @@
= icon('trash-o')
- if current_user
- - if defined?(@group) || label.is_a?(ProjectLabel)
+ - if can_subscribe_to_label_in_different_levels?(label)
:javascript
- new gl.ProjectLabelSubscription('##{dom_id(label)} .label-subscription');
+ new gl.GroupLabelSubscription('##{dom_id(label)} .label-subscription');
- else
:javascript
- new gl.GroupLabelSubscription('##{dom_id(label)} .label-subscription');
+ new gl.ProjectLabelSubscription('##{dom_id(label)} .label-subscription');