PolarisUI :スコープ対象
PolarisUI API は、直接 UI ページでネクストエクスペリエンスを有効にするためのメソッドを提供します。
[ 直接 ] フィールドが 選択されている場合、UI ページ [sys_ui_page] は直接です。直接 UI ページには共通の HTML ページテンプレートが含まれておらず、ページで使用するすべての CSS と JavaScript を含める必要があります。
非直接 UI ページはすべてデフォルトで ネクストエクスペリエンス を使用します。
ネクストエクスペリエンスの詳細については、「ネクストエクスペリエンス UI」を参照してください。
PolarisUI API は、sn_ui 名前空間内で提供されます。
PolarisUI:canUsePolarisCSS()
現在のページで ネクストエクスペリエンス UI を使用できるかどうかを確認します。
true を返します。- sn_ui。PolarisUI.isEnabled() が
trueです。 - 要求 URL パラメーター sysparm_use_polaris が
falseに設定されていません。 - referrer HTTP 要求ヘッダーに
sysparm_use_polaris=falseが含まれていません。 - ページまたはその親プラグインは、ページテーマサポート [sys_page_theme] テーブルのレコードによる ネクストエクスペリエンス の使用が拒否されません。
ネクストエクスペリエンスが有効になっている場合は、このメソッドを使用して、動作または jelly 出力を条件付きで変更します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| ブーリアン | 現在のページで ネクストエクスペリエンス UI を使用できるかどうかを示すフラグ。 有効な値:
|
現在のフォームで 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 インスタンスで ネクストエクスペリエンス を有効にします。
- glide.ui.polaris.usefalse に設定されている場合、指定されたユーザーのネクストエクスペリエンスを無効にします。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| ブーリアン | 現在のユーザーに対して ネクストエクスペリエンス 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);