2013-02-22 15:41:12 -05:00
|
|
|
/**
|
|
|
|
This controller supports the interface for dealing with flags in the admin section.
|
|
|
|
|
2013-03-14 18:03:13 -04:00
|
|
|
@class AdminFlagsController
|
2013-02-22 15:41:12 -05:00
|
|
|
@extends Ember.Controller
|
|
|
|
@namespace Discourse
|
|
|
|
@module Discourse
|
2013-03-14 18:03:13 -04:00
|
|
|
**/
|
2013-05-20 15:27:58 -04:00
|
|
|
Discourse.AdminFlagsController = Ember.ArrayController.extend({
|
2013-03-14 18:03:13 -04:00
|
|
|
|
2013-09-16 14:08:55 -04:00
|
|
|
actions: {
|
|
|
|
/**
|
|
|
|
Clear all flags on a post
|
2013-02-22 15:41:12 -05:00
|
|
|
|
2013-09-16 14:08:55 -04:00
|
|
|
@method clearFlags
|
|
|
|
@param {Discourse.FlaggedPost} item The post whose flags we want to clear
|
|
|
|
**/
|
|
|
|
disagreeFlags: function(item) {
|
|
|
|
var adminFlagsController = this;
|
|
|
|
item.disagreeFlags().then((function() {
|
|
|
|
adminFlagsController.removeObject(item);
|
|
|
|
}), function() {
|
|
|
|
bootbox.alert(I18n.t("admin.flags.error"));
|
|
|
|
});
|
|
|
|
},
|
2013-02-22 15:41:12 -05:00
|
|
|
|
2013-09-16 14:08:55 -04:00
|
|
|
agreeFlags: function(item) {
|
|
|
|
var adminFlagsController = this;
|
|
|
|
item.agreeFlags().then((function() {
|
|
|
|
adminFlagsController.removeObject(item);
|
|
|
|
}), function() {
|
|
|
|
bootbox.alert(I18n.t("admin.flags.error"));
|
|
|
|
});
|
|
|
|
},
|
2013-06-20 03:42:15 -04:00
|
|
|
|
2013-09-16 14:08:55 -04:00
|
|
|
deferFlags: function(item) {
|
|
|
|
var adminFlagsController = this;
|
|
|
|
item.deferFlags().then((function() {
|
|
|
|
adminFlagsController.removeObject(item);
|
|
|
|
}), function() {
|
|
|
|
bootbox.alert(I18n.t("admin.flags.error"));
|
|
|
|
});
|
|
|
|
},
|
2013-06-20 17:20:08 -04:00
|
|
|
|
2013-09-16 14:08:55 -04:00
|
|
|
/**
|
|
|
|
Deletes a post
|
2013-02-22 15:41:12 -05:00
|
|
|
|
2013-09-16 14:08:55 -04:00
|
|
|
@method deletePost
|
2013-10-02 10:59:57 -04:00
|
|
|
@param {Discourse.FlaggedPost} post The post to delete
|
2013-09-16 14:08:55 -04:00
|
|
|
**/
|
2013-10-02 10:59:57 -04:00
|
|
|
deletePost: function(post) {
|
2013-09-16 14:08:55 -04:00
|
|
|
var adminFlagsController = this;
|
2013-10-02 10:59:57 -04:00
|
|
|
post.deletePost().then((function() {
|
|
|
|
adminFlagsController.removeObject(post);
|
2013-09-16 14:08:55 -04:00
|
|
|
}), function() {
|
|
|
|
bootbox.alert(I18n.t("admin.flags.error"));
|
|
|
|
});
|
|
|
|
},
|
2013-02-22 15:41:12 -05:00
|
|
|
|
2013-09-16 14:08:55 -04:00
|
|
|
/**
|
|
|
|
Deletes a user and all posts and topics created by that user.
|
2013-07-26 15:40:08 -04:00
|
|
|
|
2013-09-16 14:08:55 -04:00
|
|
|
@method deleteSpammer
|
|
|
|
@param {Discourse.FlaggedPost} item The post to delete
|
|
|
|
**/
|
|
|
|
deleteSpammer: function(item) {
|
|
|
|
item.get('user').deleteAsSpammer(function() { window.location.reload(); });
|
|
|
|
}
|
2013-07-26 15:40:08 -04:00
|
|
|
},
|
|
|
|
|
2013-02-22 15:41:12 -05:00
|
|
|
/**
|
|
|
|
Are we viewing the 'old' view?
|
|
|
|
|
|
|
|
@property adminOldFlagsView
|
|
|
|
**/
|
2013-05-24 16:03:20 -04:00
|
|
|
adminOldFlagsView: Em.computed.equal('query', 'old'),
|
2013-02-20 13:15:50 -05:00
|
|
|
|
2013-02-21 12:58:21 -05:00
|
|
|
/**
|
2013-02-22 15:41:12 -05:00
|
|
|
Are we viewing the 'active' view?
|
|
|
|
|
|
|
|
@property adminActiveFlagsView
|
|
|
|
**/
|
2013-08-19 07:14:26 -04:00
|
|
|
adminActiveFlagsView: Em.computed.equal('query', 'active'),
|
|
|
|
|
|
|
|
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);
|
|
|
|
});
|
|
|
|
}
|
2013-03-14 18:03:13 -04:00
|
|
|
|
2013-02-22 15:41:12 -05:00
|
|
|
});
|