Merge branch 'improve/dash_projects_page' of /home/git/repositories/gitlab/gitlabhq into 6-0-dev
This commit is contained in:
commit
4a53e0285c
4 changed files with 38 additions and 79 deletions
|
@ -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)
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue