Kanban несовместим с URL новой темы

Похоже, что kanban несовместим с URL new-topic.

 https://mysite.com/new-topic?title=this%20is%20a%20test&body=this%20too&category=staff&tags=todo

работает нормально, а

 https://mysite.com/new-topic?title=this%20is%20a%20test&body=this%20too&category=kanban&tags=todo

не открывает редактор.

1 лайк

Вы имеете в виду, что категория с названием kanban несовместима?

1 лайк

Мой случай на самом деле называется «projects», так что в названии «kanban» нет ничего особенного. Первая ссылка открывает редактор с уже выбранными заголовком, текстом, тегом и категорией. Вторая ссылка не открывает редактор. Обходной путь — использовать ссылку, которая требует только изменения категории, а не её установки.

Ещё одна проблема, с которой я столкнулся: я создал компонент темы, который делает следующее:

.discourse-kanban-container .discourse-kanban-list {
    width: calc((1110px - (4*4px))/5)
}

Кажется, что возможность задать желаемое количество столбцов в компоненте темы была бы полезна не только мне. Я добавил это в свой список задач для создания pull-запроса, но вы могли бы сделать это почти так же быстро, как и принять мой PR. :wink:

1 лайк

Это новый сайт.

Я добавил категорию «Проблемы». Я настроил её в режиме «Теги»:

И вот что происходит:

Есть ли у вас ошибка JavaScript в консоли? (Я подозреваю, что ответ — да)

1 лайк

Дьявол! Да. Извините за это.

Uncaught TypeError: Cannot read property 'slugFor' of undefined

Я всё ещё ищу и постараюсь обновить этот пост с дополнительной информацией в ближайшее время.

ИДЕЯ: Я уверен, что теги не определены. Но затем я создал группу тегов со всеми ими, и всё равно получаю ту же ошибку.

3 лайка

И я подумал, что это может сработать в режиме категорий, но я всё ещё получаю

Uncaught TypeError: Cannot read property 'slugFor' of undefined

почти при любом действии.

1 лайк

Удалось ли вам разобраться с этим, @pfaffman? У меня та же проблема после обновления до 2.5.0.beta4

1 лайк

Пока нет. Мне казалось, что это какое-то время работало в другом режиме, но на новом сайте у меня так и не получилось заставить это работать. Теперь я беспокоюсь, что любые обновления для остального…

Но, судя по всему, этим пользуется уже достаточно много людей, и если бы были проблемы, то другие уже давно бы сообщили о них…

1 лайк

Спасибо, Джей!

Я немного покопался. Проблема в этой строке:

По какой-то причине в некоторых случаях slugFor возвращает пустое значение. В версии 2.5.0.beta4 было внесено изменение в метод slugFor, которое может быть связано с этим:

К сожалению, я не могу сказать больше, так как очень слабо понимаю архитектуру. Однако я подозреваю, что это связано с проблемой, потому что, когда я обхожу метод slugFor, доска канбан снова работает нормально.

2 лайка

Отличная работа! Я оставил комментарий в issue на GitHub.

Кажется, перед цифрой 2 стоит “depth =”. Если вы посмотрите на второе изменение, то увидите “depth = 3”.

Если у вас не настроено окружение для разработки, вы можете, на мой взгляд, отредактировать этот файл локально внутри контейнера, а затем выполнить:

 sv restart unicorn

(Иногда я забываю порядок слов restart и unicorn).

Это должно решить проблему. Думаю, кто-нибудь увидит мой комментарий на GitHub завтра, и всё будет исправлено в ближайшее время.

Если я сегодня доберусь до своего рабочего стола, попробую проверить это сам и, возможно, отправлю PR.

EDIT: Похоже, всё не так просто, как я думал. Или, по крайней мере, моя попытка горячего исправления не сработала.

EDIT2: Да, я думаю, что моё изменение неверно, но не понимаю, почему slugFor не работает.

EDIT 3: В общем, я изменил строку, которую вы отметили, на:

        const slug = category.slug;

Похоже, это работает, по крайней мере, для default_modes, установленного в todo:tags:today,todo,waiting,idea,done.

4 лайка

У меня сегодня возникла точно такая же проблема после обновления до последней версии Discourse (2.5.0.beta4) из версии 2.5.0beta3.

В логах ошибок: TypeError: Cannot read property ‘slugFor’ of undefined

Собираюсь попробовать исправление от @pfaffman (РЕДАКТИРОВАНО: оно сработало!)

3 лайка

Последнее время я сталкиваюсь с ещё одной ошибкой: подкатегория, которую я включил для досок Kanban, теперь не отображает список категорий — показывается только строка с выпадающими списками категорий и подкатегорий, как на изображении в сообщении выше. Генерируется следующая ошибка:

Сообщение (2 сообщения)

TypeError: Discourse.Category is undefined
Url: https://discourse.example.org/theme-javascripts/f32bb95e4546f7b589d94cac68824c840c3744fd.js?__ws=discourse.example.org
Line: 469
Column: 20
Window Location: https://discourse.example.org/c/categoryname/subcategoryname/44/l/latest?board=default

Трассировка стека

hrefForCategory@https://discourse.example.org/theme-javascripts/f32bb95e4546f7b589d94cac68824c840c3744fd.js?__ws=discourse.example.org:469:20
href@https://discourse.example.org/theme-javascripts/f32bb95e4546f7b589d94cac68824c840c3744fd.js?__ws=discourse.example.org:385:32
d/<@https://discourse.example.org/assets/application-d69ccaa9a8d21fd7f40b18692a4d5240d02c1a5a4bbf6f25b44bafdf1dbd8e2f.js:1:38925
nt</t.get@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:202038
Ke@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:199024
Z</t.compute@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:114737
$</e.prototype.value@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:113727
U</t.flush@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:430769
@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:424675
o</t.evaluate@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:415589
Fe</t.evaluateSyscall@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:449837
Fe</t.evaluateInner@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:449423
Fe</t.evaluateOuter@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:449332
pt</e.next@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:475087
dt</e.prototype.next@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:476136
e/this.render@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:143407
H@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:188637
Jt</t._renderRoots@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:146752
Jt</t._renderRootsTransaction@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:147058
Jt</t._renderRoot@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:146446
Jt</t._appendDefinition@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:145571
Jt</t.appendOutletView@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:145292
f</t.invoke@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:490268
f</t.flush@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:489266
p</t.flush@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:491273
t</t._end@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:496669
t</t.end@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:493225
t</t._run@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:497197
t</t._join@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:496982
t</t.join@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:493933
f@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:360451
e.bind/<@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:360675
e@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:30015
l/</t<@https://discourse.example.org/assets/ember_jquery-3a388c5a0562670ed1eea762f12e041d92b4a418316d3f9f83e793d3ba6be5d7.js:1:30339
3 лайка

Я только что обновил свой сайт поддержки, и это тоже сломалось, так что проблема не в конфигурации.

Я создал форк здесь: GitHub - literatecomputing/discourse-kanban-theme: A Discourse theme component providing basic kanban-board functionality · GitHub.

Вот моё (возможно, наивное) исправление:

Также добавлена настройка темы «num columns» для регулировки ширины колонок канбана в соответствии с заданным числом. Если бы я был сообразительнее, я бы разделил настройку default modes и получал значение оттуда, но, возможно, есть причина, по которой вы хотите, чтобы они различались.

@david, стоит ли мне отправить PR? Есть ли решение лучше, чем моё наивное исправление?

4 лайка

Я могу сообщить о том же самом сбое на нескольких небольших экземплярах Discourse, использующих Kanban.
Uncaught TypeError: Cannot read property 'slugFor' of undefined
Будет здорово, если мы сможем исправить это через PR от @pfaffman, @david.

2 лайка

Извините за задержку с расследованием!

Решение хорошее, но, думаю, оно сработает только для категорий верхнего уровня, а не для подкатегорий. Это должно помочь:

Мне нравится, объединено здесь:

Думаю, глобальная настройка для этого подойдет — необходимость устанавливать её для каждой категории кажется маловероятной.

6 лайков