前回、「新規ノードをインストール」とか書きながら、まだ手元のパレット上のノードで使用したことがないものがいくつもあるのに気づきました。増えた?そんなわけないです。忘却力というか、粗忽。なんで今まで使ってみたことなかったの?というものもあり。今回はダッシュボードのnotificationノードです。
※「ブロックを積みながら」投稿順 index はこちら
notification ノード
Node-REDのダッシュボード上には、いろいろなUI要素が配置することができます。眺めている人によってダッシュボード画面は違う、と。しかし、ダッシュボードのnotificationノードは、配置されているUI要素にかかわりなく、前面にポップアップ・ウインドウであったり、控えめな通知領域だったりにメッセージを送ることができるノードです。異常を知らせたり、運用上のお知らせを配ったりするのに用いるのに適すると想像します。
今回実験のフローは以下の2つです。上の方は、ダッシュボード上に「通知」するだけでダッシュボードを眺めている人の反応は求めない行き止まりのもの。下の方は、ダッシュボードに「通知」をして、その通知への「応答」を求めるものです。
通知オンリの場合
デフォルトでは一方通行の通知のみの設定になっています。後で出てくるポップアップと違って、ダッシュボードを操作している人の邪魔にならない場所に控えめに通知を表示するのみです。そのうえデフォルト値ではタイムアウト3秒になっているのですぐに消えます。
以下は実験フローでの設定です。3秒だと画面キャプチャも慌ててしまうので、タイムアウト値は30秒にしました。
実際にダッシュボード画面上に通知が表示されたところが以下に。控えめに「なじんで」いるので見落としそうですが、右肩の「TEST!」がそれです。
ポップアップで応答を要求する場合
Layoutに OK/Cancel Dialog を設定した場合、ポップアップウインドウが現れて、入力を迫ります。ダッシュボードを操作していた人はこれに答えないとならなくなります。
まずはOKボタンのみの設定。
ダッシュボード上の表示が以下に。ダッシュボードの表示を押しのけてポップアップがあらわれ、OKしないと先にすすみませぬ。
当然、応答がフローにも返ってきます。notificationノードから送出されるmsg.payloadには ”OK” の文字が載っております。
続いて、OKか、CANCELか、あるいは YESか、NOかなど2択を迫る場合です。Secondary action label に何か記入すれば2択となります。
2択の場合のポップアップが以下に。
CANCELボタンを押してみると、notificationノードから出力される msg.payloadには “CANCEL” が載ってます。
使い方は「あなた次第」だと。でも、こんなプリミティブなノードの存在を失念していたなどオオボケだな、自分。