週刊プリザンター第20号

こんにちは。IISの田口です。
10連休のGWが終わってしまいました。皆さん楽しく過ごせたでしょうか?

週刊プリザンター第20号です。
4/22~5/6を追いかけます。

4/24:javascriptのユーザイベントの戻り値によりスクリプトを中断する機能を追加。(0.49.224)

個人的にうれしい機能追加です!
作成ボタンや更新ボタンクリック時に独自検証や確認ダイアログで処理を中断することが出来るようになりました。
ポイントは以下の通りです。

1. 処理中断出来るイベントは次の3つ

  • 検証前イベント(before_validate)
  • 検証後イベント(after_validate)
  • 送信前イベント(before_send)

検証前イベント/検証後イベントでは、必須入力チェックなどプリザンター標準の検証の他に独自の検証を組み込みたいときに利用すると良いでしょう。
(日付が本日以前であることや、2つの数値項目の大小比較など)
送信前イベントは、検証が全てOKでなおかつ再確認させる場合などに利用できると思います。
(「本当に更新しますか?」の確認ダイアログを表示するなど)

2. return false;で処理中断する。

中断したい場合はreturn false;とします。ソースを読むとイベントハンドラの戻り値がfalseである場合に処理中断しているので、false以外の値を返しても処理中断しません。(同様に処理続行の意味でtrueを返しても意味がありません。)

それでは具体例として簡単なサンプルを紹介します。

検証前イベント

スクリプト

$p.events.before_validate_Create = function(args) {
    // 数値Aが100未満だとエラー
    if($p.getControl('NumA').val() < 100) {
        alert('100以上を入力してください。');
        return false;
    }
}

《結果》
検証前イベントですので、必須入力チェック前に処理実行していることが確認できます。
f:id:imageinformationsystem:20190507203725p:plain

数値Aに"100"を入力すると検証前イベントを通過し、必須入力チェックに移ります。
f:id:imageinformationsystem:20190507203912p:plain

検証後イベント

スクリプト

$p.events.after_validate_Create = function(args) {
    // 数値Aが200未満だとエラー
    if($p.getControl('NumA').val() < 200) {
        alert('200以上を入力してください。');
        return false;
    }
}

《結果》
検証後イベントですので、必須入力チェック後に処理実行していることが確認できます。
f:id:imageinformationsystem:20190507204318p:plain

送信前イベント

スクリプト

$p.events.before_send_Create = function(args) {
    if(confirm('本当に登録しますか?') == false){
        alert('キャンセルしました。');
        return false;
    }
}

《結果》
確認ダイアログが表示し、キャンセルボタンをクリックすると「キャンセルしました」のメッセージが表示することが確認できます。
f:id:imageinformationsystem:20190507204524p:plain
f:id:imageinformationsystem:20190507204548p:plain
OKボタンをクリックすると登録されず、作成ボタンクリック前の状態に戻ります。

4/29:レコードの移動先をサイト設定で指定する仕様に変更。(0.49.233)

編集画面の下部に「移動」ボタンがありますが、今までは移動ボタンをクリックすると、移動可能なテーブル全てがプルダウンで表示しました。
今回追加になった機能では移動先を指定する事が出来るようになります。
テーブルの管理に新しく「移動」タブが追加になりました。
f:id:imageinformationsystem:20190507204624p:plain

移動タブで設定したテーブルが移動ボタンクリック後の移動先として表示します。
f:id:imageinformationsystem:20190507204640p:plain

5/6:全てのユーザのアクセス許可を使用しないテナント設定を追加。(0.49.229)

4/8に追加になった「全てのユーザ」を使用しないような設定が追加になりました。
「全てのユーザ」は一見便利ですが、場合によってはテーブルごと削除されてしまう可能性もありますので、注意が必要です。
今回追加になった機能で使用しない設定にすれば、誤ったアクセス権を設定するようなミスが未然に防げます。
設定は「テナントの管理」から行います。
f:id:imageinformationsystem:20190507204720p:plain

未設定時はアクセス権の設定画面で「全てのユーザ」が表示します。
f:id:imageinformationsystem:20190507205354p:plain

「全てのユーザのアクセス許可を使用しない」チェックONにするとアクセス権の設定画面で「全てのユーザ」が表示されません。
f:id:imageinformationsystem:20190507205449p:plain

その他

不具合解消やソースコードリファクタリングなどで13個のアップデートが実施されています。

バージョンアップに追いつけ!

プリザンターは日々進化しつづけて、新しい機能が追加されています。 皆さんの参考になるよう毎週紹介していきたいと思いますので、ご期待ください!

「+読者になる」のお願い

プリザンターの他、C#によるWebアプリ開発IISの得意とする領域です。今後もプリザンターの機能、拡張スクリプト、ページ追加の研究を進めて行くつもりです。関心のある方、よかったらブログ上部の「+読者になる」をクリックをお願いします!

最後に  

IISはプリザンターのスクリプトによるカスタマイズの経験が豊富です。
プリザンター導入に際してカスタマイズをご検討されている方は是非ご相談ください!
またご不明点やご質問などございましたら弊社までお問い合わせください。