グループ受信トレイとアーカイブは空でも表示される

こんにちは皆さん、

サイトにメッセージの受信トレイやアーカイブにメッセージがない古いグループがいくつかありますが、サイドバーや /my/messages に表示されています。

この古いトピックを見つけましたが、私には機能する解決策が提供されていませんでした。Messaging: Group inboxes and archives show even after all messages deleted

他に何かアイデアはありますか?

「いいね!」 3

これらの古いグループ..グループを編集して変更できるかどうかわかりません
「誰がこのグループにメッセージを送信できますか?」を「なし」に変更しますか?

または、これらの古いグループにはまだグループメールボックスが必要ですか?

「いいね!」 1

返信が遅れて申し訳ありませんが、すべてのグループで「このグループにメッセージを送れる人」が「誰でもない」に設定されています。

他に確認できることはありますか?

「いいね!」 1

それは間違いなくバグのように聞こえます。誰もに設定されている場合、私の意見ではグループメールボックスは表示されるべきではありません。

回避策の修正として、#theme-component を使用してグループをクラスとして追加し、各グループクラスを使用して、誰もに設定されているグループメールボックスに display: none を適用することが考えられます。グループクラスを使用するように言ったのは、一般的にCSSを使用して非表示にすると、モデレーターグループのメールボックスも非表示になる可能性があると想像したからです。

それらの古いグループには以前メッセージがありましたか?私の個人サイトにはメッセージが1つだけ入っていたグループがあり、サイドバーに受信トレイが表示されます。メッセージを削除したところ、グループの受信トレイはまだ表示されています。

削除されたメッセージは、管理者である私にも、受信トレイには表示されなくなりました。ブラウザの履歴を遡って、削除されたメッセージとしてまだ存在することを確認できました。グループを削除しようとしましたが、できませんでした。削除を取り消し、グループを削除しました。念のためメッセージを削除しました。

受信トレイはまだ表示されているため、グループの受信トレイにはまだ別の削除されたメッセージがあると思われます。

グループ受信トレイ内のメッセージがすべて削除されている場合、グループ受信トレイはサイドバーに表示されるべきではないため、ここにバグがあると思われます。

現時点での唯一の解決策は、グループを削除して再作成することだと思われます。

データエクスプローラーを使用して、グループ受信トレイ内の削除されたメッセージの投稿IDを取得し、この理論を確認して、それらの投稿を確認できると興味深いでしょう。

「いいね!」 2

その後、データベース整合性ジョブを実行しましたか?それが実行されると、受信トレイは表示されなくなると思います。

「いいね!」 2

素晴らしい!うまくいきました。

編集:op のリンクにあるトピックが参考になりました。@alehandrof さん、あなたはどうですか?問題は最終的に解決しましたか?

「いいね!」 1

データベースの一貫性ジョブを実行しましたが、受信トレイはまだ残っています。サイトでは管理者ユーザーとしてログインしていますが、関係があるでしょうか。しかし、それらは空なので消えるはずです。latestnewunreadarchive のいずれにもメッセージはありません。

お手上げです :frowning:

「いいね!」 2

このデータエクスプローラーのクエリは、トピックを返しますか?

-- [params]
-- group_id :inboxgroup

SELECT tg.topic_id, t.id AS topic_exists, t.deleted_at
FROM topic_allowed_groups tg
LEFT JOIN topics t ON t.id = tg.topic_id
WHERE tg.group_id = :inboxgroup
  AND (
    t.deleted_at IS NULL
    OR t.id IS NULL
  )

「いいね!」 1

私の場合はそうではありません。:+1:

「いいね!」 1

受信トレイが表示されている場合にのみトピックが表示されるはずです。

受信トレイが空の場合でも、これが実現する方法をすでに発見しました。
そのグループに送信されたメッセージが公開トピックに変換された後です。

したがって:

  1. 新しいグループを作成します
  2. 少なくとも管理者がグループにメッセージを送信できるようにします
  3. 受信トレイが表示されているかどうかを確認するためにメンバーをグループに追加します
  4. グループにメッセージを送信します
  5. 管理者のレンチメニューで「公開トピックにする」オプションを使用します
  6. 受信トレイは空ですが、データベース整合性ジョブが実行された後でも受信トレイは消えません

そして、この場合、上記のデータエクスプローラークエリは、そのトピックを返します。

「いいね!」 2