From 512cd02335de9de22aab688743a01fa868229f0d Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> Date: Tue, 6 Aug 2013 21:12:01 +0300 Subject: [PATCH] Dashboard/Group issues and mr pages refactoring --- .../stylesheets/gitlab_bootstrap/nav.scss | 7 +++++ app/contexts/filter_context.rb | 2 +- app/helpers/dashboard_helper.rb | 11 +++---- app/helpers/groups_helper.rb | 16 ---------- app/views/dashboard/_filter.html.haml | 27 ----------------- app/views/dashboard/issues.html.haml | 21 ++------------ app/views/dashboard/merge_requests.html.haml | 2 +- app/views/groups/issues.html.haml | 16 ++-------- app/views/groups/merge_requests.html.haml | 2 +- app/views/shared/_filter.html.haml | 29 +++++++++++++++++++ app/views/shared/_issues.html.haml | 19 ++++++++++++ 11 files changed, 66 insertions(+), 86 deletions(-) delete mode 100644 app/views/dashboard/_filter.html.haml create mode 100644 app/views/shared/_filter.html.haml create mode 100644 app/views/shared/_issues.html.haml diff --git a/app/assets/stylesheets/gitlab_bootstrap/nav.scss b/app/assets/stylesheets/gitlab_bootstrap/nav.scss index de07730361..f75d643aa0 100644 --- a/app/assets/stylesheets/gitlab_bootstrap/nav.scss +++ b/app/assets/stylesheets/gitlab_bootstrap/nav.scss @@ -10,6 +10,7 @@ > li > a { @include border-radius(0); } + &.nav-stacked { > li > a { border-left: 4px solid #EEE; @@ -30,6 +31,12 @@ } } } + + &.nav-pills-small { + > li > a { + padding: 8px 12px; + } + } } .nav-pills > .active > a > i[class^="icon-"] { background: inherit; } diff --git a/app/contexts/filter_context.rb b/app/contexts/filter_context.rb index 401d19b31c..cd054e0c2c 100644 --- a/app/contexts/filter_context.rb +++ b/app/contexts/filter_context.rb @@ -11,7 +11,7 @@ class FilterContext end def apply_filter items - if params[:project_id] + if params[:project_id].present? items = items.where(project_id: params[:project_id]) end diff --git a/app/helpers/dashboard_helper.rb b/app/helpers/dashboard_helper.rb index e3be07c9fe..35c7bcbd2c 100644 --- a/app/helpers/dashboard_helper.rb +++ b/app/helpers/dashboard_helper.rb @@ -1,5 +1,5 @@ module DashboardHelper - def dashboard_filter_path(entity, options={}) + def filter_path(entity, options={}) exist_opts = { status: params[:status], project_id: params[:project_id], @@ -7,12 +7,9 @@ module DashboardHelper options = exist_opts.merge(options) - case entity - when 'issue' then - issues_dashboard_path(options) - when 'merge_request' - merge_requests_dashboard_path(options) - end + path = request.path + path << "?#{options.to_param}" + path end def entities_per_project project, entity diff --git a/app/helpers/groups_helper.rb b/app/helpers/groups_helper.rb index 2ffbff7af8..8573c59dc9 100644 --- a/app/helpers/groups_helper.rb +++ b/app/helpers/groups_helper.rb @@ -1,20 +1,4 @@ module GroupsHelper - def group_filter_path(entity, options={}) - exist_opts = { - status: params[:status], - project_id: params[:project_id], - } - - options = exist_opts.merge(options) - - case entity - when 'issue' then - issues_group_path(@group, options) - when 'merge_request' - merge_requests_group_path(@group, options) - end - end - def remove_user_from_group_message(group, user) "You are going to remove #{user.name} from #{group.name} Group. Are you sure?" end diff --git a/app/views/dashboard/_filter.html.haml b/app/views/dashboard/_filter.html.haml deleted file mode 100644 index d3208e6aad..0000000000 --- a/app/views/dashboard/_filter.html.haml +++ /dev/null @@ -1,27 +0,0 @@ -= form_tag dashboard_filter_path(entity), method: 'get' do - %fieldset - %ul.nav.nav-pills.nav-stacked - %li{class: ("active" if !params[:status])} - = link_to dashboard_filter_path(entity, status: nil) do - Open - %li{class: ("active" if params[:status] == 'closed')} - = link_to dashboard_filter_path(entity, status: 'closed') do - Closed - %li{class: ("active" if params[:status] == 'all')} - = link_to dashboard_filter_path(entity, status: 'all') do - All - - %fieldset - %legend Projects: - %ul.nav.nav-pills.nav-stacked - - @projects.each do |project| - - unless entities_per_project(project, entity).zero? - %li{class: ("active" if params[:project_id] == project.id.to_s)} - = link_to dashboard_filter_path(entity, project_id: project.id) do - = project.name_with_namespace - %small.pull-right= entities_per_project(project, entity) - - %fieldset - %hr - = link_to "Reset", dashboard_filter_path(entity), class: 'btn pull-right' - diff --git a/app/views/dashboard/issues.html.haml b/app/views/dashboard/issues.html.haml index 1041d9d1d5..8b736fb503 100644 --- a/app/views/dashboard/issues.html.haml +++ b/app/views/dashboard/issues.html.haml @@ -8,23 +8,6 @@ .row .span3 - = render 'filter', entity: 'issue' + = render 'shared/filter', entity: 'issue' .span9 - - if @issues.any? - - @issues.group_by(&:project).each do |group| - %div.ui-box - - project = group[0] - .title - = link_to_project project - - %i.icon-angle-right - - = link_to 'issues', project_issues_path(project) - - %ul.well-list.issues-list - - group[1].each do |issue| - = render 'projects/issues/issue', issue: issue - %hr - = paginate @issues, theme: "gitlab" - - else - %p.nothing_here_message Nothing to show here + = render 'shared/issues' diff --git a/app/views/dashboard/merge_requests.html.haml b/app/views/dashboard/merge_requests.html.haml index 77a40b2eef..6ffe54028b 100644 --- a/app/views/dashboard/merge_requests.html.haml +++ b/app/views/dashboard/merge_requests.html.haml @@ -8,6 +8,6 @@ %hr .row .span3 - = render 'filter', entity: 'merge_request' + = render 'shared/filter', entity: 'merge_request' .span9 = render 'shared/merge_requests' diff --git a/app/views/groups/issues.html.haml b/app/views/groups/issues.html.haml index 5c76f1c22e..2785f92e41 100644 --- a/app/views/groups/issues.html.haml +++ b/app/views/groups/issues.html.haml @@ -6,18 +6,6 @@ %hr .row .span3 - = render 'filter', entity: 'issue' + = render 'shared/filter', entity: 'issue' .span9 - - if @issues.any? - - @issues.group_by(&:project).each do |group| - %div.ui-box - - project = group[0] - .title - = link_to_project project - %ul.well-list.issues-list - - group[1].each do |issue| - = render 'projects/issues/issue', issue: issue - %hr - = paginate @issues, theme: "gitlab" - - else - %p.nothing_here_message Nothing to show here + = render 'shared/issues' diff --git a/app/views/groups/merge_requests.html.haml b/app/views/groups/merge_requests.html.haml index eb8497c03f..93a07f4ed8 100644 --- a/app/views/groups/merge_requests.html.haml +++ b/app/views/groups/merge_requests.html.haml @@ -6,6 +6,6 @@ %hr .row .span3 - = render 'filter', entity: 'merge_request' + = render 'shared/filter', entity: 'merge_request' .span9 = render 'shared/merge_requests' diff --git a/app/views/shared/_filter.html.haml b/app/views/shared/_filter.html.haml new file mode 100644 index 0000000000..fc3232e0e0 --- /dev/null +++ b/app/views/shared/_filter.html.haml @@ -0,0 +1,29 @@ += form_tag filter_path(entity), method: 'get' do + %fieldset + %ul.nav.nav-pills.nav-stacked + %li{class: ("active" if params[:status].blank?)} + = link_to filter_path(entity, status: nil) do + Open + %li{class: ("active" if params[:status] == 'closed')} + = link_to filter_path(entity, status: 'closed') do + Closed + %li{class: ("active" if params[:status] == 'all')} + = link_to filter_path(entity, status: 'all') do + All + + %fieldset + %legend Projects: + %ul.nav.nav-pills.nav-pills-small.nav-stacked + - @projects.each do |project| + - unless entities_per_project(project, entity).zero? + %li{class: ("active" if params[:project_id] == project.id.to_s)} + = link_to filter_path(entity, project_id: project.id) do + = project.name_with_namespace + %small.pull-right= entities_per_project(project, entity) + + %fieldset + - if params[:status].present? || params[:project_id].present? + = link_to filter_path(entity, status: nil, project_id: nil), class: 'pull-right cgray' do + %i.icon-remove + Clear filter + diff --git a/app/views/shared/_issues.html.haml b/app/views/shared/_issues.html.haml new file mode 100644 index 0000000000..33f8f5f4ad --- /dev/null +++ b/app/views/shared/_issues.html.haml @@ -0,0 +1,19 @@ +- if @issues.any? + - @issues.group_by(&:project).each do |group| + %div.ui-box + - project = group[0] + .title + = link_to_project project + + %i.icon-angle-right + + = link_to 'issues', project_issues_path(project) + + %ul.well-list.issues-list + - group[1].each do |issue| + = render 'projects/issues/issue', issue: issue + %hr + = paginate @issues, theme: "gitlab" +- else + %p.nothing_here_message Nothing to show here + -- 2.30.9