Commit 512cd02335de9de22aab688743a01fa868229f0d
1 parent
21c70354
Exists in
master
and in
4 other branches
Dashboard/Group issues and mr pages refactoring
Showing
11 changed files
with
66 additions
and
86 deletions
Show diff stats
app/assets/stylesheets/gitlab_bootstrap/nav.scss
| @@ -10,6 +10,7 @@ | @@ -10,6 +10,7 @@ | ||
| 10 | > li > a { | 10 | > li > a { |
| 11 | @include border-radius(0); | 11 | @include border-radius(0); |
| 12 | } | 12 | } |
| 13 | + | ||
| 13 | &.nav-stacked { | 14 | &.nav-stacked { |
| 14 | > li > a { | 15 | > li > a { |
| 15 | border-left: 4px solid #EEE; | 16 | border-left: 4px solid #EEE; |
| @@ -30,6 +31,12 @@ | @@ -30,6 +31,12 @@ | ||
| 30 | } | 31 | } |
| 31 | } | 32 | } |
| 32 | } | 33 | } |
| 34 | + | ||
| 35 | + &.nav-pills-small { | ||
| 36 | + > li > a { | ||
| 37 | + padding: 8px 12px; | ||
| 38 | + } | ||
| 39 | + } | ||
| 33 | } | 40 | } |
| 34 | 41 | ||
| 35 | .nav-pills > .active > a > i[class^="icon-"] { background: inherit; } | 42 | .nav-pills > .active > a > i[class^="icon-"] { background: inherit; } |
app/contexts/filter_context.rb
| @@ -11,7 +11,7 @@ class FilterContext | @@ -11,7 +11,7 @@ class FilterContext | ||
| 11 | end | 11 | end |
| 12 | 12 | ||
| 13 | def apply_filter items | 13 | def apply_filter items |
| 14 | - if params[:project_id] | 14 | + if params[:project_id].present? |
| 15 | items = items.where(project_id: params[:project_id]) | 15 | items = items.where(project_id: params[:project_id]) |
| 16 | end | 16 | end |
| 17 | 17 |
app/helpers/dashboard_helper.rb
| 1 | module DashboardHelper | 1 | module DashboardHelper |
| 2 | - def dashboard_filter_path(entity, options={}) | 2 | + def filter_path(entity, options={}) |
| 3 | exist_opts = { | 3 | exist_opts = { |
| 4 | status: params[:status], | 4 | status: params[:status], |
| 5 | project_id: params[:project_id], | 5 | project_id: params[:project_id], |
| @@ -7,12 +7,9 @@ module DashboardHelper | @@ -7,12 +7,9 @@ module DashboardHelper | ||
| 7 | 7 | ||
| 8 | options = exist_opts.merge(options) | 8 | options = exist_opts.merge(options) |
| 9 | 9 | ||
| 10 | - case entity | ||
| 11 | - when 'issue' then | ||
| 12 | - issues_dashboard_path(options) | ||
| 13 | - when 'merge_request' | ||
| 14 | - merge_requests_dashboard_path(options) | ||
| 15 | - end | 10 | + path = request.path |
| 11 | + path << "?#{options.to_param}" | ||
| 12 | + path | ||
| 16 | end | 13 | end |
| 17 | 14 | ||
| 18 | def entities_per_project project, entity | 15 | def entities_per_project project, entity |
app/helpers/groups_helper.rb
| 1 | module GroupsHelper | 1 | module GroupsHelper |
| 2 | - def group_filter_path(entity, options={}) | ||
| 3 | - exist_opts = { | ||
| 4 | - status: params[:status], | ||
| 5 | - project_id: params[:project_id], | ||
| 6 | - } | ||
| 7 | - | ||
| 8 | - options = exist_opts.merge(options) | ||
| 9 | - | ||
| 10 | - case entity | ||
| 11 | - when 'issue' then | ||
| 12 | - issues_group_path(@group, options) | ||
| 13 | - when 'merge_request' | ||
| 14 | - merge_requests_group_path(@group, options) | ||
| 15 | - end | ||
| 16 | - end | ||
| 17 | - | ||
| 18 | def remove_user_from_group_message(group, user) | 2 | def remove_user_from_group_message(group, user) |
| 19 | "You are going to remove #{user.name} from #{group.name} Group. Are you sure?" | 3 | "You are going to remove #{user.name} from #{group.name} Group. Are you sure?" |
| 20 | end | 4 | end |
app/views/dashboard/_filter.html.haml
| @@ -1,27 +0,0 @@ | @@ -1,27 +0,0 @@ | ||
| 1 | -= form_tag dashboard_filter_path(entity), method: 'get' do | ||
| 2 | - %fieldset | ||
| 3 | - %ul.nav.nav-pills.nav-stacked | ||
| 4 | - %li{class: ("active" if !params[:status])} | ||
| 5 | - = link_to dashboard_filter_path(entity, status: nil) do | ||
| 6 | - Open | ||
| 7 | - %li{class: ("active" if params[:status] == 'closed')} | ||
| 8 | - = link_to dashboard_filter_path(entity, status: 'closed') do | ||
| 9 | - Closed | ||
| 10 | - %li{class: ("active" if params[:status] == 'all')} | ||
| 11 | - = link_to dashboard_filter_path(entity, status: 'all') do | ||
| 12 | - All | ||
| 13 | - | ||
| 14 | - %fieldset | ||
| 15 | - %legend Projects: | ||
| 16 | - %ul.nav.nav-pills.nav-stacked | ||
| 17 | - - @projects.each do |project| | ||
| 18 | - - unless entities_per_project(project, entity).zero? | ||
| 19 | - %li{class: ("active" if params[:project_id] == project.id.to_s)} | ||
| 20 | - = link_to dashboard_filter_path(entity, project_id: project.id) do | ||
| 21 | - = project.name_with_namespace | ||
| 22 | - %small.pull-right= entities_per_project(project, entity) | ||
| 23 | - | ||
| 24 | - %fieldset | ||
| 25 | - %hr | ||
| 26 | - = link_to "Reset", dashboard_filter_path(entity), class: 'btn pull-right' | ||
| 27 | - |
app/views/dashboard/issues.html.haml
| @@ -8,23 +8,6 @@ | @@ -8,23 +8,6 @@ | ||
| 8 | 8 | ||
| 9 | .row | 9 | .row |
| 10 | .span3 | 10 | .span3 |
| 11 | - = render 'filter', entity: 'issue' | 11 | + = render 'shared/filter', entity: 'issue' |
| 12 | .span9 | 12 | .span9 |
| 13 | - - if @issues.any? | ||
| 14 | - - @issues.group_by(&:project).each do |group| | ||
| 15 | - %div.ui-box | ||
| 16 | - - project = group[0] | ||
| 17 | - .title | ||
| 18 | - = link_to_project project | ||
| 19 | - | ||
| 20 | - %i.icon-angle-right | ||
| 21 | - | ||
| 22 | - = link_to 'issues', project_issues_path(project) | ||
| 23 | - | ||
| 24 | - %ul.well-list.issues-list | ||
| 25 | - - group[1].each do |issue| | ||
| 26 | - = render 'projects/issues/issue', issue: issue | ||
| 27 | - %hr | ||
| 28 | - = paginate @issues, theme: "gitlab" | ||
| 29 | - - else | ||
| 30 | - %p.nothing_here_message Nothing to show here | 13 | + = render 'shared/issues' |
app/views/dashboard/merge_requests.html.haml
app/views/groups/issues.html.haml
| @@ -6,18 +6,6 @@ | @@ -6,18 +6,6 @@ | ||
| 6 | %hr | 6 | %hr |
| 7 | .row | 7 | .row |
| 8 | .span3 | 8 | .span3 |
| 9 | - = render 'filter', entity: 'issue' | 9 | + = render 'shared/filter', entity: 'issue' |
| 10 | .span9 | 10 | .span9 |
| 11 | - - if @issues.any? | ||
| 12 | - - @issues.group_by(&:project).each do |group| | ||
| 13 | - %div.ui-box | ||
| 14 | - - project = group[0] | ||
| 15 | - .title | ||
| 16 | - = link_to_project project | ||
| 17 | - %ul.well-list.issues-list | ||
| 18 | - - group[1].each do |issue| | ||
| 19 | - = render 'projects/issues/issue', issue: issue | ||
| 20 | - %hr | ||
| 21 | - = paginate @issues, theme: "gitlab" | ||
| 22 | - - else | ||
| 23 | - %p.nothing_here_message Nothing to show here | 11 | + = render 'shared/issues' |
app/views/groups/merge_requests.html.haml
| @@ -0,0 +1,29 @@ | @@ -0,0 +1,29 @@ | ||
| 1 | += form_tag filter_path(entity), method: 'get' do | ||
| 2 | + %fieldset | ||
| 3 | + %ul.nav.nav-pills.nav-stacked | ||
| 4 | + %li{class: ("active" if params[:status].blank?)} | ||
| 5 | + = link_to filter_path(entity, status: nil) do | ||
| 6 | + Open | ||
| 7 | + %li{class: ("active" if params[:status] == 'closed')} | ||
| 8 | + = link_to filter_path(entity, status: 'closed') do | ||
| 9 | + Closed | ||
| 10 | + %li{class: ("active" if params[:status] == 'all')} | ||
| 11 | + = link_to filter_path(entity, status: 'all') do | ||
| 12 | + All | ||
| 13 | + | ||
| 14 | + %fieldset | ||
| 15 | + %legend Projects: | ||
| 16 | + %ul.nav.nav-pills.nav-pills-small.nav-stacked | ||
| 17 | + - @projects.each do |project| | ||
| 18 | + - unless entities_per_project(project, entity).zero? | ||
| 19 | + %li{class: ("active" if params[:project_id] == project.id.to_s)} | ||
| 20 | + = link_to filter_path(entity, project_id: project.id) do | ||
| 21 | + = project.name_with_namespace | ||
| 22 | + %small.pull-right= entities_per_project(project, entity) | ||
| 23 | + | ||
| 24 | + %fieldset | ||
| 25 | + - if params[:status].present? || params[:project_id].present? | ||
| 26 | + = link_to filter_path(entity, status: nil, project_id: nil), class: 'pull-right cgray' do | ||
| 27 | + %i.icon-remove | ||
| 28 | + Clear filter | ||
| 29 | + |
| @@ -0,0 +1,19 @@ | @@ -0,0 +1,19 @@ | ||
| 1 | +- if @issues.any? | ||
| 2 | + - @issues.group_by(&:project).each do |group| | ||
| 3 | + %div.ui-box | ||
| 4 | + - project = group[0] | ||
| 5 | + .title | ||
| 6 | + = link_to_project project | ||
| 7 | + | ||
| 8 | + %i.icon-angle-right | ||
| 9 | + | ||
| 10 | + = link_to 'issues', project_issues_path(project) | ||
| 11 | + | ||
| 12 | + %ul.well-list.issues-list | ||
| 13 | + - group[1].each do |issue| | ||
| 14 | + = render 'projects/issues/issue', issue: issue | ||
| 15 | + %hr | ||
| 16 | + = paginate @issues, theme: "gitlab" | ||
| 17 | +- else | ||
| 18 | + %p.nothing_here_message Nothing to show here | ||
| 19 | + |