Add event filter for group and project show pages
This commit is contained in:
parent
4675ff46e8
commit
17af835387
|
@ -0,0 +1,31 @@
|
||||||
|
class Activities
|
||||||
|
constructor: ->
|
||||||
|
Pager.init 20, true
|
||||||
|
$(".event_filter_link").bind "click", (event) =>
|
||||||
|
event.preventDefault()
|
||||||
|
@toggleFilter($(event.currentTarget))
|
||||||
|
@reloadActivities()
|
||||||
|
|
||||||
|
reloadActivities: ->
|
||||||
|
$(".content_list").html ''
|
||||||
|
Pager.init 20, true
|
||||||
|
|
||||||
|
|
||||||
|
toggleFilter: (sender) ->
|
||||||
|
sender.parent().toggleClass "inactive"
|
||||||
|
event_filters = $.cookie("event_filter")
|
||||||
|
filter = sender.attr("id").split("_")[0]
|
||||||
|
if event_filters
|
||||||
|
event_filters = event_filters.split(",")
|
||||||
|
else
|
||||||
|
event_filters = new Array()
|
||||||
|
|
||||||
|
index = event_filters.indexOf(filter)
|
||||||
|
if index is -1
|
||||||
|
event_filters.push filter
|
||||||
|
else
|
||||||
|
event_filters.splice index, 1
|
||||||
|
|
||||||
|
$.cookie "event_filter", event_filters.join(","), { path: '/' }
|
||||||
|
|
||||||
|
@Activities = Activities
|
|
@ -1,13 +1,7 @@
|
||||||
class Dashboard
|
class Dashboard
|
||||||
constructor: ->
|
constructor: ->
|
||||||
Pager.init 20, true
|
|
||||||
@initSidebarTab()
|
@initSidebarTab()
|
||||||
|
|
||||||
$(".event_filter_link").bind "click", (event) =>
|
|
||||||
event.preventDefault()
|
|
||||||
@toggleFilter($(event.currentTarget))
|
|
||||||
@reloadActivities()
|
|
||||||
|
|
||||||
$(".dash-filter").keyup ->
|
$(".dash-filter").keyup ->
|
||||||
terms = $(this).val()
|
terms = $(this).val()
|
||||||
uiBox = $(this).parents('.ui-box').first()
|
uiBox = $(this).parents('.ui-box').first()
|
||||||
|
@ -24,27 +18,6 @@ class Dashboard
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
reloadActivities: ->
|
|
||||||
$(".content_list").html ''
|
|
||||||
Pager.init 20, true
|
|
||||||
|
|
||||||
toggleFilter: (sender) ->
|
|
||||||
sender.parent().toggleClass "inactive"
|
|
||||||
event_filters = $.cookie("event_filter")
|
|
||||||
filter = sender.attr("id").split("_")[0]
|
|
||||||
if event_filters
|
|
||||||
event_filters = event_filters.split(",")
|
|
||||||
else
|
|
||||||
event_filters = new Array()
|
|
||||||
|
|
||||||
index = event_filters.indexOf(filter)
|
|
||||||
if index is -1
|
|
||||||
event_filters.push filter
|
|
||||||
else
|
|
||||||
event_filters.splice index, 1
|
|
||||||
|
|
||||||
$.cookie "event_filter", event_filters.join(","), { path: '/' }
|
|
||||||
|
|
||||||
initSidebarTab: ->
|
initSidebarTab: ->
|
||||||
key = "dashboard_sidebar_filter"
|
key = "dashboard_sidebar_filter"
|
||||||
|
|
||||||
|
|
|
@ -20,10 +20,11 @@ class Dispatcher
|
||||||
Issues.init()
|
Issues.init()
|
||||||
when 'dashboard:show'
|
when 'dashboard:show'
|
||||||
new Dashboard()
|
new Dashboard()
|
||||||
|
new Activities()
|
||||||
when 'projects:commit:show'
|
when 'projects:commit:show'
|
||||||
new Commit()
|
new Commit()
|
||||||
when 'groups:show', 'projects:show'
|
when 'groups:show', 'projects:show'
|
||||||
Pager.init(20, true)
|
new Activities()
|
||||||
when 'projects:new', 'projects:edit'
|
when 'projects:new', 'projects:edit'
|
||||||
new Project()
|
new Project()
|
||||||
when 'projects:walls:show'
|
when 'projects:walls:show'
|
||||||
|
|
|
@ -155,4 +155,9 @@ class ApplicationController < ActionController::Base
|
||||||
redirect_to new_profile_password_path and return
|
redirect_to new_profile_password_path and return
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def event_filter
|
||||||
|
filters = cookies['event_filter'].split(',') if cookies['event_filter'].present?
|
||||||
|
@event_filter ||= EventFilter.new(filters)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -66,9 +66,4 @@ class DashboardController < ApplicationController
|
||||||
def load_projects
|
def load_projects
|
||||||
@projects = current_user.authorized_projects.sorted_by_activity
|
@projects = current_user.authorized_projects.sorted_by_activity
|
||||||
end
|
end
|
||||||
|
|
||||||
def event_filter
|
|
||||||
filters = cookies['event_filter'].split(',') if cookies['event_filter'].present?
|
|
||||||
@event_filter ||= EventFilter.new(filters)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -31,7 +31,9 @@ class GroupsController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def show
|
def show
|
||||||
@events = Event.in_projects(project_ids).limit(20).offset(params[:offset] || 0)
|
@events = Event.in_projects(project_ids)
|
||||||
|
@events = event_filter.apply_filter(@events)
|
||||||
|
@events = @events.limit(20).offset(params[:offset] || 0)
|
||||||
@last_push = current_user.recent_push
|
@last_push = current_user.recent_push
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
|
|
|
@ -55,7 +55,10 @@ class ProjectsController < Projects::ApplicationController
|
||||||
|
|
||||||
def show
|
def show
|
||||||
limit = (params[:limit] || 20).to_i
|
limit = (params[:limit] || 20).to_i
|
||||||
@events = @project.events.recent.limit(limit).offset(params[:offset] || 0)
|
|
||||||
|
@events = @project.events.recent
|
||||||
|
@events = event_filter.apply_filter(@events)
|
||||||
|
@events = @events.limit(limit).offset(params[:offset] || 0)
|
||||||
|
|
||||||
# Ensure project default branch is set if it possible
|
# Ensure project default branch is set if it possible
|
||||||
# Normally it defined on push or during creation
|
# Normally it defined on push or during creation
|
||||||
|
|
|
@ -28,7 +28,7 @@ module EventsHelper
|
||||||
end
|
end
|
||||||
|
|
||||||
content_tag :div, class: "filter_icon #{inactive}" do
|
content_tag :div, class: "filter_icon #{inactive}" do
|
||||||
link_to dashboard_path, class: 'has_tooltip event_filter_link', id: "#{key}_event_filter", 'data-original-title' => tooltip do
|
link_to request.path, class: 'has_tooltip event_filter_link', id: "#{key}_event_filter", 'data-original-title' => tooltip do
|
||||||
content_tag :i, nil, class: icon_for_event[key]
|
content_tag :i, nil, class: icon_for_event[key]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,10 +1,5 @@
|
||||||
= render "events/event_last_push", event: @last_push
|
= render "events/event_last_push", event: @last_push
|
||||||
|
= render 'shared/event_filter'
|
||||||
.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?
|
- if @events.any?
|
||||||
.content_list
|
.content_list
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
|
|
||||||
%span.cgray You will only see events from projects in this group
|
%span.cgray You will only see events from projects in this group
|
||||||
%hr
|
%hr
|
||||||
|
= render 'shared/event_filter'
|
||||||
- if @events.any?
|
- if @events.any?
|
||||||
.content_list
|
.content_list
|
||||||
- else
|
- else
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
.row
|
.row
|
||||||
.span9
|
.span9
|
||||||
= render "events/event_last_push", event: @last_push
|
= render "events/event_last_push", event: @last_push
|
||||||
|
= render 'shared/event_filter'
|
||||||
.content_list
|
.content_list
|
||||||
.loading.hide
|
.loading.hide
|
||||||
.span3
|
.span3
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
.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'
|
Loading…
Reference in New Issue