この資料では、Dashboard 2.0のプログラムによるダッシュボード制御とレイアウト調整を学びます。
以下のサンプルフローには、control と spacer の実例が含まれています。
先にインポートして動作を確認しながら、以降の説明を読むと理解が深まります。
💡 接続監視のテスト: エディタの「接続テスト」injectノードをクリックすると、ダッシュボードに接続数が表示されます。実際の接続イベントは、ブラウザでダッシュボードを開く/閉じる/リロード時に発生します。
参照元:FlowFuse Dashboard 2.0 公式ドキュメント
controlは、プログラムからダッシュボードを制御するためのノードです。ページ遷移、グループの表示/非表示、クライアント接続の監視などが可能です。
| プロパティ | 説明 | デフォルト |
|---|---|---|
| Name | ノードの名前 | 空 |
| UI | 対象のUI Base | -(必須) |
| Output | 監視するイベント種別(all/connect/disconnect等) | all |
| 機能 | 説明 | msg.payload |
|---|---|---|
| ページ遷移 | 指定したページに移動 | { "page": "ページ名" } |
| グループ表示/非表示 | 特定グループの可視性を制御 | { "groups": { "show": [...], "hide": [...] } } |
| グループ有効/無効 | グループ内ウィジェットの操作可否 | { "groups": { "enable": [...], "disable": [...] } } |
| 接続監視 | クライアントの接続/切断を検知 | 出力: { "connections": [...] } |
グループを指定する際は、以下の形式を使用します:
グループ名は完全一致が必要です。絵文字を含む場合は絵文字も含めて指定してください。
例: "ホーム:🔐 管理者パネル"
用途: ボタンクリックや条件に応じて別のページに移動
サンプルフロー: 「🧭 ナビゲーション」グループのボタンで確認できます
用途: ユーザー権限や状態に応じてUIを動的に変更
サンプルフロー: 「👁️ 表示制御」の管理者モードスイッチで確認できます
ログインユーザーには「管理パネル」を表示し、ゲストには「ログインフォーム」のみを表示する
用途: 特定の条件下でウィジェットの操作を禁止
サンプルフロー: 「🔧 メンテナンスモード」スイッチで確認できます(設定ページの項目が無効化)
システムメンテナンス中は設定変更を無効化し、誤操作を防止
controlの出力からは、クライアントの接続情報が取得できます。
サンプルフロー: 「📡 接続状態」グループにリアルタイムで接続数が表示されます
ダッシュボードへのアクセスをログに記録し、誰がいつアクセスしたかを追跡
msg._clientを使用して、特定のクライアントにのみメッセージを送信できます。
msg._clientを省略すると、すべての接続クライアントに対して制御が適用されます。
spacerは、ダッシュボードのグリッドレイアウトで空白スペースを確保するためのノードです。ウィジェットの配置を調整し、見やすいレイアウトを実現します。
サンプルフロー: 「📐 レイアウトサンプル」グループで、左右に分かれたボタン配置を確認できます
| プロパティ | 説明 | 値の例 |
|---|---|---|
| Group | 配置するグループ | - |
| Name | ノードの名前 | spacer |
| Width | 幅(グリッド単位) | 1, 2, 3, 6... |
| Height | 高さ(グリッド単位) | 1, 2, 3... |
| Order | グループ内の表示順序 | 0 |
| Class | CSSクラス名 | 空 |
ボタンとボタンの間にスペースを入れる
6カラムグリッドでウィジェットを右寄せ
目標: 新しいページを作成し、ナビゲーションボタンを追加する
{"page": "レポート"} を設定目標: センサー値に応じてアラートパネルを表示/非表示
目標: 3つのボタンを等間隔に配置
msg._clientで特定ユーザーのみに制御を適用