Merge branch 'fix-all-dashboard' into 'master'
Don't whitelist events for all filter Closes #24826 See merge request !7673
This commit is contained in:
commit
564b166236
|
@ -4,6 +4,8 @@
|
||||||
= event_filter_link EventFilter.push, 'Push events'
|
= event_filter_link EventFilter.push, 'Push events'
|
||||||
- if event_filter_visible(:merge_requests)
|
- if event_filter_visible(:merge_requests)
|
||||||
= event_filter_link EventFilter.merged, 'Merge events'
|
= event_filter_link EventFilter.merged, 'Merge events'
|
||||||
|
- if event_filter_visible(:issues)
|
||||||
|
= event_filter_link EventFilter.issue, 'Issue events'
|
||||||
- if event_filter_visible(:issues)
|
- if event_filter_visible(:issues)
|
||||||
= event_filter_link EventFilter.comments, 'Comments'
|
= event_filter_link EventFilter.comments, 'Comments'
|
||||||
= event_filter_link EventFilter.team, 'Team'
|
= event_filter_link EventFilter.team, 'Team'
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
---
|
||||||
|
title: Add issue events filter and make all really show all events
|
||||||
|
merge_request: 7673
|
||||||
|
author: Oxan van Leeuwen
|
|
@ -14,6 +14,10 @@ class EventFilter
|
||||||
'merged'
|
'merged'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def issue
|
||||||
|
'issue'
|
||||||
|
end
|
||||||
|
|
||||||
def comments
|
def comments
|
||||||
'comments'
|
'comments'
|
||||||
end
|
end
|
||||||
|
@ -32,32 +36,20 @@ class EventFilter
|
||||||
end
|
end
|
||||||
|
|
||||||
def apply_filter(events)
|
def apply_filter(events)
|
||||||
return events unless params.present?
|
return events if params.blank? || params == EventFilter.all
|
||||||
|
|
||||||
filter = params.dup
|
case params
|
||||||
actions = []
|
|
||||||
|
|
||||||
case filter
|
|
||||||
when EventFilter.push
|
when EventFilter.push
|
||||||
actions = [Event::PUSHED]
|
events.where(action: Event::PUSHED)
|
||||||
when EventFilter.merged
|
when EventFilter.merged
|
||||||
actions = [Event::MERGED]
|
events.where(action: Event::MERGED)
|
||||||
when EventFilter.comments
|
when EventFilter.comments
|
||||||
actions = [Event::COMMENTED]
|
events.where(action: Event::COMMENTED)
|
||||||
when EventFilter.team
|
when EventFilter.team
|
||||||
actions = [Event::JOINED, Event::LEFT, Event::EXPIRED]
|
events.where(action: [Event::JOINED, Event::LEFT, Event::EXPIRED])
|
||||||
when EventFilter.all
|
when EventFilter.issue
|
||||||
actions = [
|
events.where(action: [Event::CREATED, Event::UPDATED, Event::CLOSED, Event::REOPENED])
|
||||||
Event::PUSHED,
|
|
||||||
Event::MERGED,
|
|
||||||
Event::COMMENTED,
|
|
||||||
Event::JOINED,
|
|
||||||
Event::LEFT,
|
|
||||||
Event::EXPIRED
|
|
||||||
]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
events.where(action: actions)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def options(key)
|
def options(key)
|
||||||
|
@ -73,6 +65,10 @@ class EventFilter
|
||||||
end
|
end
|
||||||
|
|
||||||
def active?(key)
|
def active?(key)
|
||||||
params.include? key
|
if params.present?
|
||||||
|
params.include? key
|
||||||
|
else
|
||||||
|
key == EventFilter.all
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -11,6 +11,10 @@
|
||||||
%a.event-filter-link{ id: "merged_event_filter", title: "Filter by merge events", href: "/dashboard/activity"}
|
%a.event-filter-link{ id: "merged_event_filter", title: "Filter by merge events", href: "/dashboard/activity"}
|
||||||
%span
|
%span
|
||||||
Merge events
|
Merge events
|
||||||
|
%li
|
||||||
|
%a.event-filter-link{ id: "issue_event_filter", title: "Filter by issue events", href: "/dashboard/activity"}
|
||||||
|
%span
|
||||||
|
Issue events
|
||||||
%li
|
%li
|
||||||
%a.event-filter-link{ id: "comments_event_filter", title: "Filter by comments", href: "/dashboard/activity"}
|
%a.event-filter-link{ id: "comments_event_filter", title: "Filter by comments", href: "/dashboard/activity"}
|
||||||
%span
|
%span
|
||||||
|
|
|
@ -7,6 +7,10 @@ describe EventFilter, lib: true do
|
||||||
|
|
||||||
let!(:push_event) { create(:event, action: Event::PUSHED, project: public_project, target: public_project, author: source_user) }
|
let!(:push_event) { create(:event, action: Event::PUSHED, project: public_project, target: public_project, author: source_user) }
|
||||||
let!(:merged_event) { create(:event, action: Event::MERGED, project: public_project, target: public_project, author: source_user) }
|
let!(:merged_event) { create(:event, action: Event::MERGED, project: public_project, target: public_project, author: source_user) }
|
||||||
|
let!(:created_event) { create(:event, action: Event::CREATED, project: public_project, target: public_project, author: source_user) }
|
||||||
|
let!(:updated_event) { create(:event, action: Event::UPDATED, project: public_project, target: public_project, author: source_user) }
|
||||||
|
let!(:closed_event) { create(:event, action: Event::CLOSED, project: public_project, target: public_project, author: source_user) }
|
||||||
|
let!(:reopened_event) { create(:event, action: Event::REOPENED, project: public_project, target: public_project, author: source_user) }
|
||||||
let!(:comments_event) { create(:event, action: Event::COMMENTED, project: public_project, target: public_project, author: source_user) }
|
let!(:comments_event) { create(:event, action: Event::COMMENTED, project: public_project, target: public_project, author: source_user) }
|
||||||
let!(:joined_event) { create(:event, action: Event::JOINED, project: public_project, target: public_project, author: source_user) }
|
let!(:joined_event) { create(:event, action: Event::JOINED, project: public_project, target: public_project, author: source_user) }
|
||||||
let!(:left_event) { create(:event, action: Event::LEFT, project: public_project, target: public_project, author: source_user) }
|
let!(:left_event) { create(:event, action: Event::LEFT, project: public_project, target: public_project, author: source_user) }
|
||||||
|
@ -21,6 +25,11 @@ describe EventFilter, lib: true do
|
||||||
expect(events).to contain_exactly(merged_event)
|
expect(events).to contain_exactly(merged_event)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'applies issue filter' do
|
||||||
|
events = EventFilter.new(EventFilter.issue).apply_filter(Event.all)
|
||||||
|
expect(events).to contain_exactly(created_event, updated_event, closed_event, reopened_event)
|
||||||
|
end
|
||||||
|
|
||||||
it 'applies comments filter' do
|
it 'applies comments filter' do
|
||||||
events = EventFilter.new(EventFilter.comments).apply_filter(Event.all)
|
events = EventFilter.new(EventFilter.comments).apply_filter(Event.all)
|
||||||
expect(events).to contain_exactly(comments_event)
|
expect(events).to contain_exactly(comments_event)
|
||||||
|
@ -33,17 +42,17 @@ describe EventFilter, lib: true do
|
||||||
|
|
||||||
it 'applies all filter' do
|
it 'applies all filter' do
|
||||||
events = EventFilter.new(EventFilter.all).apply_filter(Event.all)
|
events = EventFilter.new(EventFilter.all).apply_filter(Event.all)
|
||||||
expect(events).to contain_exactly(push_event, merged_event, comments_event, joined_event, left_event)
|
expect(events).to contain_exactly(push_event, merged_event, created_event, updated_event, closed_event, reopened_event, comments_event, joined_event, left_event)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'applies no filter' do
|
it 'applies no filter' do
|
||||||
events = EventFilter.new(nil).apply_filter(Event.all)
|
events = EventFilter.new(nil).apply_filter(Event.all)
|
||||||
expect(events).to contain_exactly(push_event, merged_event, comments_event, joined_event, left_event)
|
expect(events).to contain_exactly(push_event, merged_event, created_event, updated_event, closed_event, reopened_event, comments_event, joined_event, left_event)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'applies unknown filter' do
|
it 'applies unknown filter' do
|
||||||
events = EventFilter.new('').apply_filter(Event.all)
|
events = EventFilter.new('').apply_filter(Event.all)
|
||||||
expect(events).to contain_exactly(push_event, merged_event, comments_event, joined_event, left_event)
|
expect(events).to contain_exactly(push_event, merged_event, created_event, updated_event, closed_event, reopened_event, comments_event, joined_event, left_event)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue