OSDN Git Service

Remove second search. More compact list. Additional filter
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Wed, 19 Jun 2013 14:48:43 +0000 (17:48 +0300)
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Wed, 19 Jun 2013 14:48:43 +0000 (17:48 +0300)
app/controllers/dashboard_controller.rb
app/views/dashboard/projects.html.haml

index fc7dc3f..4b9bfcf 100644 (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)
index 9b16db3..683052e 100644 (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
         = 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"