diff --git a/CHANGELOG b/CHANGELOG index 74bc366d2037bbb093ae29d92af0e518760c8cee..5d0a01519a5d915dd018fafb70f5e6324a2c77ff 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -62,6 +62,8 @@ v 8.5.0 (unreleased) - Replaces "Create merge request" link with one to the "Merge Request" when one exists - Fix CI builds badge, add a new link to builds badge, deprecate the old one - Fix broken link to project in build notification emails + - Add label description + - Show label row when filtering issues or merge requests by label v 8.4.4 - Update omniauth-saml gem to 1.4.2 diff --git a/app/assets/stylesheets/pages/labels.scss b/app/assets/stylesheets/pages/labels.scss index d1590e42fcbb9bb278565491e6d3254c2d8d14be..1c78aafdb873c9b9d7c3d3cd534faf74774333e1 100644 --- a/app/assets/stylesheets/pages/labels.scss +++ b/app/assets/stylesheets/pages/labels.scss @@ -9,7 +9,7 @@ } } -.manage-labels-list { +.label-row { .label { padding: 9px; font-size: 14px; diff --git a/app/controllers/admin/labels_controller.rb b/app/controllers/admin/labels_controller.rb index 3b070e65d0db6b942fe076d64d97bd0b51168b25..d79ce2b10fedc36054d5092d2c31bb20f1f9056f 100644 --- a/app/controllers/admin/labels_controller.rb +++ b/app/controllers/admin/labels_controller.rb @@ -53,6 +53,6 @@ class Admin::LabelsController < Admin::ApplicationController end def label_params - params[:label].permit(:title, :color) + params[:label].permit(:title, :description, :color) end end diff --git a/app/controllers/concerns/issues_action.rb b/app/controllers/concerns/issues_action.rb index effd47219496a56036661fdfc8d869a9b4e87ec9..91b58c47dd9126a155c75dc3790d120faef2b87a 100644 --- a/app/controllers/concerns/issues_action.rb +++ b/app/controllers/concerns/issues_action.rb @@ -6,6 +6,8 @@ module IssuesAction @issues = @issues.page(params[:page]).per(ApplicationController::PER_PAGE) @issues = @issues.preload(:author, :project) + @label = Label.where(project: @projects).find_by(title: params[:label_name]) + respond_to do |format| format.html format.atom { render layout: false } diff --git a/app/controllers/concerns/merge_requests_action.rb b/app/controllers/concerns/merge_requests_action.rb index f7a25111db96d49c4d045cb1ed57a8c55a0fe2c1..da30477fb303c6fd6fe74b831e3e8687a366824b 100644 --- a/app/controllers/concerns/merge_requests_action.rb +++ b/app/controllers/concerns/merge_requests_action.rb @@ -5,5 +5,7 @@ module MergeRequestsAction @merge_requests = get_merge_requests_collection @merge_requests = @merge_requests.page(params[:page]).per(ApplicationController::PER_PAGE) @merge_requests = @merge_requests.preload(:author, :target_project) + + @label = Label.where(project: @projects).find_by(title: params[:label_name]) end end diff --git a/app/controllers/projects/issues_controller.rb b/app/controllers/projects/issues_controller.rb index 68244883803f7f4b5b3ef1bc9bc625831612c8c8..67faa1e4437f7bb1fd136612a369556163bb0679 100644 --- a/app/controllers/projects/issues_controller.rb +++ b/app/controllers/projects/issues_controller.rb @@ -32,6 +32,7 @@ class Projects::IssuesController < Projects::ApplicationController end @issues = @issues.page(params[:page]).per(PER_PAGE) + @label = @project.labels.find_by(title: params[:label_name]) respond_to do |format| format.html diff --git a/app/controllers/projects/labels_controller.rb b/app/controllers/projects/labels_controller.rb index 86d6e3e0f6b5d47c1cb980e829205bd86450f555..ecac3c395ec1998d48ae104d2b9795a482819111 100644 --- a/app/controllers/projects/labels_controller.rb +++ b/app/controllers/projects/labels_controller.rb @@ -69,7 +69,7 @@ class Projects::LabelsController < Projects::ApplicationController end def label_params - params.require(:label).permit(:title, :color) + params.require(:label).permit(:title, :description, :color) end def label diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb index 9d588c370aabeff7a577f6168efe87272882bb5f..86b8e7bdf2e31a7d5b8d73cf449559f68fb08223 100644 --- a/app/controllers/projects/merge_requests_controller.rb +++ b/app/controllers/projects/merge_requests_controller.rb @@ -34,6 +34,8 @@ class Projects::MergeRequestsController < Projects::ApplicationController @merge_requests = @merge_requests.page(params[:page]).per(PER_PAGE) @merge_requests = @merge_requests.preload(:target_project) + @label = @project.labels.find_by(title: params[:label_name]) + respond_to do |format| format.html format.json do diff --git a/app/models/label.rb b/app/models/label.rb index 220da10a6abe86fabe7c9ec4b670f2e4a7166372..2257a69002e50535e2b9e4224c45280c436b709c 100644 --- a/app/models/label.rb +++ b/app/models/label.rb @@ -2,13 +2,14 @@ # # Table name: labels # -# id :integer not null, primary key -# title :string(255) -# color :string(255) -# project_id :integer -# created_at :datetime -# updated_at :datetime -# template :boolean default(FALSE) +# id :integer not null, primary key +# title :string(255) +# color :string(255) +# project_id :integer +# created_at :datetime +# updated_at :datetime +# template :boolean default(FALSE) +# description :string(255) # class Label < ActiveRecord::Base diff --git a/app/views/admin/labels/_form.html.haml b/app/views/admin/labels/_form.html.haml index eaa94ed9e3631b5e4b4cd9a011dd1f31a50cd90d..8c6b389bf157ac2c103861ae794ffe631bd71f55 100644 --- a/app/views/admin/labels/_form.html.haml +++ b/app/views/admin/labels/_form.html.haml @@ -11,6 +11,10 @@ = f.label :title, class: 'control-label' .col-sm-10 = f.text_field :title, class: "form-control", required: 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 diff --git a/app/views/admin/labels/_label.html.haml b/app/views/admin/labels/_label.html.haml index e3ccbf6c3a84e6d7896b386dfe3c7a482c7cab67..5736a301910596866e63ae72392222419cec28ab 100644 --- a/app/views/admin/labels/_label.html.haml +++ b/app/views/admin/labels/_label.html.haml @@ -1,5 +1,7 @@ %li{id: dom_id(label)} - = render_colored_label(label) - .pull-right - = link_to 'Edit', edit_admin_label_path(label), class: 'btn btn-sm' - = link_to 'Delete', admin_label_path(label), class: 'btn btn-sm btn-remove remove-row', method: :delete, remote: true, data: {confirm: "Delete this label? Are you sure?"} + .label-row + = render_colored_label(label) + = markdown(label.description, pipeline: :single_line) + .pull-right + = link_to 'Edit', edit_admin_label_path(label), class: 'btn btn-sm' + = link_to 'Delete', admin_label_path(label), class: 'btn btn-sm btn-remove remove-row', method: :delete, remote: true, data: {confirm: "Delete this label? Are you sure?"} diff --git a/app/views/projects/labels/_form.html.haml b/app/views/projects/labels/_form.html.haml index 5ce2a7b985d542f002e08ce5d8e295a3668f3f82..d63d3a3ec20744e41c9dad1ba75424bcb3cf5322 100644 --- a/app/views/projects/labels/_form.html.haml +++ b/app/views/projects/labels/_form.html.haml @@ -11,6 +11,10 @@ = f.label :title, class: 'control-label' .col-sm-10 = f.text_field :title, class: "form-control js-quick-submit", 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 diff --git a/app/views/projects/labels/_label.html.haml b/app/views/projects/labels/_label.html.haml index b70a9fc9fe50ecf57526eb0c63a362fdac45568d..3d9118892ff9c5cee111028b280fbabbe471bc01 100644 --- a/app/views/projects/labels/_label.html.haml +++ b/app/views/projects/labels/_label.html.haml @@ -1,10 +1,2 @@ %li{id: dom_id(label)} - = link_to_label(label) - .pull-right - %strong.append-right-20 - = link_to_label(label) do - = pluralize label.open_issues_count, 'open issue' - - - if can? current_user, :admin_label, @project - = link_to 'Edit', edit_namespace_project_label_path(@project.namespace, @project, label), class: 'btn btn-sm' - = link_to 'Delete', namespace_project_label_path(@project.namespace, @project, label), class: 'btn btn-sm btn-remove remove-row', method: :delete, remote: true, data: {confirm: "Remove this label? Are you sure?"} + = render "shared/label_row", label: label, editable: true diff --git a/app/views/shared/_label_row.html.haml b/app/views/shared/_label_row.html.haml new file mode 100644 index 0000000000000000000000000000000000000000..adfd4e02b2e3933c2049a07308923f41cf7956b2 --- /dev/null +++ b/app/views/shared/_label_row.html.haml @@ -0,0 +1,12 @@ +.label-row + = link_to_label(label) + = markdown(label.description, pipeline: :single_line) + + .pull-right + %strong.append-right-20 + = link_to_label(label) do + = pluralize label.open_issues_count, 'open issue' + + - if defined?(editable) && editable && can?(current_user, :admin_label, @project) + = link_to 'Edit', edit_namespace_project_label_path(@project.namespace, @project, label), class: 'btn btn-sm' + = link_to 'Delete', namespace_project_label_path(@project.namespace, @project, label), class: 'btn btn-sm btn-remove remove-row', method: :delete, remote: true, data: {confirm: "Remove this label? Are you sure?"} diff --git a/app/views/shared/issuable/_filter.html.haml b/app/views/shared/issuable/_filter.html.haml index b7e350d27af97c2f371fed09df9084e4eff92f38..c5d61fe3bf069ed74f6393821969d2886c1c6ccc 100644 --- a/app/views/shared/issuable/_filter.html.haml +++ b/app/views/shared/issuable/_filter.html.haml @@ -41,6 +41,10 @@ .filter-item.inline = button_tag "Update issues", class: "btn update_selected_issues btn-save" +- if @label.present? + .gray-content-block.second-block + = render "shared/label_row", label: @label + :javascript new UsersSelect(); $('form.filter-form').on('submit', function (event) { diff --git a/db/migrate/20160217100506_add_description_to_label.rb b/db/migrate/20160217100506_add_description_to_label.rb new file mode 100644 index 0000000000000000000000000000000000000000..eed6d1f236aa16cc8032c94c01ecf57ae4f4d16b --- /dev/null +++ b/db/migrate/20160217100506_add_description_to_label.rb @@ -0,0 +1,5 @@ +class AddDescriptionToLabel < ActiveRecord::Migration + def change + add_column :labels, :description, :string + end +end diff --git a/db/schema.rb b/db/schema.rb index 689a8c3ecc529cbc7c098a8e587ee30a104026e1..0976058bd160d4894d5c669365ff6be66a5b8780 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20160209130428) do +ActiveRecord::Schema.define(version: 20160217100506) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -442,7 +442,8 @@ ActiveRecord::Schema.define(version: 20160209130428) do t.integer "project_id" t.datetime "created_at" t.datetime "updated_at" - t.boolean "template", default: false + t.boolean "template", default: false + t.string "description" end add_index "labels", ["project_id"], name: "index_labels_on_project_id", using: :btree