diff --git a/app/assets/javascripts/admin/controllers/admin-flags-list.js.es6 b/app/assets/javascripts/admin/controllers/admin-flags-list.js.es6 deleted file mode 100644 index e3101e2fa3..0000000000 --- a/app/assets/javascripts/admin/controllers/admin-flags-list.js.es6 +++ /dev/null @@ -1,41 +0,0 @@ -import FlaggedPost from 'admin/models/flagged-post'; - -export default Ember.Controller.extend({ - query: null, - - adminOldFlagsView: Em.computed.equal("query", "old"), - adminActiveFlagsView: Em.computed.equal("query", "active"), - - actions: { - disagreeFlags(flaggedPost) { - flaggedPost.disagreeFlags().then(() => { - this.get('model').removeObject(flaggedPost); - }, function () { - bootbox.alert(I18n.t("admin.flags.error")); - }); - }, - - deferFlags(flaggedPost) { - flaggedPost.deferFlags().then(() => { - this.get('model').removeObject(flaggedPost); - }, function () { - bootbox.alert(I18n.t("admin.flags.error")); - }); - }, - - doneTopicFlags(item) { - this.send("disagreeFlags", item); - }, - - loadMore() { - const flags = this.get('model'); - return FlaggedPost.findAll(this.get('query'), flags.length+1).then(data => { - if (data.length===0) { - flags.set("allLoaded",true); - } - flags.addObjects(data); - }); - } - } - -}); diff --git a/app/assets/javascripts/admin/controllers/modals/admin-agree-flag.js.es6 b/app/assets/javascripts/admin/controllers/modals/admin-agree-flag.js.es6 index 7f1f4f2e49..a5f20e6368 100644 --- a/app/assets/javascripts/admin/controllers/modals/admin-agree-flag.js.es6 +++ b/app/assets/javascripts/admin/controllers/modals/admin-agree-flag.js.es6 @@ -1,24 +1,19 @@ import ModalFunctionality from 'discourse/mixins/modal-functionality'; export default Ember.Controller.extend(ModalFunctionality, { - adminFlagsList: Ember.inject.controller(), + removeAfter: null, - _agreeFlag: function (actionOnPost) { - const adminFlagController = this.get("adminFlagsList"); - const post = this.get("content"); - - return post.agreeFlags(actionOnPost).then(() => { - adminFlagController.get('model').removeObject(post); - this.send("closeModal"); - }, function () { - bootbox.alert(I18n.t("admin.flags.error")); + _agreeFlag(action) { + let flaggedPost = this.get('model'); + return this.removeAfter(flaggedPost.agreeFlags(action), flaggedPost).then(() => { + this.send('closeModal'); }); }, actions: { - agreeFlagHidePost: function () { return this._agreeFlag("hide"); }, - agreeFlagKeepPost: function () { return this._agreeFlag("keep"); }, - agreeFlagRestorePost: function () { return this._agreeFlag("restore"); } + agreeFlagHidePost() { return this._agreeFlag("hide"); }, + agreeFlagKeepPost() { return this._agreeFlag("keep"); }, + agreeFlagRestorePost() { return this._agreeFlag("restore"); } } }); diff --git a/app/assets/javascripts/admin/controllers/modals/admin-delete-flag.js.es6 b/app/assets/javascripts/admin/controllers/modals/admin-delete-flag.js.es6 index fc2e062794..2cabebb04b 100644 --- a/app/assets/javascripts/admin/controllers/modals/admin-delete-flag.js.es6 +++ b/app/assets/javascripts/admin/controllers/modals/admin-delete-flag.js.es6 @@ -1,30 +1,20 @@ import ModalFunctionality from 'discourse/mixins/modal-functionality'; export default Ember.Controller.extend(ModalFunctionality, { - adminFlagsList: Ember.inject.controller(), + removeAfter: null, actions: { deletePostDeferFlag() { - const adminFlagController = this.get("adminFlagsList"); - const post = this.get("content"); - - return post.deferFlags(true).then(() => { - adminFlagController.get('model').removeObject(post); - this.send("closeModal"); - }, function () { - bootbox.alert(I18n.t("admin.flags.error")); + let flaggedPost = this.get('model'); + this.removeAfter(flaggedPost.deferFlags(true), flaggedPost).then(() => { + this.send('closeModal'); }); }, deletePostAgreeFlag() { - const adminFlagController = this.get("adminFlagsList"); - const post = this.get("content"); - - return post.agreeFlags("delete").then(() => { - adminFlagController.get('model').removeObject(post); - this.send("closeModal"); - }, function () { - bootbox.alert(I18n.t("admin.flags.error")); + let flaggedPost = this.get('model'); + this.removeAfter(flaggedPost.agreeFlags('delete'), flaggedPost).then(() => { + this.send('closeModal'); }); } } diff --git a/app/assets/javascripts/admin/routes/admin-flags-index.js.es6 b/app/assets/javascripts/admin/routes/admin-flags-index.js.es6 index c3f9a6d373..ae4a2e089d 100644 --- a/app/assets/javascripts/admin/routes/admin-flags-index.js.es6 +++ b/app/assets/javascripts/admin/routes/admin-flags-index.js.es6 @@ -1,5 +1,5 @@ export default Discourse.Route.extend({ redirect() { - this.replaceWith('adminFlags.list', 'active'); + this.replaceWith('adminFlags.postsActive'); } }); diff --git a/app/assets/javascripts/admin/routes/admin-flags-list.js.es6 b/app/assets/javascripts/admin/routes/admin-flags-list.js.es6 deleted file mode 100644 index ba00186d90..0000000000 --- a/app/assets/javascripts/admin/routes/admin-flags-list.js.es6 +++ /dev/null @@ -1,27 +0,0 @@ -import showModal from 'discourse/lib/show-modal'; -import FlaggedPost from 'admin/models/flagged-post'; - -export default Discourse.Route.extend({ - model(params) { - this.filter = params.filter; - return FlaggedPost.findAll(params.filter); - }, - - setupController(controller, model) { - controller.set('model', model); - controller.set('query', this.filter); - }, - - actions: { - showAgreeFlagModal(model) { - showModal('admin-agree-flag', { model, admin: true }); - this.controllerFor('modal').set('modalClass', 'agree-flag-modal'); - }, - - showDeleteFlagModal(model) { - showModal('admin-delete-flag', { model, admin: true }); - this.controllerFor('modal').set('modalClass', 'delete-flag-modal'); - } - - } -}); diff --git a/app/assets/javascripts/admin/routes/admin-flags-posts-active.js.es6 b/app/assets/javascripts/admin/routes/admin-flags-posts-active.js.es6 new file mode 100644 index 0000000000..c38488e0f6 --- /dev/null +++ b/app/assets/javascripts/admin/routes/admin-flags-posts-active.js.es6 @@ -0,0 +1,7 @@ +import FlaggedPost from 'admin/models/flagged-post'; + +export default Discourse.Route.extend({ + model() { + return FlaggedPost.findAll('active'); + } +}); diff --git a/app/assets/javascripts/admin/routes/admin-flags-posts-old.js.es6 b/app/assets/javascripts/admin/routes/admin-flags-posts-old.js.es6 new file mode 100644 index 0000000000..312e240527 --- /dev/null +++ b/app/assets/javascripts/admin/routes/admin-flags-posts-old.js.es6 @@ -0,0 +1,7 @@ +import FlaggedPost from 'admin/models/flagged-post'; + +export default Discourse.Route.extend({ + model() { + return FlaggedPost.findAll('old'); + }, +}); diff --git a/app/assets/javascripts/admin/routes/admin-route-map.js.es6 b/app/assets/javascripts/admin/routes/admin-route-map.js.es6 index 34e55914ad..0644cd2552 100644 --- a/app/assets/javascripts/admin/routes/admin-route-map.js.es6 +++ b/app/assets/javascripts/admin/routes/admin-route-map.js.es6 @@ -54,7 +54,8 @@ export default function() { this.route('adminReports', { path: '/reports/:type', resetNamespace: true }); this.route('adminFlags', { path: '/flags', resetNamespace: true }, function() { - this.route('list', { path: '/:filter' }); + this.route('postsActive', { path: 'active' }); + this.route('postsOld', { path: 'old' }); }); this.route('adminLogs', { path: '/logs', resetNamespace: true }, function() { diff --git a/app/assets/javascripts/admin/templates/flags-list.hbs b/app/assets/javascripts/admin/templates/components/flagged-posts.hbs similarity index 80% rename from app/assets/javascripts/admin/templates/flags-list.hbs rename to app/assets/javascripts/admin/templates/components/flagged-posts.hbs index 0c26c8254b..6a93dcb0d0 100644 --- a/app/assets/javascripts/admin/templates/flags-list.hbs +++ b/app/assets/javascripts/admin/templates/components/flagged-posts.hbs @@ -1,16 +1,16 @@ -{{#if model.length}} - {{#load-more selector="tbody tr" action="loadMore"}} +{{#if flaggedPosts}} + {{#load-more selector=".flagged-post" action=(action "loadMore")}}
| {{i18n 'admin.flags.flagged_by'}} | -{{#if adminOldFlagsView}}{{i18n 'admin.flags.resolved_by'}}{{/if}} | +{{#if showResolvedBy}}{{i18n 'admin.flags.resolved_by'}}{{/if}} | |
|---|---|---|---|
|
@@ -24,7 +24,7 @@
{{/if}}
{{/if}}
{{/if}}
- {{#if adminActiveFlagsView}}
+ {{#if canAct}}
{{#if flaggedPost.previous_flags_count}}
{{flaggedPost.previous_flags_count}}
{{/if}}
@@ -68,7 +68,7 @@
{{flagger.user.username}}
{{/link-to}}
{{format-age flagger.flaggedAt}}
- + {{flagger.flagType}} |
- {{#if adminOldFlagsView}}
+ {{#if showResolvedBy}}
| ||