# Minimum category / sub-category dept level to post a topic

**URL:** https://meta.discourse.org/t/minimum-category-sub-category-dept-level-to-post-a-topic/104150
**Category:** Support
**Created:** [12.Декабрь.2018 22:10:11 UTC](https://meta.discourse.org/t/minimum-category-sub-category-dept-level-to-post-a-topic/104150 "2018-12-12T22:10:11Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![rbrlortie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rbrlortie/32/166740_2.png) [@rbrlortie](https://meta.discourse.org/u/rbrlortie)
#### Post date: [12.Декабрь.2018 22:10:11 UTC](https://meta.discourse.org/t/minimum-category-sub-category-dept-level-to-post-a-topic/104150/1 "2018-12-12T22:10:11Z")

</div>

Hi,

- We have a category called “Help & Support”.

- This category has a bunch of subcategories. “Robotics”, “Programming”, etc.

- So far users can post in “Help & Support”.

- Our issue is that nobody is choosing a subcategory.

We would like to limit posting to only those subcategories.

One solution would be to lock the “Help & Support” category. However, we tested this options and since this disable the “New topic” button, people stopped posting there altogether.

Is there a way to keep a category open but configure the minimum depth level of subcategories selected?

Ideally, the current category (“Help & Support”) would be preselected and people would only need to click and select the subcategory.

Does anyone have an idea on how we could achieve this or similar behavior?

Thanks,  
R.

---

<div class="post-metadata">

### Author: ![benswift](https://avatars.discourse-cdn.com/v4/letter/b/b4bc9f/32.png) [@benswift](https://meta.discourse.org/u/benswift)
#### Post date: [28.Июль.2019 23:12:32 UTC](https://meta.discourse.org/t/minimum-category-sub-category-dept-level-to-post-a-topic/104150/2 "2019-07-28T23:12:32Z")

</div>

Привет, ты разобрался, как это сделать?

---

<div class="post-metadata">

### Author: ![rbrlortie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rbrlortie/32/166740_2.png) [@rbrlortie](https://meta.discourse.org/u/rbrlortie)
#### Post date: [06.Август.2019 18:14:34 UTC](https://meta.discourse.org/t/minimum-category-sub-category-dept-level-to-post-a-topic/104150/3 "2019-08-06T18:14:34Z")

</div>

Мы использовали API для модификации контроллера редактора сообщений и добавления в него обработки ошибок. У меня нет под рукой последней версии кода, но она была примерно такой:

```
var computed = require("ember-addons/ember-computed-decorators").default;
api.modifyClass('controller:composer',
    {
      save(opts) {
        var categoryNb = $('.category-input .category-chooser .selected-name > span').length;
        if((categoryNb !== 0 && categoryNb < 2) ) {
            this.set("lastValidatedAt", Date.now());
            return false;
        }
        return this._super(opts);
      },
      @computed("model.categoryId", "lastValidatedAt")
      categoryValidation(categoryId, lastValidatedAt) {
          var InputValidation = require("discourse/models/input-validation").default;
          var categoryNb = $('.category-input .category-chooser .selected-name > span').length;
          if( (categoryNb !== 0 && categoryNb < 2) ) {
              return InputValidation.create({
                  failed: true,
                  reason: 'Вам нужно выбрать подкатегорию',
                  lastShownAt: lastValidatedAt
                });
          } else {
              return this._super(categoryId, lastValidatedAt);
          }
      }
  }
);

```

Короче говоря, этот код просто проверяет количество элементов в поле ввода категории и выводит ошибку, если их только один или ноль. Подкатегория всегда будет иметь два элемента ‘’. В этом фрагменте кода, который у меня остался, это реализовано с помощью jQuery. Полагаю, существовал ещё один вызов API для получения глубины категории.

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [13.Февраль.2023 10:09:48 UTC](https://meta.discourse.org/t/minimum-category-sub-category-dept-level-to-post-a-topic/104150/4 "2023-02-13T10:09:48Z")

</div>



---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [29.Апрель.2023 20:33:19 UTC](https://meta.discourse.org/t/minimum-category-sub-category-dept-level-to-post-a-topic/104150/8 "2023-04-29T20:33:19Z")

</div>


