mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-15 15:46:08 +10:00
Merge branch 'feature/dash_projects_sort' of /home/git/repositories/gitlab/gitlabhq
This commit is contained in:
@@ -41,13 +41,13 @@ class DashboardController < ApplicationController
|
||||
|
||||
@projects = @projects.where(namespace_id: Group.find_by_name(params[:group])) if params[:group].present?
|
||||
@projects = @projects.where(visibility_level: params[:visibility_level]) if params[:visibility_level].present?
|
||||
@projects = @projects.includes(:namespace).sorted_by_activity
|
||||
@projects = @projects.includes(:namespace)
|
||||
@projects = @projects.tagged_with(params[:label]) if params[:label].present?
|
||||
@projects = @projects.sort(@sort = params[:sort])
|
||||
@projects = @projects.page(params[:page]).per(30)
|
||||
|
||||
@labels = current_user.authorized_projects.tags_on(:labels)
|
||||
@groups = current_user.authorized_groups
|
||||
|
||||
@projects = @projects.tagged_with(params[:label]) if params[:label].present?
|
||||
@projects = @projects.page(params[:page]).per(30)
|
||||
end
|
||||
|
||||
def merge_requests
|
||||
|
||||
@@ -8,14 +8,7 @@ class Public::ProjectsController < ApplicationController
|
||||
def index
|
||||
@projects = Project.public_or_internal_only(current_user)
|
||||
@projects = @projects.search(params[:search]) if params[:search].present?
|
||||
@sort = params[:sort]
|
||||
@projects = case @sort
|
||||
when 'newest' then @projects.order('created_at DESC')
|
||||
when 'oldest' then @projects.order('created_at ASC')
|
||||
when 'recently_updated' then @projects.order('updated_at DESC')
|
||||
when 'last_updated' then @projects.order('updated_at ASC')
|
||||
else @projects.order("namespaces.path, projects.name ASC")
|
||||
end
|
||||
@projects = @projects.sort(@sort = params[:sort])
|
||||
@projects = @projects.includes(:namespace).page(params[:page]).per(20)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -21,4 +21,18 @@ module DashboardHelper
|
||||
[]
|
||||
end.count
|
||||
end
|
||||
|
||||
def projects_dashboard_filter_path(options={})
|
||||
exist_opts = {
|
||||
sort: params[:sort],
|
||||
scope: params[:scope],
|
||||
group: params[:group],
|
||||
}
|
||||
|
||||
options = exist_opts.merge(options)
|
||||
|
||||
path = request.path
|
||||
path << "?#{options.to_param}"
|
||||
path
|
||||
end
|
||||
end
|
||||
|
||||
@@ -92,7 +92,12 @@ module TabHelper
|
||||
def nav_tab key, value, &block
|
||||
o = {}
|
||||
o[:class] = ""
|
||||
o[:class] << " active" if params[key] == value
|
||||
|
||||
if value.nil?
|
||||
o[:class] << " active" if params[key].blank?
|
||||
else
|
||||
o[:class] << " active" if params[key] == value
|
||||
end
|
||||
|
||||
if block_given?
|
||||
content_tag(:li, capture(&block), o)
|
||||
|
||||
@@ -153,6 +153,16 @@ class Project < ActiveRecord::Base
|
||||
def visibility_levels
|
||||
Gitlab::VisibilityLevel.options
|
||||
end
|
||||
|
||||
def sort(method)
|
||||
case method.to_s
|
||||
when 'newest' then reorder('projects.created_at DESC')
|
||||
when 'oldest' then reorder('projects.created_at ASC')
|
||||
when 'recently_updated' then reorder('projects.updated_at DESC')
|
||||
when 'last_updated' then reorder('projects.updated_at ASC')
|
||||
else reorder("namespaces.path, projects.name ASC")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def team
|
||||
|
||||
@@ -1,4 +1,26 @@
|
||||
%h3.page-title My Projects
|
||||
%h3.page-title
|
||||
My Projects
|
||||
.pull-right
|
||||
.dropdown.inline
|
||||
%a.dropdown-toggle.btn.btn-small{href: '#', "data-toggle" => "dropdown"}
|
||||
%span.light sort:
|
||||
- if @sort.present?
|
||||
= @sort.humanize
|
||||
- else
|
||||
Name
|
||||
%b.caret
|
||||
%ul.dropdown-menu
|
||||
%li
|
||||
= link_to projects_dashboard_filter_path(sort: nil) do
|
||||
Name
|
||||
= link_to projects_dashboard_filter_path(sort: 'newest') do
|
||||
Newest
|
||||
= link_to projects_dashboard_filter_path(sort: 'oldest') do
|
||||
Oldest
|
||||
= link_to projects_dashboard_filter_path(sort: 'recently_updated') do
|
||||
Recently updated
|
||||
= link_to projects_dashboard_filter_path(sort: 'last_updated') do
|
||||
Last updated
|
||||
%p.light
|
||||
All projects you have access to are listed here. Public projects are not included here unless you are a member
|
||||
%hr
|
||||
@@ -6,22 +28,22 @@
|
||||
.span3
|
||||
%ul.nav.nav-pills.nav-stacked
|
||||
= nav_tab :scope, nil do
|
||||
= link_to projects_dashboard_path do
|
||||
= link_to projects_dashboard_filter_path(scope: nil) do
|
||||
All
|
||||
%span.pull-right
|
||||
= current_user.authorized_projects.count
|
||||
= nav_tab :scope, 'personal' do
|
||||
= link_to projects_dashboard_path(scope: 'personal') do
|
||||
= link_to projects_dashboard_filter_path(scope: 'personal') do
|
||||
Personal
|
||||
%span.pull-right
|
||||
= current_user.personal_projects.count
|
||||
= nav_tab :scope, 'joined' do
|
||||
= link_to projects_dashboard_path(scope: 'joined') do
|
||||
= link_to projects_dashboard_filter_path(scope: 'joined') do
|
||||
Joined
|
||||
%span.pull-right
|
||||
= current_user.authorized_projects.joined(current_user).count
|
||||
= nav_tab :scope, 'owned' do
|
||||
= link_to projects_dashboard_path(scope: 'owned') do
|
||||
= link_to projects_dashboard_filter_path(scope: 'owned') do
|
||||
Owned
|
||||
%span.pull-right
|
||||
= current_user.owned_projects.count
|
||||
@@ -31,7 +53,7 @@
|
||||
%ul.bordered-list.visibility-filter
|
||||
- Gitlab::VisibilityLevel.values.each do |level|
|
||||
%li{ class: (level.to_s == params[:visibility_level]) ? 'active' : 'light' }
|
||||
= link_to projects_dashboard_path(visibility_level: level) do
|
||||
= link_to projects_dashboard_filter_path(visibility_level: level) do
|
||||
= visibility_level_icon(level)
|
||||
= visibility_level_label(level)
|
||||
|
||||
@@ -41,7 +63,7 @@
|
||||
%ul.bordered-list
|
||||
- @groups.each do |group|
|
||||
%li{ class: (group.name == params[:group]) ? 'active' : 'light' }
|
||||
= link_to projects_dashboard_path(group: group.name) do
|
||||
= link_to projects_dashboard_filter_path(group: group.name) do
|
||||
%i.icon-folder-close-alt
|
||||
= group.name
|
||||
%small.pull-right
|
||||
@@ -55,7 +77,7 @@
|
||||
%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
|
||||
= link_to projects_dashboard_filter_path(scope: params[:scope], label: label.name) do
|
||||
%i.icon-tag
|
||||
= label.name
|
||||
|
||||
|
||||
Reference in New Issue
Block a user