自動ダークモード

すべてのユーザーのアカウント設定を上書きして「自動ダークモードカラースキーム」を有効にするにはどうすればよいですか?

ユーザーに強制するには、配色を選択する機能を無効にする必要があります。
設定 → カスタマイズ → 色 → 配色はユーザーが選択できます ((無効にする)) に移動します。

次に、スタイルに戻り、ユーザーに強制的に表示される配色に署名します。

「いいね!」 1

お手伝いいただきありがとうございます :slight_smile:

すでに無効になっています。

こちらで言及されているように、これを求めています: Automatic Dark Mode color scheme switching

この設定をすべてのユーザーに強制的に有効にしたいのですが、方法が見つかりません。

管理設定で デフォルトのダークモードカラースキームID をお探しですか?


Discourse 設定ボットが言っています:

「いいね!」 2

ダークカラースキームに設定されています。

一部のユーザーから、この設定が有効になっていないという報告があり、ダークモードでロゴが見えないという問題が発生していました。この設定を有効にすると問題が解決しました。

この設定がすべてのユーザーに有効になっていない理由を知りたいと思いました。そのため、すべてのユーザーに強制的に有効にする方法を探していました。

インターフェースからはできません。

ただし、caution を払って rails コマンドを使用してユーザーオプションを一括更新することは可能です。

まず、たとえばデータエクスプローラーを使用して、この設定が無効になっているユーザーが何人いるかを確認することをお勧めします。数が多くない場合は、手動で設定するか、ユーザーに自分で設定してもらうことができます。

また、アカウントが作成されたときのデフォルト値も確認する必要があります。

「いいね!」 2

レールコマンドを教えていただけますか?

データエクスプローラーがインストールされているのですが、有効になっているユーザー数を調べるスクリプトを教えていただけますか?

ご協力いただき、誠にありがとうございます。:heart:

デフォルトでは、ダークモードのユーザー設定は「通常と同じ」です。

データベースでは、user_options.dark_scheme の値が NULL であることで定義されます。
「ダーク」は -1 です。その他の値は正の整数です。

デフォルト値を持たないユーザーを返すクエリは次のようになります。

SELECT 
    u.username,
    up.dark_scheme_id
FROM 
    users AS u
JOIN 
    user_options AS up
ON 
    u.id = up.user_id
WHERE up.dark_scheme_id IS NOT NULL
「いいね!」 1

59件の結果があります。

Railsコマンドで一括で設定を変更するにはどうすればよいですか?

混乱しています。なぜユーザーの色の選択を壊したいのですか?選択肢を与えたくないのであれば、デフォルトのライトとダーク以外のすべてのカラースキームをアンインストールしてください。それだけです。

この設定は、以下のRailsスクリプトを使用して変更したユーザーの設定をリセットできます。

UserOption.where.not(dark_scheme_id: nil).find_each do |uo|
    uo.update(dark_scheme_id: nil)
end

これは私のテストインスタンスで正常に使用できましたが、私はRailsの専門家ではないため、常に最初にバックアップを取ることを忘れないでください。:slight_smile:

選択肢はありません。サイト設定で自動ダークモードのダークカラースキームを選択した後、多くのユーザーでこの設定がデフォルトで有効になっていないだけです。

これをすべての人に有効にしたいのですが、デフォルトで有効になっていない59人のユーザーがその理由を知りません。

念のため確認ですが、あなたのスクリーンショットの設定は、個人の好みではなく、管理者パネル(サーバー全体)の設定です。

後者は以下の通りです。

image

いいえ、これはユーザーの設定であり、サイトの設定から自動ダークモードを有効にした場合にユーザーに表示されます。

「いいね!」 1

つまり、これを実行する必要があるということですね。

cd /var/discourse

./launcher enter app

その後

UserOption.where.not(dark_scheme_id: nil).find_each do |uo|
    uo.update(dark_scheme_id: nil)
end

これで合っていますか?

いいえ、お待ちください。リクエストを完全に理解しているかどうかわかりません。このダークモード設定に関する情報が不足している可能性があります :thinking:

見つけたサイト管理者は次のとおりです。

サイト設定から自動ダークモードを有効にする際に、お話しされている設定はどこにありますか?

こちらをご覧ください。

これに関するものです。

わかりました。このオプションを表示するには、カラー スキームを無効にする必要がありました。より理解するために、このトピックをもう一度読みます。

はい!それは「デフォルトのダークモードの配色ID」です

「自動ダークモード配色を有効にする」のチェックを外すuser_options.dark_scheme-1 に設定され、チェックするNULL に設定されます。

したがって、すべてのユーザーにこの設定をチェックさせたい場合は、私のスクリプトを使用できます。

新規ユーザー作成時のデフォルト設定もチェックされています。

その後 rails c を実行して、rails コンソールに入ります。

スクリプトが出力をログ表示する場合、q を押すと終了できます。

「いいね!」 2