From ee692414ce04c4c3c63d49dfd41790b92522ab76 Mon Sep 17 00:00:00 2001 From: Joffrey JAFFEUX Date: Tue, 19 Feb 2019 09:30:24 +0100 Subject: [PATCH] REFACTORING: admin-edit-badge-groupings (#7015) --- .../modals/admin-edit-badge-groupings.js.es6 | 63 +++++++++---------- .../modal/admin-edit-badge-groupings.hbs | 26 ++++---- 2 files changed, 43 insertions(+), 46 deletions(-) diff --git a/app/assets/javascripts/admin/controllers/modals/admin-edit-badge-groupings.js.es6 b/app/assets/javascripts/admin/controllers/modals/admin-edit-badge-groupings.js.es6 index 1a195149b36..63dac2a1ec7 100644 --- a/app/assets/javascripts/admin/controllers/modals/admin-edit-badge-groupings.js.es6 +++ b/app/assets/javascripts/admin/controllers/modals/admin-edit-badge-groupings.js.es6 @@ -1,22 +1,24 @@ import { ajax } from "discourse/lib/ajax"; import ModalFunctionality from "discourse/mixins/modal-functionality"; +import { observes } from "ember-addons/ember-computed-decorators"; export default Ember.Controller.extend(ModalFunctionality, { - modelChanged: function() { + @observes("model") + modelChanged() { const model = this.get("model"); const copy = Ember.A(); const store = this.store; if (model) { - model.forEach(function(o) { - copy.pushObject(store.createRecord("badge-grouping", o)); - }); + model.forEach(o => + copy.pushObject(store.createRecord("badge-grouping", o)) + ); } this.set("workingCopy", copy); - }.observes("model"), + }, - moveItem: function(item, delta) { + moveItem(item, delta) { const copy = this.get("workingCopy"); const index = copy.indexOf(item); if (index + delta < 0 || index + delta >= copy.length) { @@ -28,60 +30,51 @@ export default Ember.Controller.extend(ModalFunctionality, { }, actions: { - up: function(item) { + up(item) { this.moveItem(item, -1); }, - down: function(item) { + down(item) { this.moveItem(item, 1); }, - delete: function(item) { + delete(item) { this.get("workingCopy").removeObject(item); }, - cancel: function() { - this.set("model", null); - this.set("workingCopy", null); + cancel() { + this.setProperties({ model: null, workingCopy: null }); this.send("closeModal"); }, - edit: function(item) { + edit(item) { item.set("editing", true); }, - save: function(item) { + save(item) { item.set("editing", false); }, - add: function() { + add() { const obj = this.store.createRecord("badge-grouping", { editing: true, name: I18n.t("admin.badges.badge_grouping") }); this.get("workingCopy").pushObject(obj); }, - saveAll: function() { - const self = this; - var items = this.get("workingCopy"); - const groupIds = items.map(function(i) { - return i.get("id") || -1; - }); - const names = items.map(function(i) { - return i.get("name"); - }); + saveAll() { + let items = this.get("workingCopy"); + const groupIds = items.map(i => i.get("id") || -1); + const names = items.map(i => i.get("name")); ajax("/admin/badges/badge_groupings", { - data: { ids: groupIds, names: names }, + data: { ids: groupIds, names }, method: "POST" }).then( - function(data) { - items = self.get("model"); + data => { + items = this.get("model"); items.clear(); - data.badge_groupings.forEach(function(g) { - items.pushObject(self.store.createRecord("badge-grouping", g)); + data.badge_groupings.forEach(g => { + items.pushObject(this.store.createRecord("badge-grouping", g)); }); - self.set("model", null); - self.set("workingCopy", null); - self.send("closeModal"); + this.setProperties({ model: null, workingCopy: null }); + this.send("closeModal"); }, - function() { - bootbox.alert(I18n.t("generic_error")); - } + () => bootbox.alert(I18n.t("generic_error")) ); } } diff --git a/app/assets/javascripts/admin/templates/modal/admin-edit-badge-groupings.hbs b/app/assets/javascripts/admin/templates/modal/admin-edit-badge-groupings.hbs index 9e639f74a97..a5fba689935 100644 --- a/app/assets/javascripts/admin/templates/modal/admin-edit-badge-groupings.hbs +++ b/app/assets/javascripts/admin/templates/modal/admin-edit-badge-groupings.hbs @@ -1,30 +1,34 @@ {{#d-modal-body title="admin.badges.badge_groupings.modal_title" class="badge-groupings-modal"}}
-
- + {{d-button action=(action "add") label="admin.badges.new"}} {{/d-modal-body}} + \ No newline at end of file +