diff options
| author | Dmitriy Zaporozhets <dzaporozhets@sphereconsultinginc.com> | 2012-11-05 20:12:26 +0200 |
|---|---|---|
| committer | Dmitriy Zaporozhets <dzaporozhets@sphereconsultinginc.com> | 2012-11-05 20:12:26 +0200 |
| commit | f555578414347855be452cc8ee095c1304768c2b (patch) | |
| tree | bc752a4b3798478c837175dc34a3b9cf622e9d00 /app | |
| parent | ba567c8d76dabeb1cd80f0dce3683977a966a9a1 (diff) | |
| download | gitlab-ce-f555578414347855be452cc8ee095c1304768c2b.tar.gz | |
Added EventFilter class. Compeleted first version of dashbaord filtering
Diffstat (limited to 'app')
| -rw-r--r-- | app/assets/images/event_filter_comments.png | bin | 0 -> 750 bytes | |||
| -rw-r--r-- | app/assets/images/event_filter_merged.png | bin | 0 -> 463 bytes | |||
| -rw-r--r-- | app/assets/images/event_filter_push.png | bin | 0 -> 632 bytes | |||
| -rw-r--r-- | app/assets/images/event_filter_team.png | bin | 0 -> 1337 bytes | |||
| -rw-r--r-- | app/assets/javascripts/main.js.coffee | 3 | ||||
| -rw-r--r-- | app/assets/stylesheets/sections/events.scss | 31 | ||||
| -rw-r--r-- | app/controllers/dashboard_controller.rb | 11 | ||||
| -rw-r--r-- | app/helpers/events_helper.rb | 18 | ||||
| -rw-r--r-- | app/views/dashboard/index.html.haml | 7 |
9 files changed, 69 insertions, 1 deletions
diff --git a/app/assets/images/event_filter_comments.png b/app/assets/images/event_filter_comments.png Binary files differnew file mode 100644 index 00000000000..aed113faa7a --- /dev/null +++ b/app/assets/images/event_filter_comments.png diff --git a/app/assets/images/event_filter_merged.png b/app/assets/images/event_filter_merged.png Binary files differnew file mode 100644 index 00000000000..30aea0b6e55 --- /dev/null +++ b/app/assets/images/event_filter_merged.png diff --git a/app/assets/images/event_filter_push.png b/app/assets/images/event_filter_push.png Binary files differnew file mode 100644 index 00000000000..930faee6aa2 --- /dev/null +++ b/app/assets/images/event_filter_push.png diff --git a/app/assets/images/event_filter_team.png b/app/assets/images/event_filter_team.png Binary files differnew file mode 100644 index 00000000000..2dc66c85165 --- /dev/null +++ b/app/assets/images/event_filter_team.png diff --git a/app/assets/javascripts/main.js.coffee b/app/assets/javascripts/main.js.coffee index fb82f799007..04e6b2ef9d1 100644 --- a/app/assets/javascripts/main.js.coffee +++ b/app/assets/javascripts/main.js.coffee @@ -27,6 +27,9 @@ $ -> # Initialize chosen selects $('select.chosen').chosen() + # Initialize tooltips + $('.has_tooltip').tooltip() + # Disable form buttons while a form is submitting $('body').on 'ajax:complete, ajax:beforeSend, submit', 'form', (e) -> buttons = $('[type="submit"]', @) diff --git a/app/assets/stylesheets/sections/events.scss b/app/assets/stylesheets/sections/events.scss index 17df600c1af..f39796e9949 100644 --- a/app/assets/stylesheets/sections/events.scss +++ b/app/assets/stylesheets/sections/events.scss @@ -115,3 +115,34 @@ margin: -3px; } } + +/** + * Event filter + * + */ +.event_filter { + position: absolute; + width: 40px; + + .filter_icon { + float: left; + border-left: 3px solid #4bc; + padding: 7px; + background: #f9f9f9; + margin-bottom: 10px; + img { + width:20px; + } + + &.inactive { + border-left: 3px solid #EEE; + opacity: 0.5; + } + } +} + +.activities { + .content_list { + margin-left:50px; + } +} diff --git a/app/controllers/dashboard_controller.rb b/app/controllers/dashboard_controller.rb index af23f970a6d..012d86764ab 100644 --- a/app/controllers/dashboard_controller.rb +++ b/app/controllers/dashboard_controller.rb @@ -1,12 +1,17 @@ class DashboardController < ApplicationController respond_to :html + before_filter :event_filter, only: :index + def index @groups = Group.where(id: current_user.projects.pluck(:group_id)) @projects = current_user.projects_with_events @projects = @projects.page(params[:page]).per(30) - @events = Event.in_projects(current_user.project_ids).limit(20).offset(params[:offset] || 0) + @events = Event.in_projects(current_user.project_ids) + @events = @event_filter.apply_filter(@events) + @events = @events.limit(20).offset(params[:offset] || 0) + @last_push = current_user.recent_push respond_to do |format| @@ -34,4 +39,8 @@ class DashboardController < ApplicationController format.atom { render layout: false } end end + + def event_filter + @event_filter ||= EventFilter.new(params[:event_filter]) + end end diff --git a/app/helpers/events_helper.rb b/app/helpers/events_helper.rb index 0eb87caadd7..a2548a23e5e 100644 --- a/app/helpers/events_helper.rb +++ b/app/helpers/events_helper.rb @@ -33,4 +33,22 @@ module EventsHelper image_tag event_image_path end end + + def event_filter_link key, tooltip + key = key.to_s + + filter = @event_filter.options key + + inactive = if @event_filter.active? key + nil + else + 'inactive' + end + + content_tag :div, class: "filter_icon #{inactive}" do + link_to dashboard_path(event_filter: filter), class: 'has_tooltip', 'data-original-title' => tooltip do + image_tag "event_filter_#{key}.png" + end + end + end end diff --git a/app/views/dashboard/index.html.haml b/app/views/dashboard/index.html.haml index 6c4ff96bb50..023d3213ff0 100644 --- a/app/views/dashboard/index.html.haml +++ b/app/views/dashboard/index.html.haml @@ -3,6 +3,13 @@ .activities.span8 = render "events/event_last_push", event: @last_push = render 'shared/no_ssh' + + .event_filter + = event_filter_link EventFilter.push, 'Push events' + = event_filter_link EventFilter.merged, 'Merge events' + = event_filter_link EventFilter.comments, 'Comments' + = event_filter_link EventFilter.team, 'Team' + - if @events.any? .content_list= render @events - else |
