mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: Remove handling of category top menu items
Support for these kinds of navigation items was dropped in 88f52514, but
the code for handling these menu items was never removed.
This commit is contained in:
@@ -1,25 +1,19 @@
|
|||||||
import discourseComputed from "discourse-common/utils/decorators";
|
import discourseComputed from "discourse-common/utils/decorators";
|
||||||
import { toTitleCase } from "discourse/lib/formatter";
|
|
||||||
import { emojiUnescape } from "discourse/lib/text";
|
import { emojiUnescape } from "discourse/lib/text";
|
||||||
import Category from "discourse/models/category";
|
import Category from "discourse/models/category";
|
||||||
import EmberObject from "@ember/object";
|
import EmberObject from "@ember/object";
|
||||||
import deprecated from "discourse-common/lib/deprecated";
|
import deprecated from "discourse-common/lib/deprecated";
|
||||||
|
|
||||||
const NavItem = EmberObject.extend({
|
const NavItem = EmberObject.extend({
|
||||||
@discourseComputed("categoryName", "name")
|
@discourseComputed("name")
|
||||||
title(categoryName, name) {
|
title(name) {
|
||||||
const extra = {};
|
const extra = {};
|
||||||
|
|
||||||
if (categoryName) {
|
|
||||||
name = "category";
|
|
||||||
extra.categoryName = categoryName;
|
|
||||||
}
|
|
||||||
|
|
||||||
return I18n.t("filters." + name.replace("/", ".") + ".help", extra);
|
return I18n.t("filters." + name.replace("/", ".") + ".help", extra);
|
||||||
},
|
},
|
||||||
|
|
||||||
@discourseComputed("categoryName", "name", "count")
|
@discourseComputed("name", "count")
|
||||||
displayName(categoryName, name, count) {
|
displayName(name, count) {
|
||||||
count = count || 0;
|
count = count || 0;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
@@ -32,35 +26,11 @@ const NavItem = EmberObject.extend({
|
|||||||
let extra = { count: count };
|
let extra = { count: count };
|
||||||
const titleKey = count === 0 ? ".title" : ".title_with_count";
|
const titleKey = count === 0 ? ".title" : ".title_with_count";
|
||||||
|
|
||||||
if (categoryName) {
|
|
||||||
name = "category";
|
|
||||||
extra.categoryName = toTitleCase(categoryName);
|
|
||||||
}
|
|
||||||
|
|
||||||
return emojiUnescape(
|
return emojiUnescape(
|
||||||
I18n.t(`filters.${name.replace("/", ".") + titleKey}`, extra)
|
I18n.t(`filters.${name.replace("/", ".") + titleKey}`, extra)
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
@discourseComputed("name")
|
|
||||||
categoryName(name) {
|
|
||||||
const split = name.split("/");
|
|
||||||
return split[0] === "category" ? split[1] : null;
|
|
||||||
},
|
|
||||||
|
|
||||||
@discourseComputed("name")
|
|
||||||
categorySlug(name) {
|
|
||||||
const split = name.split("/");
|
|
||||||
if (split[0] === "category" && split[1]) {
|
|
||||||
const cat = Discourse.Site.current().categories.findBy(
|
|
||||||
"nameLower",
|
|
||||||
split[1].toLowerCase()
|
|
||||||
);
|
|
||||||
return cat ? Category.slugFor(cat) : null;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
},
|
|
||||||
|
|
||||||
@discourseComputed("filterMode")
|
@discourseComputed("filterMode")
|
||||||
href(filterMode) {
|
href(filterMode) {
|
||||||
let customHref = null;
|
let customHref = null;
|
||||||
@@ -79,22 +49,18 @@ const NavItem = EmberObject.extend({
|
|||||||
return Discourse.getURL("/") + filterMode;
|
return Discourse.getURL("/") + filterMode;
|
||||||
},
|
},
|
||||||
|
|
||||||
@discourseComputed("name", "category", "categorySlug", "noSubcategories")
|
@discourseComputed("name", "category", "noSubcategories")
|
||||||
filterMode(name, category, categorySlug, noSubcategories) {
|
filterMode(name, category, noSubcategories) {
|
||||||
if (name.split("/")[0] === "category") {
|
let mode = "";
|
||||||
return "c/" + categorySlug;
|
if (category) {
|
||||||
} else {
|
mode += "c/";
|
||||||
let mode = "";
|
mode += Category.slugFor(category);
|
||||||
if (category) {
|
if (noSubcategories) {
|
||||||
mode += "c/";
|
mode += "/none";
|
||||||
mode += Category.slugFor(category);
|
|
||||||
if (noSubcategories) {
|
|
||||||
mode += "/none";
|
|
||||||
}
|
|
||||||
mode += "/l/";
|
|
||||||
}
|
}
|
||||||
return mode + name.replace(" ", "-");
|
mode += "/l/";
|
||||||
}
|
}
|
||||||
|
return mode + name.replace(" ", "-");
|
||||||
},
|
},
|
||||||
|
|
||||||
@discourseComputed("name", "category", "topicTrackingState.messageCount")
|
@discourseComputed("name", "category", "topicTrackingState.messageCount")
|
||||||
|
|||||||
@@ -160,11 +160,11 @@ module Discourse
|
|||||||
end
|
end
|
||||||
|
|
||||||
def self.top_menu_items
|
def self.top_menu_items
|
||||||
@top_menu_items ||= Discourse.filters + [:category, :categories, :top]
|
@top_menu_items ||= Discourse.filters + [:categories, :top]
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.anonymous_top_menu_items
|
def self.anonymous_top_menu_items
|
||||||
@anonymous_top_menu_items ||= Discourse.anonymous_filters + [:category, :categories, :top]
|
@anonymous_top_menu_items ||= Discourse.anonymous_filters + [:categories, :top]
|
||||||
end
|
end
|
||||||
|
|
||||||
PIXEL_RATIOS ||= [1, 1.5, 2, 3]
|
PIXEL_RATIOS ||= [1, 1.5, 2, 3]
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ export default {
|
|||||||
"starred",
|
"starred",
|
||||||
"read",
|
"read",
|
||||||
"posted",
|
"posted",
|
||||||
"category",
|
|
||||||
"categories",
|
"categories",
|
||||||
"top"
|
"top"
|
||||||
],
|
],
|
||||||
@@ -49,7 +48,6 @@ export default {
|
|||||||
"latest",
|
"latest",
|
||||||
"top",
|
"top",
|
||||||
"categories",
|
"categories",
|
||||||
"category",
|
|
||||||
"categories",
|
"categories",
|
||||||
"top"
|
"top"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -38,11 +38,10 @@ PreloadStore.store("site", {
|
|||||||
"starred",
|
"starred",
|
||||||
"read",
|
"read",
|
||||||
"posted",
|
"posted",
|
||||||
"category",
|
|
||||||
"categories",
|
"categories",
|
||||||
"top"
|
"top"
|
||||||
],
|
],
|
||||||
anonymous_top_menu_items: ["latest", "category", "categories", "top"],
|
anonymous_top_menu_items: ["latest", "categories", "top"],
|
||||||
uncategorized_category_id: 17,
|
uncategorized_category_id: 17,
|
||||||
categories: [
|
categories: [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ QUnit.module("NavItem", {
|
|||||||
});
|
});
|
||||||
|
|
||||||
QUnit.test("href", assert => {
|
QUnit.test("href", assert => {
|
||||||
assert.expect(4);
|
assert.expect(2);
|
||||||
|
|
||||||
function href(text, expected, label) {
|
function href(text, expected, label) {
|
||||||
assert.equal(NavItem.fromText(text, {}).get("href"), expected, label);
|
assert.equal(NavItem.fromText(text, {}).get("href"), expected, label);
|
||||||
@@ -24,8 +24,6 @@ QUnit.test("href", assert => {
|
|||||||
|
|
||||||
href("latest", "/latest", "latest");
|
href("latest", "/latest", "latest");
|
||||||
href("categories", "/categories", "categories");
|
href("categories", "/categories", "categories");
|
||||||
href("category/bug", "/c/bug", "English category name");
|
|
||||||
href("category/确实是这样", "/c/343434-category", "Chinese category name");
|
|
||||||
});
|
});
|
||||||
|
|
||||||
QUnit.test("count", assert => {
|
QUnit.test("count", assert => {
|
||||||
|
|||||||
Reference in New Issue
Block a user