PolarisUI - 범위 지정
PolarisUI API는 다이렉트 UI 페이지에서 활성화 Next Experience 하기 위한 메서드를 제공합니다.
[직접] 필드를 선택하면 UI 페이지[sys_ui_page]가 직접 페이지입니다. 직접 UI 페이지에는 일반적인 HTML 페이지 템플릿이 포함되지 않으며 페이지에서 사용하려는 모든 CSS 및 JavaScript를 포함해야 합니다.
모든 비직접 UI 페이지는 기본적으로 사용됩니다 Next Experience .
에 Next Experience대한 자세한 내용은 Next Experience UI를 참조하십시오.
PolarisUI API는 sn_ui 네임스페이스 내에서 제공됩니다.
PolarisUI - canUsePolarisCSS()
현재 페이지에서 UI를 Next Experience 사용할 수 있는지 확인합니다.
true 를 반환합니다.- sn_ui. PolarisUI.isEnabled() 는
true입니다. - 요청 URL 매개변수 sysparm_use_polaris 가
false로 설정되지 않았습니다. - 리퍼러 HTTP 요청 헤더에
sysparm_use_polaris=false가 포함되어 있지 않습니다. - 페이지 테마 지원[sys_page_theme] 테이블의 기록에 의해 페이지 또는 해당 상위 플러그인의 사용이 Next Experience 거부되지 않습니다.
이 메서드를 사용하여 동작 또는 젤리 출력을 조건부로 변경합니다(활성화된 경우 Next Experience ).
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 부울 | 현재 페이지에서 UI를 사용할 수 있는지 여부를 나타내는 플래그입니다 Next Experience . 유효한 값은 다음과 같습니다.
|
이 UI 작업은 현재 양식에서 실행 중인 경우 Next Experience 다른 페이지로 리디렉션됩니다.
var id = current.getUniqueValue();
if (sn_ui.PolarisUI.canUsePolarisCSS())
action.setRedirectUrl("/now/custom/application/record/" + id);
return "/record.do?sys_id=" + id;
이 Jelly 스크립트는 를 사용하는 Next Experience페이지에 대해 다른 스타일 시트를 설정합니다.
<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에서 사용하는 Next Experience CSS 클래스 이름의 목록을 반환합니다.
<body> 태그에서 이 메서드를 사용하여 올바르게 렌더링하는 데 Next Experience 필요한 CSS 클래스를 설정합니다.<body class="$[sn_ui.PolarisUI.getBodyClassNames()]">반환되는 클래스 이름은 시스템 속성과 세션 디버그 출력이 있는지 여부에 따라 변경됩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 문자열 | UI에서 사용하는 Next Experience CSS 클래스 이름의 목록입니다. |
이 Jelly 스크립트는 사용자 지정 UI 페이지에 추가됩니다 Next Experience .
<?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가 Next Experience 활성화되어 있는지 확인합니다.
- glide.ui.polaris.experience 인스턴스에서 활성화합니다 Next Experience .
- glide.ui.polaris.useNext Experiencefalse로 설정된 경우 지정된 사용자에 대해 비활성화합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 부울 | 현재 사용자에 대해 UI를 Next Experience 사용할 수 있는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
|
이 UI 페이지는 현재 사용자에 대해 활성화된 경우 Next Experience 사용자에게 조건부 메시지를 표시합니다.
<j:if test="${sn_ui.PolarisUI.isEnabled()}">
<a href="...">Click here to learn more about the new UI changes</a>
</j:if>
이 비즈니스 규칙은 기록 표시 시 사용자가 대신 클릭하여 기록을 코어 UINext Experience볼 수 있는 정보 메시지를 표시합니다. 비즈니스 규칙 조건 필드가 !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);