Kanban 与新主题 URL 不兼容

看起来 Kanban 与 new-topic URL 不兼容。

 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"无关。第一个 URL 会打开编辑器,并预选标题、文本、标签和类别。第二个 URL 则不会打开编辑器。一个变通方法是使用一个只需更改类别而无需设置它的 URL。

我遇到的另一个问题是,我创建了一个主题组件,内容如下:

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

看来能够在主题组件中设置所需的列数,不仅对我有用,对其他人也有用。我已将此列入提交 PR 的清单,但您或许能以几乎与接受 PR 相同的速度完成它。:wink:

1 个赞

这是一个新网站。

我添加了一个“问题”分类。我将其设置为“标签”模式:

但它出现了以下情况:

控制台中有 JavaScript 错误吗?(我怀疑答案是肯定的)

1 个赞

哎呀!是的。对此很抱歉。

Uncaught TypeError: 无法读取 undefined 的属性 'slugFor'

我仍在查找,稍后会尝试更新此帖子以提供更多详细信息。

想法:我敢打赌标签是未定义的。但随后我创建了一个包含所有标签的标签组,仍然收到相同的错误。

3 个赞

然后我想它可能在分类模式下能行,但我仍然遇到

Uncaught TypeError: Cannot read property 'slugFor' of undefined

这个错误,无论我做什么。

1 个赞

@pfaffman 解决这个问题有什么进展吗?自从升级到 2.5.0.beta4 后,我也遇到了同样的问题。

1 个赞

尚未解决。我曾以为它在其他模式下曾短暂运行过,但我仍无法在那个新网站上使其正常工作。我现在担心升级其他…

但似乎已有足够多的人在使用此功能,如果有更多其他人遇到问题,应该早就报告了。

1 个赞

谢谢 Jay!

我进一步调查了一下。问题出在这一行:

不知为何,在某些情况下,slugFor 返回了空值。2.5.0.beta4 版本发布时对 slugFor 方法进行了更改,这可能与问题有关:

很遗憾,我无法提供更多说明,因为我对架构的理解非常有限。不过我怀疑这与该问题有关,因为当我绕过 slugFor 方法时,看板功能又恢复正常了。

2 个赞

干得漂亮!我在 GitHub 的 issue 中留了条评论。

我认为在数字 2 之前应该有一个 “depth =”。如果你查看第二个更改,会看到 “depth = 3”。

如果你还没有设置好开发环境,我想你可以这样做:在容器内本地编辑该文件,然后执行

 sv restart unicorn

(我有时会记错 restart 和 unicorn 的顺序)。

这应该能为你解决问题。我猜明天会有人看到我的 GitHub 评论,问题很快就能修复。

如果我今天回到办公桌前,我会尝试亲自检查,并可能提交一个 PR。

编辑:嗯,看起来事情并不像我想象的那么简单。或者说,至少我尝试的热修复不起作用。

编辑 2:是的,我认为我的修改是错误的,但我看不出 slugFor 为什么会失败。

编辑 3:好吧,我做的修改是将你标记的那一行改为:

        const slug = category.slug;

这似乎可以工作,至少对于 default_modes 设置为 todo:tags:today,todo,waiting,idea,done 的情况是这样。

4 个赞

我今天在从 2.5.0beta3 升级到 Discourse 最新版本(2.5.0.beta4)后也遇到了这个问题。

错误日志中显示:TypeError: Cannot read property ‘slugFor’ of undefined

我正准备尝试 @pfaffman 的修复方法(编辑:已生效!)

3 个赞

最近我遇到了另一个错误,我启用的用于看板(Kanban)的子类别现在无法渲染类别列表,仅渲染了包含类别和子类别下拉菜单的那一行,如上文帖子中的图片所示。生成的错误如下:

消息(报告了 2 份副本)

TypeError: Discourse.Category 未定义
URL: https://discourse.example.org/theme-javascripts/f32bb95e4546f7b589d94cac68824c840c3744fd.js?__ws=discourse.example.org
行号: 469
列号: 20
窗口位置: 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 个赞

我刚刚升级了我的支持站点,这也导致了问题,所以这不是配置问题。

我在此处创建了一个分支:https://github.com/literatecomputing/discourse-kanban-theme。

我的(也许有些天真的)修复方案在这里:

此外,还添加了一个“列数”主题设置,用于根据设定的数量调整看板列的宽度。如果我很聪明的话,我会 split “默认模式”设置并从中获取,但我猜可能有一些原因让你希望这两者不同。

@david,我应该提交 PR 吗?有没有比我这个天真的修复方案更好的解决办法?

4 个赞

我可以报告在几个使用看板功能的小型 Discourse 实例中遇到了相同的问题。
Uncaught TypeError: Cannot read property 'slugFor' of undefined
如果能够通过 @pfaffman 的 PR @david 修复这个问题就太好了。

2 个赞

抱歉调查延迟了!

这个修复方案不错,但我认为它仅适用于顶级分类,而不适用于子分类。下面的方案应该可以解决问题:

我很喜欢,已在此处合并:

我认为全局设置就足够了——按分类单独设置似乎不太必要。

6 个赞