Kanban は new-topic URL と互換性がない

kanban は new-topic URL と互換性がないようです。

 https://mysite.com/new-topic?title=this%20is%20a%20test\u0026body=this%20too\u0026category=staff\u0026tags=todo

は正常に動作しますが、

 https://mysite.com/new-topic?title=this%20is%20a%20test\u0026body=this%20too\u0026category=kanban\u0026tags=todo

はコンポーザーが開きません。

「いいね!」 1

kanban という名前のカテゴリが互換性がないということでしょうか?

「いいね!」 1

私の場合、実際には「projects」という名前なので、「kanban」という名前に何か特別な意味があるわけではありません。最初の URL は、タイトル、テキスト、タグ、カテゴリが選択された状態でコンポーザーを開きます。2 つ目の URL はコンポーザーを開きません。回避策として、カテゴリを設定するのではなく、変更するだけで済む URL を用意する方法があります。

もう一つの問題として、以下のようなテーマコンポーネントを作成しました。

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

テーマコンポーネントで必要な列数を設定できるようにすると、私だけでなく多くのユーザーにとって役立つはずです。PR を提出するようリストに追加しましたが、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

Jay、ありがとうございます!

少し詳しく調べてみました。問題は以下の行にあります:

何らかの理由で、特定の条件下では slugFor が何も返さないようです。2.5.0.beta4 でリリースされた slugFor メソッドの変更が関係している可能性があります:

残念ながら、アーキテクチャの理解が浅いため、これ以上詳しく説明できません。ただし、slugFor メソッドをバイパスするとカンバンボードが正常に動作することから、この問題と関連しているのではないかと推測しています。

「いいね!」 2

素晴らしい仕事ですね!GitHub のイシューにコメントを残しました。

2 の前に「depth =」があると思います。2 番目の変更を見ると、「depth = 3」となっています。

もし開発環境がセットアップされていない場合は、コンテナ内でそのファイルをローカルで編集し、その後

 sv restart unicorn

を実行すると良いでしょう(restart と unicorn の順序を時々忘れます)。

これで問題が解決するはずです。明日には誰かが私の GitHub コメントを見て、すぐに修正されると思います。

今日デスクに戻ることができれば、自分で確認して、もしかしたら PR を提出するかもしれません。

編集:さて、思ったほど簡単ではなかったようです。少なくとも、私のホットフィックス試行はうまくいきません。

編集2:はい、私の変更が間違っていると思います。しかし、slugFor がなぜ失敗しているのかがわかりません。

編集3:私がやったことは、あなたがマークした行を以下のように変更したことです:

        const slug = category.slug;

少なくとも default_modestodo:tags:today,todo,waiting,idea,done に設定した場合は、動作しているようです。

「いいね!」 4

私も今日、Discourse の最新版(2.5.0.beta4)に 2.5.0beta3 からアップグレードした後に同じ問題が発生しました。

エラーログには「TypeError: Cannot read property ‘slugFor’ of undefined」と表示されています。

@pfaffman さんの修正を試そうとしていましたが(編集:成功しました!)。

「いいね!」 3

最近、別のエラーが発生しています。カンバンボード用に有効化したサブカテゴリが表示されず、カテゴリとサブカテゴリのドロップダウンがある行以外のカテゴリ一覧がレンダリングされません(上記の投稿の画像をご参照ください)。以下のエラーが生成されます:

メッセージ(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

サポートサイトをアップグレードしたところ、これも壊れてしまいました。設定の問題ではないようです。

ここにフォークを作成しました: https://github.com/literatecomputing/discourse-kanban-theme.

私の(おそらく単純な)修正はここにあります:

また、カンバンカラムの幅を設定した数値に合わせて調整するための「列数」テーマ設定も追加しています。もし私が賢明なら、default modes設定を split してそこから取得するところですが、それらを別々にしたい理由があるのかもしれません。

@david、PR を提出すべきでしょうか?私の単純な修正よりも良い解決策はありますか?

「いいね!」 4

いくつかの小さな Discourse インスタンス(Kanban を使用しているもの)で、同じ問題が発生していることを報告できます。
Uncaught TypeError: Cannot read property 'slugFor' of undefined
@pfaffman さんの PR でこの問題が修正されるといいですね、@david

「いいね!」 2

調査が遅れてしまい申し訳ありません!

この修正は良いですが、トップレベルのカテゴリには機能しても、サブカテゴリには機能しないと思います。これですべて解決するはずです:

素晴らしいですね。こちらでマージしました:

これはグローバル設定で問題ないと思います。カテゴリごとに設定する必要があるとは考えにくいですから。

「いいね!」 6