FIX: Allow for cateogry edit routes of unknown depth (#11426)

* FIX: Allow for cateogry edit routes of unknown depth

* DEV: remove unused files
This commit is contained in:
jbrw 2020-12-08 16:50:26 -05:00 committed by GitHub
parent 59ef48c0b9
commit 4c118e4d7a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 5 additions and 66 deletions

View File

@ -490,12 +490,6 @@ Category.reopenClass({
return ajax(`/c/${id}/show.json`);
},
reloadBySlug(slug, parentSlug) {
return parentSlug
? ajax(`/c/${parentSlug}/${slug}/find_by_slug.json`)
: ajax(`/c/${slug}/find_by_slug.json`);
},
reloadBySlugPath(slugPath) {
return ajax(`/c/${slugPath}/find_by_slug.json`);
},
@ -507,7 +501,7 @@ Category.reopenClass({
this._includePermissions(result.category, store, site)
);
}
return this.reloadBySlug(params.slug, params.parentSlug).then((result) =>
return this.reloadBySlugPath(params.slug).then((result) =>
this._includePermissions(result.category, store, site)
);
},

View File

@ -22,16 +22,9 @@ export default function () {
this.route("topicBySlugOrId", { path: "/t/:slugOrId", resetNamespace: true });
this.route("newCategory", { path: "/new-category" });
this.route("editCategory", { path: "/c/:slug/edit" }, function () {
this.route("editCategory", { path: "/c/*slug/edit" }, function () {
this.route("tabs", { path: "/:tab" });
});
this.route(
"editChildCategory",
{ path: "/c/:parentSlug/:slug/edit" },
function () {
this.route("tabs", { path: "/:tab" });
}
);
this.route("discovery", { path: "/", resetNamespace: true }, function () {
// top

View File

@ -1,8 +0,0 @@
import DiscourseRoute from "discourse/routes/discourse";
export default DiscourseRoute.extend({
afterModel() {
const params = this.paramsFor("editChildCategory");
this.replaceWith(`/c/${params.parentSlug}/${params.slug}/edit/general`);
},
});

View File

@ -1,19 +0,0 @@
import DiscourseRoute from "discourse/routes/discourse";
export default DiscourseRoute.extend({
model() {
return this.modelFor("editChildCategory");
},
renderTemplate() {
this.render("edit-category-tabs", {
controller: "edit-category-tabs",
model: this.currentModel,
});
this.controllerFor("editCategory.tabs").set(
"parentParams",
this.paramsFor("editChildCategory")
);
},
});

View File

@ -1,19 +0,0 @@
import Category from "discourse/models/category";
import DiscourseRoute from "discourse/routes/discourse";
import I18n from "I18n";
export default DiscourseRoute.extend({
model(params) {
return Category.reloadCategoryWithPermissions(
params,
this.store,
this.site
);
},
titleToken() {
return I18n.t("category.edit_dialog_title", {
categoryName: this.currentModel.name,
});
},
});

View File

@ -204,7 +204,7 @@ class CategoriesController < ApplicationController
def find_by_slug
params.require(:category_slug)
@category = Category.find_by_slug(params[:category_slug], params[:parent_category_slug])
@category = Category.find_by_slug_path(params[:category_slug].split('/'))
raise Discourse::NotFound unless @category.present?

View File

@ -681,10 +681,8 @@ Discourse::Application.routes.draw do
get "c/:id/show" => "categories#show"
get "c/:category_slug/find_by_slug" => "categories#find_by_slug"
get "c/:parent_category_slug/:category_slug/find_by_slug" => "categories#find_by_slug"
get "c/:category_slug/edit(/:tab)" => "categories#find_by_slug", constraints: { format: 'html' }
get "c/:parent_category_slug/:category_slug/edit(/:tab)" => "categories#find_by_slug", constraints: { format: 'html' }
get "c/*category_slug/find_by_slug" => "categories#find_by_slug"
get "c/*category_slug/edit(/:tab)" => "categories#find_by_slug", constraints: { format: 'html' }
get "/new-category" => "categories#show", constraints: { format: 'html' }
get "c/*category_slug_path_with_id.rss" => "list#category_feed", format: :rss