discourse/app/assets/javascripts/admin/components/flagged-post.js.es6

76 lines
1.7 KiB
Plaintext
Raw Normal View History

2017-09-08 16:27:07 -04:00
import showModal from 'discourse/lib/show-modal';
2017-09-14 14:10:39 -04:00
import computed from 'ember-addons/ember-computed-decorators';
2017-09-08 16:27:07 -04:00
export default Ember.Component.extend({
2017-09-14 14:10:39 -04:00
adminTools: Ember.inject.service(),
expanded: false,
2017-09-14 14:10:39 -04:00
suspended: false,
2017-09-11 14:01:59 -04:00
tagName: 'div',
classNameBindings: [
':flagged-post',
'flaggedPost.hidden:hidden-post',
'flaggedPost.deleted'
],
2017-09-08 16:27:07 -04:00
2018-01-12 16:08:40 -05:00
canAct: Ember.computed.alias('actableFilter'),
2017-09-14 14:10:39 -04:00
@computed('filter')
2018-01-12 16:08:40 -05:00
actableFilter(filter) {
2017-09-14 14:10:39 -04:00
return filter === 'active';
},
2017-09-08 16:27:07 -04:00
removeAfter(promise) {
return promise.then(() => {
this.attrs.removePost();
2018-01-12 16:08:40 -05:00
}).catch(error => {
if (error._discourse_displayed) { return; }
2017-09-08 16:27:07 -04:00
bootbox.alert(I18n.t("admin.flags.error"));
});
},
_spawnModal(name, model, modalClass) {
let controller = showModal(name, { model, admin: true, modalClass });
controller.removeAfter = (p) => this.removeAfter(p);
},
actions: {
2017-11-10 15:55:48 -05:00
removeAfter(promise) {
this.removeAfter(promise);
},
2017-09-08 16:27:07 -04:00
disagree() {
this.removeAfter(this.get('flaggedPost').disagreeFlags());
},
defer() {
this.removeAfter(this.get('flaggedPost').deferFlags());
},
expand() {
this.get('flaggedPost').expandHidden().then(() => {
this.set('expanded', true);
});
2017-09-14 14:10:39 -04:00
},
showModerationHistory() {
this.get('adminTools').showModerationHistory({
filter: 'post',
post_id: this.get('flaggedPost.id')
});
},
2017-09-14 14:10:39 -04:00
showSuspendModal() {
let post = this.get('flaggedPost');
let user = post.get('user');
this.get('adminTools').showSuspendModal(
user,
{
post,
successCallback: result => this.set('suspended', result.suspended)
}
);
2017-09-08 16:27:07 -04:00
}
}
});