Discourse のバグかもしれませんが、確信がありません。私が何か間違っているのかもしれません。
user-card-post-names コネクタに情報を提供するプラグインがあります。
Handlebars:
Javascript:
これは、この Javascript を呼び出します。これが主な作業を行います。
問題の詳細:
上記の JS コード内に、次の 2 行があります。
var version = userModel.custom_fields && userModel.custom_fields["directoryopus_link_version"];
var edition = userModel.custom_fields && userModel.custom_fields["directoryopus_link_edition"];
次に、if (version || edition) { ... というテストを実行し、結果に応じて文字列 (opusLinkClass, opusLinkIcon, opusLinkText) を生成し、それを保存します。
component.set("opusLinkClass", opusLinkClass);
component.set("opusLinkIcon", opusLinkIcon);
component.set("opusLinkText", opusLinkText);
これらの文字列は、この投稿の先頭にある handlebars ファイルで使用されます。
ブラウザのログウィンドウには、エラーや警告は一切表示されませんが、時々問題が発生します。
両方の custom_fields が設定されているアカウントでテストしていますが、if (version || edition) テストは常に最初の分岐に進み、その下の else if (!viewingStaff) には進まないはずです。
しかし、時々 2 番目の分岐に進んでしまい、version と edition が設定されていません。
これは通常発生しないため、Discourse のバグである可能性があると考えています。
新しいスレッドを作成してから返信する場合、または作成したばかりの返信を編集する場合にのみ発生するようです。これは、コネクタが一部の状況で、おそらく競合状態のために正しく初期化されていないためではないでしょうか?
スレッドごとに 1 回しか発生しないようです。ページを F5 でリロードすると、すべて正常になり、そのスレッドでは問題なく動作し続けます。(少なくとも私が知る限り。半ランダムに発生するため、同じスレッドで再び発生するのを見ていない可能性もあります。)
お時間とご提案に感謝いたします。