Вернулся ли он в свою последнюю форму? Он отключен и всё:
Но отображается в различных выпадающих списках категорий. Вероятно, это не проблема на бэкенде, но он также предлагается в поиске:
Вернулся ли он в свою последнюю форму? Он отключен и всё:
Но отображается в различных выпадающих списках категорий. Вероятно, это не проблема на бэкенде, но он также предлагается в поиске:
У меня нет возможности воспроизвести это на основной ветке.
@j.jaffeux Я могу воспроизвести это на try.discourse.org. Я вижу, что настройка «Разрешить темы без категории» отключена на этом форуме, поскольку в меню «Категория…» композитора темы отсутствует пункт «Без категории».
Пункт «Без категории» присутствует в меню «Категории» на странице расширенного поиска.
В меню присутствует пункт «Без категории».
#u в поле «Поиск».
В меню автодополнения фильтра по категориям присутствует пункт «Без категории».
#u в поле «Поиск».
В меню автодополнения фильтра по категориям присутствует пункт «без категории».
Я также могу воспроизвести наличие категории «Без категории» в диалоге «Изменение порядка категорий». Это происходит на форуме, где я являюсь администратором и где настройка «Разрешить темы без категории» отключена (очевидно, я не могу протестировать это на try.discourse.org). Этот форум использует версию Discourse d8c855e55978d00fc63021b31ecd00a4bee9d922.
/categories).
В диалоге присутствует пункт «Без категории».
Я согласен с @manuel, что наличие этого пункта в диалоге менее критично, чем его присутствие в интерфейсах, с которыми работают пользователи, но я решил упомянуть об этом, так как вы, по-видимому, даже не можете воспроизвести эту ошибку.
@hugh Я даже не уверен, что нам стоит и дальше поддерживать эту «некатегоризированную» ловушку.
За эти годы я старался избавиться от как можно большего её объёма, но постоянно появляются новые пограничные случаи.
На мой взгляд, нам следует убрать настройки и просто разрешить пользователям выбирать категорию по умолчанию. Компонент темы может скрыть значок конкретной категории в редких случаях, когда люди не хотят показывать его на «Общем» или аналогичном.
Смогли ли мейнтейнеры воспроизвести ошибку, следуя процедурам, которые я описал в своем предыдущем ответе? Я спрашиваю, потому что вижу, что тема всё ещё помечена тегом needs-repro.
Если вы сможете воспроизвести ошибку, пожалуйста, удалите этот тег из темы, чтобы было ясно, что отчёт теперь готов к обработке в текущем виде.
Держитесь, Пер, это выпало из нашего поля зрения. Приоритизируем это для подтверждения воспроизводимости и назначаем на Member XP.
Пер, мне не хочется отвечать на это словами «попробуй что-то другое», но я задаюсь вопросом: что мешает вам просто отключить использование «suppress uncategorized» на Arduino?
Мне кажется, что вся эта функция — запутанный поворот. В параллельной вселенной я бы просто удалил настройку сайта: темам нужна категория, поэтому существование вселенной, где у тем есть категория (но на самом деле её нет), запутывает и практически ничего не добавляет для конечных пользователей, учитывая, что можно просто кидать всё в «Общее», если люди не могут классифицировать.
Хотите, чтобы мы помогли перенести «сбор тем, у которых нет категории» в категорию «Общее»?
Вы имеете в виду снятие галочки с настройки сайта «Разрешить некатегоризированные темы»?
Если да, то именно так настроен Форум Arduino (и всегда был).
Обратите внимание, что за исключением функции «Изменить порядок категорий» (которую мы уже отметили как не очень важную), я подтвердил, что ошибку можно воспроизвести по инструкциям, которые я предоставил на try.discourse.org. Таким образом, Форум Arduino не имеет прямого отношения к этому обсуждению. Насколько я могу судить как обычный пользователь, настройка сайта «Разрешить некатегоризированные темы» отключена на try.discourse.org.
Проблема, о которой сообщается здесь, заключается в том, что категория Uncategorized отображается в пользовательском интерфейсе на форумах, где эта категория отключена через настройку сайта «Разрешить некатегоризированные темы».
Это меня вполне устраивает.
Как человек, который годами боролся за то, чтобы пользователи выбирали подходящую категорию для своих тем, я понимаю, почему некоторые операторы форумов считают полезной функцию, позволяющую пользователям пропускать выбор категории. Однако я не заинтересован в использовании функции «Разрешить некатегоризированные темы» на своём форуме, поэтому удаление этой функции меня лично не затронет.
Поскольку у меня нет опыта использования функции «Разрешить некатегоризированные темы», я не могу комментировать её относительные преимущества по сравнению с использованием обычной категории, как вы предлагаете.
Я считаю хорошей идеей поговорить с тем, кто использует эту функцию, чтобы понять, действительно ли она необходима; просто я не являюсь этим человеком.
Не совсем уверен, что вы имеете в виду. Однако я хотел бы это понять.
Вы предлагаете какую-то помощь в категоризации Форума Arduino?
Если вы смотрите на Форум Arduino, то может возникнуть путаница из-за того, что у нас действительно есть категория с названием «Uncategorized». Однако это обычная категория, которая просто случайно имеет такое название, а не специальная категория, предоставляемая настройкой сайта «Разрешить некатегоризированные темы». Наша категория «Uncategorized» на самом деле имеет совершенно противоположную цель по сравнению с функцией «Разрешить некатегоризированные темы». Она никоим образом не связана с предметом этого отчёта об ошибке, но, если вам интересно, почему мы так сделали, это объясняется здесь.
Ага, понял. Только что провёл небольшую локальную отладку и подтверждаю: проблема воспроизводится на 100% в стандартных установках Discourse.
Давайте кратко резюмирую:
Когда речь заходит о категории «Без категории» (Uncategorized), есть два параметра:
allow_uncategorized_topics — по умолчанию выключено
suppress_uncategorized_badge — по умолчанию включено
Если параметр allow_uncategorized_topics отключён (стандартная настройка), его наличие ошибочно проявляется в некоторых местах.
Если попытаться обойти проблему, включив категорию «Без категории», чтобы затем её удалить, вы столкнётесь с следующим:
В Discourse эта категория ведёт себя очень странно:
Мы можем исправить утечку, добавляя всё больше и больше условных операторов; сейчас их, вероятно, уже не менее 10 как на стороне клиента, так и на сервере.
Или же мы можем исправить это в корне: просто разрешить администраторам удалять эту категорию. Тогда она исчезнет, и нам больше никогда не придётся её проверять.
Моя рекомендация следующая:
uncategorized_category_id.default_composer_category.uncategorized) перестанет быть особым концептом, и нам не придётся разбираться с лишними сложностями.Текущую ошибку в поиске можно исправить примерно так:
diff --git a/app/assets/javascripts/select-kit/addon/components/search-advanced-category-chooser.js b/app/assets/javascripts/select-kit/addon/components/search-advanced-category-chooser.js
index a678919d16..83a9ed27db 100644
--- a/app/assets/javascripts/select-kit/addon/components/search-advanced-category-chooser.js
+++ b/app/assets/javascripts/select-kit/addon/components/search-advanced-category-chooser.js
@@ -1,4 +1,5 @@
import { classNames } from "@ember-decorators/component";
+import { setting } from "discourse/lib/computed";
import CategoryChooserComponent from "select-kit/components/category-chooser";
import {
pluginApiIdentifiers,
@@ -7,11 +8,13 @@ import {
@classNames("search-advanced-category-chooser")
@selectKitOptions({
- allowUncategorized: true,
+ allowUncategorized: "allowUncategorized",
clearable: true,
none: "category.all",
displayCategoryDescription: false,
permissionType: null,
})
@pluginApiIdentifiers("search-advanced-category-chooser")
-export default class SearchAdvancedCategoryChooser extends CategoryChooserComponent {}
+export default class SearchAdvancedCategoryChooser extends CategoryChooserComponent {
+ @setting("allow_uncategorized_topics") allowUncategorized;
+}
import { render } from "@ember/test-helpers";
import { module, test } from "qunit";
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import selectKit from "discourse/tests/helpers/select-kit-helper";
import SearchAdvancedCategoryChooser from "select-kit/components/search-advanced-category-chooser";
module(
"Integration | Component | select-kit/search-advanced-category-chooser",
function (hooks) {
setupRenderingTest(hooks);
hooks.beforeEach(function () {
this.set("subject", selectKit());
});
test("respects allow_uncategorized_topics setting when false", async function (assert) {
this.siteSettings.allow_uncategorized_topics = false;
await render(<template><SearchAdvancedCategoryChooser /></template>);
await this.subject.expand();
// Uncategorized category (ID 17 in test data) should not be present when setting is false
assert.false(
this.subject.rowByValue(17).exists(),
"uncategorized category is not available when allow_uncategorized_topics is false"
);
});
test("shows uncategorized category when allow_uncategorized_topics is true", async function (assert) {
this.siteSettings.allow_uncategorized_topics = true;
await render(<template><SearchAdvancedCategoryChooser /></template>);
await this.subject.expand();
// Uncategorized category (ID 17 in test data) should be present when setting is true
assert.true(
this.subject.rowByValue(17).exists(),
"uncategorized category is available when allow_uncategorized_topics is true"
);
});
test("has correct default options", async function (assert) {
await render(<template><SearchAdvancedCategoryChooser /></template>);
assert.strictEqual(
this.subject.header().label(),
"All categories",
"has correct default none label"
);
});
}
);
Но это лишь исправление ошибки в расширенном поиске — мы просто играем в «ладошки» (ловим баги по одному), не решая проблему системно…