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 @@ |
| 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 | 5 | %li{class: "#{'active' if current_page?(project_milestones_path(@project))}"} |
| 6 | 6 | = link_to project_milestones_path(@project), class: "tab" do |
| 7 | 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 | 11 | %li.right |
| 9 | 12 | %span.rss-icon |
| 10 | 13 | = link_to project_issues_path(@project, :atom, { private_token: current_user.private_token }) do | ... | ... |
| ... | ... | @@ -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
| ... | ... | @@ -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 | 33 | end |
| 34 | 34 | |
| 35 | 35 | Given /^I submit new issue "(.*?)"$/ do |arg1| |
| 36 | - fill_in "issue_title", :with => arg1 | |
| 36 | + fill_in "issue_title", with: arg1 | |
| 37 | 37 | click_button "Submit new issue" |
| 38 | 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 | ... | ... |