mirror of
https://github.com/codeninjasllc/discourse.git
synced 2024-11-28 18:17:29 -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
52 lines
1.3 KiB
JavaScript
52 lines
1.3 KiB
JavaScript
/**
|
|
The modal for deleting a flag.
|
|
|
|
@class AdminDeleteFlagController
|
|
@extends Discourse.Controller
|
|
@namespace Discourse
|
|
@uses Discourse.ModalFunctionality
|
|
@module Discourse
|
|
**/
|
|
Discourse.AdminDeleteFlagController = Discourse.ObjectController.extend(Discourse.ModalFunctionality, {
|
|
|
|
needs: ["adminFlags"],
|
|
|
|
actions: {
|
|
|
|
deletePostDeferFlag: function () {
|
|
var adminFlagController = this.get("controllers.adminFlags");
|
|
var post = this.get("content");
|
|
var self = this;
|
|
|
|
return post.deferFlags(true).then(function () {
|
|
adminFlagController.removeObject(post);
|
|
self.send("closeModal");
|
|
}, function () {
|
|
bootbox.alert(I18n.t("admin.flags.error"));
|
|
});
|
|
},
|
|
|
|
deletePostAgreeFlag: function () {
|
|
var adminFlagController = this.get("controllers.adminFlags");
|
|
var post = this.get("content");
|
|
var self = this;
|
|
|
|
return post.agreeFlags(true).then(function () {
|
|
adminFlagController.removeObject(post);
|
|
self.send("closeModal");
|
|
}, function () {
|
|
bootbox.alert(I18n.t("admin.flags.error"));
|
|
});
|
|
},
|
|
|
|
/**
|
|
Deletes a user and all posts and topics created by that user.
|
|
|
|
@method deleteSpammer
|
|
**/
|
|
deleteSpammer: function () {
|
|
this.get("content.user").deleteAsSpammer(function() { window.location.reload(); });
|
|
}
|
|
}
|
|
|
|
});
|