Add filter by action to staff logs page

This commit is contained in:
Neil Lalonde
2013-08-09 10:06:02 -04:00
parent 33bddbff85
commit 90a3bcf6ff
9 changed files with 68 additions and 24 deletions

View File

@@ -8,11 +8,12 @@
**/
Discourse.AdminLogsStaffActionLogsController = Ember.ArrayController.extend(Discourse.Presence, {
loading: false,
filters: null,
show: function() {
show: function(filters) {
var self = this;
this.set('loading', true);
Discourse.StaffActionLog.findAll().then(function(result) {
Discourse.StaffActionLog.findAll(this.get('filters')).then(function(result) {
self.set('content', result);
self.set('loading', false);
});
@@ -20,5 +21,23 @@ Discourse.AdminLogsStaffActionLogsController = Ember.ArrayController.extend(Disc
toggleFullDetails: function(target) {
target.set('showFullDetails', !target.get('showFullDetails'));
},
clearFiltersClass: function() {
if (this.get('filters') === null) {
return 'invisible';
} else {
return '';
}
}.property('filters'),
clearFilters: function() {
this.set('filters', null);
this.show();
},
filterByAction: function(action) {
this.set('filters', {action_name: action});
this.show();
}
});

View File

@@ -36,8 +36,8 @@ Discourse.StaffActionLog.reopenClass({
return this._super(attrs);
},
findAll: function(filter) {
return Discourse.ajax("/admin/logs/staff_action_logs.json").then(function(staff_actions) {
findAll: function(filters) {
return Discourse.ajax("/admin/logs/staff_action_logs.json", { data: filters }).then(function(staff_actions) {
return staff_actions.map(function(s) {
return Discourse.StaffActionLog.create(s);
});

View File

@@ -1,3 +1,5 @@
<p>{{i18n admin.logs.blocked_emails.description}}</p>
{{#if loading}}
<div class='admin-loading'>{{i18n loading}}</div>
{{else}}

View File

@@ -1,21 +1,28 @@
{{#if loading}}
<div class='admin-loading'>{{i18n loading}}</div>
{{else}}
{{#if model.length}}
<div class='table staff-actions'>
<div class="heading-container">
<div class="col heading action">{{i18n admin.logs.action}}</div>
<div class="col heading staff_user">{{i18n admin.logs.staff_actions.staff_user}}</div>
<div class="col heading target_user">{{i18n admin.logs.staff_actions.target_user}}</div>
<div class="col heading created_at">{{i18n admin.logs.staff_actions.when}}</div>
<div class="col heading context">{{i18n admin.logs.staff_actions.context}}</div>
<div class="col heading details">{{i18n admin.logs.staff_actions.details}}</div>
<div class="clearfix"></div>
</div>
{{view Discourse.StaffActionLogsListView contentBinding="controller"}}
</div>
<p>
<a {{action clearFilters}} {{bindAttr class="clearFiltersClass"}}>{{i18n admin.logs.staff_actions.clear_filters}}</a>
</p>
<div class='table staff-actions'>
<div class="heading-container">
<div class="col heading action">{{i18n admin.logs.action}}</div>
<div class="col heading staff_user">{{i18n admin.logs.staff_actions.staff_user}}</div>
<div class="col heading target_user">{{i18n admin.logs.staff_actions.target_user}}</div>
<div class="col heading created_at">{{i18n admin.logs.staff_actions.when}}</div>
<div class="col heading context">{{i18n admin.logs.staff_actions.context}}</div>
<div class="col heading details">{{i18n admin.logs.staff_actions.details}}</div>
<div class="clearfix"></div>
</div>
{{#if loading}}
<br/>
<div class='admin-loading'>{{i18n loading}}</div>
{{else}}
{{i18n search.no_results}}
{{#if model.length}}
{{view Discourse.StaffActionLogsListView contentBinding="controller"}}
{{else}}
{{i18n search.no_results}}
{{/if}}
{{/if}}
{{/if}}
</div>

View File

@@ -1,4 +1,6 @@
<div class="col value action">{{actionName}}</div>
<div class="col value action">
<a {{action filterByAction action_name}}>{{actionName}}</a>
</div>
<div class="col value staff_user">
{{#linkTo 'adminUser' staff_user}}{{avatar staff_user imageSize="tiny"}}{{/linkTo}}
{{#linkTo 'adminUser' staff_user}}{{staff_user.username}}{{/linkTo}}