From 6e5fedb31281fb40e672ffb87e767afcffd35e38 Mon Sep 17 00:00:00 2001 From: Daniel Waterworth Date: Wed, 4 Dec 2019 09:12:45 +0000 Subject: [PATCH] DEV: Use category ids in more URLs preferentially This is a followup to 374534f0 --- .../javascripts/discourse/controllers/edit-category.js.es6 | 2 +- app/assets/javascripts/discourse/helpers/category-link.js.es6 | 2 +- app/assets/javascripts/discourse/models/category.js.es6 | 2 +- test/javascripts/acceptance/category-edit-test.js.es6 | 2 +- test/javascripts/helpers/create-pretender.js.es6 | 1 + 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/discourse/controllers/edit-category.js.es6 b/app/assets/javascripts/discourse/controllers/edit-category.js.es6 index a529f05e871..36c961c7e10 100644 --- a/app/assets/javascripts/discourse/controllers/edit-category.js.es6 +++ b/app/assets/javascripts/discourse/controllers/edit-category.js.es6 @@ -107,7 +107,7 @@ export default Controller.extend(ModalFunctionality, { slug: result.category.slug, id: result.category.id }); - DiscourseURL.redirectTo("/c/" + Category.slugFor(model)); + DiscourseURL.redirectTo(`/c/${Category.slugFor(model)}/${model.id}`); }) .catch(error => { this.flash(extractError(error), "error"); diff --git a/app/assets/javascripts/discourse/helpers/category-link.js.es6 b/app/assets/javascripts/discourse/helpers/category-link.js.es6 index 4e11a911b21..b8a61987979 100644 --- a/app/assets/javascripts/discourse/helpers/category-link.js.es6 +++ b/app/assets/javascripts/discourse/helpers/category-link.js.es6 @@ -79,7 +79,7 @@ function defaultCategoryLinkRenderer(category, opts) { let restricted = get(category, "read_restricted"); let url = opts.url ? opts.url - : Discourse.getURL("/c/") + Category.slugFor(category); + : Discourse.getURL(`/c/${Category.slugFor(category)}/${category.id}`); let href = opts.link === false ? "" : url; let tagName = opts.link === false || opts.link === "false" ? "span" : "a"; let extraClasses = opts.extraClasses ? " " + opts.extraClasses : ""; diff --git a/app/assets/javascripts/discourse/models/category.js.es6 b/app/assets/javascripts/discourse/models/category.js.es6 index 82084aada3c..1b442db7c54 100644 --- a/app/assets/javascripts/discourse/models/category.js.es6 +++ b/app/assets/javascripts/discourse/models/category.js.es6 @@ -67,7 +67,7 @@ const Category = RestModel.extend({ @discourseComputed("name") url() { - return Discourse.getURL("/c/") + Category.slugFor(this); + return Discourse.getURL(`/c/${Category.slugFor(this)}/${this.id}`); }, @discourseComputed diff --git a/test/javascripts/acceptance/category-edit-test.js.es6 b/test/javascripts/acceptance/category-edit-test.js.es6 index fed9c845312..efdf73d90dd 100644 --- a/test/javascripts/acceptance/category-edit-test.js.es6 +++ b/test/javascripts/acceptance/category-edit-test.js.es6 @@ -36,7 +36,7 @@ QUnit.test("Editing the category", async assert => { assert.ok(!visible(".d-modal"), "it closes the modal"); assert.equal( DiscourseURL.redirectedTo, - "/c/bug", + "/c/bug/1", "it does one of the rare full page redirects" ); }); diff --git a/test/javascripts/helpers/create-pretender.js.es6 b/test/javascripts/helpers/create-pretender.js.es6 index 9beff0a1696..95a63b0e09f 100644 --- a/test/javascripts/helpers/create-pretender.js.es6 +++ b/test/javascripts/helpers/create-pretender.js.es6 @@ -265,6 +265,7 @@ export default function() { this.put("/categories/:category_id", request => { const category = parsePostData(request.requestBody); + category.id = parseInt(request.params.category_id, 10); if (category.email_in === "duplicate@example.com") { return response(422, { errors: ["duplicate email"] });