ボタンをクリックして動作として定義されているアクションを実行する前に、ダイアログを表示する設定が追加されました。また、ダイアログのスタイルやメッセージも変更することができるようになっています。
削除ボタンを例にとるとOracle APEX 21.2以前のダイアログは、動作のアクションにURLにリダイレクトを選択し、ターゲットを以下のように設定していました。
javascript:apex.confirm(htmldb_delete_message,'DELETE');
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"';
完