モバイルでチェックボックス付きタグを検索しても結果が表示されない

:warning: 2023年8月時点の注意: このトピックの以前の例には、もはや存在しないタグへの言及が含まれていますが、空白の結果という問題は継続しています。

モバイルで https://meta.discourse.org/tags/c/theme/61/theme-component にアクセスし、虫眼鏡アイコンをタップして「topic」などで検索し、その後「Customization > Theme component のタグを検索する」チェックボックスをタップすると、2つの問題が発生します。

1つ目は、チェックボックスがオンになるまで2回タップする必要がある点です。2つ目は、チェックボックスを1回または2回タップした後、検索結果が表示されない点です。ただし、デスクトップ版の検索機能を使用すると、多くの結果が得られます。

チェックボックスに触れずにモバイルで検索


https://meta.discourse.org/search?context=tag&context_id=theme-component&q=Topic&skip_context=true

チェックボックスを1回タップしてモバイルで検索


https://meta.discourse.org/search?context=tag&context_id=theme-component&q=Topic&skip_context=false

チェックボックスを2回タップしてモバイルで検索


https://meta.discourse.org/search?context=tag&context_id=theme-component&q=Topic&skip_context=false

デスクトップビューで検索


https://meta.discourse.org/search?q=topic%20%23theme-component

もちろん、検索ボックスに Customization > Theme component と直接入力すればモバイルでも結果を得られますが、チェックボックスが用意されている意味を考えれば、これは意図された使い方ではないと思います。

「いいね!」 3

@moin さん、良い発見ありがとうございます。おそらく 2 つ のバグを見つけていただいたと思います。:slight_smile:

  1. チェックボックスがすぐに機能しないこと
  2. タグに検索を限定すると、Discourse が 403 で返すルートが作成されること

チェックボックスがチェックされない

モバイルでは、検索リンクが URL に「コンテキスト」を追加し、問題のチェックボックスを切り替えられるようになります。この場合、見ている URL は https://meta.discourse.org/search?context=tag&context_id=theme-component&skip_context=true です。

チェックボックスを切り替えると、skip_contexttrue から false に、そして元に戻るように検索クエリが変更されます。これは、デフォルトでボックスがチェックされた状態の URL を作成できることも意味します。たとえば、<https://meta.discourse.org/search?context=category&context_id=1&skip_context=false> のような URL です。これは、ロード時に 2 つの状態の間で異なる動作に気づいたため重要です。

skip_context=true

モバイルビューでのデフォルトであり、ボックスはチェックされません。チェックボックスをタッチまたはキーボードで操作すると、URL は skip_context=false に変更されますが、チェックボックスはチェックされません。もう一度クリックするとチェックされ、URL には「false」が保持されます。

その後、期待どおりに URL が変更され、オンとオフを切り替えることができます。

skip_context=false

検索がロードされるとチェックボックスがチェックされ、操作は期待どおりに機能します。各操作でチェックボックスと URL が変更されます。


別件ですが、skip_context の値に関係なく、これらのチェックボックスを使用するとページへのフォーカスが失われることにも気づきました。ダブルクリックの問題を引き起こしているのも同じことだと良いのですが。:slight_smile:

セーフモードとモバイルデバイスでこの動作を再現しました。

タグがスコープされないことについては、必要に応じて切り離しやすくするために、後続の返信で説明します。

「いいね!」 4

検索結果におけるタグのスコープ指定で403エラーが発生する

この件は私を混乱させました。メタ外で再現を試みた際、検索コンテキストでタグではなくカテゴリが読み込まれてしまったからです。幸いにも、そのおかげで間違いに気づいた時点で、これらのコンテキストに対して検索クエリがどのように生成されるかを把握することができました。

例として #customization:theme#customization:theme-component を使用します。

タグの検索コンテキストを使用する場合、リクエストは以下のようになります:

https://meta.discourse.org/search?q=topic&page=1&search_context[type]=tag&search_context[id]=theme-component

これにより403エラーが返されます。

一方、カテゴリの検索コンテキストを使用する場合、リクエストは以下のようになります:

https://meta.discourse.org/search?q=topic&page=1&search_context[type]=category&search_context[id]=61

こちらは期待通りに結果を返します。

あるいは、詳細検索フィルターからタグを選択した場合、リクエストは以下のようになります:

https://meta.discourse.org/search?q=tags:theme-component&page=1

このタグを含む結果が返されます。

&search_context[type]=tag&search_context[id]=theme-component のパスで403が返される現象は、セーフモードでも再現可能です。

他に search_context のタイプはありますか? コードをざっと見ましたが特定できませんでした。もし存在する場合は、それらもテストしてみます。

「いいね!」 3

Discourse Subscriptions - allow subscription of predetermined length の議論を続けます。

サブスクリプションタグ付きの投稿にリンクしようとしたので、タグ一覧ページに移動してそこから検索しました。結果はありませんでした。以下を参照してください。メインページから検索すると問題なく動作します。チェックボックスが問題である可能性があります。それが違いです。

「いいね!」 1

確認できます。post-voting タグからオプションをオンにして検索してみましたが、結果は見つかりませんでした(@mention やその他の通常のキーワードも同様です)。

Android/Chrome

(まだデスクトップでは確認していません) デスクトップで確認したところ、問題なく動作しました。

それは私がここで報告した問題の1つですか?

「いいね!」 2

チェックボックスをオンにすることに問題はありませんでしたが、結果がないことは同じ問題のようです。

トピックをマージしました。:+1: (OPを少しだけ調整しました)。

ここにもメモしておきます。OPの例のタグはもう存在しませんが、モバイルでの空白の検索結果の問題はまだ残っています。

私の非常に基本的なステップバイステップ:

  • モバイルで、post-voting トピックリストに移動します
  • 検索を開き、「#post_voting タグを検索」チェックボックスをオンにします
  • 必ずヒットするものを入力します(例:「comment」または「@JammyDodger」)
  • 「検索」を押します

結果:「結果が見つかりませんでした

期待される結果:何かを見つける

「いいね!」 2

これは確かにバグですね。ご報告ありがとうございます。このPRがマージされれば修正されるはずです: FIX: Search by tag context was broken by pmusaraj · Pull Request #23006 · discourse/discourse · GitHub

「いいね!」 2

これがマージされました :partying_face:

「いいね!」 3

このトピックは2日後に自動的に閉じられました。返信はもう受け付けられません。