PolarisUI - スコープ指定
PolarisUI API には、直接 UI ページでネクストエクスペリエンスを有効にするためのメソッドが用意されています。
[直接] フィールドが [選択済み] の場合、UI ページ [sys_ui_page] は直接です。直接 UI ページには共通の HTML ページテンプレートが含まれていないため、ページで使用するすべての CSS と JavaScript を含める必要があります。
直接でない UI ページはすべて、デフォルトで ネクストエクスペリエンス を使用します。
ネクストエクスペリエンスの詳細については、「Next Experience UI」を参照してください。
PolarisUI API は、sn_ui 名前空間内で提供されます。
PolarisUI - canUsePolarisCSS()
現在のページが ネクストエクスペリエンス UI を使用できるかどうかを確認します。
true を返します。- sn_ui.PolarisUI.isEnabled() が
trueである。 - 要求 URL のパラメーター sysparm_use_polaris が
falseに設定されていない。 - 参照元の HTTP 要求ヘッダーに
sysparm_use_ Polaris=falseが含まれていない。 - ページまたはその親のプラグインが、ページテーマのサポート [sys_page_theme] テーブルのレコードによって ネクストエクスペリエンス の使用を拒否されていない。
ネクストエクスペリエンスが有効になっている場合は、このメソッドを使用して、条件付きで動作または Jelly 出力を変更します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| ブーリアン | 現在のページで ネクストエクスペリエンス UI を使用できるかどうかを示すフラグ。 有効な値:
|
ネクストエクスペリエンス が現在のフォームで実行されている場合、この UI アクションは別のページにリダイレクトされます。
var id = current.getUniqueValue();
if (sn_ui.PolarisUI.canUsePolarisCSS())
action.setRedirectUrl("/now/custom/application/record/" + id);
return "/record.do?sys_id=" + id;
この jelly スクリプトは、ネクストエクスペリエンス を使用して別のスタイルシートをページに設定します。
<g:evaluate var="jvar_css_path">
// Core UI content css record
var id = "5e8fde63d713310074304187ed61030d";
if (sn_ui.PolarisUI.canUsePolarisCSS())
id = "84f03cc87120a00cfab6dd207cb0b72";
"/" + id + ".cssdbx";
</g:evaluate>
<link href="${jvar_css_path}" rel="stylesheet" type="text/css" />
PolarisUI - getBodyClassNames()
ネクストエクスペリエンス UI で使用される CSS クラス名のリストを返します。
<body> タグでこのメソッドを使用して、ネクストエクスペリエンス が正しくレンダリングするために必要な CSS クラスを設定します。<body class="$[sn_ui.PolarisUI.getBodyClassNames()]">返されるクラス名は、システムプロパティに応じて、またセッションのデバッグ出力が存在するかどうかによって異なります。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | ネクストエクスペリエンス UI で使用される CSS クラス名のリスト。 |
この jelly スクリプトは ネクストエクスペリエンス をカスタムの UI ページに追加します。
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="true" xmlns:j="jelly:core" xmlns:g="glide" xmlns:g2="null">
<g2:doctype name="html" />
<g:inline template="dir_checker.xml"/>
<html class="${jvar_text_direction}" lang="$[gs.getSession().getLanguage()]">
<head>
<g:inline template="set_theme_vars.xml" /> <!-- sets jvar_theme and jvar_css_cache_key -->
<g:requires name="styles/css_includes_my_app.css" includes="true" params="$[jvar_css_cache_key]" />
<g:if_polaris>
<g:then><g:inline template="polarisberg_output.xml"/></g:when>
<g:else><g:inline template="heisenberg_output.xml" type="css"/></g:else>
</g:if_polaris>
</head>
<body class="$[sn_ui.PolarisUI.getBodyClassNames()]">
Your UI page content here
</body>
</html>
</j:jelly>
PolarisUI - isEnabled()
現在のユーザーに対して ネクストエクスペリエンス UI が有効かどうかを確認します。
- glide.ui.polaris.experience はインスタンスで ネクストエクスペリエンス を有効にします。
- これを false に設定すると、glide.ui.polaris.use が指定されたユーザーに対して ネクストエクスペリエンス を無効にします。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| ブーリアン | 現在のユーザーに対して ネクストエクスペリエンス の UI が有効かどうかを示すフラグ。 有効な値:
|
現在のユーザーに対して ネクストエクスペリエンス が有効である場合、この UI ページはユーザーに条件付きメッセージを表示します。
<j:if test="${sn_ui.PolarisUI.isEnabled()}">
<a href="...">Click here to learn more about the new UI changes</a>
</j:if>
このビジネスルールでは、ユーザーが ネクストエクスペリエンス でなく コア UI をクリックしてレコードを表示できるレコード表示に情報メッセージが表示されます。ビジネスルールの [条件] フィールドは、!current.isNewRecord() && sn_ui.PolarisUI.isEnabled() && sn_ui.PolarisUI.canUsePolarisCSS() に設定されます。
// business rule script field
(function executeRule(current, previous /*null when async*/) {
var sysId = current.getUniqueValue();
gs.addInfoMessage("<a href='/incident.do?sys_id="+ sysId +"&sysparm_use_polaris=false'>Click here to load this page in Core UI</a>");
})(current, previous);