2021年10月28日木曜日

Oracle APEX 21.2新機能(4) - アラートとダイアログの改善

 ボタンをクリックして動作として定義されているアクションを実行する前に、ダイアログを表示する設定が追加されました。また、ダイアログのスタイルやメッセージも変更することができるようになっています。

削除ボタンを例にとるとOracle APEX 21.2以前のダイアログは、動作アクションURLにリダイレクトを選択し、ターゲットを以下のように設定していました。

javascript:apex.confirm(htmldb_delete_message,'DELETE');


htmldb_delete_messageを変更する方法、ページの送信以外の処理について確認のダイアログを表示させる方法、など、ちょっとしたカスタマイズでも手間がかかっていました。

Oracle APEX 21.2ではダイアログを表示する設定が、以下のように改善されています。ボタンの動作にプロパティとして確認の要求が追加され、これをONにするとアクションが実行される前に確認のためのダイアログが表示されます。


先頭のGIF動画にある危険ボタンを押した時のダイアログは、以下のように表示されています。


上記のダイアログを表示するボタンの設定は以下のようになります。

識別ラベル危険とします。ボタンのラベルが危険、ダイアログの確認ボタンの名前も危険になります。動作確認の要求ONにし、確認メッセージとして以下を記述し、スタイル危険にしています。Template Directiveを使用した記述が可能なので、状況に応じたメッセージを表示させることができます。(配色は色を直接指定するのではなく、ユニバーサル・テーマの配色クラス - ここではu-dangerを使用 - を指定するのがお勧めです。テーマ・ローラによる配色の設定に従って色が変更されます。)

<b>危険</b>
<br/>
これは危険のスタイルです。
<br/>
{if P7_MESSAGE/}
<span class="u-danger">&P7_MESSAGE.</span>
{else/}
追加メッセージはありません。
{endif/}


スタイルとしてデフォルト情報警告危険成功を選択することができます。それぞれのスタイルを選択したときの見かけについては、先頭のGIF動画で確認できます。

海外のAPEXの開発者より、Oracle APEX 21.2の改善の中で高い評価を得ているようです。

なお、以前のバージョンで作成されたAPEXのアプリケーションは以前の仕組み(アクションURLにリダイレクト)のままでダイアログを表示し、APEXのバージョンアップの影響を受けません。逆に言うと、新しいダイアログに切り替えるには手作業でアプリケーションを更新する必要があります。

ちなみにOracle APEX 21.2以前の削除ダイアログのメッセージhtmldb_delete_messageは、ページ・プロパティJavaScriptファンクションおよびグローバル変数の宣言で定義されています。

var htmldb_delete_message='"DELETE_CONFIRM_MSG"';


DELETE_CONFIRM_MSGは、共有コンポーネントショートカットとして定義されています。