From 63a67bb4abff7690ef5f1c91b924c6aaf7f90985 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Wed, 19 Jun 2013 17:48:43 +0300 Subject: [PATCH 1/2] Remove second search. More compact list. Additional filter --- app/controllers/dashboard_controller.rb | 14 ++-- app/views/dashboard/projects.html.haml | 87 +++++++++---------------- 2 files changed, 38 insertions(+), 63 deletions(-) diff --git a/app/controllers/dashboard_controller.rb b/app/controllers/dashboard_controller.rb index fc7dc3fab63..4b9bfcf843b 100644 --- a/app/controllers/dashboard_controller.rb +++ b/app/controllers/dashboard_controller.rb @@ -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) diff --git a/app/views/dashboard/projects.html.haml b/app/views/dashboard/projects.html.haml index 9b16db340b2..683052eadaa 100644 --- a/app/views/dashboard/projects.html.haml +++ b/app/views/dashboard/projects.html.haml @@ -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" From a3b42b6fa13991440aeb75264f865329cff719a3 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Wed, 19 Jun 2013 18:24:18 +0300 Subject: [PATCH 2/2] Remove dash projects search test --- features/dashboard/projects.feature | 4 ---- features/steps/dashboard/dashboard_projects.rb | 12 ------------ 2 files changed, 16 deletions(-) diff --git a/features/dashboard/projects.feature b/features/dashboard/projects.feature index 7e617bd1bfc..7d8c129face 100644 --- a/features/dashboard/projects.feature +++ b/features/dashboard/projects.feature @@ -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 diff --git a/features/steps/dashboard/dashboard_projects.rb b/features/steps/dashboard/dashboard_projects.rb index 670e25a97a4..85251565446 100644 --- a/features/steps/dashboard/dashboard_projects.rb +++ b/features/steps/dashboard/dashboard_projects.rb @@ -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