mirror of
https://github.com/discourse/discourse.git
synced 2025-02-16 10:14:52 -06:00
UX: Don't reload page after saving settings when editing category.
This commit is contained in:
parent
bc81f64a64
commit
dd142eec03
@ -64,29 +64,33 @@ export default Ember.Controller.extend(ModalFunctionality, {
|
||||
|
||||
actions: {
|
||||
saveCategory() {
|
||||
const self = this,
|
||||
model = this.get("model"),
|
||||
parentCategory = this.site
|
||||
.get("categories")
|
||||
.findBy("id", parseInt(model.get("parent_category_id"), 10));
|
||||
const model = this.get("model");
|
||||
|
||||
const parentCategory = this.site
|
||||
.get("categories")
|
||||
.findBy("id", parseInt(model.get("parent_category_id"), 10));
|
||||
|
||||
this.set("saving", true);
|
||||
model.set("parentCategory", parentCategory);
|
||||
|
||||
this.get("model")
|
||||
model
|
||||
.save()
|
||||
.then(function(result) {
|
||||
self.set("saving", false);
|
||||
self.send("closeModal");
|
||||
.then(result => {
|
||||
this.set("saving", false);
|
||||
|
||||
model.setProperties({
|
||||
slug: result.category.slug,
|
||||
id: result.category.id
|
||||
});
|
||||
DiscourseURL.redirectTo("/c/" + Discourse.Category.slugFor(model));
|
||||
|
||||
if (this.get("selectedTab") !== "settings") {
|
||||
this.send("closeModal");
|
||||
DiscourseURL.redirectTo("/c/" + Discourse.Category.slugFor(model));
|
||||
}
|
||||
})
|
||||
.catch(function(error) {
|
||||
self.flash(extractError(error), "error");
|
||||
self.set("saving", false);
|
||||
.catch(error => {
|
||||
this.flash(extractError(error), "error");
|
||||
this.set("saving", false);
|
||||
});
|
||||
},
|
||||
|
||||
|
@ -3,7 +3,17 @@ import { acceptance } from "helpers/qunit-helpers";
|
||||
|
||||
acceptance("Category Edit", {
|
||||
loggedIn: true,
|
||||
settings: { email_in: true }
|
||||
settings: { email_in: true },
|
||||
pretend(server, helper) {
|
||||
server.post("/categories", () => {
|
||||
return helper.response({
|
||||
category: {
|
||||
slug: "bug",
|
||||
id: 999
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
QUnit.test("Can open the category modal", async assert => {
|
||||
@ -18,21 +28,25 @@ QUnit.test("Can open the category modal", async assert => {
|
||||
|
||||
QUnit.test("Editing the category", async assert => {
|
||||
await visit("/c/bug");
|
||||
|
||||
await click(".edit-category");
|
||||
await fillIn("#edit-text-color", "#ff0000");
|
||||
|
||||
await click(".edit-category-topic-template");
|
||||
await fillIn(".d-editor-input", "this is the new topic template");
|
||||
|
||||
await click(".edit-category-settings");
|
||||
await click(".edit-category-settings a");
|
||||
const searchPriorityChooser = selectKit("#category-search-priority");
|
||||
await searchPriorityChooser.expand();
|
||||
await searchPriorityChooser.selectRowByValue(1);
|
||||
await click("#save-category");
|
||||
|
||||
assert.ok(visible(".d-modal"), "it does not close the modal");
|
||||
|
||||
await click(".edit-category-general a");
|
||||
await fillIn("#edit-text-color", "#ff0000");
|
||||
|
||||
await click(".edit-category-topic-template a");
|
||||
await fillIn(".d-editor-input", "this is the new topic template");
|
||||
await click("#save-category");
|
||||
|
||||
assert.ok(!visible(".d-modal"), "it closes the modal");
|
||||
|
||||
assert.equal(
|
||||
DiscourseURL.redirectedTo,
|
||||
"/c/bug",
|
||||
|
Loading…
Reference in New Issue
Block a user