Feature: Labels page. Index page
This commit is contained in:
parent
14bd9c9228
commit
3dd7703b80
7 changed files with 81 additions and 1 deletions
25
app/controllers/labels_controller.rb
Normal file
25
app/controllers/labels_controller.rb
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
class LabelsController < ApplicationController
|
||||||
|
before_filter :authenticate_user!
|
||||||
|
before_filter :project
|
||||||
|
before_filter :module_enabled
|
||||||
|
|
||||||
|
layout "project"
|
||||||
|
|
||||||
|
# Authorize
|
||||||
|
before_filter :add_project_abilities
|
||||||
|
|
||||||
|
# Allow read any issue
|
||||||
|
before_filter :authorize_read_issue!
|
||||||
|
|
||||||
|
respond_to :js, :html
|
||||||
|
|
||||||
|
def index
|
||||||
|
@labels = Issue.tag_counts_on(:labels)
|
||||||
|
end
|
||||||
|
|
||||||
|
protected
|
||||||
|
|
||||||
|
def module_enabled
|
||||||
|
return render_404 unless @project.issues_enabled
|
||||||
|
end
|
||||||
|
end
|
|
@ -5,6 +5,9 @@
|
||||||
%li{class: "#{'active' if current_page?(project_milestones_path(@project))}"}
|
%li{class: "#{'active' if current_page?(project_milestones_path(@project))}"}
|
||||||
= link_to project_milestones_path(@project), class: "tab" do
|
= link_to project_milestones_path(@project), class: "tab" do
|
||||||
Milestones
|
Milestones
|
||||||
|
%li{class: "#{'active' if current_page?(project_labels_path(@project))}"}
|
||||||
|
= link_to project_labels_path(@project), class: "tab" do
|
||||||
|
Labels
|
||||||
%li.right
|
%li.right
|
||||||
%span.rss-icon
|
%span.rss-icon
|
||||||
= link_to project_issues_path(@project, :atom, { private_token: current_user.private_token }) do
|
= link_to project_issues_path(@project, :atom, { private_token: current_user.private_token }) do
|
||||||
|
|
4
app/views/labels/_label.html.haml
Normal file
4
app/views/labels/_label.html.haml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
%li.wll
|
||||||
|
%strong= label.name
|
||||||
|
.right
|
||||||
|
%span= pluralize label.count, 'issue'
|
14
app/views/labels/index.html.haml
Normal file
14
app/views/labels/index.html.haml
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
= render "issues/head"
|
||||||
|
|
||||||
|
%h3.page_title
|
||||||
|
Labels
|
||||||
|
%br
|
||||||
|
%div.ui-box
|
||||||
|
%ul.unstyled.labels-table
|
||||||
|
- @labels.each do |label|
|
||||||
|
= render 'label', label: label
|
||||||
|
|
||||||
|
- unless @labels.present?
|
||||||
|
%li
|
||||||
|
%h3.nothing_here_message Nothing to show here
|
||||||
|
|
|
@ -197,7 +197,9 @@ Gitlab::Application.routes.draw do
|
||||||
end
|
end
|
||||||
resources :team_members
|
resources :team_members
|
||||||
resources :milestones
|
resources :milestones
|
||||||
|
resources :labels, :only => [:index]
|
||||||
resources :issues do
|
resources :issues do
|
||||||
|
|
||||||
collection do
|
collection do
|
||||||
post :sort
|
post :sort
|
||||||
post :bulk_update
|
post :bulk_update
|
||||||
|
|
13
features/projects/issues/labels.feature
Normal file
13
features/projects/issues/labels.feature
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
Feature: Labels
|
||||||
|
Background:
|
||||||
|
Given I signin as a user
|
||||||
|
And I own project "Shop"
|
||||||
|
And project "Shop" have issues tags:
|
||||||
|
| name |
|
||||||
|
| bug |
|
||||||
|
| feature |
|
||||||
|
Given I visit project "Shop" labels page
|
||||||
|
|
||||||
|
Scenario: I should see active milestones
|
||||||
|
Then I should see label "bug"
|
||||||
|
And I should see label "feature"
|
|
@ -33,6 +33,25 @@ Given /^I visit issue page "(.*?)"$/ do |arg1|
|
||||||
end
|
end
|
||||||
|
|
||||||
Given /^I submit new issue "(.*?)"$/ do |arg1|
|
Given /^I submit new issue "(.*?)"$/ do |arg1|
|
||||||
fill_in "issue_title", :with => arg1
|
fill_in "issue_title", with: arg1
|
||||||
click_button "Submit new issue"
|
click_button "Submit new issue"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Given /^project "(.*?)" have issues tags:$/ do |arg1, table|
|
||||||
|
project = Project.find_by_name(arg1)
|
||||||
|
table.hashes.each do |hash|
|
||||||
|
Factory :issue,
|
||||||
|
project: project,
|
||||||
|
label_list: [hash[:name]]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Given /^I visit project "(.*?)" labels page$/ do |arg1|
|
||||||
|
visit project_labels_path(Project.find_by_name(arg1))
|
||||||
|
end
|
||||||
|
|
||||||
|
Then /^I should see label "(.*?)"$/ do |arg1|
|
||||||
|
within ".labels-table" do
|
||||||
|
page.should have_content arg1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
Loading…
Reference in a new issue