mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
Staff action logs can be filtered to changes of one site setting
This commit is contained in:
parent
31dac4b197
commit
3abeb5f793
@ -18,7 +18,7 @@ Discourse.AdminLogsStaffActionLogsController = Ember.ArrayController.extend(Disc
|
|||||||
self.set('content', result);
|
self.set('content', result);
|
||||||
self.set('loading', false);
|
self.set('loading', false);
|
||||||
});
|
});
|
||||||
}.observes('filters.action_name', 'filters.staff_user', 'filters.target_user'),
|
}.observes('filters.action_name', 'filters.staff_user', 'filters.target_user', 'filters.subject'),
|
||||||
|
|
||||||
toggleFullDetails: function(target) {
|
toggleFullDetails: function(target) {
|
||||||
target.set('showFullDetails', !target.get('showFullDetails'));
|
target.set('showFullDetails', !target.get('showFullDetails'));
|
||||||
@ -26,7 +26,7 @@ Discourse.AdminLogsStaffActionLogsController = Ember.ArrayController.extend(Disc
|
|||||||
|
|
||||||
filtersExists: function() {
|
filtersExists: function() {
|
||||||
return (_.size(this.get('filters')) > 0);
|
return (_.size(this.get('filters')) > 0);
|
||||||
}.property('filters.action_name', 'filters.staff_user', 'filters.target_user'),
|
}.property('filters.action_name', 'filters.staff_user', 'filters.target_user', 'filters.subject'),
|
||||||
|
|
||||||
clearFilter: function(key) {
|
clearFilter: function(key) {
|
||||||
delete this.get('filters')[key];
|
delete this.get('filters')[key];
|
||||||
@ -55,5 +55,9 @@ Discourse.AdminLogsStaffActionLogsController = Ember.ArrayController.extend(Disc
|
|||||||
|
|
||||||
filterByTargetUser: function(target_user) {
|
filterByTargetUser: function(target_user) {
|
||||||
this.set('filters.target_user', target_user.username);
|
this.set('filters.target_user', target_user.username);
|
||||||
|
},
|
||||||
|
|
||||||
|
filterBySubject: function(subject) {
|
||||||
|
this.set('filters.subject', subject);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -20,6 +20,12 @@
|
|||||||
<i class="icon icon-remove-sign"></i>
|
<i class="icon icon-remove-sign"></i>
|
||||||
</a>
|
</a>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
{{#if filters.subject}}
|
||||||
|
<a {{action clearFilter "subject"}} class="filter">
|
||||||
|
<span class="label">{{i18n admin.logs.staff_actions.subject}}</span>: {{filters.subject}}
|
||||||
|
<i class="icon icon-remove-sign"></i>
|
||||||
|
</a>
|
||||||
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class='table staff-actions'>
|
<div class='table staff-actions'>
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
<a {{action filterByTargetUser target_user}}>{{target_user.username}}</a>
|
<a {{action filterByTargetUser target_user}}>{{target_user.username}}</a>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if subject}}
|
{{#if subject}}
|
||||||
<span {{bindAttr title="subject"}}>{{subject}}</span>
|
<a {{action filterBySubject subject}} {{bindAttr title="subject"}}>{{subject}}</a>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
<div class="col value created_at">{{unboundAgeWithTooltip created_at}}</div>
|
<div class="col value created_at">{{unboundAgeWithTooltip created_at}}</div>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
class Admin::StaffActionLogsController < Admin::AdminController
|
class Admin::StaffActionLogsController < Admin::AdminController
|
||||||
|
|
||||||
def index
|
def index
|
||||||
staff_action_logs = StaffActionLog.with_filters(params.slice(:action_name, :staff_user, :target_user)).limit(200).order('id DESC').includes(:staff_user, :target_user).to_a
|
staff_action_logs = StaffActionLog.with_filters(params.slice(:action_name, :staff_user, :target_user, :subject)).limit(200).order('id DESC').includes(:staff_user, :target_user).to_a
|
||||||
render_serialized(staff_action_logs, StaffActionLogSerializer)
|
render_serialized(staff_action_logs, StaffActionLogSerializer)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@ class StaffActionLog < ActiveRecord::Base
|
|||||||
query = query.where("#{key.to_s}_id = ?", obj_id)
|
query = query.where("#{key.to_s}_id = ?", obj_id)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
query = query.where("subject = ?", filters[:subject]) if filters[:subject]
|
||||||
query
|
query
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
class AddSubjectIndexToStaffActionLogs < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_index :staff_action_logs, [:subject, :id]
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user