Merge branch 'improve/dash_projects_page' of /home/git/repositories/gitlab/gitlabhq into 6-0-dev

This commit is contained in:
Dmitriy Zaporozhets 2013-06-19 16:50:28 +00:00
commit 4a53e0285c
4 changed files with 38 additions and 79 deletions

View file

@ -1,7 +1,7 @@
class DashboardController < ApplicationController
respond_to :html
before_filter :load_projects
before_filter :load_projects, except: [:projects]
before_filter :event_filter, only: :show
def show
@ -26,16 +26,18 @@ class DashboardController < ApplicationController
def projects
@projects = case params[:scope]
when 'personal' then
@projects.personal(current_user)
current_user.namespace.projects
when 'joined' then
@projects.joined(current_user)
current_user.authorized_projects.joined(current_user)
when 'owned' then
current_user.owned_projects
else
@projects
end
current_user.authorized_projects
end.sorted_by_activity
@projects = @projects.search(params[:search]) if params[:search].present?
@labels = Project.where(id: @projects.map(&:id)).tags_on(:labels)
@labels = current_user.authorized_projects.tags_on(:labels)
@projects = @projects.tagged_with(params[:label]) if params[:label].present?
@projects = @projects.page(params[:page]).per(30)

View file

@ -1,15 +1,3 @@
%h3.page_title
Projects
%span
(#{@projects.total_count})
- if current_user.can_create_project?
%span.pull-right
= link_to new_project_path, class: "btn btn-tiny info" do
%i.icon-plus
New Project
%hr
.row
.span3
%ul.nav.nav-pills.nav-stacked
@ -19,58 +7,43 @@
= link_to "Personal", projects_dashboard_path(scope: 'personal')
= nav_tab :scope, 'joined' do
= link_to "Joined", projects_dashboard_path(scope: 'joined')
= nav_tab :scope, 'owned' do
= link_to "Owned", projects_dashboard_path(scope: 'owned')
%p.light Filter by label:
%ul.bordered-list
- @labels.each do |label|
%li{ class: (label.name == params[:label]) ? 'active' : 'light' }
= link_to projects_dashboard_path(scope: params[:scope], label: label.name) do
%i.icon-tag
= label.name
- if @labels.present?
%p.light Filter by label:
%ul.bordered-list
- @labels.each do |label|
%li{ class: (label.name == params[:label]) ? 'active' : 'light' }
= link_to projects_dashboard_path(scope: params[:scope], label: label.name) do
%i.icon-tag
= label.name
.span9
= form_tag projects_dashboard_path, method: 'get' do
%fieldset.dashboard-search-filter
= hidden_field_tag "scope", params[:scope]
= search_field_tag "search", params[:search], { id: 'dashboard_projects_search', placeholder: 'Search', class: 'left input-xxlarge'}
= button_tag type: 'submit', class: 'btn' do
%i.icon-search
%ul.bordered-list
- @projects.each do |project|
%li.clearfix
.clearfix
%h5
= link_to project_path(project), class: dom_class(project) do
- if project.namespace
= project.namespace.human_name
%span= "/"
%strong
= truncate(project.name, length: 45)
.pull-right.light
- if project.owner == current_user
%i.icon-wrench
- tm = project.team.get_tm(current_user.id)
- if tm
%strong= tm.project_access_human
.clearfix
.left
- if project.description.present?
%span.light= project.description
- project.labels.each do |label|
%span.label.label-info
%i.icon-tag
= label.name
.ui-box
%h5.title
Projects (#{@projects.total_count})
%ul.well-list
- @projects.each do |project|
%li
- if project.public
= public_icon
- else
= private_icon
= link_to project_path(project), class: dom_class(project) do
%strong
= project.name_with_namespace
- if project.description.present?
%span.light
= truncate project.description, length: 80
.pull-right.light
%small.light
Last activity #{project_last_activity(project)}
%small Last activity #{project_last_activity(project)}
- if @projects.blank?
%li
%h3.nothing_here_message There are no projects here.
- if @projects.blank?
%li
%h3.nothing_here_message There are no projects here.
.bottom
%hr
= paginate @projects, theme: "gitlab"

View file

@ -6,7 +6,3 @@ Feature: Dashboard projects
Scenario: I should see projects list
Then I should see projects list
Scenario: I should see project I am looking for
Given I search for "Sho"
Then I should see "Shop" project link

View file

@ -8,16 +8,4 @@ class DashboardProjects < Spinach::FeatureSteps
page.should have_link project.name_with_namespace
end
end
Given 'I search for "Sho"' do
fill_in "dashboard_projects_search", with: "Sho"
within ".dashboard-search-filter" do
find('button').click
end
end
Then 'I should see "Shop" project link' do
page.should have_link "Shop"
end
end