diff options
author | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-09-19 22:49:08 +0300 |
---|---|---|
committer | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-10-19 19:57:15 +0300 |
commit | 52e0c3b565b7b177abbf8ea3bc573651060179a2 (patch) | |
tree | 1cd659377de0a28c7dc5afee456a1b9bb9849d7b /app/views | |
parent | d820c090ec85f8118e4cea75bd63d800e812ea25 (diff) |
Add CRUD for Group Labels
Diffstat (limited to 'app/views')
-rw-r--r-- | app/views/groups/labels/_form.html.haml | 33 | ||||
-rw-r--r-- | app/views/groups/labels/_label.html.haml | 53 | ||||
-rw-r--r-- | app/views/groups/labels/_label_row.html.haml | 6 | ||||
-rw-r--r-- | app/views/groups/labels/destroy.js.haml | 2 | ||||
-rw-r--r-- | app/views/groups/labels/edit.html.haml | 8 | ||||
-rw-r--r-- | app/views/groups/labels/index.html.haml | 24 | ||||
-rw-r--r-- | app/views/groups/labels/new.html.haml | 9 | ||||
-rw-r--r-- | app/views/layouts/nav/_group.html.haml | 4 |
8 files changed, 139 insertions, 0 deletions
diff --git a/app/views/groups/labels/_form.html.haml b/app/views/groups/labels/_form.html.haml new file mode 100644 index 00000000000..008b5fb9ba1 --- /dev/null +++ b/app/views/groups/labels/_form.html.haml @@ -0,0 +1,33 @@ += form_for @label, as: :label, url: url, html: { class: 'form-horizontal label-form js-quick-submit js-requires-input' } do |f| + = form_errors(@label) + + .form-group + = f.label :title, class: 'control-label' + .col-sm-10 + = f.text_field :title, class: "form-control", required: true, autofocus: true + .form-group + = f.label :description, class: 'control-label' + .col-sm-10 + = f.text_field :description, class: "form-control js-quick-submit" + .form-group + = f.label :color, "Background color", class: 'control-label' + .col-sm-10 + .input-group + .input-group-addon.label-color-preview + = f.color_field :color, class: "form-control" + .help-block + Choose any color. + %br + Or you can choose one of suggested colors below + + .suggest-colors + - suggested_colors.each do |color| + = link_to '#', style: "background-color: #{color}", data: { color: color } do + + + .form-actions + - if @label.persisted? + = f.submit 'Save changes', class: 'btn btn-save js-save-button' + - else + = f.submit 'Create Label', class: 'btn btn-create js-save-button' + = link_to "Cancel", group_labels_path(@group), class: 'btn btn-cancel' diff --git a/app/views/groups/labels/_label.html.haml b/app/views/groups/labels/_label.html.haml new file mode 100644 index 00000000000..b9aab76f057 --- /dev/null +++ b/app/views/groups/labels/_label.html.haml @@ -0,0 +1,53 @@ +- label_css_id = dom_id(label) +- open_issues_count = label.open_issues_count(current_user) +- open_merge_requests_count = label.open_merge_requests_count + +%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 new file mode 100644 index 00000000000..e21fac25b01 --- /dev/null +++ b/app/views/groups/labels/_label_row.html.haml @@ -0,0 +1,6 @@ +%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/destroy.js.haml b/app/views/groups/labels/destroy.js.haml new file mode 100644 index 00000000000..3dfbfc77c0d --- /dev/null +++ b/app/views/groups/labels/destroy.js.haml @@ -0,0 +1,2 @@ +- if @group.labels.empty? + $('.labels').load(document.URL + ' .nothing-here-block').hide().fadeIn(1000) diff --git a/app/views/groups/labels/edit.html.haml b/app/views/groups/labels/edit.html.haml new file mode 100644 index 00000000000..e247393abd5 --- /dev/null +++ b/app/views/groups/labels/edit.html.haml @@ -0,0 +1,8 @@ +- page_title 'Edit', @label.name, 'Labels' + +%h3.page-title + = icon('folder-open') + Edit Group Label +%hr + += render 'form', url: group_label_path(@group, @label) diff --git a/app/views/groups/labels/index.html.haml b/app/views/groups/labels/index.html.haml new file mode 100644 index 00000000000..d9f1d350cb3 --- /dev/null +++ b/app/views/groups/labels/index.html.haml @@ -0,0 +1,24 @@ +- page_title 'Labels' + +.top-area.adjust + .nav-text + Labels can be applied to issues and merge requests. + + .nav-controls + - if can?(current_user, :admin_label, @group) + = link_to new_group_label_path(@group), class: "btn btn-new" do + New label + +.labels + - hide = @group.labels.empty? || (params[:page].present? && params[:page] != '1') + .group-labels + %h5{ class: ('hide' if hide) } + = icon('folder-open') + Group Labels + - if @labels.present? + %ul.content-list.manage-labels-list.js-group-labels + = render partial: 'label', collection: @labels, as: :label + = paginate @labels, theme: 'gitlab' + - else + .nothing-here-block + No labels created yet. diff --git a/app/views/groups/labels/new.html.haml b/app/views/groups/labels/new.html.haml new file mode 100644 index 00000000000..01a50607db4 --- /dev/null +++ b/app/views/groups/labels/new.html.haml @@ -0,0 +1,9 @@ +- page_title 'New Group Label' +- header_title group_title(@group, 'Labels', group_labels_path(@group)) + +%h3.page-title + = icon('folder-open') + New Group Label +%hr + += render 'form', url: group_labels_path diff --git a/app/views/layouts/nav/_group.html.haml b/app/views/layouts/nav/_group.html.haml index 27ac1760166..f7edb47b666 100644 --- a/app/views/layouts/nav/_group.html.haml +++ b/app/views/layouts/nav/_group.html.haml @@ -13,6 +13,10 @@ = link_to activity_group_path(@group), title: 'Activity' do %span Activity + = nav_link(controller: [:group, :labels]) do + = link_to group_labels_path(@group), title: 'Labels' do + %span + Labels = nav_link(controller: [:group, :milestones]) do = link_to group_milestones_path(@group), title: 'Milestones' do %span |