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 class DashboardController < ApplicationController
respond_to :html respond_to :html
before_filter :load_projects before_filter :load_projects, except: [:projects]
before_filter :event_filter, only: :show before_filter :event_filter, only: :show
def show def show
@ -26,16 +26,18 @@ class DashboardController < ApplicationController
def projects def projects
@projects = case params[:scope] @projects = case params[:scope]
when 'personal' then when 'personal' then
@projects.personal(current_user) current_user.namespace.projects
when 'joined' then when 'joined' then
@projects.joined(current_user) current_user.authorized_projects.joined(current_user)
when 'owned' then
current_user.owned_projects
else else
@projects current_user.authorized_projects
end end.sorted_by_activity
@projects = @projects.search(params[:search]) if params[:search].present? @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.tagged_with(params[:label]) if params[:label].present?
@projects = @projects.page(params[:page]).per(30) @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 .row
.span3 .span3
%ul.nav.nav-pills.nav-stacked %ul.nav.nav-pills.nav-stacked
@ -19,58 +7,43 @@
= link_to "Personal", projects_dashboard_path(scope: 'personal') = link_to "Personal", projects_dashboard_path(scope: 'personal')
= nav_tab :scope, 'joined' do = nav_tab :scope, 'joined' do
= link_to "Joined", projects_dashboard_path(scope: 'joined') = 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: - if @labels.present?
%ul.bordered-list %p.light Filter by label:
- @labels.each do |label| %ul.bordered-list
%li{ class: (label.name == params[:label]) ? 'active' : 'light' } - @labels.each do |label|
= link_to projects_dashboard_path(scope: params[:scope], label: label.name) do %li{ class: (label.name == params[:label]) ? 'active' : 'light' }
%i.icon-tag = link_to projects_dashboard_path(scope: params[:scope], label: label.name) do
= label.name %i.icon-tag
= label.name
.span9 .span9
= form_tag projects_dashboard_path, method: 'get' do .ui-box
%fieldset.dashboard-search-filter %h5.title
= hidden_field_tag "scope", params[:scope] Projects (#{@projects.total_count})
= search_field_tag "search", params[:search], { id: 'dashboard_projects_search', placeholder: 'Search', class: 'left input-xxlarge'} %ul.well-list
= button_tag type: 'submit', class: 'btn' do - @projects.each do |project|
%i.icon-search %li
- if project.public
%ul.bordered-list = public_icon
- @projects.each do |project| - else
%li.clearfix = private_icon
.clearfix = link_to project_path(project), class: dom_class(project) do
%h5 %strong
= link_to project_path(project), class: dom_class(project) do = project.name_with_namespace
- if project.namespace - if project.description.present?
= project.namespace.human_name %span.light
%span= "/" = truncate project.description, length: 80
%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
.pull-right.light .pull-right.light
%small.light %small Last activity #{project_last_activity(project)}
Last activity #{project_last_activity(project)}
- if @projects.blank? - if @projects.blank?
%li %li
%h3.nothing_here_message There are no projects here. %h3.nothing_here_message There are no projects here.
.bottom .bottom
%hr
= paginate @projects, theme: "gitlab" = paginate @projects, theme: "gitlab"

View file

@ -6,7 +6,3 @@ Feature: Dashboard projects
Scenario: I should see projects list Scenario: I should see projects list
Then 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 page.should have_link project.name_with_namespace
end end
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 end