Link suspensions to the staff logs page

This commit is contained in:
Robin Ward
2018-01-26 15:40:03 -05:00
parent ee155bd4f2
commit 36d836ba40
5 changed files with 33 additions and 15 deletions

View File

@ -64,6 +64,12 @@ export default Ember.Controller.extend(CanCheckEmails, {
anonymize() { return this.get('model').anonymize(); }, anonymize() { return this.get('model').anonymize(); },
destroy() { return this.get('model').destroy(); }, destroy() { return this.get('model').destroy(); },
viewActionLogs() {
this.get('adminTools').showActionLogs(this, {
target_user: this.get('model.username'),
});
},
showFlagsReceived() { showFlagsReceived() {
this.get('adminTools').showFlagsReceived(this.get('model')); this.get('adminTools').showFlagsReceived(this.get('model'));
}, },

View File

@ -21,15 +21,5 @@ export default Discourse.Route.extend({
availableGroups: this._availableGroups, availableGroups: this._availableGroups,
model model
}); });
},
actions: {
viewActionLogs(username) {
const controller = this.controllerFor('adminLogs.staffActionLogs');
this.transitionTo('adminLogs.staffActionLogs').then(() => {
controller.set('filters', Ember.Object.create());
controller._changeFilters({ target_user: username });
});
}
} }
}); });

View File

@ -17,6 +17,14 @@ export default Ember.Service.extend({
this.siteSettings = getOwner(this).lookup('site-settings:main'); this.siteSettings = getOwner(this).lookup('site-settings:main');
}, },
showActionLogs(target, filters) {
const controller = getOwner(target).lookup('controller:adminLogs.staffActionLogs');
target.transitionToRoute('adminLogs.staffActionLogs').then(() => {
controller.set('filters', Ember.Object.create());
controller._changeFilters(filters);
});
},
showFlagsReceived(user) { showFlagsReceived(user) {
showModal(`admin-flags-received`, { admin: true, model: user }); showModal(`admin-flags-received`, { admin: true, model: user });
}, },
@ -25,6 +33,10 @@ export default Ember.Service.extend({
return AdminUser.find(userId).then(au => this.spammerDetails(au)); return AdminUser.find(userId).then(au => this.spammerDetails(au));
}, },
deleteUser(id) {
AdminUser.find(id).then(user => user.destroy({ deletePosts: true }));
},
spammerDetails(adminUser) { spammerDetails(adminUser) {
return { return {
deleteUser: () => this._deleteSpammer(adminUser), deleteUser: () => this._deleteSpammer(adminUser),

View File

@ -1,12 +1,14 @@
import CanCheckEmails from 'discourse/mixins/can-check-emails'; import CanCheckEmails from 'discourse/mixins/can-check-emails';
import computed from 'ember-addons/ember-computed-decorators'; import computed from 'ember-addons/ember-computed-decorators';
import User from 'discourse/models/user'; import User from 'discourse/models/user';
import optionalService from 'discourse/lib/optional-service';
export default Ember.Controller.extend(CanCheckEmails, { export default Ember.Controller.extend(CanCheckEmails, {
indexStream: false, indexStream: false,
application: Ember.inject.controller(), application: Ember.inject.controller(),
userNotifications: Ember.inject.controller('user-notifications'), userNotifications: Ember.inject.controller('user-notifications'),
currentPath: Ember.computed.alias('application.currentPath'), currentPath: Ember.computed.alias('application.currentPath'),
adminTools: optionalService(),
@computed("content.username") @computed("content.username")
viewingSelf(username) { viewingSelf(username) {
@ -93,11 +95,15 @@ export default Ember.Controller.extend(CanCheckEmails, {
this.set('forceExpand', true); this.set('forceExpand', true);
}, },
adminDelete() { showSuspensions() {
// I really want this deferred, don't want to bring in all this code till used this.get('adminTools').showActionLogs(this, {
const AdminUser = requirejs('admin/models/admin-user').default; target_user: this.get('model.username'),
AdminUser.find(this.get('model.id')).then(user => user.destroy({deletePosts: true})); action_name: 'suspend_user'
});
}, },
adminDelete() {
this.get('adminTools').deleteUser(this.get('model.id'));
}
} }
}); });

View File

@ -23,7 +23,11 @@
</div> </div>
{{/if}} {{/if}}
{{#if model.number_of_suspensions}} {{#if model.number_of_suspensions}}
<div><span class="suspensions">{{model.number_of_suspensions}}</span>{{i18n 'user.staff_counters.suspensions'}}</div> <div>
<a {{action "showSuspensions"}}>
<span class="suspensions">{{model.number_of_suspensions}}</span>{{i18n 'user.staff_counters.suspensions'}}
</a>
</div>
{{/if}} {{/if}}
{{#if model.warnings_received_count}} {{#if model.warnings_received_count}}
<div><span class="warnings-received">{{model.warnings_received_count}}</span>{{i18n 'user.staff_counters.warnings_received'}}</div> <div><span class="warnings-received">{{model.warnings_received_count}}</span>{{i18n 'user.staff_counters.warnings_received'}}</div>