mirror of
https://github.com/codeninjasllc/discourse.git
synced 2024-11-24 08:09:13 -05:00
bddffa7f9a
All flags should end up in one of the three dispositions - Agree - Disagree - Defer In the administration area, the *active* flags section displays 4 buttons - Agree (hide post + send PM) - Disagree - Defer - Delete Clicking "Delete" will open a modal that offer to - Delete Post & Defer Flags - Delete Post & Agree with Flags - Delete Spammer (if available) When the flag has a list associated, the list will now display 1 response and 1 reply and a "show more..." link if there are more in the conversation. Replying to the conversation will NOT give a disposition. Moderators must click the buttons that does that. If someone clicks one buttons, this will add a default moderator message from that moderator saying what happened. The *old* flags section now displays the proper dispositions and is super duper fast (no more N+9999 queries). FIX: the old list includes deleted topics FIX: the lists now properly display the topic states (deleted, closed, archived, hidden, PM) FIX: flagging a topic that you've already flagged the first post
58 lines
1.5 KiB
JavaScript
58 lines
1.5 KiB
JavaScript
/**
|
|
This controller supports the interface for dealing with flags in the admin section.
|
|
|
|
@class AdminFlagsController
|
|
@extends Ember.Controller
|
|
@namespace Discourse
|
|
@module Discourse
|
|
**/
|
|
export default Ember.ArrayController.extend({
|
|
|
|
adminOldFlagsView: Em.computed.equal('query', 'old'),
|
|
adminActiveFlagsView: Em.computed.equal('query', 'active'),
|
|
|
|
actions: {
|
|
|
|
agreeFlags: function (flaggedPost) {
|
|
var self = this;
|
|
flaggedPost.agreeFlags().then(function () {
|
|
self.removeObject(flaggedPost);
|
|
}, function () {
|
|
bootbox.alert(I18n.t("admin.flags.error"));
|
|
});
|
|
},
|
|
|
|
disagreeFlags: function (flaggedPost) {
|
|
var self = this;
|
|
flaggedPost.disagreeFlags().then(function () {
|
|
self.removeObject(flaggedPost);
|
|
}, function () {
|
|
bootbox.alert(I18n.t("admin.flags.error"));
|
|
});
|
|
},
|
|
|
|
deferFlags: function (flaggedPost) {
|
|
var self = this;
|
|
flaggedPost.deferFlags().then(function () {
|
|
self.removeObject(flaggedPost);
|
|
}, function () {
|
|
bootbox.alert(I18n.t("admin.flags.error"));
|
|
});
|
|
},
|
|
|
|
doneTopicFlags: function(item) {
|
|
this.send('disagreeFlags', item);
|
|
},
|
|
},
|
|
|
|
loadMore: function(){
|
|
var flags = this.get('model');
|
|
return Discourse.FlaggedPost.findAll(this.get('query'),flags.length+1).then(function(data){
|
|
if(data.length===0){
|
|
flags.set('allLoaded',true);
|
|
}
|
|
flags.addObjects(data);
|
|
});
|
|
}
|
|
|
|
});
|