Commit 3dd7703b8083d44c64a03cef6b72d161aed04239
1 parent
14bd9c92
Exists in
master
and in
4 other branches
Feature: Labels page. Index page
Showing
7 changed files
with
81 additions
and
1 deletions
Show diff stats
@@ -0,0 +1,25 @@ | @@ -0,0 +1,25 @@ | ||
1 | +class LabelsController < ApplicationController | ||
2 | + before_filter :authenticate_user! | ||
3 | + before_filter :project | ||
4 | + before_filter :module_enabled | ||
5 | + | ||
6 | + layout "project" | ||
7 | + | ||
8 | + # Authorize | ||
9 | + before_filter :add_project_abilities | ||
10 | + | ||
11 | + # Allow read any issue | ||
12 | + before_filter :authorize_read_issue! | ||
13 | + | ||
14 | + respond_to :js, :html | ||
15 | + | ||
16 | + def index | ||
17 | + @labels = Issue.tag_counts_on(:labels) | ||
18 | + end | ||
19 | + | ||
20 | + protected | ||
21 | + | ||
22 | + def module_enabled | ||
23 | + return render_404 unless @project.issues_enabled | ||
24 | + end | ||
25 | +end |
app/views/issues/_head.html.haml
@@ -5,6 +5,9 @@ | @@ -5,6 +5,9 @@ | ||
5 | %li{class: "#{'active' if current_page?(project_milestones_path(@project))}"} | 5 | %li{class: "#{'active' if current_page?(project_milestones_path(@project))}"} |
6 | = link_to project_milestones_path(@project), class: "tab" do | 6 | = link_to project_milestones_path(@project), class: "tab" do |
7 | Milestones | 7 | Milestones |
8 | + %li{class: "#{'active' if current_page?(project_labels_path(@project))}"} | ||
9 | + = link_to project_labels_path(@project), class: "tab" do | ||
10 | + Labels | ||
8 | %li.right | 11 | %li.right |
9 | %span.rss-icon | 12 | %span.rss-icon |
10 | = link_to project_issues_path(@project, :atom, { private_token: current_user.private_token }) do | 13 | = link_to project_issues_path(@project, :atom, { private_token: current_user.private_token }) do |
@@ -0,0 +1,14 @@ | @@ -0,0 +1,14 @@ | ||
1 | += render "issues/head" | ||
2 | + | ||
3 | +%h3.page_title | ||
4 | + Labels | ||
5 | +%br | ||
6 | +%div.ui-box | ||
7 | + %ul.unstyled.labels-table | ||
8 | + - @labels.each do |label| | ||
9 | + = render 'label', label: label | ||
10 | + | ||
11 | + - unless @labels.present? | ||
12 | + %li | ||
13 | + %h3.nothing_here_message Nothing to show here | ||
14 | + |
config/routes.rb
@@ -197,7 +197,9 @@ Gitlab::Application.routes.draw do | @@ -197,7 +197,9 @@ Gitlab::Application.routes.draw do | ||
197 | end | 197 | end |
198 | resources :team_members | 198 | resources :team_members |
199 | resources :milestones | 199 | resources :milestones |
200 | + resources :labels, :only => [:index] | ||
200 | resources :issues do | 201 | resources :issues do |
202 | + | ||
201 | collection do | 203 | collection do |
202 | post :sort | 204 | post :sort |
203 | post :bulk_update | 205 | post :bulk_update |
@@ -0,0 +1,13 @@ | @@ -0,0 +1,13 @@ | ||
1 | +Feature: Labels | ||
2 | + Background: | ||
3 | + Given I signin as a user | ||
4 | + And I own project "Shop" | ||
5 | + And project "Shop" have issues tags: | ||
6 | + | name | | ||
7 | + | bug | | ||
8 | + | feature | | ||
9 | + Given I visit project "Shop" labels page | ||
10 | + | ||
11 | + Scenario: I should see active milestones | ||
12 | + Then I should see label "bug" | ||
13 | + And I should see label "feature" |
features/step_definitions/project/project_issues_steps.rb
@@ -33,6 +33,25 @@ Given /^I visit issue page "(.*?)"$/ do |arg1| | @@ -33,6 +33,25 @@ Given /^I visit issue page "(.*?)"$/ do |arg1| | ||
33 | end | 33 | end |
34 | 34 | ||
35 | Given /^I submit new issue "(.*?)"$/ do |arg1| | 35 | Given /^I submit new issue "(.*?)"$/ do |arg1| |
36 | - fill_in "issue_title", :with => arg1 | 36 | + fill_in "issue_title", with: arg1 |
37 | click_button "Submit new issue" | 37 | click_button "Submit new issue" |
38 | end | 38 | end |
39 | + | ||
40 | +Given /^project "(.*?)" have issues tags:$/ do |arg1, table| | ||
41 | + project = Project.find_by_name(arg1) | ||
42 | + table.hashes.each do |hash| | ||
43 | + Factory :issue, | ||
44 | + project: project, | ||
45 | + label_list: [hash[:name]] | ||
46 | + end | ||
47 | +end | ||
48 | + | ||
49 | +Given /^I visit project "(.*?)" labels page$/ do |arg1| | ||
50 | + visit project_labels_path(Project.find_by_name(arg1)) | ||
51 | +end | ||
52 | + | ||
53 | +Then /^I should see label "(.*?)"$/ do |arg1| | ||
54 | + within ".labels-table" do | ||
55 | + page.should have_content arg1 | ||
56 | + end | ||
57 | +end |