はじめに
Parameters配下のJSONファイル群を変更した時に、値を適用するためにプリザンターを再起動させるのが面倒・・・って思ったことはありませんか?実は再起動せずにパラメータを再読み出し出せる方法があります。
どうやるの?
実はマニュアルに記載があります。FAQ:プリザンターを再起動せずにParametersフォルダ配下の情報を再読み込みしたいがまさにそれです。FAQなので、それがしたいと思って探さないと出てこない項目なので、知ってる!って方は案外少ないと思います。注意事項もあるので、マニュアルをよく参照してください。
使ってみると?
成功すると真っ白な画面に遷移します。遷移後はHistroyBackなりで通常のページに戻ってくる必要があります。しかもURL自体、どこにもリンクがない&微妙に長いので、いちいち入力する必要があって地味に面倒。
この機能を使いたいのは主に開発環境だと思いますが、何か設定変更する度にURL打ち込んで、終わったらHistoryBackを繰り返すことになるので、ちょっと楽にしてみます。
拡張ナビゲーションメニューに追加する
楽にする方法といえば拡張ナビゲーションメニューに入れてしまうのが鉄板ですね。こんな感じで定義ファイルを作成します。特権ユーザでないと実行出来ないので、特権ユーザ(UserID:1)に表示を限定しています。
{
"TargetId": "SettingsMenu",
"Action": "Append",
"NavigationMenus": [
{
"ContainerId": "PrivilegedSettingsContainer",
"MenuId": "PrivilegedSettingsMenu",
"Name": "特権管理",
"Icon": "ui-icon ui-icon-gear",
"ChildMenus": [
{
"MenuId": "PrivilegedSettings_ReloadParameters",
"Name": "パラメータリロード",
"Icon": "ui-icon ui-icon-arrowrefresh-1-w",
"Url": "javascript:$p.naviMenuExtendParameterReload();",
"UserIdList": [
1
]
}
]
}
]
}
実処理はやや長めなので、拡張スクリプトに切り出してしまいます。
$p.naviMenuExtendParameterReload = function() {
$.ajax({
type: "get",
url: "/admins/reloadparameters",
}).done(function() {
if (window.confirm('パラメータを再ロードしました。画面リロードを行いますか? ')) {
location.reload();
}
}).fail(function(jqXHR, textStatus, errorThrown) {
window.alert(`パラメータの再ロードに失敗しました。ステータス:${jqXHR.status}`);
});
}
これらの2ファイルを拡張ナビゲーションメニュー・拡張スクリプトの所定のディレクトリに格納して、プリザンターのプロセスを再起動させると、ナビゲーションメニューにパラメータでリロードメニューが追加されます。
クリックすると再読み込みを行うかどうかの確認が表示されるので、OKをクリックする実行されます。
まとめ
パラメータの再読み出しを簡単にする方法を紹介しました。プリザンターのマニュアルのFAQカテゴリには、こんな使い方があるの?というトピックがいろいろとあるので、一度はのぞいてみてください。