カスタム ページ
[プロパティ パネル] の [カスタム ページ] セクションでは、Insight アプリケーションのカスタム エラー ページとログアウト ページを定義できます。
[カスタム ページ] は HTML ページである必要があり、アップロードしたページは Insight DataFoder/CustomPages に保存され、ページを開いたときに使用されます。このページには、Insight アプリケーション フォルダ (<InstallationDirectory>/HtmlInsight/CustomResources) にコピーできるカスタム データ (画像、スクリプト、スタイル) を含めることができます。HTML ページには、このフォルダへのリンクが含まれている必要があります。
HTML ページのテンプレートとして次のような項目を使用できます。
-
{{Locale}} - テンプレートで、en-US などの現在のユーザー ロケールを置き換えます。
-
{{Model}} - 次のプロパティを持つ JavaScript オブジェクト。
-
ApplicationName - アプリケーションの名前 (Studio、Admin Console など)。
-
Version - Insight のバージョンです。
-
Error - エラー メッセージ (エラー ページ用)。
モデルを変数に割り当て、必要に応じて HTML ページのスクリプトで使用できます。
-
HTML エラー ページのサンプル
<html lang="en">
<meta name="viewport"content="width=device-width">
<meta http-equiv="content-type"content="text/html; charset=utf-8">
<title>Custom Error</title>
<head>
<style>label {display: block;}body {display: flex;align-items: center;justify-content: center;}.error {color: red;}</style>
<script>var insightModel = {{Model}};var locale = '{{Locale}}';</script>
</head>
<body>
<script>if(insightModel.error) {const error = document.createElement('div');error.textContent = insightModel.error;error.classList.add('error');document.body.append(error);}</script>
</body>
</html>
Insight およびログイン パネル認証用のカスタム ログイン ページを作成することもできます。このページには、CustomLogin への送信アクションを含むフォームが含まれている必要があります。エラー ページのサンプルに示されているようなエラー スクリプトを使用して、このページにモデル テンプレートを追加することができます。
HTML ログイン ページのサンプル
<html lang="en">
<meta name="viewport" content="width=device-width">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Custom Login</title>
<head>
<style>label {display: block;}
body {display: flex; align-items: center; justify-content: center;}.error {color: red;}</style>
<script>var insightModel = {{Model}};var locale = '{{Locale}}';</script>
</head>
<body>
<form action="CustomLogin" method="post">
<label>client <input name="client"/></label>
<label id="user">user <input name="user"/></label>
<label>password <input name="password"/></label>
<input type="submit" value="Login"/>
</form>
<script>
if(insightModel.error) {
const error = document.createElement('div');
error.textContent = insightModel.error;
error.classList.add('error');
document.getElementById('user').after(error);}
</script></body>
</html>