<script custom-tag="" type="application/ld+json">{"@context":"https://schema.org","@type":"TechArticle","headline":"Fields are missing on OOB LE form","image":"http://support.servicenow.com/29f1d2661baf6010cafa53d8624bcb43.iix","author":{"name":"ServiceNow Support","url":"http://support.servicenow.com/now"},"keywords":"ServiceNow, NowSupport public Knowledge Base articles, Known Error,KB2952697,","wordcount":"34198","publisher":"ServiceNow","url":"https://support.servicenow.com/kb/kb?id=kb_article_view&sysparm_article=KB2952697","datePublished":"2026-04-13","dateCreated":"2026-04-13","dateModified":"2026-04-13","description":"<h2>Fields are missing on OOB LE form</h2><br/><div style=\"overflow-x:auto\"><h2>Description</h2><div><p>sn_hr_core_case_creation page, rich_description does not hold/contain html for rich description ","articleBody":"<h2>Fields are missing on OOB LE form</h2><br/><div style=\"overflow-x:auto\"><h2>Description</h2><div><p>sn_hr_core_case_creation page, rich_description does not hold/contain html for rich description formatting (eg. &lt;br/ &gt;)</p></div><h2>Steps to Reproduce</h2><div> <p></p><p>1. Create a database from hr-db-dump<br />2. Go to the list of journeys. Open the HR case for one of them<br />3. Notice that the Journey context isn&#39;t on the page. <br /><br />Expected: journey context should be on the page.</p></div><h2>Workaround</h2><div><p>Please apply the following fix on the ui page-3433fb86eb533200a9e7e26ac106fef2</p>\r\n<pre class=\"language-markup\"><code>&lt;?xml version&#61;&#34;1.0&#34; encoding&#61;&#34;UTF-8&#34;?&gt;&lt;record_update table&#61;&#34;sys_ui_page&#34;&gt;\r\n &lt;sys_ui_page action&#61;&#34;INSERT_OR_UPDATE&#34;&gt;\r\n &lt;category/&gt;\r\n &lt;client_script&gt;&lt;![CDATA[// Close the search_input select2 dropdown mask when clicking outside the iframe\r\nwindow.addEventListener(&#39;blur&#39;, function() {\r\n var searchInput &#61; $j(&#34;#search_input&#34;);\r\n if (searchInput)\r\n searchInput.select2(&#39;close&#39;);\r\n});\r\n\r\n$j(document).ready(function() {\r\n angular.module(&#39;caseCreation&#39;, [\r\n &#39;sn.ngform&#39;,\r\n &#39;sn.list&#39;,\r\n &#39;sn.common.ui&#39;,\r\n &#39;sn.common&#39;\r\n ]).config(function($httpProvider, $ariaProvider) {\r\n function removeInfoMessage(response) {\r\n if (!response.data || !response.data.result || !response.data.session || !response.data.session.notifications || !response.config || !response.config.url || response.config.url !&#61; &#34;/api/sn_hr_core/case_creation/search&#34;)\r\n return response;\r\n\r\n // Don&#39;t show info messages on search\r\n var notifications &#61; response.data.session.notifications;\r\n if (notifications &amp;&amp; notifications.length)\r\n for (var i &#61; notifications.length - 1; i &gt; -1; i--)\r\n if (notifications[i].type &#61;&#61; &#34;info&#34;)\r\n notifications.splice(i, 1);\r\n\r\n return response;\r\n }\r\n\r\n // $httpProvider interceptors run in reverse for response\r\n $httpProvider.interceptors.push(function(snCustomEvent) {\r\n return {\r\n &#39;response&#39;: function(response) {\r\n return removeInfoMessage(response);\r\n }\r\n };\r\n });\r\n\r\n // Do not add role&#61;button to ng-click\r\n $ariaProvider.config({\r\n bindRoleForClick: false\r\n });\r\n\r\n }).controller(&#39;NgCaseCreation&#39;, function($scope, $http, $timeout, $compile) {\r\n\r\n $scope.$applyAsync(function() {\r\n $j(&#39;#case_creation_container&#39;).find(&#39;.select2-choice&#39;).attr(&#39;aria-hidden&#39;, &#34;true&#34;);\r\n });\r\n\r\n // TODO This token becomes invalid if user session expires\r\n // Manually set header to prevent authentication popup\r\n $http.defaults.headers.common[&#34;X-UserToken&#34;] &#61; g_ck;\r\n\r\n // TinyMCE configuration for HTML fields\r\n $scope.mceConfig &#61; null;\r\n $scope.mceFields &#61; [];\r\n\r\n var gaMCEConfig &#61; new GlideAjax(&#39;HRServiceCreatorUtilAjax&#39;);\r\n gaMCEConfig.addParam(&#39;sysparm_name&#39;, &#39;getTinyMCEConfig&#39;);\r\n gaMCEConfig.getXML(function(res) {\r\n var mceConfig &#61; res.responseXML.documentElement.getAttribute(&#34;answer&#34;);\r\n mceConfig &#61; mceConfig.evalJSON(mceConfig);\r\n $scope.mceConfig &#61; mceConfig;\r\n for (var i &#61; 0; i &lt; $scope.mceFields.length; i&#43;&#43;)\r\n setupTinymceField($scope.mceFields[i], $scope.mceConfig);\r\n $scope.mceFields &#61; [];\r\n });\r\n\r\n $scope.setupMCE &#61; function(fieldId, fieldValue) {\r\n if ($scope.mceConfig) {\r\n $timeout(function() {\r\n var existingEditor &#61; tinymce.get(fieldId);\r\n if (existingEditor)\r\n existingEditor.remove();\r\n setupTinymceField(fieldId, $scope.mceConfig);\r\n // Set editor content from field value after initialization\r\n if (fieldValue) {\r\n var newEditor &#61; tinymce.get(fieldId);\r\n if (newEditor)\r\n newEditor.setContent(fieldValue);\r\n }\r\n });\r\n } else {\r\n if ($scope.mceFields.indexOf(fieldId) &#61;&#61;&#61; -1)\r\n $scope.mceFields.push(fieldId);\r\n }\r\n };\r\n\r\n $scope.classes &#61; {\r\n label: &#39;col-xs-12 col-md-3 col-lg-4 control-label ev-field-label&#39;,\r\n wideLabel: &#39;col-xs-12 col-md-1_5 col-lg-2 control-label ev-field-label&#39;,\r\n field: &#39;col-xs-10 col-sm-9 col-md-6 col-lg-5 form-field input_controls&#39;,\r\n wideField: &#39;col-xs-10 col-md-9 col-lg-8 form-field input_controls&#39;,\r\n addons: &#39;col-xs-2 col-sm-3 col-lg-2 form-field-addons&#39;,\r\n wideAddons: &#39;col-xs-2 col-md-1_5 col-lg-2 form-field-addons&#39;\r\n };\r\n\r\n // TODO Prevent page timing service errors\r\n if (!window.NOW)\r\n window.NOW &#61; {};\r\n window.NOW.PageTimingService &#61; {\r\n send: function() {}\r\n };\r\n window.NOW.clientTiming &#61; {\r\n pageInitTime: new Date()\r\n };\r\n if (!window.NOW.hasOwnProperty(&#39;ac_wait_time&#39;))\r\n window.NOW.ac_wait_time &#61; ac_wait_time || 250;\r\n\r\n $scope.profile &#61; {};\r\n // Clear select2 on load in case of back button and browser cache\r\n if ($j(&#34;#search_input&#34;).val())\r\n $timeout(function() {\r\n $j(&#34;#search_input&#34;).select2(&#34;data&#34;, {});\r\n $j(&#34;#search_input&#34;).select2(&#34;data&#34;, null);\r\n });\r\n var userInit &#61; JSON.parse(userObject);\r\n if (userInit &amp;&amp; userInit.sys_id) {\r\n $timeout(function() {\r\n $j(&#34;#search_input&#34;).select2(&#34;data&#34;, userInit);\r\n });\r\n }\r\n\r\n var gwtMessageObj &#61; new GwtMessage();\r\n\r\n $scope.coes &#61; JSON.parse(coes);\r\n $scope.links &#61; JSON.parse(links);\r\n $scope.serviceCategories &#61; [];\r\n $scope.table &#61; &#34;&#34;;\r\n $scope.taskFields &#61; JSON.parse(taskFields);\r\n $scope.collectionKey &#61; collectionKey;\r\n $scope.collectionId &#61; collectionId;\r\n $scope.universalReq &#61; universalReq;\r\n $scope.missingService &#61; true;\r\n $scope.showError &#61; false;\r\n $scope.clearForm &#61; true; //disables create case button\r\n $scope.isChildOfUR &#61; false;\r\n $scope.clearSearchSelectionMsg &#61; gwtMessageObj.getMessage(&#39;Clear {}&#39;); // i18n message to clear selection for aria-label\r\n $scope.HTML_ENTITIES &#61; {\r\n &#39;cent&#39;: &#39;¢&#39;,\r\n &#39;pound&#39;: &#39;£&#39;,\r\n &#39;yen&#39;: &#39;¥&#39;,\r\n &#39;euro&#39;: &#39;€&#39;,\r\n &#39;copy&#39;: &#39;©&#39;,\r\n &#39;reg&#39;: &#39;®&#39;,\r\n &#39;lt&#39;: &#39;&lt;&#39;,\r\n &#39;gt&#39;: &#39;&gt;&#39;,\r\n &#39;quot&#39;: &#39;&#34;&#39;,\r\n &#39;amp&#39;: &#39;&amp;&#39;,\r\n &#39;apos&#39;: &#39;\\&#39;&#39;\r\n };\r\n\r\n if (universalReq) {\r\n $scope.isChildOfUR &#61; true;\r\n }\r\n\r\n // Add skip verification message to the form\r\n if (document.getElementById(&#34;skip_verification_container&#34;))\r\n angular.element(document.getElementById(&#34;skip_verification_container&#34;)).append($compile(translatedMessage)($scope));\r\n\r\n // Confirm before leaving\r\n window.onbeforeunload &#61; function() {\r\n if ($scope.creatingCase || !$j(&#34;#search_input&#34;).val() || $scope.allowNavigation) {\r\n $scope.allowNavigation &#61; false;\r\n return;\r\n }\r\n\r\n $scope.allowNavigation &#61; false;\r\n var message &#61; &#39;${gs.getMessage(&#34;Changes you made may not be saved.&#34;)}&#39;;\r\n if (window.event)\r\n window.event.returnValue &#61; message;\r\n return message;\r\n };\r\n\r\n $scope.sanitize &#61; function(text) {\r\n return $j(&#34;&lt;div&gt;&#34;).text(text).html();\r\n };\r\n\r\n $scope.unescapeHTML &#61; function(body, htmlEntities) {\r\n return body.replace(/&amp;([^;]&#43;);/g, function(entity, entityCode) {\r\n var match;\r\n if (entityCode in htmlEntities) {\r\n return htmlEntities[entityCode];\r\n } else if (match &#61; entityCode.match(/^#x([\\da-fA-F]&#43;)$/)) {\r\n return String.fromCharCode(parseInt(match[1], 16));\r\n } else if (match &#61; entityCode.match(/^#(\\d&#43;)$/)) {\r\n return String.fromCharCode(~~match[1]);\r\n } else {\r\n return entity;\r\n }\r\n });\r\n },\r\n\r\n $scope.mailTo &#61; function(emailAddress) {\r\n if (emailAddress) {\r\n $scope.allowNavigation &#61; true;\r\n window.top.location &#61; &#34;mailto:&#34; &#43; emailAddress;\r\n }\r\n };\r\n\r\n $scope.addTooltips &#61; function(selector) {\r\n $timeout(function() {\r\n $j(selector).each(function() {\r\n if (this.nodeName &#61;&#61; &#34;A&#34; || this.offsetWidth &lt; this.scrollWidth)\r\n $j(this).tooltip({\r\n container: &#39;body&#39;\r\n }).hideFix();\r\n else\r\n $j(this).removeAttr(&#34;title&#34;);\r\n });\r\n });\r\n };\r\n\r\n $scope.showRefPopup &#61; function(event, field) {\r\n if ($scope.displayOrderButton)\r\n $scope.displayOrderButton.popover(&#39;hide&#39;);\r\n\r\n var table, sys_id;\r\n if (field.internal_type &#61;&#61; &#34;glide_list&#34;) {\r\n if (field.highlightedOptions &amp;&amp; field.highlightedOptions.length &#61;&#61; 1) {\r\n table &#61; field.reference;\r\n sys_id &#61; field.highlightedOptions[0];\r\n }\r\n } else {\r\n // TODO these could be joined with ||&#39;s\r\n if (field.ev_table &amp;&amp; field.ev_sys_id) {\r\n table &#61; field.ev_table;\r\n sys_id &#61; field.ev_sys_id;\r\n } else {\r\n table &#61; field.reference || field.table;\r\n sys_id &#61; field.sys_id || field.value;\r\n }\r\n }\r\n\r\n if (!table || !sys_id)\r\n return;\r\n\r\n // Mimic GlidePopup.js popReferenceDiv without using data attributes\r\n event.preventDefault();\r\n // If we don&#39;t have a popover, don&#39;t propagate click to window or events are destroyed too early\r\n if (!$j(event.target).data(&#34;bs.popover&#34;))\r\n event.stopPropagation();\r\n var options &#61; {\r\n trapFocus: true,\r\n width: 0\r\n };\r\n var contentURL &#61; new GlideURL(&#34;popup.do&#34;);\r\n contentURL.addParam(&#34;sysparm_sys_id&#34;, sys_id);\r\n contentURL.addParam(&#34;sysparm_table_name&#34;, table);\r\n contentURL.addParam(&#34;sysparm_field_name&#34;, &#34;sys_id&#34;);\r\n contentURL.addParam(&#34;sysparm_view&#34;, &#34;case_creation&#34;);\r\n contentURL.addParam(&#34;sysparm_popup_direct&#34;, &#34;true&#34;);\r\n contentURL.addParam(&#34;sysparm_show_open_button&#34;, &#34;true&#34;);\r\n contentURL.addParam(&#34;sysparm_glide_popup&#34;, &#34;true&#34;);\r\n nowapi.g_popup_manager.showPopup(event, contentURL.getURL(), options);\r\n };\r\n\r\n $scope.getFieldId &#61; function(field) {\r\n return &#34;ev_field_&#34; &#43; field.column_name.replace(&#34;.&#34;, &#34;_&#34;) &#43; (field.disabled ? &#34;_disabled&#34; : &#34;&#34;);\r\n };\r\n\r\n $scope.showFloorPlan &#61; function(field) {\r\n if (fvwPluginActive) {\r\n var url &#61; [\r\n &#39;$ng_fvw.do?sysparm_stack&#61;no&#39;,\r\n &#39;&amp;sysparm_campusSysId&#61;&#39; &#43; field.campus_sys_id,\r\n &#39;&amp;sysparm_drawingId&#61;&#39; &#43; field.external_building_id,\r\n &#39;&amp;sysparm_levelId&#61;&#39; &#43; field.external_level_id,\r\n &#39;&amp;sysparm_spaceId&#61;&#39; &#43; field.external_space_id\r\n ].join(&#39;&#39;);\r\n g_navigation.openPopup(url, &#39;facilities_map&#39;);\r\n }\r\n };\r\n\r\n $scope.openLink &#61; function(link) {\r\n if (!link || !link.url)\r\n return;\r\n open(link.url);\r\n };\r\n\r\n var fieldCache &#61; {};\r\n var getField &#61; function(fieldName) {\r\n if (fieldName in fieldCache)\r\n return fieldCache[fieldName];\r\n\r\n for(var key in $scope.taskFields) {\r\n for(var i &#61; 0; i &lt; $scope.taskFields[key].length; i&#43;&#43;) {\r\n if ($scope.taskFields[key][i].column_name &#61;&#61; fieldName) {\r\n fieldCache[fieldName] &#61; $scope.taskFields[key][i];\r\n return $scope.taskFields[key][i];\r\n }\r\n }\r\n }\r\n\r\n return {};\r\n };\r\n\r\n $scope.refOnChange &#61; function(updatedField) {\r\n if ($scope.displayOrderButton)\r\n $scope.displayOrderButton.popover(&#39;hide&#39;);\r\n\r\n // Get ev_table and ev_sys_id to show profile in reference icon for Subject person and Opened for fields\r\n if ([&#34;subject_person&#34;, &#34;opened_for&#34;].indexOf(updatedField.column_name) &gt; -1) {\r\n if (updatedField.ev_preset)\r\n updatedField.ev_preset &#61; false;\r\n else {\r\n updatedField.ev_table &#61; &#39;&#39;;\r\n updatedField.ev_sys_id &#61; &#39;&#39;;\r\n updatedField.ev_tooltip &#61; &#39;&#39;;\r\n // Set priority if VIP User\r\n if (updatedField.value)\r\n $scope.checkVipUser();\r\n $http.post(&#34;/api/sn_hr_core/case_creation/get_employee_reference&#34;, {\r\n user: updatedField.value,\r\n column_label: updatedField.label\r\n }).then(function(response) {\r\n var employeeReference &#61; response.data.result;\r\n for (var key in employeeReference)\r\n updatedField[key] &#61; employeeReference[key];\r\n });\r\n }\r\n }\r\n\r\n if (updatedField.column_name &#61;&#61;&#61; &#39;stage&#39;) {\r\n var displayOrderFieldObj &#61; getField(&#39;display_order&#39;);\r\n displayOrderFieldObj.hidden &#61; !updatedField.value;\r\n\r\n if (displayOrderFieldObj.hidden)\r\n return;\r\n\r\n $http.post(&#39;/api/sn_hr_core/hr_rest_api/get_display_order_info&#39;, {\r\n tabulate: true,\r\n activity_set_sys_id: updatedField.value,\r\n parent_sys_id: leParentSysId || &#39;&#39;,\r\n short_description: &#39;${gs.getMessage(&#34;Current case&#34;)}&#39;\r\n }).then(function (response) {\r\n if (!response || !response.data || !response.data.result)\r\n return;\r\n\r\n var resObj &#61; response.data.result;\r\n displayOrderFieldObj.display &#61; resObj.expected_order || 100;\r\n $scope.showDisplayOrderButton &#61; (resObj.activityRows &amp;&amp; resObj.activityRows.length &gt; 0);\r\n\r\n if ($scope.showDisplayOrderButton)\r\n $scope.initDisplayOrderPopover(resObj);\r\n });\r\n }\r\n\r\n // Update services based on subject person\r\n if (updatedField.column_name &#61;&#61; &#34;subject_person&#34;)\r\n $scope.updateServices(updatedField.value);\r\n\r\n $scope.updateLists();\r\n };\r\n\r\n // initialize display order popover\r\n $scope.initDisplayOrderPopover &#61; function (res) {\r\n if ($scope.displayOrderButton)\r\n $scope.displayOrderButton.popover(&#39;destroy&#39;);\r\n\r\n $scope.popoverOptions &#61; {\r\n animation: false, // will not refresh if true\r\n container: &#39;body&#39;,\r\n html: true,\r\n content: createTbodyContent(res),\r\n template: getPopoverCustomTemplate(&#39;display-order-popover&#39;),\r\n title: res.heading\r\n };\r\n\r\n // ensure scroll compatibility\r\n if (document.querySelector(&#39;.section_header_content_no_scroll&#39;))\r\n $scope.popoverOptions.container &#61; &#39;.section_header_content_no_scroll&#39;;\r\n\r\n setTimeout(function () {\r\n $scope.displayOrderButton &#61; $j(&#39;#displayOrderButton&#39;);\r\n $scope.displayOrderButton.popover($scope.popoverOptions);\r\n $j(&#39;html&#39;)\r\n .on(&#39;click&#39;, function (event) {\r\n event.stopPropagation();\r\n if ($scope.displayOrderButton &amp;&amp; event.target !&#61;&#61; $scope.displayOrderButton[0])\r\n $scope.displayOrderButton.popover(&#39;hide&#39;);\r\n });\r\n\r\n $j(window)\r\n .on(&#39;resize&#39;, function (event) {\r\n $scope.displayOrderButton.popover(&#39;hide&#39;);\r\n });\r\n\r\n $j(&#39;.select2-container&#39;)\r\n .click(function (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n if ($scope.displayOrderButton)\r\n $scope.displayOrderButton.popover(&#39;hide&#39;);\r\n });\r\n });\r\n\r\n function getPopoverCustomTemplate(className) {\r\n return &#39;&lt;div class&#61;&#34;popover glide-popup &#39; &#43; className &#43; &#39;&#34; role&#61;&#34;tooltip&#34;&gt;&#39;\r\n &#43; &#39;&lt;div class&#61;&#34;arrow&#34;&gt;&lt;/div&gt;&#39;\r\n &#43; &#39;&lt;div class&#61;&#34;popover-header popover-header-bar&#34;&gt;&#39;\r\n &#43; &#39;&lt;h1 id&#61;&#34;glide_popup_popover_title&#34; class&#61;&#34;popover-title display-order-title&#34;&gt;&lt;/h1&gt;&#39;\r\n &#43; &#39;&lt;/div&gt;&#39;\r\n &#43; &#39;&lt;div class&#61;&#34;popover-content&#34;&gt;&lt;/div&gt;&lt;/div&gt;&#39;;\r\n }\r\n\r\n function createTbodyContent(res) {\r\n var displayOrder &#61; 0;\r\n var displayOrderInc &#61; 0;\r\n var trCount &#61; 0;\r\n var popoverTable &#61; document.createElement(&#39;table&#39;);\r\n popoverTable.id &#61; &#34;popoverTable&#34;;\r\n popoverTable.classList.add(&#39;table&#39;,&#39;list_table&#39;);\r\n\r\n $j(popoverTable)\r\n .on(&#39;click&#39;, function (event) {\r\n // disable popover from disappearing on click (stops it from reaching up to &#39;window&#39; click)\r\n event.stopPropagation();\r\n });\r\n\r\n if (res) {\r\n createTableCells(res);\r\n return popoverTable;\r\n }\r\n\r\n function createTableCells (resultObj) {\r\n if (resultObj.headers) {\r\n var thead &#61; document.createElement(&#39;thead&#39;);\r\n var theadTh &#61; document.createElement(&#39;tr&#39;);\r\n resultObj.headers.forEach(function (header) {\r\n theadTh.appendChild(createCell(header, &#39;th&#39;));\r\n });\r\n thead.appendChild(theadTh);\r\n popoverTable.appendChild(thead);\r\n }\r\n\r\n if (resultObj.activityRows) {\r\n $scope.popoverTableTbody &#61; document.createElement(&#39;tbody&#39;);\r\n resultObj.activityRows.forEach(createTdCells);\r\n popoverTable.appendChild($scope.popoverTableTbody);\r\n }\r\n\r\n function createTdCells (columnData) {\r\n var tbodyTr &#61; document.createElement(&#39;tr&#39;);\r\n\r\n if (trCount % 2 &#61;&#61;&#61; 0)\r\n tbodyTr.classList.add(&#39;list_even&#39;);\r\n\r\n if (columnData[3] &amp;&amp; columnData[3] &#61;&#61;&#61; &#39;newAdhoc&#39;) {\r\n columnData[1] &#61; formatNumber(resultObj.expected_order);\r\n tbodyTr.classList.add(&#39;current-task&#39;);\r\n }\r\n\r\n if (columnData[3] !&#61;&#61; undefined)\r\n tbodyTr.classList.add(&#39;current-task&#39;);\r\n\r\n columnData.forEach(function (content, index) {\r\n if (index &lt; 3) // exclude adhoc flags\r\n tbodyTr.appendChild(createCell(content, &#39;td&#39;));\r\n });\r\n\r\n $scope.popoverTableTbody.appendChild(tbodyTr);\r\n trCount&#43;&#43;;\r\n }\r\n\r\n function createCell (text, dom) {\r\n var cell &#61; document.createElement(dom);\r\n cell.textContent &#61; text;\r\n return cell;\r\n }\r\n }\r\n }\r\n };\r\n\r\n // updates the position in the display order popover table\r\n $scope.updateDisplayOrderPosition &#61; function(updatedField) {\r\n if (updatedField.display &#61;&#61;&#61; &#39;&#39;)\r\n return;\r\n\r\n var skip &#61; false;\r\n var currentTaskTr &#61; $scope.popoverTableTbody.querySelector(&#39;.current-task&#39;);\r\n var currentTaskValue &#61; Number(updatedField.value || 0);\r\n var adhocStatus &#61; currentTaskTr.querySelector(&#39;td:last-child&#39;).textContent;\r\n\r\n if (currentTaskTr)\r\n currentTaskTr.remove();\r\n\r\n currentTaskTr &#61; createCurrentTaskTr();\r\n\r\n var contentTableTbodyTr &#61; $scope.popoverTableTbody.querySelectorAll(&#39;tr&#39;);\r\n\r\n if (currentTaskValue &gt;&#61; getDisplayOrder(contentTableTbodyTr[contentTableTbodyTr.length - 1]))\r\n $scope.popoverTableTbody.appendChild(currentTaskTr);\r\n else\r\n contentTableTbodyTr.forEach(checkListAndInsertCurrentTask);\r\n\r\n $scope.popoverTableTbody.querySelectorAll(&#39;tr&#39;).forEach(updateZebraStyle);\r\n\r\n function checkListAndInsertCurrentTask (tr, index, arr) {\r\n if (!skip &amp;&amp; currentTaskValue &lt; getDisplayOrder(tr)) {\r\n $scope.popoverTableTbody.insertBefore(currentTaskTr, tr);\r\n skip &#61; true;\r\n }\r\n }\r\n\r\n // ph- prefix notes &#39;placeholder&#39;\r\n function createCurrentTaskTr () {\r\n var phTr &#61; document.createElement(&#39;tr&#39;);\r\n phTr.classList.add(&#39;current-task&#39;);\r\n phTr.innerHTML &#61; &#39;&lt;td&gt;${gs.getMessage(&#34;Current case&#34;)}&lt;/td&gt;&lt;td&gt;&#39; &#43; updatedField.display &#43; &#39;&lt;/td&gt;&lt;td&gt;&#39; &#43; adhocStatus &#43; &#39;&lt;/td&gt;&#39;;\r\n return phTr;\r\n }\r\n\r\n function getDisplayOrder (elem) {\r\n return Number(formatClean(elem.querySelector(&#39;td:nth-child(2n)&#39;).textContent) || 0);\r\n }\r\n\r\n function updateZebraStyle (tr, index) {\r\n // it would be easier to use css, but should use default heisenberg class name\r\n tr.classList.remove(&#39;list_even&#39;);\r\n if (index % 2 &#61;&#61;&#61; 0)\r\n tr.classList.add(&#39;list_even&#39;);\r\n }\r\n };\r\n\r\n $scope.checkVipUser &#61; function() {\r\n // Create map of field column names to field\r\n var fieldMap &#61; {};\r\n for (var fieldList in $scope.taskFields)\r\n for (var i &#61; 0; i &lt; $scope.taskFields[fieldList].length; i&#43;&#43;) {\r\n var field &#61; $scope.taskFields[fieldList][i];\r\n fieldMap[field.column_name] &#61; field;\r\n }\r\n\r\n if (fieldMap.hasOwnProperty(&#34;priority&#34;)) {\r\n var userArray &#61; [];\r\n if (fieldMap.hasOwnProperty(&#34;opened_for&#34;) &amp;&amp; fieldMap[&#34;opened_for&#34;].value)\r\n userArray.push(fieldMap[&#34;opened_for&#34;].value);\r\n if (fieldMap.hasOwnProperty(&#34;subject_person&#34;) &amp;&amp; fieldMap[&#34;subject_person&#34;].value)\r\n userArray.push(fieldMap[&#34;subject_person&#34;].value);\r\n if (userArray.length)\r\n $http.post(&#34;/api/sn_hr_core/case_creation/contains_vip_user&#34;, {\r\n userArr: userArray\r\n }).then(function(response) {\r\n if (response.data.result) {\r\n fieldMap[&#34;priority&#34;].value &#61; vipPriority;\r\n $timeout(function() {\r\n $j(&#34;#ev_case #&#34; &#43; $scope.getFieldId(fieldMap[&#34;priority&#34;])).trigger(&#39;change&#39;);\r\n });\r\n }\r\n });\r\n }\r\n };\r\n\r\n $scope.updateServices &#61; function(userId) {\r\n $http.post(&#34;/api/sn_hr_core/case_creation/services_for_user&#34;, {\r\n user: userId\r\n }).then(function(response) {\r\n $timeout(function() {\r\n $scope.serviceCategories &#61; response.data.result;\r\n var currentService &#61; $j(&#34;#service_input&#34;).val();\r\n if (!currentService)\r\n return;\r\n var found &#61; false;\r\n for (var i &#61; 0; i &lt; $scope.serviceCategories.length; i&#43;&#43;) {\r\n var children &#61; $scope.serviceCategories[i].children;\r\n for (var j &#61; 0; j &lt; children.length; j&#43;&#43;) {\r\n if (children[j].sys_id &#61;&#61; currentService) {\r\n found &#61; true;\r\n break;\r\n }\r\n }\r\n if (found)\r\n break;\r\n }\r\n if (!found)\r\n $j(&#34;#service_input&#34;).select2(&#34;data&#34;, null);\r\n });\r\n });\r\n };\r\n\r\n // TODO Update this logic when related lists are configurable\r\n $scope.updateLists &#61; function() {\r\n var fieldMap &#61; {}; // mapping from column_name to value\r\n var fieldMapObj &#61; {}; // mapping from column_name to field obj\r\n for (var fieldList in $scope.taskFields)\r\n for (var i &#61; 0; i &lt; $scope.taskFields[fieldList].length; i&#43;&#43;) {\r\n var field &#61; $scope.taskFields[fieldList][i];\r\n fieldMap[field.column_name] &#61; field.value;\r\n fieldMapObj[field.column_name] &#61; field;\r\n }\r\n\r\n for (var j &#61; 0; j &lt; $scope.relatedLists.length; j&#43;&#43;) {\r\n var queryField &#61; $scope.relatedLists[j].queryField;\r\n var fieldNotOnForm &#61; queryField &amp;&amp; !fieldMap.hasOwnProperty(queryField);\r\n\r\n // Hide related lists for fields not on form, or for subject_person if same as opened_for\r\n if (fieldNotOnForm || (queryField &#61;&#61; &#34;subject_person&#34; &amp;&amp; fieldMap.hasOwnProperty(&#34;opened_for&#34;) &amp;&amp; (fieldMap[&#34;opened_for&#34;] &#61;&#61; fieldMap[&#34;subject_person&#34;] || !fieldMap[&#34;subject_person&#34;])))\r\n $scope.relatedLists[j].hide &#61; true;\r\n else {\r\n $scope.relatedLists[j].hide &#61; false;\r\n // Make this related list &#34;active&#34; if none are active\r\n for (var m &#61; 0; m &lt; $scope.relatedLists.length; m&#43;&#43;) {\r\n if ($scope.relatedLists[m].active &amp;&amp; !$scope.relatedLists[m].hide)\r\n break;\r\n else if (m &#61;&#61; $scope.relatedLists.length - 1)\r\n $scope.relatedLists[j].active &#61; true;\r\n }\r\n }\r\n\r\n // Select another related list if hiding the selected related list\r\n if ($scope.relatedLists[j].hide &amp;&amp; $scope.relatedLists[j].active) {\r\n $scope.relatedLists[j].active &#61; false;\r\n for (var k &#61; 0; k &lt; $scope.relatedLists.length; k&#43;&#43;) {\r\n var rList &#61; $scope.relatedLists[k];\r\n if (!rList.hide) {\r\n rList.active &#61; true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // Don&#39;t update hidden related lists\r\n if ($scope.relatedLists[j].hide)\r\n continue;\r\n\r\n // Update related list if the query has changed\r\n var query;\r\n if (fieldMap[queryField])\r\n query &#61; &#34;opened_for&#61;&#34; &#43; fieldMap[queryField] &#43; &#34;^ORsubject_person&#61;&#34; &#43; fieldMap[queryField];\r\n else\r\n query &#61; &#34;sys_id&#61;null&#34;;\r\n if ($scope.relatedLists[j].parameters.sysparm_fixed_query !&#61; query) {\r\n $scope.relatedLists[j].parameters.sysparm_fixed_query &#61; query;\r\n // update label with user&#39;s name\r\n var gwtMessageObj &#61; new GwtMessage();\r\n var message &#61; gwtMessageObj.getMessage(&#34;Cases for {0}&#34;, fieldMap[queryField] ? fieldMapObj[queryField].displayValue : &#34;Opened for&#34;);\r\n $scope.relatedLists[j].properties.displayLabel &#61; $scope.sanitize(message);\r\n var elementId &#61; $scope.relatedLists[j].properties.listId;\r\n if (elementId)\r\n $scope.updateList(elementId);\r\n }\r\n }\r\n\r\n // run script to fix select2 for WCAG spec - need to add wait for rendering time\r\n $timeout($scope.addAriaLabelToSelect2ClearIcon, 300);\r\n };\r\n\r\n $scope.updateList &#61; function(elementId) {\r\n $timeout(function() {\r\n var curEle &#61; angular.element(document.getElementById(elementId));\r\n if (curEle &amp;&amp; curEle.scope() &amp;&amp; curEle.scope().updateList)\r\n curEle.scope().updateList();\r\n });\r\n };\r\n\r\n $scope.skipVerification &#61; function() {\r\n if ($scope.creatingCase)\r\n return;\r\n\r\n // Set opened_for and subject_person to not mandatory\r\n for (var fieldList in $scope.taskFields)\r\n for (var i &#61; 0; i &lt; $scope.taskFields[fieldList].length; i&#43;&#43;) {\r\n var field &#61; $scope.taskFields[fieldList][i];\r\n if ((field.column_name &#61;&#61; &#34;opened_for&#34; || field.column_name &#61;&#61; &#34;subject_person&#34;) &amp;&amp; field.mandatory)\r\n field.mandatory &#61; false;\r\n }\r\n $scope.skippedVerification &#61; true;\r\n $scope.clearForm &#61; false; // Enable Create Case button\r\n $scope.updateServices();\r\n $scope.showOrHideCaseDetails();\r\n };\r\n\r\n $scope.createCase &#61; function() {\r\n $scope.creatingCase &#61; true;\r\n\r\n // Create an object of fields to set when creating a task\r\n var fields &#61; {};\r\n var missingMandatoryFields &#61; [];\r\n\t\t\tvar errorFields &#61; [];\r\n\r\n if (conversation)\r\n fields[&#39;contact_type&#39;] &#61; {\r\n value: &#39;chat&#39;\r\n };\r\n if ($scope.collectionKey)\r\n fields[$scope.collectionKey] &#61; {\r\n value: $scope.collectionId\r\n };\r\n\r\n // Sync TinyMCE content to field values before submission\r\n if (typeof tinymce !&#61;&#61; &#39;undefined&#39;)\r\n tinymce.triggerSave();\r\n for (var fl in $scope.taskFields)\r\n for (var j &#61; 0; j &lt; $scope.taskFields[fl].length; j&#43;&#43;) {\r\n var htmlField &#61; $scope.taskFields[fl][j];\r\n if (htmlField.internal_type &#61;&#61;&#61; &#39;html&#39; || htmlField.internal_type &#61;&#61;&#61; &#39;translated_html&#39;) {\r\n var editor &#61; tinymce.get($scope.getFieldId(htmlField));\r\n if (editor)\r\n htmlField.value &#61; editor.getContent();\r\n }\r\n }\r\n\r\n for (var fieldList in $scope.taskFields)\r\n for (var i &#61; 0; i &lt; $scope.taskFields[fieldList].length; i&#43;&#43;) {\r\n var field &#61; $scope.taskFields[fieldList][i];\r\n var fieldObj &#61; {};\r\n // TODO Test with setting string/number (fields where ng-model is field.display) from template and changing display to see what sets\r\n fieldObj.value &#61; field.value || field.display;\r\n\r\n //check mandatory field value\r\n if (field.mandatory &amp;&amp; (field.value.toString() &#61;&#61; &#39;&#39;)) {\r\n missingMandatoryFields.push(field.label);\r\n errorFields.push(field);\r\n }\r\n fieldObj.setAsDisplayValue &#61; field.setAsDisplayValue || false;\r\n\r\n if (field.column_name &#61;&#61; &#34;opened_for&#34; &amp;&amp; !field.value &amp;&amp; $scope.skippedVerification)\r\n continue;\r\n\r\n fields[field.column_name] &#61; fieldObj;\r\n }\r\n // TODO Could HR Service be an input field with hardcoding? or bleh\r\n fields[&#34;hr_service&#34;] &#61; {\r\n value: $j(&#34;#service_input&#34;).val()\r\n };\r\n\r\n if ($scope.universalReq) {\r\n fields[&#34;universal_request&#34;] &#61; {\r\n value: $scope.universalReq\r\n };\r\n fields[&#34;state&#34;] &#61; {\r\n value: &#39;10&#39;\r\n };\r\n }\r\n // Get the table name of the service, if available\r\n var tableName;\r\n var serviceData &#61; $j(&#34;#service_input&#34;).select2(&#39;data&#39;);\r\n if (serviceData)\r\n tableName &#61; serviceData.coe;\r\n tableName &#61; tableName || $j(&#34;#coe_input&#34;).val() || taskCreateTable;\r\n\r\n //show error message for missing mandatory fields\r\n if ($scope.missingService || (missingMandatoryFields.length &gt; 0)) {\r\n if ($scope.missingService)\r\n missingMandatoryFields.push(gwtMessageObj.getMessage(&#34;HR service&#34;));\r\n $scope.toggleErrorMessage(true, missingMandatoryFields);\r\n $scope.focusErrorField(errorFields);\r\n $scope.creatingCase &#61; false;\r\n } else {\r\n $http.post(&#34;/api/sn_hr_core/case_creation/create_task&#34;, {\r\n table: tableName,\r\n fields: fields\r\n }).then(function(response) {\r\n if (response.data.result.hasOwnProperty(&#39;table&#39;) &amp;&amp; response.data.result.hasOwnProperty(&#39;sys_id&#39;)) {\r\n // TODO Should conversation event fire if provided user has changed since page load?\r\n // TODO Firing event triggers page redirect in addition to g_navigation.openRecord, switch to else and update connect action for url stack?\r\n if (conversation)\r\n CustomEventManager.fireTop(&#34;connect:set_document&#34;, {\r\n conversation: conversation,\r\n table: response.data.result.table,\r\n document: response.data.result.sys_id\r\n });\r\n g_navigation.openRecord(response.data.result.table, response.data.result.sys_id);\r\n\r\n } else if (response.data.result.can_read &#61;&#61;&#61; false)\r\n $timeout(function() {\r\n g_navigation.reloadWindow();\r\n }, 4000);\r\n else\r\n $scope.creatingCase &#61; false;\r\n });\r\n }\r\n };\r\n\r\n $scope.focusErrorField &#61; function(errorFields) {\r\n if ($scope.missingService)\r\n $j(&#34;#service_input&#34;).select2(&#39;focus&#39;);\r\n for (var i&#61;0; i&lt;errorFields.length; i&#43;&#43;) {\r\n if (errorFields[i].internal_type &#61;&#61; &#39;reference&#39;) \r\n $j(&#34;#ev_field_&#34; &#43; errorFields[i].column_name).select2(&#39;focus&#39;);\r\n else\r\n $j(&#34;#ev_field_&#34; &#43; errorFields[i].column_name).focus();\r\n }\r\n };\r\n\r\n $scope.toggleErrorMessage &#61; function(showMessage, missingFields) {\r\n if (showMessage &amp;&amp; missingFields.length &gt; 0) {\r\n var missingFieldsString &#61; missingFields.join(&#39;, &#39;);\r\n $scope.errorMessage &#61; gwtMessageObj.getMessage(&#34;The following mandatory fields are not filled in: {0}&#34;, missingFieldsString);\r\n } else\r\n $scope.errorMessage &#61; &#39;&#39;;\r\n\r\n $scope.showError &#61; showMessage;\r\n };\r\n\r\n /* Method for fixing Select2 clear button\r\n * &#64;PARAM - evt (object): select2 &#39;change&#39; event object\r\n */\r\n $scope.addAriaLabelToSelect2ClearIcon &#61; function (evt) {\t\t\r\n // if method is being called via select2\r\n if (evt)\r\n fixSelect2AriaLabelForWcag(evt.target);\r\n // if method is being called via $scope.updateLists (for ev_ fields)\r\n else {\r\n if (document.getElementById(&#39;ev_field_opened_for&#39;))\r\n fixSelect2AriaLabelForWcag(document.getElementById(&#39;ev_field_opened_for&#39;));\r\n if (document.getElementById(&#39;ev_field_subject_person&#39;))\r\n fixSelect2AriaLabelForWcag(document.getElementById(&#39;ev_field_subject_person&#39;));\r\n }\r\n\r\n // main private method to remove node from parent &lt;a&gt; to ensure proper navigation via VoiceOver (ctl &#43; option &#43; arrow keys)\r\n function fixSelect2AriaLabelForWcag (el) {\r\n if (!el)\r\n return;\r\n\r\n // get the title to use as aria-label. &#34;search for employee&#34; does not have label, so need to fetch h2 textContent\r\n var labelForCloseIcon &#61; el.parentNode.parentNode.querySelector(&#39;span[title]&#39;) || document.querySelector(&#39;.ev-section-header&#39;);\r\n // this is the element node where the clear button will be added to\r\n var elemSibling &#61; el.previousSibling;\r\n // this is the parent node for clear button\r\n var elemSiblingAnchor &#61; el.previousSibling.querySelector(&#39;a&#39;);\r\n // close button\r\n var select2CloseIcon &#61; elemSibling.querySelector(&#39;.select2-search-choice-close&#39;);\r\n // add the aria-label to close button\r\n select2CloseIcon.setAttribute(&#39;aria-label&#39;, $scope.clearSearchSelectionMsg.replace(&#39;{}&#39;, labelForCloseIcon.textContent));\r\n // need to manually add event listener to clear select2 when clicked\r\n select2CloseIcon.addEventListener(&#39;click&#39;, function () {\r\n $j(el).select2(&#39;val&#39;, &#39;&#39;).trigger(&#39;change&#39;);\r\n $scope.showOrHideCaseDetails();\r\n });\r\n }\r\n\r\n // Call at the end in case the fixSelect2AriaLabelForWcag method is not called.\r\n $scope.showOrHideCaseDetails();\r\n };\r\n\r\n $scope.showOrHideCaseDetails &#61; function() {\r\n //show or hide Case Details section\r\n if($scope.skippedVerification || $scope.profile.sys_id)\r\n document.getElementById(&#39;section-ev_case&#39;).style.display &#61; &#34;block&#34;;\r\n else \r\n document.getElementById(&#39;section-ev_case&#39;).style.display &#61; &#34;none&#34;;\r\n };\r\n\r\n // Select2 setup\r\n $j(&#34;#search_input&#34;).select2({\r\n //override the defaults\r\n formatNoMatches: function() {\r\n return &#34;${gs.getMessage(&#39;No matches found&#39;)}&#34;;\r\n },\r\n formatSearching: function() {\r\n return &#34;${gs.getMessage(&#39;Searching..&#39;)}&#34;;\r\n },\r\n formatAjaxError: function() {\r\n return &#34;${gs.getMessage(&#39;The results could not be loaded&#39;)}&#34;;\r\n },\r\n formatLoadMore: function() {\r\n return &#34;${gs.getMessage(&#39;Loading more results...&#39;)}&#34;;\r\n },\r\n formatInputTooShort: function(args) {\r\n var SELECT2_MINIMUM_CHAR_INPUT &#61; minimumInputLength;\r\n var remainingChars &#61; SELECT2_MINIMUM_CHAR_INPUT;\r\n if (args.length)\r\n remainingChars -&#61; args.length;\r\n var gwtMessageObj &#61; new GwtMessage();\r\n var message &#61; gwtMessageObj.getMessage(&#39;Please enter {0} or more characters&#39;, remainingChars);\r\n return message;\r\n },\r\n allowClear: true,\r\n ajax: {\r\n quietMillis: ac_wait_time,\r\n // Specify a data property passed to transport function via &#39;params&#39;\r\n data: function(searchTerm, page) {\r\n // TODO scrolling fast can result in same page being requested multiple times\r\n if (page &gt; 1) // TODO IS this needed to handle multiple searches going out before returning?\r\n $scope.table &#61; &#34;&#34;;\r\n return {\r\n q: searchTerm,\r\n page: page - 1,\r\n table: (page &gt; 1) ? $scope.table : &#34;&#34;\r\n };\r\n },\r\n // Specify how to call server\r\n transport: function(params) {\r\n return $http.post(&#34;/api/sn_hr_core/case_creation/search&#34;, params.data).then(function(response) {\r\n params.success.apply(this, [response]);\r\n });\r\n },\r\n // Specify how data returned should be processed.\r\n results: function(response, page) {\r\n var responseResult &#61; response.data.result.list;\r\n var total &#61; response.data.result.total;\r\n $scope.table &#61; response.data.result.table;\r\n var results &#61; [];\r\n\r\n // Show counts in between result sets if paginating\r\n if (total &gt; pageSize) {\r\n var start &#61; (page - 1) * pageSize &#43; 1;\r\n var end &#61; Math.min((page * pageSize), total);\r\n results.push({\r\n disabled: true,\r\n start: start,\r\n end: end,\r\n total: total,\r\n hiddenResultCount: end - start &#43; 1 - responseResult.length\r\n });\r\n }\r\n\r\n // Add items to search results\r\n for (var i &#61; 0; i &lt; responseResult.length; i&#43;&#43;) {\r\n var result &#61; {};\r\n var item &#61; responseResult[i];\r\n\r\n if (item.hasOwnProperty(&#39;users&#39;)) {\r\n results.push({\r\n display: $scope.sanitize(item.display),\r\n disabled: true\r\n });\r\n for (var j &#61; 0; j &lt; item.users.length; j&#43;&#43;)\r\n results.push(item.users[j]);\r\n } else\r\n results.push(item);\r\n }\r\n\r\n return {\r\n results: results,\r\n more: ((page * pageSize) &lt; total)\r\n };\r\n }\r\n },\r\n // Specify how selected option looks\r\n formatSelection: function(item) {\r\n var subjectPersonFieldOnForm &#61; false;\r\n for (var fieldList in $scope.taskFields)\r\n for (var i &#61; 0; i &lt; $scope.taskFields[fieldList].length; i&#43;&#43;) {\r\n var field &#61; $scope.taskFields[fieldList][i];\r\n if (field.internal_type &#61;&#61; &#34;reference&#34; &amp;&amp; [&#39;opened_for&#39;, &#39;subject_person&#39;].indexOf(field.column_name) &gt; -1) {\r\n if (field.column_name &#61;&#61; &#39;subject_person&#39;)\r\n subjectPersonFieldOnForm &#61; true;\r\n field.value &#61; item.sys_id;\r\n field.displayValue &#61; item.display;\r\n field.ev_table &#61; item.ev_table;\r\n field.ev_sys_id &#61; item.ev_sys_id;\r\n field.ev_tooltip &#61; item.tooltip;\r\n field.ev_preset &#61; true;\r\n $scope.refOnChange(field);\r\n }\r\n }\r\n\r\n // Set priority for VIP user\r\n $scope.checkVipUser();\r\n\r\n // Manually get services if subject_person isn&#39;t on the form\r\n if (!subjectPersonFieldOnForm)\r\n $scope.updateServices();\r\n $scope.updateLists();\r\n\r\n // Get links for selected user\r\n if (item.ev_sys_id &amp;&amp; item.ev_table)\r\n $http.post(&#34;/api/sn_hr_core/case_creation/links_for_user&#34;, {\r\n links: $scope.links,\r\n tableName: item.ev_table,\r\n profile: item.ev_sys_id\r\n }).then(function(response) {\r\n // TODO Verify profile is still same user as links were requested for\r\n if ($scope.profile.sys_id) {\r\n $scope.profile.links &#61; response.data.result;\r\n $scope.addTooltips(&#34;.deep-link&#34;);\r\n }\r\n });\r\n\r\n // Set profile to selected user\r\n $timeout(function() {\r\n $scope.profile &#61; angular.copy(item);\r\n });\r\n\r\n var optionDisplay &#61; &#34;&lt;div class&#61;&#39;search-display ev-option row&#39;&gt;&lt;div class&#61;&#39;col-xs-6 text-ellipsis&#39; title&#61;&#39;&#34; &#43; $scope.sanitize(item.display) &#43; &#34; &#34; &#43; $scope.sanitize(&#39;(${gs.getMessage(&#34;Inactive&#34;)})&#39;) &#43; &#34;&#39;&gt;&#34; &#43; $scope.sanitize(item.display);\r\n\r\n if (item.hasOwnProperty(&#34;active&#34;) &amp;&amp; item.active !&#61;&#61; &#34;true&#34;)\r\n optionDisplay &#43;&#61; &#39;&lt;span class&#61;&#34;ev-option-span ev-option-display-prefix text-ellipsis&#34;&gt; &#39; &#43; $scope.sanitize(&#39;(${gs.getMessage(&#34;Inactive&#34;)})&#39;) &#43; &#39;&lt;/span&gt;&#39;;\r\n\r\n optionDisplay &#43;&#61; &#34;&lt;/div&gt;&#34;;\r\n\r\n if (item.hasOwnProperty(&#34;additional_display_fields&#34;)) {\r\n var additionalDisplay &#61; $scope.sanitize(item.additional_display_fields.filter(function(ele) {\r\n return !!ele;\r\n }).join(&#34; - &#34;));\r\n optionDisplay &#43;&#61; &#34;&lt;div class&#61;&#39;col-xs-6 ev-option-additional-display-fields text-ellipsis&#39; style&#61;&#39;text-align:right; padding-right:3.4rem;&#39; title&#61;&#39;&#34; &#43; additionalDisplay &#43; &#34;&#39;&gt;&#34; &#43; additionalDisplay &#43; &#34;&lt;/div&gt;&#34;;\r\n }\r\n optionDisplay &#43;&#61; &#34;&lt;/div&gt;&#34;;\r\n\r\n $scope.addTooltips(&#34;.search-display div.text-ellipsis&#34;);\r\n\r\n $scope.clearForm &#61; false; //enable create case button\r\n return optionDisplay;\r\n },\r\n // Specify how each option looks in dropdown menu\r\n formatResult: function(item) {\r\n if (item.hasOwnProperty(&#34;sys_id&#34;) &amp;&amp; item.hasOwnProperty(&#34;display&#34;) &amp;&amp; item.display) {\r\n var optionDisplay &#61; &#34;&lt;div class&#61;&#39;ev-option row&#39;&gt;&lt;div class&#61;&#39;col-xs-6 text-ellipsis&#39;&gt;&#34; &#43; $scope.sanitize(item.display);\r\n\r\n if (item.hasOwnProperty(&#34;active&#34;) &amp;&amp; item.active !&#61;&#61; &#34;true&#34;)\r\n optionDisplay &#43;&#61; &#39;&lt;span class&#61;&#34;ev-option-span ev-option-display-prefix text-ellipsis&#34;&gt; &#39; &#43; $scope.sanitize(&#39;(${gs.getMessage(&#34;Inactive&#34;)})&#39;) &#43; &#39;&lt;/span&gt;&#39;;\r\n\r\n if (item.hasOwnProperty(&#34;display_suffix&#34;) &amp;&amp; item.display_suffix)\r\n optionDisplay &#43;&#61; &#34;&lt;span class&#61;&#39;ev-option-span ev-option-display-prefix text-ellipsis&#39;&gt; - &#34; &#43; $scope.sanitize(item.display_suffix.join(&#34;, &#34;)) &#43; &#34;&lt;/span&gt;&#34;;\r\n\r\n optionDisplay &#43;&#61; &#34;&lt;/div&gt;&#34;;\r\n\r\n // TODO Two empty columns leave an empty 1px div\r\n // TODO Better handle missing values, eg. when to hide vs reserve space\r\n if (item.hasOwnProperty(&#34;additional_display_fields&#34;))\r\n for (var j &#61; 0; j &lt; item.additional_display_fields.length; j&#43;&#43;)\r\n optionDisplay &#43;&#61; &#34;&lt;div class&#61;&#39;col-xs-6 ev-option-additional-display-fields text-ellipsis&#39;&#34; &#43; ((j % 2) ? &#39;style&#61;&#34;clear:both;&#34;&#39; : &#34; style&#61;&#39;text-align:right;&#39;&#34;) &#43; &#34;&gt;&#34; &#43;&#34;&amp;nbsp;&#34;&#43; $scope.sanitize(item.additional_display_fields[j]) &#43;&#34;&amp;nbsp;&#34;&#43;&#34;&lt;/div&gt;&#34;;\r\n\r\n return optionDisplay;\r\n }\r\n\r\n if (item.hasOwnProperty(&#34;disabled&#34;) &amp;&amp; item.disabled) {\r\n if (item.hasOwnProperty(&#34;display&#34;))\r\n return $scope.sanitize(item.display);\r\n else {\r\n var gwt &#61; new GwtMessage();\r\n var pageHeader &#61; &#34;&lt;div style&#61;&#39;text-align:center;&#39;&gt;&#34;;\r\n if (item.hiddenResultCount &gt; 1)\r\n pageHeader &#43;&#61; $scope.sanitize(gwt.getMessage(&#34;{0} to {1} of {2} ({3} results removed by security constraints)&#34;, item.start, item.end, item.total, item.hiddenResultCount));\r\n else if (item.hiddenResultCount &#61;&#61; 1)\r\n pageHeader &#43;&#61; $scope.sanitize(gwt.getMessage(&#34;{0} to {1} of {2} ({3} result removed by security constraints)&#34;, item.start, item.end, item.total, item.hiddenResultCount));\r\n else\r\n pageHeader &#43;&#61; $scope.sanitize(gwt.getMessage(&#34;{0} to {1} of {2}&#34;, item.start, item.end, item.total));\r\n pageHeader &#43;&#61; &#34;&lt;/div&gt;&#34;;\r\n return pageHeader;\r\n }\r\n }\r\n },\r\n id: function(item) {\r\n return item.sys_id;\r\n },\r\n maximumInputLength: 100,\r\n minimumInputLength: minimumInputLength,\r\n placeholder: getMessage(&#34;Search for employee or case number&#34;)\r\n }).on(&#34;select2-clearing&#34;, function() {\r\n $timeout(function() {\r\n lockPopup();\r\n $scope.profile &#61; {};\r\n $scope.serviceCategories &#61; [];\r\n $scope.clearForm &#61; true; //disable create case button\r\n $scope.toggleErrorMessage(false, null); //and hide the error message\r\n $scope.showOrHideCaseDetails();\r\n });\r\n }).on(&#39;change&#39;, $scope.addAriaLabelToSelect2ClearIcon);\r\n\r\n var gwtMsg &#61; new GwtMessage();\r\n var ariaLabel &#61; gwtMsg.getMessage(&#39;Please enter {0} or more characters&#39;, minimumInputLength);\r\n $j(&#39;#select2-results-1&#39;).parent().attr(&#39;aria-label&#39;, ariaLabel);\r\n\r\n // Service input select2\r\n var localPageSize &#61; 50;\r\n $j(&#34;#service_input&#34;).select2({\r\n //override the defaults\r\n formatNoMatches: function() {\r\n return &#34;${gs.getMessage(&#39;No matches found&#39;)}&#34;;\r\n },\r\n formatSearching: function() {\r\n return &#34;${gs.getMessage(&#39;Searching..&#39;)}&#34;;\r\n },\r\n formatAjaxError: function() {\r\n return &#34;${gs.getMessage(&#39;The results could not be loaded&#39;)}&#34;;\r\n },\r\n formatLoadMore: function() {\r\n return &#34;${gs.getMessage(&#39;Loading more results...&#39;)}&#34;;\r\n },\r\n formatInputTooShort: function(args) {\r\n var SELECT2_MINIMUM_CHAR_INPUT &#61; 3;\r\n var remainingChars &#61; SELECT2_MINIMUM_CHAR_INPUT;\r\n if (args.length)\r\n remainingChars -&#61; args.length;\r\n var gwtMessageObj &#61; new GwtMessage();\r\n var message &#61; gwtMessageObj.getMessage(&#39;Please enter {0} or more characters&#39;, remainingChars);\r\n return message;\r\n },\r\n // Use AJAX functions for local pagination\r\n allowClear: true,\r\n ajax: {\r\n quietMillis: ac_wait_time,\r\n data: function(searchTerm, page, context) {\r\n return {\r\n term: searchTerm,\r\n page: page - 1,\r\n context: context\r\n };\r\n },\r\n transport: function(response) {\r\n var q &#61; response.data;\r\n var context &#61; q.context;\r\n var newContext &#61; &#39;&#39;;\r\n var results &#61; [];\r\n var total &#61; -1;\r\n var start &#61; q.page * localPageSize;\r\n var end &#61; (q.page &#43; 1) * localPageSize;\r\n var coe &#61; $j(&#34;#coe_input&#34;).val();\r\n\r\n for (var i &#61; 0; i &lt; $scope.serviceCategories.length; i&#43;&#43;) {\r\n if (coe &amp;&amp; $scope.serviceCategories[i].coe !&#61; coe)\r\n continue;\r\n var children &#61; $scope.serviceCategories[i].children.filter(function(opt) {\r\n var matched &#61; !q.term || opt.display.toLowerCase().indexOf(q.term.toLowerCase()) &gt;&#61; 0 || (opt.parent &amp;&amp; opt.parent.toLowerCase().indexOf(q.term.toLowerCase()) &gt;&#61; 0);\r\n if (matched) {\r\n total&#43;&#43;;\r\n\r\n // Check if option is within page bounds, or if part of last topic category that was within bounds (to prevent duplicate opt groups in pagination)\r\n if (total &gt;&#61; start &amp;&amp; total &lt; end || (total &gt;&#61; end &amp;&amp; newContext &#61;&#61; $scope.serviceCategories[i].sys_id)) {\r\n newContext &#61; $scope.serviceCategories[i].sys_id;\r\n // Skip service as it was was added in a previous page\r\n if ($scope.serviceCategories[i].sys_id &#61;&#61;&#61; context)\r\n return false;\r\n return matched;\r\n }\r\n }\r\n return false;\r\n });\r\n\r\n if (children.length &gt; 0) {\r\n results.push({\r\n display: $scope.serviceCategories[i].display,\r\n children: children\r\n });\r\n }\r\n }\r\n\r\n response.success.apply(this, [{\r\n results: results,\r\n more: total &gt; end,\r\n context: newContext\r\n }]);\r\n\r\n return true;\r\n },\r\n // Specify how data returned should be processed.\r\n results: function(response, page) {\r\n return response;\r\n }\r\n },\r\n formatSelection: function(item) {\r\n $scope.missingService &#61; !item || !item.sys_id;\r\n\r\n var fieldMap &#61; {};\r\n var choiceFields &#61; [];\r\n for (var fieldList in $scope.taskFields)\r\n for (var j &#61; 0; j &lt; $scope.taskFields[fieldList].length; j&#43;&#43;) {\r\n var field &#61; $scope.taskFields[fieldList][j];\r\n fieldMap[field.column_name] &#61; field;\r\n if (field.hasOwnProperty(&#34;choiceList&#34;))\r\n choiceFields.push(field.column_name);\r\n }\r\n\r\n // List of users to check for VIP status\r\n var userArray &#61; [];\r\n if (fieldMap.hasOwnProperty(&#34;opened_for&#34;) &amp;&amp; fieldMap[&#34;opened_for&#34;].value)\r\n userArray.push(fieldMap[&#34;opened_for&#34;].value);\r\n if (fieldMap.hasOwnProperty(&#34;subject_person&#34;) &amp;&amp; fieldMap[&#34;subject_person&#34;].value)\r\n userArray.push(fieldMap[&#34;subject_person&#34;].value);\r\n\r\n // Set COE based on service\r\n if (item.coe) {\r\n for (var k &#61; 0; k &lt; $scope.coes.length; k&#43;&#43;) {\r\n if ($scope.coes[k].table &#61;&#61; item.coe) {\r\n $j(&#34;#coe_input&#34;).select2(&#34;data&#34;, {\r\n display: $scope.coes[k].display,\r\n table: item.coe\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n\r\n $scope.fetchingFields &#61; true;\r\n // Changes from selected service, eg. template fields and updated choice options\r\n $http.post(&#34;/api/sn_hr_core/case_creation/service_selected&#34;, {\r\n template: item.template,\r\n service: item.sys_id,\r\n table: taskCreateTable,\r\n choiceFields: choiceFields,\r\n userArr: userArray,\r\n leParentSysId: leParentSysId || &#39;&#39;\r\n }).then(function(response) {\r\n var fields &#61; response.data.result.fields; // Choice fields\r\n var templateData &#61; response.data.result.templateData;\r\n var taskFields &#61; response.data.result.taskFields;\r\n var choiceFieldSelectors &#61; [];\r\n\r\n // Sync TinyMCE content before copying previous values\r\n if (typeof tinymce !&#61;&#61; &#39;undefined&#39;)\r\n tinymce.triggerSave();\r\n for (var syncList in $scope.taskFields)\r\n for (var si &#61; 0; si &lt; $scope.taskFields[syncList].length; si&#43;&#43;) {\r\n var syncField &#61; $scope.taskFields[syncList][si];\r\n if (syncField.internal_type &#61;&#61;&#61; &#39;html&#39; || syncField.internal_type &#61;&#61;&#61; &#39;translated_html&#39;) {\r\n var syncEditor &#61; tinymce.get($scope.getFieldId(syncField));\r\n if (syncEditor)\r\n syncField.value &#61; syncEditor.getContent();\r\n }\r\n }\r\n\r\n // Prepare map of previous fields and current fields\r\n var previousFields &#61; {};\r\n for (var previousFieldsList in $scope.taskFields)\r\n for (var j &#61; 0; j &lt; $scope.taskFields[previousFieldsList].length; j&#43;&#43;)\r\n previousFields[$scope.taskFields[previousFieldsList][j].column_name] &#61; $scope.taskFields[previousFieldsList][j];\r\n\r\n var nextFields &#61; {};\r\n for (var nextFieldsList in taskFields)\r\n for (var k &#61; 0; k &lt; taskFields[nextFieldsList].length; k&#43;&#43;)\r\n nextFields[taskFields[nextFieldsList][k].column_name] &#61; taskFields[nextFieldsList][k];\r\n\r\n // Copy previous values to next values when shared\r\n for (var fieldKey in nextFields)\r\n if (previousFields.hasOwnProperty(fieldKey) &amp;&amp;\r\n previousFields[fieldKey].internal_type &#61;&#61; nextFields[fieldKey].internal_type &amp;&amp;\r\n previousFields[fieldKey].reference &#61;&#61; nextFields[fieldKey].reference) {\r\n\r\n var prevField &#61; previousFields[fieldKey];\r\n if ([&#34;glide_date_time&#34;, &#34;glide_date&#34;].indexOf(prevField.internal_type) &gt; -1)\r\n $j(&#34;#&#34; &#43; $scope.getFieldId(prevField)).trigger(&#34;change&#34;); // Workaround for fields set by datepicker not triggering a model update\r\n else if (&#34;glide_list&#34; &#61;&#61; prevField.internal_type)\r\n nextFields[fieldKey].selectedOptions &#61; prevField.selectedOptions;\r\n else if ([&#34;currency,price&#34;].indexOf(prevField.internal_type &gt; 1)) {\r\n nextFields[fieldKey].currencyCode &#61; previousFields[fieldKey].currencyCode;\r\n nextFields[fieldKey].currencyValue &#61; previousFields[fieldKey].currencyValue;\r\n }\r\n nextFields[fieldKey].value &#61; previousFields[fieldKey].value;\r\n nextFields[fieldKey].display &#61; previousFields[fieldKey].display;\r\n nextFields[fieldKey].displayValue &#61; previousFields[fieldKey].displayValue;\r\n\r\n if(previousFields[fieldKey].hasOwnProperty(&#39;setAsDisplayValue&#39;))\r\n nextFields[fieldKey].setAsDisplayValue &#61; previousFields[fieldKey].setAsDisplayValue;\r\n \r\n // Copy employee fields for subject_person and opened_for\r\n if ([&#34;subject_person&#34;, &#34;opened_for&#34;].indexOf(fieldKey) &gt; -1) {\r\n nextFields[fieldKey].ev_table &#61; previousFields[fieldKey].ev_table;\r\n nextFields[fieldKey].ev_sys_id &#61; previousFields[fieldKey].ev_sys_id;\r\n nextFields[fieldKey].ev_tooltip &#61; previousFields[fieldKey].ev_tooltip;\r\n }\r\n }\r\n\r\n fieldCache &#61; {};\r\n\r\n $scope.taskFields &#61; taskFields;\r\n\r\n var stageValue &#61; &#39;&#39;;\r\n for (var fieldList in $scope.taskFields)\r\n for (var i &#61; 0; i &lt; $scope.taskFields[fieldList].length; i&#43;&#43;) {\r\n var field &#61; $scope.taskFields[fieldList][i];\r\n if (universalReq &amp;&amp; field.column_name &#61;&#61; &#39;work_notes&#39;)\r\n field.mandatory &#61; true;\r\n // Update choice options\r\n if (fields.hasOwnProperty(field.column_name) &amp;&amp; field.hasOwnProperty(&#34;choiceList&#34;))\r\n field.choiceList &#61; fields[field.column_name].choiceList;\r\n // Set fields from template\r\n if (templateData.hasOwnProperty(field.column_name)) {\r\n if ([&#34;reference&#34;, &#34;glide_list&#34;].indexOf(field.internal_type) &gt; -1)\r\n $scope.taskFields[fieldList][i] &#61; templateData[field.column_name];\r\n else {\r\n // TODO Handle different types of fields\r\n field.value &#61; templateData[field.column_name].value;\r\n field.display &#61; templateData[field.column_name].display;\r\n field.displayValue &#61; templateData[field.column_name].displayValue;\r\n }\r\n }\r\n\r\n // TODO Can this be added to &#34;Update choice options&#34; above?\r\n // Trigger change for choice fields\r\n if (field.hasOwnProperty(&#34;choiceList&#34;))\r\n choiceFieldSelectors.push(&#34;#ev_case #&#34; &#43; $scope.getFieldId(field));\r\n\r\n if (field.column_name &#61;&#61;&#61; &#39;stage&#39;) {\r\n stageValue &#61; field.value;\r\n if (allActivitySetsFinished &#61;&#61;&#61; &#39;true&#39;)\r\n field.hidden &#61; true;\r\n }\r\n\r\n if (field.column_name &#61;&#61;&#61; &#39;display_order&#39; &amp;&amp; stageValue &#61;&#61;&#61; &#39;&#39;)\r\n field.hidden &#61; true;\t\t\t\t\t\t\t\t\r\n }\r\n\r\n if (choiceFieldSelectors.length)\r\n $timeout(function() {\r\n $j(choiceFieldSelectors.join(&#34;, &#34;)).trigger(&#39;change&#39;);\r\n });\r\n\r\n // Update services if previousFields contains subject_person, but nextFields doesn&#39;t\r\n if (previousFields.hasOwnProperty(&#34;subject_person&#34;) &amp;&amp; !nextFields.hasOwnProperty(&#34;subject_person&#34;))\r\n $scope.updateServices();\r\n\r\n // Set opened_for to mandatory false if skipped verification\r\n if ($scope.skippedVerification &amp;&amp; nextFields.hasOwnProperty(&#34;opened_for&#34;) &amp;&amp; nextFields[&#34;opened_for&#34;].mandatory)\r\n nextFields[&#34;opened_for&#34;].mandatory &#61; false;\r\n\r\n if(($scope.skippedVerification &amp;&amp; nextFields.hasOwnProperty(&#34;subject_person&#34;) &amp;&amp; nextFields[&#34;subject_person&#34;].mandatory))\r\n nextFields[&#34;subject_person&#34;].mandatory &#61; false;\r\n\r\n $scope.fetchingFields &#61; false;\r\n $scope.updateLists();\r\n\r\n $timeout(function () {\r\n $scope.displayOrderButton &#61; $j(&#39;#displayOrderButton&#39;);\r\n $scope.displayOrderButton.popover($scope.popoverOptions);\r\n });\r\n });\r\n\r\n return $scope.sanitize(item.display);\r\n },\r\n formatResult: function(item) {\r\n return $scope.sanitize(item.display);\r\n },\r\n id: function(item) {\r\n return item.sys_id;\r\n },\r\n placeholder: getMessage(&#34;Select a service&#34;)\r\n }).on(&#34;select2-loaded&#34;, function() {\r\n // Adding group role to sublist\r\n $j(&#34;#select2-drop .select2-results .select2-result-with-children&#34;).each(function() {\r\n $j(this).attr(&#34;role&#34;, &#34;group&#34;);\r\n $j(this).attr(&#34;aria-labelledby&#34;, $j(this).children().first().attr(&#34;id&#34;));\r\n });\r\n // Add presentation role on sublists to avoid accessibility violation. \r\n $j(&#34;#select2-drop .select2-results .select2-result-sub&#34;).each(function() {\r\n // Add presentation role to the group label element.\r\n $j(this).prev().attr(&#34;role&#34;, &#34;presentation&#34;);\r\n $j(this).attr(&#34;role&#34;, &#34;presentation&#34;);\r\n });\r\n\t\t\t// Adding aria-controls \r\n $j(&#34;#select2-drop .select2-search .select2-input&#34;).attr(&#34;aria-controls&#34;, $j(&#34;#select2-drop .select2-results&#34;).attr(&#34;id&#34;));\r\n }).on(&#34;select2-clearing&#34;, function() {\r\n $timeout(function() {\r\n $scope.missingService &#61; true;\r\n });\r\n }).on(&#39;change&#39;, $scope.addAriaLabelToSelect2ClearIcon);\r\n\r\n // COE input select2\r\n $j(&#34;#coe_input&#34;).select2({\r\n //override the defaults\r\n formatNoMatches: function() {\r\n return &#34;${gs.getMessage(&#39;No matches found&#39;)}&#34;;\r\n },\r\n formatSearching: function() {\r\n return &#34;${gs.getMessage(&#39;Searching..&#39;)}&#34;;\r\n },\r\n formatAjaxError: function() {\r\n return &#34;${gs.getMessage(&#39;The results could not be loaded&#39;)}&#34;;\r\n },\r\n formatLoadMore: function() {\r\n return &#34;${gs.getMessage(&#39;Loading more results...&#39;)}&#34;;\r\n },\r\n formatInputTooShort: function(args) {\r\n var SELECT2_MINIMUM_CHAR_INPUT &#61; 3;\r\n var remainingChars &#61; SELECT2_MINIMUM_CHAR_INPUT;\r\n if (args.length)\r\n remainingChars -&#61; args.length;\r\n var gwtMessageObj &#61; new GwtMessage();\r\n var message &#61; gwtMessageObj.getMessage(&#39;Please enter {0} or more characters&#39;, remainingChars);\r\n return message;\r\n },\r\n allowClear: true,\r\n ajax: {\r\n quietMillis: ac_wait_time,\r\n data: function(searchTerm, page) {\r\n return {\r\n term: searchTerm,\r\n page: page - 1\r\n };\r\n },\r\n transport: function(response) {\r\n var q &#61; response.data;\r\n var total &#61; -1;\r\n var start &#61; q.page * localPageSize;\r\n var end &#61; (q.page &#43; 1) * localPageSize;\r\n\r\n var results &#61; $scope.coes.filter(function(opt) {\r\n var matched &#61; !q.term || $scope.unescapeHTML(opt.display, $scope.HTML_ENTITIES).toLowerCase().indexOf(q.term.toLowerCase()) &gt;&#61; 0;\r\n if (!matched)\r\n return false;\r\n total&#43;&#43;;\r\n if (total &gt;&#61; start &amp;&amp; total &lt; end) // Option within page bounds\r\n return matched;\r\n return false;\r\n });\r\n\r\n response.success.apply(this, [{\r\n results: results,\r\n more: total &gt; end\r\n }]);\r\n\r\n return true;\r\n },\r\n results: function(response, page) {\r\n return response;\r\n }\r\n },\r\n formatSelection: function(item) {\r\n // Clear the current service_input if it is not in this coe\r\n var service &#61; $j(&#34;#service_input&#34;).select2(&#34;data&#34;);\r\n if (service &amp;&amp; service.coe &amp;&amp; service.coe !&#61; item.table)\r\n $j(&#34;#service_input&#34;).select2(&#34;data&#34;, null);\r\n\r\n return $scope.unescapeHTML($scope.sanitize(item.display), $scope.HTML_ENTITIES);\r\n },\r\n formatResult: function(item) {\r\n return $scope.unescapeHTML($scope.sanitize(item.display), $scope.HTML_ENTITIES);\r\n },\r\n id: function(item) {\r\n return item.table;\r\n },\r\n placeholder: getMessage(&#34;Filter services by COE&#34;)\r\n }).on(&#34;select2-loaded&#34;, function() {\r\n\t\t\t// Adding aria-controls \r\n $j(&#34;#select2-drop .select2-search .select2-input&#34;).attr(&#34;aria-controls&#34;, $j(&#34;#select2-drop .select2-results&#34;).attr(&#34;id&#34;));\r\n }).on(&#39;change&#39;, $scope.addAriaLabelToSelect2ClearIcon);\r\n\r\n\t\t// Field input select2\r\n\t\t$j(document).on(&#34;select2-loaded&#34;, function() {\r\n\t\t\t// Adding aria-controls \r\n $j(&#34;#select2-drop .select2-search .select2-input&#34;).attr(&#34;aria-controls&#34;, $j(&#34;#select2-drop .select2-results&#34;).attr(&#34;id&#34;));\r\n\t\t});\r\n\r\n\r\n $scope.showList &#61; function(list) {\r\n for (var i &#61; 0; i &lt; $scope.relatedLists.length; i&#43;&#43;)\r\n $scope.relatedLists[i].active &#61; false;\r\n list.active &#61; true;\r\n };\r\n\r\n $scope.isListActive &#61; function(list) {\r\n return list.active &#61;&#61; true;\r\n };\r\n\r\n $scope.activeListExists &#61; function() {\r\n for (var i &#61; 0; i &lt; $scope.relatedLists.length; i&#43;&#43;)\r\n if ($scope.relatedLists[i].active &amp;&amp; !$scope.relatedLists[i].hide)\r\n return true;\r\n return false;\r\n };\r\n\r\n // TODO Load related lists from server configuration\r\n $scope.relatedLists &#61; [{\r\n table: &#39;sn_hr_core_case&#39;,\r\n queryField: &#34;opened_for&#34;,\r\n view: &#39;case_creation&#39;,\r\n properties: {\r\n listId: &#34;cases_for_opened_for_user&#34;,\r\n overrideLabel: &#39;false&#39;,\r\n displayLabel: $scope.sanitize(&#39;${gs.getMessage(&#34;Cases for Opened for&#34;)}&#39;),\r\n sort: {\r\n column: {\r\n number: &#39;number&#39;\r\n }\r\n },\r\n related: {},\r\n listControl: {\r\n omitFilter: &#39;false&#39;,\r\n },\r\n rowsPerPageRange: &#39;5,10,20&#39;,\r\n maxRows: 20,\r\n isRelated: &#39;true&#39;,\r\n isRefList: &#39;false&#39;\r\n },\r\n parameters: {\r\n sysparm_fixed_query: (userInit &amp;&amp; userInit.sys_id) ? &#34;opened_for&#61;&#34; &#43; userInit.sys_id &#43; &#34;^ORsubject_person&#61;&#34; &#43; userInit.sys_id : &#39;sys_id&#61;null&#39;,\r\n sysparm_view: &#39;case_creation&#39;,\r\n sysparm_limit: 20,\r\n sysparm_offset: 0,\r\n sysparm_query: &#39;&#39;\r\n },\r\n include: {\r\n footer: &#39;true&#39;\r\n }\r\n },\r\n {\r\n table: &#39;sn_hr_core_case&#39;,\r\n queryField: &#34;subject_person&#34;,\r\n view: &#39;case_creation&#39;,\r\n properties: {\r\n listId: &#34;cases_opened_for_subject_person&#34;,\r\n overrideLabel: &#39;false&#39;,\r\n displayLabel: $scope.sanitize(&#39;${gs.getMessage(&#34;Cases for Subject person&#34;)}&#39;),\r\n sort: {\r\n column: {\r\n number: &#39;number&#39;\r\n }\r\n },\r\n related: {},\r\n listControl: {\r\n omitFilter: &#39;false&#39;,\r\n },\r\n rowsPerPageRange: &#39;5,10,20&#39;,\r\n maxRows: 20,\r\n isRelated: &#39;true&#39;,\r\n isRefList: &#39;false&#39;\r\n },\r\n parameters: {\r\n sysparm_fixed_query: (userInit &amp;&amp; userInit.sys_id) ? &#34;opened_for&#61;&#34; &#43; userInit.sys_id &#43; &#34;^ORsubject_person&#61;&#34; &#43; userInit.sys_id : &#39;sys_id&#61;null&#39;,\r\n sysparm_view: &#39;case_creation&#39;,\r\n sysparm_limit: 20,\r\n sysparm_offset: 0,\r\n sysparm_query: &#39;&#39;\r\n },\r\n include: {\r\n footer: &#39;true&#39;\r\n }\r\n }\r\n ];\r\n if ($scope.relatedLists.length)\r\n $scope.relatedLists[0].active &#61; true;\r\n\r\n }).directive(&#39;evField&#39;, [&#39;$timeout&#39;, function($timeout) {\r\n return {\r\n restrict: &#39;E&#39;,\r\n scope: {\r\n field: &#39;&#61;&#39;,\r\n disabled: &#39;&#61;&#39;,\r\n wide: &#39;&#61;&#39;\r\n },\r\n controller: [&#39;$scope&#39;, function($scope) {\r\n // Determine render type\r\n if ($scope.field.hasOwnProperty(&#34;choiceList&#34;)) {\r\n $scope.renderType &#61; &#34;choice&#34;;\r\n $timeout(function() {\r\n $j(&#34;#&#34; &#43; $scope.getFieldId($scope.field)).select2();\r\n });\r\n } else if ($scope.field.internal_type &#61;&#61; &#34;price&#34;)\r\n $scope.renderType &#61; &#34;currency&#34;;\r\n else if ([&#34;integer&#34;, &#34;decimal&#34;, &#34;float&#34;].indexOf($scope.field.internal_type) &gt; -1)\r\n $scope.renderType &#61; &#34;number&#34;;\r\n else if ($scope.field.internal_type &#61;&#61; &#34;html&#34; || $scope.field.internal_type &#61;&#61; &#34;translated_html&#34;)\r\n $scope.renderType &#61; &#34;html&#34;;\r\n else\r\n $scope.renderType &#61; $scope.field.internal_type;\r\n\r\n $scope.field.disabled &#61; $scope.disabled;\r\n\r\n // Currency initialization\r\n if ($scope.renderType &#61;&#61; &#34;currency&#34;) {\r\n $timeout(function() {\r\n $j(&#34;#&#34; &#43; $scope.getFieldId($scope.field) &#43; &#34;_select&#34;).select2({\r\n minimumResultsForSearch: 10\r\n });\r\n });\r\n }\r\n $scope.valueHandler &#61; function() {\r\n if ($scope.field.currencyCode &amp;&amp; $scope.field.currencyValue)\r\n $scope.field.value &#61; $scope.field.currencyCode &#43; &#34;;&#34; &#43; $scope.field.currencyValue;\r\n else\r\n $scope.field.value &#61; &#34;&#34;;\r\n };\r\n\r\n // Number formatter method\r\n $scope.formatNumber &#61; function() {\r\n $scope.field.messages &#61; [];\r\n if (typeof formatNumber !&#61;&#61; &#34;function&#34;)\r\n return;\r\n\r\n if ($scope.renderType &#61;&#61; &#34;currency&#34;) {\r\n $scope.field.currencyValue &#61; formatNumber($scope.field.currencyValue);\r\n $scope.valueHandler();\r\n } else {\r\n if ($scope.field.display !&#61;&#61; &#34;&#34;) {\r\n $scope.field.display &#61; formatNumber($scope.field.display);\r\n $scope.field.value &#61; formatClean($scope.field.display);\r\n } else {\r\n $scope.field.display &#61; $scope.field.value &#61; &#34;&#34;;\r\n $scope.field.value &#61; &#34;&#34;;\r\n }\r\n\r\n if ($scope.field.column_name &#61;&#61;&#61; &#34;display_order&#34;)\r\n $scope.$parent.updateDisplayOrderPosition($scope.field);\r\n }\r\n };\r\n\r\n // Methods to show date pickers for glide_date_time and glide_date\r\n $scope.showDateTimePicker &#61; function() {\r\n new GwtDateTimePicker($scope.getFieldId($scope.field), g_user_date_time_format, true);\r\n };\r\n $scope.showDatePicker &#61; function() {\r\n new GwtDateTimePicker($scope.getFieldId($scope.field), g_user_date_format, false);\r\n };\r\n $scope.updateMandatoryMark &#61; function() {\r\n $j(&#34;#&#34; &#43; $scope.getFieldId($scope.field)).trigger(&#34;change&#34;);\r\n $scope.field.value &#61; $scope.field.display;\r\n $scope.field.setAsDisplayValue &#61; true;\r\n };\r\n\r\n // Default options for reference and glide_list\r\n $scope.options &#61; {};\r\n if (!$scope.disabled &amp;&amp; [&#34;reference&#34;, &#34;glide_list&#34;].indexOf($scope.field.internal_type) &gt; -1)\r\n $scope.options.placeholder &#61; $j(&#34;&lt;div&gt;&#34;).text(&#39;${gs.getMessage(&#34;Select a record&#34;)}&#39;).html();\r\n\r\n // Initialization and methods for glide_list\r\n if ([&#34;glide_list&#34;].indexOf($scope.field.internal_type) &gt; -1)\r\n $scope.showLock &#61; $scope.disabled;\r\n $scope.toggleLock &#61; function() {\r\n $scope.showLock &#61; !$scope.showLock;\r\n };\r\n $scope.selectOption &#61; function() {\r\n // Only add selected option if it was not already added\r\n var alreadyAdded &#61; false;\r\n for (var i &#61; 0; i &lt; $scope.field.selectedOptions.length; i&#43;&#43;)\r\n if ($scope.field.selectedOptions[i].value &#61;&#61; $scope.field.value) {\r\n alreadyAdded &#61; true;\r\n break;\r\n }\r\n\r\n if (!alreadyAdded)\r\n $scope.field.selectedOptions.push({\r\n value: $scope.field.value,\r\n label: $scope.sanitize($scope.field.displayValue)\r\n });\r\n\r\n $scope.updateGlideListValue();\r\n $scope.field.displayValue &#61; &#34;&#34;;\r\n };\r\n $scope.removeSelectedOptions &#61; function() {\r\n var optionsToRemove &#61; angular.copy($scope.field.highlightedOptions);\r\n\r\n // Loop through field.selectedOptions backwards to avoid skipping an option\r\n for (var i &#61; $scope.field.selectedOptions.length - 1; optionsToRemove &amp;&amp; i &gt; -1; i--)\r\n if (optionsToRemove.indexOf($scope.field.selectedOptions[i].value) &gt; -1)\r\n $scope.field.selectedOptions.splice(i, 1);\r\n\r\n $scope.field.highlightedOptions &#61; [];\r\n $scope.updateGlideListValue();\r\n };\r\n $scope.updateGlideListValue &#61; function() {\r\n var valArr &#61; [];\r\n\r\n for (var j &#61; 0; j &lt; $scope.field.selectedOptions.length; j&#43;&#43;)\r\n valArr.push($scope.field.selectedOptions[j].value);\r\n\r\n $scope.field.value &#61; valArr.join(&#34;,&#34;);\r\n };\r\n $scope.displayGlideList &#61; function() {\r\n var displayArr &#61; [];\r\n for (var i &#61; 0; i &lt; $scope.field.selectedOptions.length; i&#43;&#43;)\r\n displayArr.push($scope.field.selectedOptions[i].label);\r\n return $scope.sanitize(displayArr.join(&#34;, &#34;));\r\n };\r\n $scope.disableRefIconGlideList &#61; function() {\r\n return !$scope.field.highlightedOptions || $scope.field.highlightedOptions.length !&#61; 1;\r\n };\r\n $scope.$parent.addTooltips([\r\n &#34;#&#34; &#43; $scope.$parent.getFieldId($scope.field) &#43; &#34;_addons a&#34;,\r\n &#34;#&#34; &#43; $scope.$parent.getFieldId($scope.field) &#43; &#34;_glide_list a.btn&#34;\r\n ].join(&#34;, &#34;));\r\n\r\n // Set value to display for default render type fields (in case template sets field.value)\r\n if ([&#34;reference&#34;, &#34;boolean&#34;, &#34;choice&#34;, &#34;glide_date_time&#34;, &#34;glide_date&#34;, &#34;glide_duration&#34;, &#34;glide_list&#34;, &#34;currency&#34;, &#34;email&#34;, &#34;number&#34;, &#34;html&#34;].indexOf($scope.renderType) &#61;&#61; -1)\r\n $scope.$watch(&#39;field.display&#39;, function(v) {\r\n $scope.field.value &#61; $scope.field.display;\r\n });\r\n }],\r\n link: function(scope, element) {\r\n scope.classes &#61; scope.$parent.classes;\r\n scope.showRefPopup &#61; scope.$parent.showRefPopup;\r\n scope.showFloorPlan &#61; scope.$parent.showFloorPlan;\r\n scope.getFieldId &#61; scope.$parent.getFieldId;\r\n scope.refOnChange &#61; scope.$parent.refOnChange;\r\n scope.sanitize &#61; scope.$parent.sanitize;\r\n scope.mailTo &#61; scope.$parent.mailTo;\r\n\r\n if (scope.renderType &#61;&#61;&#61; &#39;html&#39;) {\r\n var fieldId &#61; scope.getFieldId(scope.field);\r\n scope.$parent.setupMCE(fieldId, scope.field.value);\r\n\r\n scope.$on(&#39;$destroy&#39;, function() {\r\n var editor &#61; tinymce.get(fieldId);\r\n if (editor)\r\n editor.remove();\r\n });\r\n }\r\n },\r\n template: [\r\n &#39;&lt;div class&#61;&#34;ev-field form-group&#34; ng-switch&#61;&#34;renderType&#34; ng-class&#61;&#34;field.mandatory ? ( (field.value || renderType &#61;&#61; \\&#39;boolean\\&#39;) ? \\&#39;is-filled\\&#39; : \\&#39;is-required\\&#39;) : \\&#39;\\&#39;&#34;&gt;&#39;,\r\n // Field label\r\n &#39;&lt;label for&#61;&#34;{<!-- -->{getFieldId(field)}}&#34; id&#61;&#34;{<!-- -->{getFieldId(field)}}_label&#34; ng-class&#61;&#34;wide ? classes.wideLabel : classes.label&#34;&gt;&#39;,\r\n &#39;&lt;span class&#61;&#34;required-marker&#34; mandatory&#61;&#34;true&#34; &gt;&lt;/span&gt;&#39;,\r\n &#39;&lt;span title&#61;&#34;{<!-- -->{field.hint}}&#34;&gt;{<!-- -->{field.label}}&lt;/span&gt;&#39;,\r\n &#39;&lt;/label&gt;&#39;,\r\n // Reference field\r\n &#39;&lt;div class&#61;&#34;ev-field-input-div&#34; ng-class&#61;&#34;wide ? classes.wideField : classes.field&#34; ng-switch-when&#61;&#34;reference&#34;&gt;&#39;,\r\n &#39;&lt;sn-reference-picker id&#61;&#34;{<!-- -->{getFieldId(field)}}&#34; ref-value&#61;&#34;{<!-- -->{field.value}}&#34; class&#61;&#34;ev-field-reference&#34; field&#61;&#34;field&#34; ed&#61;&#34;field&#34; sn-disabled&#61;&#34;disabled&#34; sn-options&#61;&#34;options&#34; sn-on-change&#61;&#34;refOnChange(field)&#34; ref-table&#61;&#34;field.refTable&#34; ref-id&#61;&#34;field.refId&#34; minimum-input-length&#61;&#34;{<!-- -->{field.minimumInputLength}}&#34;&gt;&lt;/sn-reference-picker&gt;&#39;,\r\n &#39;&lt;/div&gt;&#39;,\r\n // Boolean field\r\n &#39;&lt;div class&#61;&#34;ev-field-input-div input-group-checkbox&#34; ng-class&#61;&#34;wide ? classes.wideField : classes.field&#34; ng-switch-when&#61;&#34;boolean&#34;&gt;&#39;,\r\n &#39;&lt;input id&#61;&#34;{<!-- -->{getFieldId(field)}}&#34; name&#61;&#34;{<!-- -->{getFieldId(field)}}&#34; class&#61;&#34;checkbox&#34; ng-class&#61;&#34;{disabled: disabled}&#34; ng-disabled&#61;&#34;disabled&#34; type&#61;&#34;checkbox&#34; ng-checked&#61;&#34;field.value &#61;&#61;&#61; \\&#39;true\\&#39;&#34; ng-model&#61;&#34;field.value&#34; ng-true-value&#61;&#34;\\&#39;true\\&#39;&#34; ng-false-value&#61;&#34;\\&#39;false\\&#39;&#34;/&gt;&#39;,\r\n &#39;&lt;label for&#61;&#34;{<!-- -->{getFieldId(field)}}&#34; class&#61;&#34;checkbox-label ev-field-checkbox-label&#34;&gt;&lt;/label&gt;&#39;,\r\n &#39;&lt;/div&gt;&#39;,\r\n // Choice field\r\n &#39;&lt;div class&#61;&#34;ev-field-input-div&#34; ng-class&#61;&#34;wide ? classes.wideField : classes.field&#34; ng-switch-when&#61;&#34;choice&#34;&gt;&#39;,\r\n &#39;&lt;select id&#61;&#34;{<!-- -->{getFieldId(field)}}&#34; class&#61;&#34;ev-field-choicelist select2&#34; ng-model&#61;&#34;field.value&#34; ng-options&#61;&#34;choice.value as choice.label for choice in field.choiceList&#34; ng-disabled&#61;&#34;disabled&#34; &gt;&lt;/select&gt;&#39;,\r\n &#39;&lt;/div&gt;&#39;,\r\n // Datetime field\r\n &#39;&lt;div class&#61;&#34;ev-field-input-div&#34; ng-class&#61;&#34;wide ? classes.wideField : classes.field&#34; ng-switch-when&#61;&#34;glide_date_time&#34;&gt;&#39;,\r\n &#39;&lt;span class&#61;&#34;input-group inline-form ev-input-group&#34; ng-style&#61;&#34;disabled ? \\&#39;\\&#39; : {width:\\&#39;calc(100% - 32px)\\&#39;}&#34;&gt;&#39;,\r\n &#39;&lt;input type&#61;&#34;text&#34; class&#61;&#34;form-control ev-field-date-time&#34; id&#61;&#34;{<!-- -->{getFieldId(field)}}&#34; ng-model&#61;&#34;field.display&#34; ng-disabled&#61;&#34;disabled&#34; ng-blur&#61;&#34;updateMandatoryMark()&#34;/&gt;&#39;,\r\n &#39;&lt;span class&#61;&#34;input-group-btn&#34;&gt;&#39;,\r\n &#39;&lt;a ng-click&#61;&#34;showDateTimePicker()&#34; class&#61;&#34;btn btn-default icon icon-calendar&#34; ng-hide&#61;&#34;disabled&#34; ng-disabled&#61;&#34;disabled&#34; title&#61;&#34;${gs.getMessage(&#34;Select date and time&#34;)}&#34; href&#61;&#34;&#34;&gt;&lt;/a&gt;&#39;,\r\n &#39;&lt;/span&gt;&#39;,\r\n &#39;&lt;/span&gt;&#39;,\r\n &#39;&lt;/div&gt;&#39;,\r\n // Date field\r\n &#39;&lt;div class&#61;&#34;ev-field-input-div&#34; ng-class&#61;&#34;wide ? classes.wideField : classes.field&#34; ng-switch-when&#61;&#34;glide_date&#34;&gt;&#39;,\r\n &#39;&lt;span class&#61;&#34;input-group inline-form ev-input-group&#34; ng-style&#61;&#34;disabled ? \\&#39;\\&#39; : {width:\\&#39;calc(100% - 32px)\\&#39;}&#34;&gt;&#39;,\r\n &#39;&lt;input type&#61;&#34;text&#34; class&#61;&#34;form-control ev-field-date&#34; id&#61;&#34;{<!-- -->{getFieldId(field)}}&#34; ng-model&#61;&#34;field.display&#34; ng-disabled&#61;&#34;disabled&#34; ng-blur&#61;&#34;updateMandatoryMark()&#34;/&gt;&#39;,\r\n &#39;&lt;span class&#61;&#34;input-group-btn&#34;&gt;&#39;,\r\n &#39;&lt;a ng-click&#61;&#34;showDatePicker()&#34; class&#61;&#34;btn btn-default icon icon-calendar&#34; ng-hide&#61;&#34;disabled&#34; ng-disabled&#61;&#34;disabled&#34; title&#61;&#34;${gs.getMessage(&#34;Select date&#34;)}&#34; href&#61;&#34;&#34;&gt;&lt;/a&gt;&#39;,\r\n &#39;&lt;/span&gt;&#39;,\r\n &#39;&lt;/span&gt;&#39;,\r\n &#39;&lt;/div&gt;&#39;,\r\n // Duration field\r\n &#39;&lt;div class&#61;&#34;ev-field-input-div ev-field-duration-div&#34; ng-class&#61;&#34;wide ? classes.wideField : classes.field&#34; ng-switch-when&#61;&#34;glide_duration&#34;&gt;&#39;,\r\n &#39;&lt;sn-form-element style&#61;&#34;margin:0;&#34; field&#61;&#34;field&#34; id&#61;&#34;{<!-- -->{getFieldId(field)}}&#34; &gt;&lt;/sn-form-element&gt;&#39;,\r\n &#39;&lt;/div&gt;&#39;,\r\n // Glide list field // TODO Refactor styling and layout\r\n &#39;&lt;div class&#61;&#34;ev-field-input-div&#34; id&#61;&#34;{<!-- -->{getFieldId(field)}}_glide_list&#34; ng-class&#61;&#34;wide ? classes.wideField : classes.field&#34; ng-switch-when&#61;&#34;glide_list&#34;&gt;&#39;,\r\n &#39;&lt;span ng-show&#61;&#34;!showLock&#34;&gt;&#39;,\r\n &#39;&lt;div class&#61;&#34;col-xs-11 no-padding glidelist-box&#34; style&#61;&#34;width: calc(100% - 33px);&#34;&gt;&#39;,\r\n &#39;&lt;select multiple&#61;&#34;true&#34; aria-labelledby&#61;&#34;{<!-- -->{getFieldId(field)}}_label&#34; size&#61;&#34;6&#34; name&#61;&#34;glideList_{<!-- -->{getFieldId(field)}}&#34; ng-model&#61;&#34;field.highlightedOptions&#34; class&#61;&#34;form-control&#34;&gt;&#39;,\r\n &#39;&lt;option ng-repeat&#61;&#34;option in field.selectedOptions&#34; ng-value&#61;&#34;option.value&#34;&gt;{<!-- -->{option.label}}&lt;/option&gt;&#39;,\r\n &#39;&lt;/select&gt;&#39;,\r\n &#39;&lt;/div&gt;&#39;,\r\n &#39;&lt;div class&#61;&#34;col-xs-1 no-padding glidelist-icons&#34; style&#61;&#34;max-width:32px;&#34;&gt;&#39;,\r\n &#39;&lt;div class&#61;&#34;button-column&#34;&gt;&#39;,\r\n &#39;&lt;button ng-click&#61;&#34;removeSelectedOptions()&#34; class&#61;&#34;btn btn-default icon-cross&#34; ng-disabled&#61;&#34;disabled&#34; aria-label&#61;&#34;${gs.getMessage(&#34;Remove selected item&#34;)}&#34; title&#61;&#34;${gs.getMessage(&#34;Remove selected item&#34;)}&#34;&gt;&lt;/button&gt;&#39;,\r\n &#39;&lt;button ng-click&#61;&#34;showRefPopup($event, field)&#34; class&#61;&#34;btn btn-default btn-ref icon-info&#34; ng-disabled&#61;&#34;disableRefIconGlideList()&#34; aria-label&#61;&#34;${gs.getMessage(&#34;Open reference record in current window&#34;)}&#34; title&#61;&#34;{<!-- -->{field.tooltip &#43; \\&#39; - \\&#39; &#43; field.displayValue}}&#34; aria-haspopup&#61;&#34;true&#34;&gt;&lt;/button&gt;&#39;,\r\n &#39;&lt;button ng-click&#61;&#34;toggleLock()&#34; class&#61;&#34;btn btn-default icon-unlocked&#34; ng-disabled&#61;&#34;disabled&#34; aria-label&#61;&#34;${gs.getMessage(&#34;Lock&#34;)}&#34; title&#61;&#34;${gs.getMessage(&#34;Lock&#34;)}&#34;&gt;&lt;/button&gt;&#39;,\r\n &#39;&lt;/div&gt;&#39;,\r\n &#39;&lt;/div&gt;&#39;,\r\n &#39;&lt;div class&#61;&#34;glide-listref&#34;&gt;&#39;,\r\n &#39;&lt;sn-reference-picker id&#61;&#34;glide_list_select_{<!-- -->{getFieldId(field)}}&#34; sn-options&#61;&#34;options&#34; ed&#61;&#34;field&#34; field&#61;&#34;field&#34; sn-on-change&#61;&#34;selectOption()&#34; ref-table&#61;&#34;field.refTable&#34; ref-id&#61;&#34;field.refId&#34; minimum-input-length&#61;&#34;{<!-- -->{field.minimumInputLength}}&#34;&gt;&lt;/sn-reference-picker&gt;&#39;,\r\n &#39;&lt;/div&gt;&#39;,\r\n &#39;&lt;/span&gt;&#39;,\r\n &#39;&lt;span ng-show&#61;&#34;showLock&#34;&gt;&#39;,\r\n &#39;&lt;div ng-style&#61;&#34;disabled ? { \\&#39;padding-top\\&#39;: \\&#39;7px\\&#39;} : \\&#39;\\&#39;&#34;&gt;&#39;,\r\n &#39;&lt;button class&#61;&#34;btn btn-default btn-ref icon-locked&#34; data-auto-close&#61;&#34;false&#34; data-placement&#61;&#34;auto&#34; ng-click&#61;&#34;toggleLock()&#34; type&#61;&#34;button&#34; ng-disabled&#61;&#34;disabled&#34; aria-label&#61;&#34;${gs.getMessage(&#34;Edit&#34;)}&#34; title&#61;&#34;${gs.getMessage(&#34;Edit&#34;)}&#34; ng-hide&#61;&#34;disabled&#34;&gt;&lt;/button&gt;&#39;,\r\n &#39;&lt;span style&#61;&#34;margin-left:5px;&#34;&gt;{<!-- -->{displayGlideList()}}&lt;/span&gt;&#39;,\r\n &#39;&lt;/div&gt;&#39;,\r\n &#39;&lt;/span&gt;&#39;,\r\n &#39;&lt;/div&gt;&#39;,\r\n // Currency, Price\r\n &#39;&lt;div class&#61;&#34;ev-field-input-div&#34; ng-class&#61;&#34;wide ? classes.wideField : classes.field&#34; ng-switch-when&#61;&#34;currency&#34;&gt;&#39;,\r\n &#39;&lt;span class&#61;&#34;input-group&#34;&gt;&#39;,\r\n &#39;&lt;span class&#61;&#34;input-group-addon input-group-select input-group-select_left&#34;&gt;&#39;,\r\n &#39;&lt;select id&#61;&#34;{<!-- -->{getFieldId(field)}}_select&#34; class&#61;&#34;ev-field-currency select2&#34; ng-model&#61;&#34;field.currencyCode&#34; ng-options&#61;&#34;choice.code as choice.symbol for choice in field.currencyCodes&#34; ng-disabled&#61;&#34;disabled&#34; ng-change&#61;&#34;valueHandler()&#34; &gt;&lt;/select&gt;&#39;,\r\n &#39;&lt;/span&gt;&#39;,\r\n &#39;&lt;input id&#61;&#34;{<!-- -->{getFieldId(field)}}_input&#34; class&#61;&#34;form-control decimal&#34; ng-model&#61;&#34;field.currencyValue&#34; ng-change&#61;&#34;valueHandler()&#34; ng-disabled&#61;&#34;disabled&#34; ng-blur&#61;&#34;formatNumber()&#34;/&gt;&#39;,\r\n &#39;&lt;/span&gt;&#39;,\r\n &#39;&lt;/div&gt;&#39;,\r\n // Email\r\n &#39;&lt;div class&#61;&#34;ev-field-input-div&#34; ng-class&#61;&#34;wide ? classes.wideField : classes.field&#34; ng-switch-when&#61;&#34;email&#34;&gt;&#39;,\r\n &#39;&lt;span class&#61;&#34;input-group inline-form ev-input-group&#34; style&#61;&#34;width:calc(100% - 32px)&#34;&gt;&#39;,\r\n &#39;&lt;input type&#61;&#34;text&#34; class&#61;&#34;form-control ev-field-email&#34; id&#61;&#34;{<!-- -->{getFieldId(field)}}&#34; ng-model&#61;&#34;field.value&#34; ng-disabled&#61;&#34;disabled&#34;/&gt;&#39;,\r\n &#39;&lt;span class&#61;&#34;input-group-btn&#34;&gt;&#39;,\r\n &#39;&lt;a id&#61;&#34;email_btn&#34; class&#61;&#34;btn btn-default btn-ref icon icon-mail&#34; title&#61;&#34;${gs.getMessage(&#34;Send an email to this address&#34;)}&#34; aria-label&#61;&#34;${gs.getMessage(&#34;Send an email to this address&#34;)}&#34; ng-click&#61;&#34;mailTo(field.value)&#34; href&#61;&#34;&#34;&gt;&lt;/a&gt;&#39;,\r\n &#39;&lt;/span&gt;&#39;,\r\n &#39;&lt;/span&gt;&#39;,\r\n &#39;&lt;/div&gt;&#39;,\r\n // Integer, Decimal, Float\r\n &#39;&lt;div class&#61;&#34;ev-field-input-div&#34; ng-class&#61;&#34;wide ? classes.wideField : classes.field&#34; ng-switch-when&#61;&#34;number&#34;&gt;&#39;,\r\n &#39;&lt;input id&#61;&#34;{<!-- -->{getFieldId(field)}}&#34; class&#61;&#34;form-control decimal ev-field-input&#34; maxlength&#61;&#34;{<!-- -->{field.max_length}}&#34; ng-class&#61;&#34;{disabled: disabled}&#34; ng-disabled&#61;&#34;disabled&#34; ng-model&#61;&#34;field.display&#34; ng-blur&#61;&#34;formatNumber()&#34;/&gt;&#39;,\r\n &#39;&lt;/div&gt;&#39;,\r\n // HTML (TinyMCE rich text)\r\n &#39;&lt;div class&#61;&#34;ev-field-input-div&#34; ng-class&#61;&#34;wide ? classes.wideField : classes.field&#34; ng-switch-when&#61;&#34;html&#34;&gt;&#39;,\r\n &#39;&lt;textarea id&#61;&#34;{<!-- -->{getFieldId(field)}}&#34; class&#61;&#34;form-control mceEditor&#34; ng-model&#61;&#34;field.value&#34; ng-disabled&#61;&#34;disabled&#34;&gt;&lt;/textarea&gt;&#39;,\r\n &#39;&lt;/div&gt;&#39;,\r\n // Default\r\n &#39;&lt;div class&#61;&#34;ev-field-input-div&#34; ng-class&#61;&#34;wide ? classes.wideField : classes.field&#34; ng-switch-default&gt;&#39;,\r\n &#39;&lt;input type&#61;&#34;text&#34; id&#61;&#34;{<!-- -->{getFieldId(field)}}&#34; class&#61;&#34;form-control ev-field-input&#34; maxlength&#61;&#34;{<!-- -->{field.max_length}}&#34; ng-class&#61;&#34;{disabled: disabled}&#34; ng-disabled&#61;&#34;disabled&#34; ng-model&#61;&#34;field.display&#34; ng-if&#61;&#34;!field.max_length || field.max_length &lt; 256&#34;/&gt;&#39;,\r\n &#39;&lt;textarea id&#61;&#34;{<!-- -->{getFieldId(field)}}&#34; class&#61;&#34;form-control ev-field-textarea&#34; ng-if&#61;&#34;field.max_length &amp;&amp; field.max_length &gt;&#61; 256&#34; maxlength&#61;&#34;{<!-- -->{field.max_length}}&#34; ng-class&#61;&#34;{disabled: disabled}&#34; ng-model&#61;&#34;field.display&#34; ng-disabled&#61;&#34;disabled&#34;&gt;&lt;/textarea&gt;&#39;,\r\n &#39;&lt;/div&gt;&#39;,\r\n // Addons\r\n &#39;&lt;div id&#61;&#34;{<!-- -->{getFieldId(field)}}_addons&#34; ng-class&#61;&#34;wide ? classes.wideAddons : classes.addons&#34;&gt;&#39;,\r\n &#39;&lt;button ng-if&#61;&#34;renderType &#61;&#61; \\&#39;reference\\&#39;&#34; ng-click&#61;&#34;showRefPopup($event, field)&#34; class&#61;&#34;btn btn-default btn-ref icon-info&#34; ng-show&#61;&#34;field.value&#34; aria-label&#61;&#34;{<!-- -->{ field.tooltip &#43; \\&#39; - \\&#39; &#43; field.displayValue || field.ev_tooltip &#43; \\&#39; - \\&#39; &#43; field.displayValue }}&#34; data-original-title&#61;&#34;{<!-- -->{ field.tooltip &#43; \\&#39; - \\&#39; &#43; field.displayValue || field.ev_tooltip &#43; \\&#39; - \\&#39; &#43; field.displayValue }}&#34; aria-haspopup&#61;&#34;true&#34;&gt;&lt;/button&gt;&#39;,\r\n &#39;&lt;a ng-if&#61;&#34;renderType &#61;&#61; \\&#39;reference\\&#39;&#34; ng-show&#61;&#34;field.value &amp;&amp; field.external_space_id&#34; ng-click&#61;&#34;showFloorPlan(field)&#34; class&#61;&#34;btn btn-default icon-location&#34; aria-label&#61;&#34;${gs.getMessage(&#34;Map pin&#34;)}&#34; title&#61;&#34;${gs.getMessage(&#34;Open floor plan in new window&#34;)}&#34; href&#61;&#34;&#34;&gt;&lt;/a&gt;&#39;,\r\n &#39;&lt;button id&#61;&#34;displayOrderButton&#34; ng-if&#61;&#34;field.column_name &#61;&#61; \\&#39;display_order\\&#39; &amp;&amp; $parent.showDisplayOrderButton&#34; ng-show&#61;&#34;field.display !&#61;&#61; \\&#39;\\&#39;&#34; class&#61;&#34;btn btn-default btn-ref icon-info&#34; aria-label&#61;&#34;${gs.getMessage(\\&#39;Preview all activities\\&#39;)}&#34; data-original-title&#61;&#34;${gs.getMessage(\\&#39;Preview all activities\\&#39;)}&#34; aria-haspopup&#61;&#34;true&#34;&gt;&lt;/button&gt;&#39;,\r\n &#39;&lt;/div&gt;&#39;,\r\n &#39;&lt;/div&gt;&#39;\r\n ].join(&#39;&#39;)\r\n };\r\n }]);\r\n\r\n angular.bootstrap(document.getElementById(&#39;case_creation_container&#39;), [\r\n &#39;caseCreation&#39;,\r\n &#39;sn.ngform&#39;,\r\n &#39;sn.list&#39;,\r\n &#39;sn.common.ui&#39;,\r\n &#39;sn.common&#39;\r\n ]);\r\n});]]&gt;&lt;/client_script&gt;\r\n &lt;description/&gt;\r\n &lt;direct&gt;false&lt;/direct&gt;\r\n &lt;endpoint&gt;sn_hr_core_case_creation.do&lt;/endpoint&gt;\r\n &lt;html&gt;&lt;![CDATA[&lt;?xml version&#61;&#34;1.0&#34; encoding&#61;&#34;utf-8&#34; ?&gt;\r\n&lt;j:jelly trim&#61;&#34;false&#34; xmlns:j&#61;&#34;jelly:core&#34; xmlns:g&#61;&#34;glide&#34; xmlns:j2&#61;&#34;null&#34; xmlns:g2&#61;&#34;null&#34;&gt;\r\n\t&lt;g2:requires name&#61;&#34;scripts/angular_includes_1.5.11.js&#34; includes&#61;&#34;true&#34;/&gt;\r\n\t&lt;g2:requires name&#61;&#34;scripts/sn/common/js_includes_common.js&#34; includes&#61;&#34;true&#34;/&gt;\r\n\r\n\t&lt;!-- TODO Remove unnecessary includes --&gt;\r\n\t&lt;g2:requires name&#61;&#34;scripts/sn/common/util/js_includes_util.js&#34; includes&#61;&#34;true&#34;/&gt;\r\n\t&lt;g2:requires name&#61;&#34;scripts/sn/common/messaging/js_includes_messaging.js&#34; includes&#61;&#34;true&#34;/&gt;\r\n\t&lt;g2:requires name&#61;&#34;scripts/sn/common/controls/js_includes_controls.js&#34; includes&#61;&#34;true&#34;/&gt;\r\n\t&lt;g2:requires name&#61;&#34;scripts/sn/common/glide/js_includes_glide.js&#34; includes&#61;&#34;true&#34;/&gt;\r\n\t&lt;g2:requires name&#61;&#34;scripts/sn/common/i18n/js_includes_i18n.js&#34; includes&#61;&#34;true&#34;/&gt;\r\n\t&lt;g2:requires name&#61;&#34;scripts/sn/common/ui/js_includes_ui.js&#34; includes&#61;&#34;true&#34;/&gt;\r\n\t&lt;g2:requires name&#61;&#34;scripts/js_includes_ng_form_elements.js&#34; includes&#61;&#34;true&#34;/&gt;\r\n\t&lt;g2:requires name&#61;&#34;scripts/js_includes_ng_list.js&#34; includes&#61;&#34;true&#34;/&gt;\r\n\t&lt;g2:requires name&#61;&#34;scripts/js_includes_list_v3.js&#34; includes&#61;&#34;true&#34;/&gt;\r\n\t&lt;!-- Prevents errors for reference popover of an fm_space --&gt;\r\n\t&lt;g2:requires name&#61;&#34;scripts/classes/doctype/js_includes_listv2_doctype.js&#34; includes&#61;&#34;true&#34;/&gt;\r\n\t&lt;g2:requires name&#61;&#34;scripts/tinymce_default/tinymce.full.js&#34; params&#61;&#34;sysparm_substitute&#61;false&#34;/&gt;\r\n\r\n\t&lt;!-- Included styles --&gt;\r\n\t&lt;g2:requires name&#61;&#34;/styles/css_includes_ng_polaris.css&#34;/&gt;\r\n\t&lt;g2:requires name&#61;&#34;/styles/thirdparty/datetimepicker.css&#34;/&gt;\r\n\t&lt;g2:requires name&#61;&#34;/styles/list_v3.css&#34;/&gt;\r\n\t&lt;g2:requires name&#61;&#34;/styles/polaris/filter.css&#34;/&gt;\r\n\t&lt;g2:requires name&#61;&#34;/styles/sn_avatar.css&#34;/&gt;\r\n\t&lt;g2:requires name&#61;&#34;/styles/dist/common/sn_common.css&#34;/&gt;\r\n\r\n\t&lt;g:evaluate jelly&#61;&#34;true&#34;&gt;\r\n\t\tvar fvwPluginActive &#61; GlidePluginManager.isActive(&#39;com.snc.facilities_service_automation.fvw&#39;);\r\n\t\tvar evConfig &#61; new sn_hr_core.hr_CaseCreation();\r\n\t\tvar pageSize &#61; evConfig.pageSize || 10;\r\n\t\tvar minimumInputLength &#61; evConfig.minimumInputLength || 4;\r\n\t\tvar links &#61; evConfig.links || [];\r\n\t\tvar linksString &#61; JSON.stringify(links);\r\n\t\tvar leParentSysId &#61; jelly.sysparm_parent_le_case;\r\n\t\tvar allActivitySetsFinished &#61; false;\r\n\r\n\t\tvar coes &#61; evConfig.getActiveCoes();\r\n\t\tvar coesString &#61; JSON.stringify(coes);\r\n\t\tvar universalReq &#61; jelly.sysparm_universalReq || &#39;&#39;;\r\n\t\t\r\n\t\tvar taskCreateTable &#61; evConfig.taskCreateTable;\r\n\t\tvar taskCreateRecord &#61; new GlideRecord(evConfig.taskCreateTable);\r\n\t\ttaskCreateRecord.initialize();\r\n\t\tevConfig.setInitialCaseFields(taskCreateRecord);\r\n\t\tvar taskFields &#61; {};\r\n\t\tfor (var key in evConfig.taskFields)\r\n\t\t\ttaskFields[key] &#61; evConfig.getFieldObjects(taskCreateRecord, evConfig.taskFields[key], true);\r\n\t\t\r\n\t\tif (leParentSysId)\r\n\t\t\tallActivitySetsFinished &#61; new sn_hr_le.hr_LERefQualSNC().getEligibleStages(leParentSysId).length &#61;&#61;&#61; 0;\r\n\r\n\t\t// Remove fields user cannot write to\r\n\t\tfor (var keyList in taskFields)\r\n\t\t\tfor (var i &#61; taskFields[keyList].length - 1; i &gt; -1; i--) {\r\n\t\t\t\tif (!taskCreateRecord.getElement(taskFields[keyList][i].column_name).canCreate())\r\n\t\t\t\t\ttaskFields[keyList].splice(i, 1);\r\n\r\n\t\t\t\tif (universalReq ${AND} taskFields[keyList][i].column_name &#61;&#61; &#34;work_notes&#34;)\r\n\t\t\t\t \ttaskFields[keyList][i].mandatory &#61; true;\r\n\t\t\t}\r\n\t\t\r\n\t\t// If an admin has configured the case creation page to have specific location for stage and display order - use it\r\n\t\tvar getPositionOfStageAndDisplayOrder &#61; function(taskFields) {\r\n\t\t\tvar result &#61; {&#39;stage&#39; : &#39;&#39;, &#39;display_order&#39; : &#39;&#39;};\r\n\t\t\tfor (var position in taskFields)\r\n\t\t\t\tfor (var i &#61; taskFields[position].length - 1; i &gt; -1; i--) {\r\n\t\t\t\t\tif (taskFields[position][i].column_name &#61;&#61;&#61; &#39;stage&#39;)\r\n\t\t\t\t\t\tresult.stage &#61; position;\r\n\t\t\t\t\tif (taskFields[position][i].column_name &#61;&#61;&#61; &#39;display_order&#39;)\r\n\t\t\t\t\t\tresult.display_order &#61; position;\r\n\t\t\t\t}\r\n\t\t\treturn result;\r\n\t\t};\r\n\r\n\t\tif (leParentSysId ${AND} !allActivitySetsFinished) {\r\n\t\t\tvar stageField &#61; evConfig.getFieldObject(taskCreateRecord, evConfig.getUserField(&#34;stage&#34;, true));\r\n\t\t\tvar displayOrder;\r\n\t\t\tvar grCase &#61; new GlideRecord(&#34;sn_hr_core_case&#34;);\r\n\t\t\tif (grCase.get(leParentSysId) ${AND} grCase.getElement(&#39;hr_service.le_type.sort_activities_by&#39;).toString() &#61;&#61; &#39;display_order&#39;) {\r\n\t\t\t\tdisplayOrder &#61; evConfig.getFieldObject(taskCreateRecord, evConfig.getUserField(&#34;display_order&#34;, true));\r\n\t\t\t\tdisplayOrder.hidden &#61; true;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tvar position &#61; getPositionOfStageAndDisplayOrder(taskFields);\r\n\t\t\r\n\t\t\tif (stageField ${AND} !position.stage) \r\n\t\t\t\ttaskFields[position.stage || &#39;left_fields&#39;].push(stageField);\r\n\t\t\tif (displayOrder ${AND} !position.display_order)\r\n\t\t\t\ttaskFields[position.display_order || &#39;left_fields&#39;].push(displayOrder);\r\n\t\t\r\n\t\t\tvar stage &#61; taskFields[position.stage || &#39;left_fields&#39;].filter(function(item) {\r\n\t\t\t\treturn item.column_name &#61;&#61;&#61; &#39;stage&#39;;\r\n\t\t\t});\r\n\r\n\t\t\t// Since advanced qualifier that is being defined on stage field is using current and as we are not passing current, we have to pass it as a parameter\r\n\t\t\tif (stage.length &#61;&#61; 1) \r\n\t\t\t\tstage[0].qualifier &#61; new sn_hr_le.hr_LERefQual().stageActivitySetRefQual(leParentSysId);\r\n\t\t} else {\r\n\t\t\t// If case form is configured to show &#39;stage&#39; and &#39;display_order&#39; - remove them as they are only applicable if the parent is LE case type\r\n\t\t\tfor (var keyList in taskFields)\r\n\t\t\t\tfor (var i &#61; taskFields[keyList].length - 1; i &gt; -1; i--) {\r\n\t\t\t\t\tif (taskFields[keyList][i].column_name &#61;&#61;&#61; &#39;stage&#39; || taskFields[keyList][i].column_name &#61;&#61;&#61; &#39;display_order&#39;)\r\n\t\t\t\t\t\ttaskFields[keyList].splice(i, 1);\r\n\t\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tvar taskFieldString &#61; JSON.stringify(taskFields);\r\n\t\t// TODO Add boolean for if hr_service field is even on taskCreateTable\r\n\r\n\t\tvar user &#61; jelly.sysparm_user;\r\n\t\tvar profile &#61; jelly.sysparm_profile;\r\n\t\tvar userObject &#61; &#39;&#39;;\r\n\t\tif (user) {\r\n\t\t\tvar userGr &#61; new GlideRecordSecure(&#34;sys_user&#34;);\r\n\t\t\tif (userGr.get(&#34;sys_id&#34;, user))\r\n\t\t\t\tuserObject &#61; evConfig.getUserObject(userGr);\r\n\t\t} else if (profile) {\r\n\t\t\tvar profileGr &#61; new GlideRecordSecure(&#34;sn_hr_core_profile&#34;);\r\n\t\t\tprofileGr.addNotNullQuery(&#34;user&#34;);\r\n\t\t\tprofileGr.addQuery(&#34;sys_id&#34;, profile);\r\n\t\t\tprofileGr.query();\r\n\t\t\tif (profileGr.next())\r\n\t\t\t\tuserObject &#61; evConfig.getUserObject(profileGr);\r\n\t\t}\r\n\t\tuserObject &#61; JSON.stringify(userObject);\r\n\r\n\t\tvar conversation &#61; jelly.sysparm_conversation || &#39;&#39;;\r\n\t\tvar collectionKey &#61; jelly.sysparm_collection_key || &#39;&#39;;\r\n\t\tvar collectionId &#61; jelly.sysparm_collectionID || &#39;&#39;;\r\n\t\t\r\n\t\tvar coeLabel;\r\n\t\tvar coeHint;\r\n\t\tvar topicCategoryGr &#61; new GlideRecord(&#34;sn_hr_core_topic_category&#34;)\r\n\t\tif (topicCategoryGr.isValid() ${AND} topicCategoryGr.isValidField(&#34;coe&#34;)) {\r\n\t\t\tvar coeElement &#61; topicCategoryGr.getElement(&#34;coe&#34;);\r\n\t\t\tcoeLabel &#61; coeElement.getLabel();\r\n\t\t\tcoeHint &#61; coeElement.getED().getHint();\r\n\t\t}\r\n\t\tcoeLabel &#61; coeLabel || gs.getMessage(&#34;COE&#34;);\r\n\t\tcoeHint &#61; coeHint || gs.getMessage(&#34;Center of Excellence associated with HR case you are creating&#34;);\r\n\r\n\t\tvar serviceLabel;\r\n\t\tvar serviceHint;\r\n\t\tif (taskCreateRecord.isValid() ${AND} taskCreateRecord.isValidField(&#34;hr_service&#34;)) {\r\n\t\t\tvar serviceElement &#61; taskCreateRecord.getElement(&#34;hr_service&#34;);\r\n\t\t\tserviceLabel &#61; serviceElement.getLabel();\r\n\t\t\tserviceHint &#61; serviceElement.getED().getHint();\r\n\t\t}\r\n\t\tserviceLabel &#61; serviceLabel || gs.getMessage(&#34;HR service&#34;);\r\n\t\tserviceHint &#61; serviceHint || gs.getMessage(&#34;Determines type of case being created&#34;);\r\n\t\t\r\n\t\tvar button &#61; &#39;&lt;a href&#61;&#34;&#34; class&#61;&#34;btn btn-link no-padding&#34; ng-click&#61;&#34;skipVerification()&#34;&gt;&#39; &#43; gs.getMessage(&#39;Skip verification&#39;) &#43; &#39;&lt;/a&gt;&#39;;\r\n\t\tvar translatedMessage &#61; &#39;&lt;span&gt;&#39; &#43; gs.getMessage(&#39;{0} for external individuals or anonymous employees&#39;, button) &#43; &#39;&lt;/span&gt;&#39;;\r\n\t&lt;/g:evaluate&gt;\r\n\r\n\t&lt;script&gt;\r\n\t\t// set title for case creation page\r\n\t\tdocument.title &#61; &#39;${gs.getMessage(&#34;Case Creation&#34;)}&#39;;\r\n\t\tvar fvwPluginActive &#61; ${fvwPluginActive};\r\n\t\tvar pageSize &#61; ${pageSize};\r\n\t\tvar minimumInputLength &#61; ${minimumInputLength};\r\n\t\tvar ac_wait_time &#61; parseInt(${gs.getProperty(&#39;glide.xmlhttp.ac_wait_time&#39;, 250)});\r\n\t\tvar g_ck &#61; &#39;$[gs.getSession().getSessionToken()]&#39;;\r\n\t\tvar coes &#61; &#39;${JS:coesString}&#39;;\r\n\t\tvar taskCreateTable &#61; &#39;${taskCreateTable}&#39;;\r\n\t\tvar taskFields &#61; &#39;${JS:taskFieldString}&#39;;\r\n\t\tvar userObject &#61; &#39;${JS:userObject}&#39;;\r\n\t\t\r\n\t\tvar links &#61; &#39;${linksString}&#39;;\r\n\t\tvar conversation &#61; &#39;${conversation}&#39;;\r\n\t\tvar collectionKey &#61; &#39;${collectionKey}&#39;;\r\n\t\tvar collectionId &#61; &#39;${collectionId}&#39;;\r\n\t\tvar leParentSysId &#61; &#39;${leParentSysId}&#39;;\r\n\t\tvar allActivitySetsFinished &#61; &#39;${allActivitySetsFinished}&#39;\r\n\t\tvar universalReq &#61; &#39;${universalReq}&#39;;\r\n\t\tvar vipPriority &#61; String(${gs.getProperty(&#39;sn_hr_core.hr_vip_default_priority&#39;, hr.DEFAULT_HIGH_PRIORITY) || &#39;2&#39;});\r\n\t\tvar translatedMessage &#61; &#39;${JS:translatedMessage}&#39;;\r\n\r\n\t\t// Prevent going back a page reusing the parameters\r\n\t\tvar url &#61; new GlideURL(window.location.href);\r\n\t\turl.deleteParam(&#39;sysparm_conversation&#39;);\r\n\t\turl.deleteParam(&#39;sysparm_collection_key&#39;);\r\n\t\turl.deleteParam(&#39;sysparm_collectionID&#39;);\r\n\t\turl.deleteParam(&#39;sysparm_parent_le_case&#39;);\r\n\t\turl.deleteParam(&#39;sysparm_user&#39;);\r\n\t\turl.deleteParam(&#39;sysparm_profile&#39;);\r\n\t\turl.deleteParam(&#39;sysparm_universalReq&#39;);\r\n\t\tif (window.history $[AND] window.history.replaceState)\r\n\t\t\twindow.history.replaceState(null, document.title, url.getURL());\r\n\t&lt;/script&gt;\r\n\t&lt;style&gt;\r\n\t\t/* Prevent collapse icon shifting around when page scrolls*/\r\n\t\tbody {\r\n\t\tmax-height:100%;\r\n\t\t}\r\n\r\n\t\t.outputmsg_div {\r\n\t\tdisplay: none !important;\r\n\t\t}\r\n\t\t\r\n\t\t.select2-container .select2-choice .select2-arrow {\r\n\t\tposition:absolute;\r\n\t\tright:4px;\r\n\t\t}\r\n\t\t\r\n\t\thtml[dir&#61;&#34;rtl&#34;] .select2-container .select2-choice .select2-arrow {\r\n\t\tposition:absolute;\r\n\t\tright:auto;\r\n\t\tleft: 4px;\r\n\t\t}\r\n\t\t\r\n\t\t.maincontent {\r\n\t\tmargin:-5px;\r\n\t\t}\r\n\r\n\t\t.notification-container {\r\n\t\tposition:absolute;\r\n\t\tz-index:999;\r\n\t\tmargin-right:30px;\r\n\t\twidth:calc(100% - 30px);\r\n\t\tmargin-left:8px;\r\n\t\t}\r\n\r\n\t\t#skip_verification_container {\r\n\t\tmargin-top:10px;\r\n\t\t}\r\n\t\t\r\n\t\t#skip_verification_container a {\r\n\t\tvertical-align:baseline;\r\n\t\tfont-family: SourceSansProSemibold, &#34;Helvetica Neue&#34;, Arial;\r\n\t\t}\r\n\t\t\r\n\t\t.navbar-header .mobile-header-left{\r\n\t\tfloat: left;\r\n\t\t}\r\n\t\t\r\n\t\thtml[dir&#61;&#34;rtl&#34;] .navbar-header .mobile-header-left{\r\n\t\tfloat: right !important;\r\n\t\t}\r\n\t\t\r\n\t\thtml[dir&#61;&#34;rtl&#34;] .btn.btn-default.icon-chevron-left.navbar-btn{\r\n\t\tfloat: right !important;\r\n\t\t}\r\n\r\n\t\t.ev-container {\r\n\t\toverflow-y: scroll;\r\n\t\tpadding:10px 20px;\r\n\t\theight:100% !important;\r\n\t\t}\r\n\r\n\t\t.ev-container .form-group .form-field-addons {\r\n\t\tpadding-inline-start: 5px;\r\n\t\t}\r\n\r\n\t\t.ev-section:not(:first-of-type) {\r\n\t\tmargin-top:10px;\r\n\t\tpadding-top:7px;\r\n\t\tborder-top:1px solid RGB(var(--now-color_chrome--divider-0,170,170,170));\r\n\t\t}\r\n\r\n\t\t.ev-section.sole-section {\r\n\t\tmargin-top:0;\r\n\t\tpadding-top:0;\r\n\t\tborder-top:none;\r\n\t\t}\r\n\r\n\t\t.ev-section {\r\n\t\tpadding:0;\r\n\t\tmargin:0;\r\n\t\t}\r\n\r\n\t\t.timingDiv {\r\n\t\tdisplay:none;\r\n\t\tmargin-right:1.5rem;\r\n\t\t}\r\n\t\t\r\n\t\t.pointerhand {\r\n\t\tz-index:99;\r\n\t\t}\r\n\r\n\t\t.ev-section.state-closed button.icon-chevron-right {\r\n\t\t-webkit-transform: rotate(0deg);\r\n\t\t-ms-transform: rotate(0deg);\r\n\t\ttransform: rotate(0deg);\r\n\t\t}\r\n\r\n\t\t.ev-section button.icon-chevron-right {\r\n\t\theight: 32px;\r\n\t\twidth: 32px;\r\n\t\tpadding-bottom: 2px;\r\n\t\t-webkit-transition: -webkit-transform 0.3s;\r\n\t\t-ms-transition: -ms-transform 0.3s;\r\n\t\ttransition: transform 0.3s;\r\n\t\t-webkit-transform: rotate(90deg);\r\n\t\t-ms-transform: rotate(90deg);\r\n\t\ttransform: rotate(90deg);\r\n\t\tfont-size: 18px;\r\n\t\t}\r\n\r\n\t\ta.icon-location {\r\n\t\twidth:32px;\r\n\t\t}\r\n\t\t\r\n\t\t.tabs2_tab_header{\r\n\t\tbackground-color : transparent !important;\r\n\t\tmargin : 0 !important;\r\n\t\tpadding-block-start : unset !important;\r\n\t\t}\r\n\r\n\t\ta.deep-link {\r\n\t\theight:32px;\r\n\t\tmin-width:32px;\r\n\t\tmax-width:120px;\r\n\t\t}\r\n\r\n\t\t.ev-section-header {\r\n\t\tfont-size:20px;\r\n\t\tpadding-left:0px;\r\n\t\tmargin-bottom:15px;\r\n\t\t}\r\n\r\n\t\t.ev-section-collapse {\r\n\t\tfloat:right;\r\n\t\tpadding:0;\r\n\t\t}\r\n\r\n\t\t&#64;media (max-width: 1199px) and (min-width: 800px) {\r\n\t\t.col-md-1_5 {\r\n\t\twidth:12.5% !important;\r\n\t\tmin-height:1px;\r\n\t\tfloat:left;\r\n\t\t}\r\n\t\t.col-md-10_5 {\r\n\t\twidth:calc(87.5% &#43; 5px);\r\n\t\tfloat:left;\r\n\t\t}\r\n\t\t}\r\n\r\n\t\t.ev-field {\r\n\t\tpadding:0;\r\n\t\tmin-height:32px;\r\n\t\t}\r\n\r\n\t\t.ev-field-label {\r\n\t\tpadding:7px 2px 0 15px;\r\n\t\t}\r\n\r\n\t\t&#64;media (min-width: 800px) {\r\n\t\t.ev-field-label {\r\n\t\ttext-align:right;\r\n\t\tpadding-left:0;\r\n\t\t}\r\n\t\t}\r\n\r\n\t\t.ev-input-group {\r\n\t\twidth:100%;\r\n\t\t}\r\n\r\n\t\t.ev-field-reference {\r\n\t\twidth:100%;\r\n\t\theight:32px;\r\n\t\tmargin:0;\r\n\t\tmin-width:1px !important;\r\n\t\t}\r\n\r\n\t\t.btn-primary[disabled], .btn-primary.disabled {\r\n\t\topacity: 0.57;\r\n\t\t}\r\n\r\n\t\t.btn-ref {\r\n\t\tcursor:pointer !important;\r\n\t\t}\r\n\r\n\t\t.ev-fields .select2-reference .select2-choice {\r\n\t\t}\r\n\t\t\r\n\t\t.input-group.inline-form.ev-input-group {\r\n\t\twhite-space:nowrap;\r\n\t\tdisplay:block;\r\n\t\t}\r\n\r\n\t\t.input-group-btn {\r\n\t\tdisplay:inline-block;\r\n\t\t}\r\n\r\n\t\t.button-column {\r\n\t\tmargin-left:1px;\r\n\t\t}\r\n\r\n\t\t.button-column BUTTON.btn:not(:last-child) {\r\n\t\tmargin-bottom:3px;\r\n\t\t}\r\n\r\n\t\t.ev-fields .select2-reference .select2-chosen {\r\n\t\tmargin-right:0 !important;\r\n\t\t}\r\n\t\t\r\n\t\thtml[dir&#61;&#34;rtl&#34;] .select2-chosen{\r\n\t\tmargin-right: 0px !important;\r\n\t\tmargin-left: 0px !important;\r\n\t\tpadding-right: 8px !important;\r\n\t\tpadding-left: 26px !important;\r\n\t\ttext-align: right !important;\r\n\t\t}\r\n\r\n\t\t.select2-search-choice-close {\r\n\t\tz-index:999;\r\n\t\tmargin-right:1.5rem;\r\n\t\t}\r\n\t\t\r\n\t\thtml[dir&#61;&#34;rtl&#34;] .select2-search-choice-close{\r\n\t\tright: auto;\r\n\t\tleft: 20px;\r\n\t\tmargin-right: 0px;\r\n\t\tmargin-left: 15px;\r\n\t\t}\r\n\r\n\t\t.ev-option-display-side {\r\n\t\tfloat:right;\r\n\t\t}\r\n\r\n\t\t.text-ellipsis {\r\n\t\ttext-overflow:ellipsis;\r\n\t\twhite-space:nowrap;\r\n\t\toverflow:hidden;\r\n\t\t}\r\n\r\n\t\t.ev-field-input {\r\n\t\twidth:100%;\r\n\t\tpadding:6px 9px;\r\n\t\tborder-radius:3px;\r\n\t\tborder:1px solid;\r\n\t\t}\r\n\r\n\t\t.ev-field-input.disabled,\r\n\t\t.select2-container.select2-container-disabled .select2-choice,\r\n\t\t.select2-container.select2-container-disabled .select2-choice .select2-arrow,\r\n\t\t.select2-container.select2-container-disabled .select2-choice abbr {\r\n\t\tcursor:not-allowed;\r\n\t\t}\r\n\r\n\t\t.select2-container.select2-container-disabled .select2-choice {\r\n\t\tborder: 1px solid;\r\n\t\t}\r\n\t\t\r\n\t\t.select2-container{\r\n\t\tdisplay: inline-grid; \r\n\t\t}\r\n\r\n\t\t.ev-field-checkbox-label {\r\n\t\tmargin:5px 0 0 0 !important;\r\n\t\t}\r\n\r\n\t\t.ev-field-choicelist {\r\n\t\twidth:100%;\r\n\t\t}\r\n\r\n\t\t.ev-field-duration-div .duration-input-group-container:first-child {\r\n\t\tmargin-bottom:4px;\r\n\t\t}\r\n\r\n\t\t.ev-field-duration-div .duration-input-group-container:not(:first-child) .duration-input-group {\r\n\t\twidth:33.3333%;\r\n\t\tfloat:left;\r\n\t\t}\r\n\r\n\t\t.ev-field-duration-div .duration-input-group-container:not(:first-child) .duration-input-group:not(:first-child) {\r\n\t\twidth:calc(33.3333% &#43; 1px);\r\n\t\tmargin-left:-1px;\r\n\t\t}\r\n\r\n\t\t.ev-field-duration-div .duration-input-group-container:not(:first-child) .duration-input-group:not(:first-child) input {\r\n\t\tborder-radius:0;\r\n\t\t}\r\n\r\n\t\t.ev-field-duration-div .duration-input-group-container:not(:first-child) .duration-input-group:not(:last-child) span {\r\n\t\tborder-radius:0;\r\n\t\t}\r\n\r\n\t\t.ev-field-currency {\r\n\t\twidth:100%;\r\n\t\t}\r\n\r\n\t\t.ev-field-currency .select2-choice {\r\n\t\tborder-right:0 !important;\r\n\t\tborder-top-right-radius:0;\r\n\t\tborder-bottom-right-radius:0;\r\n\t\t}\r\n\r\n\t\t.ev-field-textarea {\r\n\t\twidth: 100%;\r\n\t\tword-wrap: break-word;\r\n\t\tresize: none;\r\n\t\theight: 64px;\r\n\t\tborder-radius:3px;\r\n\t\tresize:vertical;\r\n\t\t}\r\n\r\n\t\thtml[dir&#61;&#34;rtl&#34;] .ev-option-additional-display-fields{\r\n\t\t\ttext-align: left !important;\r\n\t\t\tpadding-right: 15px !important;\r\n\t\t\tpadding-left: 34px !important;\r\n\t\t}\r\n\t\t\r\n\t\tbody.-polaris .table tr th.col-control:first-child, body.-polaris .table tr th.list_decoration_cell:first-child, body.-polaris .table tr td.col-control:first-child, body.-polaris .table tr td.list_decoration_cell:first-child {\r\n\t\tpadding-inline-start : unset !important;\r\n\t\t}\r\n\t\t\r\n\t\t.glidelist-box SELECT {\r\n\t\theight:137px;\r\n\t\t}\r\n\r\n\t\t.glidelist-icons .button-column .btn {\r\n\t\twidth:32px;\r\n\t\theight:32px;\r\n\t\t}\r\n\r\n\t\t.glide-listref .select2-container {\r\n\t\tmargin-top:4px;\r\n\t\t}\r\n\r\n\t\t.no-padding {\r\n\t\tpadding:0 !important;\r\n\t\t}\r\n\r\n\t\t.tab_header {\r\n\t\toutline: 0;\r\n\t\t}\r\n\r\n\t\t.tabs2_tab {\r\n\t\tborder-right: 1px solid !important;\r\n\t\t}\r\n\r\n\t\t.sn-list-container {\r\n\t\tborder: 1px solid RGB(var(--now-color_chrome--divider-0,170,170,170)) !important;\r\n\t\t}\r\n\r\n\t\t.navbar {\r\n\t\tmargin:0 !important;\r\n\t\t}\r\n\r\n\t\t.navbar-right button:not(:first-child) {\r\n\t\tmargin-left:8px;\r\n\t\t}\r\n\r\n\t\t.ui-action-btn {\r\n\t\tmargin: -17px 0 0 0 !important;\r\n\t\t}\r\n\r\n\t\t.list-footer-rows {\r\n\t\tdisplay: none !important;\r\n\t\t}\r\n\r\n\t\t.view-tabs.nav-segmented.pull-left {\r\n\t\tpadding:0;\r\n\t\t}\r\n\r\n\t\t.footer-container .list-bottom {\r\n\t\tposition:relative;\r\n\t\t}\r\n\t\t\r\n\t\t.notification {\r\n\t\t\tmargin-bottom: 0px;\r\n\t\t}\r\n\t\t\r\n\t\t.error-message {\r\n\t\t\tpadding-top: 10px;\r\n\t\t\tpadding-bottom: 10px;\r\n\t\t\tpadding-left: 15px;\r\n\t\t\tpadding-right: 15px;\r\n\t\t}\r\n\t\t\r\n\t\t.state-closed .section-content {\r\n\t\t\topacity:0 !important;\r\n\t\t\tdisplay:none !important;\r\n\t\t}\r\n\t\t\r\n\t\t.form-control.select2-offscreen {\r\n\t\tvisibility: hidden!important;\r\n\t\t}\r\n\t\t\r\n\t\t.ev-field-reference.select2-offscreen {\r\n\t\tvisibility: hidden!important;\r\n\t\t}\r\n\t\t\r\n\t\t .select2-focusser.select2-offscreen {\r\n\t\t\twidth:100% !important;\r\n\t\t\theight:100% !important;\r\n\t\t}\r\n\t\t\r\n\t\t#related_lists.section-content {\r\n\t\t\toverflow:visible;\r\n\t\t}\r\n\r\n\t\t.display-order-popover {\r\n\t\t\tmax-width: 100%;\r\n\t\t\twidth: 50%;\r\n\t\t}\r\n\t\t\r\n\t\t.display-order-popover table {\r\n\t\t\twidth: 100%;\r\n\t\t}\r\n\t\t\r\n\t\t.current-task td:first-child::before {\r\n\t\t\tcontent: &#39;&#39;;\r\n\t\t\tdisplay: inline-block;\r\n\t\t\theight: 1.3em;\r\n\t\t\twidth: 5px;\r\n\t\t\tmargin-right: 3px;\r\n\t\t\tvertical-align: middle;\r\n\t\t}\r\n\t\t\r\n\t\t#ev_information, #ev_case {\r\n\t\t\tbackground-color: RGB(var(--now-color_background--secondary,var(--now-color--neutral-1,246,247,247)));\r\n\t\t}\r\n\t\t\r\n\t\t#tabs2 {\r\n\t\t\tbackground-color: RGB(var(--now-color_background--secondary,var(--now-color--neutral-1,246,247,247))) !important;\r\n\t\t}\r\n\t\t\r\n\t\t#email_btn {\r\n\t\t\tz-index: 3;\r\n\t\t}\r\n\r\n\t\tHTML[data-doctype&#61;true] .section_header_content_no_scroll {\r\n\t\t\tpadding-left: 15px;\r\n\t\t\tpadding-right: 15px;\r\n\t\t\tpadding-bottom: 10px;\r\n\t\t}\r\n\r\n\t\tH1.form_header {\r\n\t\t\tcolor: inherit;\r\n\t\t}\r\n\r\n\t\t/* Override CSS START */\r\n\t\tdiv.select2-search::after, .select2-no-results, .select2-drop, .select2-search-choice-close {\r\n\t\t\tcolor: RGB(var(--now-color_text--primary,var(--now-color--neutral-18,22,27,28)));\r\n\t\t}\r\n\r\n\t\t.sn-breadcrumb {\r\n\t\t\twidth: 100%;\r\n\t\t}\r\n\r\n\t\t.ng-filter-widget {\r\n\t\t\tfloat: left;\r\n\t\t}\r\n\r\n\t\ttd.col-control {\r\n\t\t\tbackground: transparent !important;\r\n\t\t}\r\n\t\t.breadcrumb-container {\r\n\t\t\tcolor: RGB(var(--now-color_text--primary,var(--now-color--neutral-18,22,27,28)));\r\n\t\t}\r\n\r\n\t\t.sn-breadcrumb, span.sn-breadcrumb-link, button.sn-breadcrumb-link {\r\n\t\t\tcolor: RGB(var(--now-color_text--primary,var(--now-color--neutral-18,22,27,28)));\r\n\t\t}\r\n\t\t.sn-breadcrumb a {\r\n\t\t\tcolor: RGB(var(--now-text-link--primary--color,var(--now-color--link-2,1,119,142)));\r\n\t\t}\r\n\t\tbutton.sn-breadcrumb-link {\r\n\t\t\tbackground-color: inherit;\r\n\t\t}\r\n\t\t.input-group-transparent .input-group-addon-transparent.icon-filter {\r\n\t\t\tposition: revert;\r\n\t\t}\r\n\t\t/* Override CSS END */\r\n\t\t\r\n\t\t/* High Contrast Mode Support for Select2 Focus Visibility - WCAG 2.1 Compliant */\r\n\t\t&#64;media (-ms-high-contrast: active) {\r\n\t\t\t.select2-container-active .select2-choice, \r\n\t\t\t.select2-focusser:focus { \r\n\t\t\t\toutline: 2px solid ButtonText !important; \r\n\t\t\t\toutline-offset: 2px !important;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t&#64;media (prefers-contrast: high) {\r\n\t\t\t.select2-container-active .select2-choice, \r\n\t\t\t.select2-focusser:focus { \r\n\t\t\t\toutline: 2px solid RGB(var(--now-color--focus-1, 0, 115, 230)) !important; \r\n\t\t\t\toutline-offset: 2px !important;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t/* Ensure focus visibility for keyboard navigation - WCAG 2.4.7 */\r\n\t\t.select2-container-active .select2-choice:focus-visible,\r\n\t\t.select2-focusser:focus-visible {\r\n\t\t\toutline: 2px solid RGB(var(--now-color--focus-1, 0, 115, 230)) !important;\r\n\t\t\toutline-offset: 2px !important;\r\n\t\t}\r\n\t\t\r\n\t\t/* Fix Select2 Dropdown Text Contrast - WCAG AA Compliant */\r\n\t\t.select2-drop .select2-results .select2-highlighted {\r\n\t\t\tborder: 3px solid RGB(var(--now-color--focus-1, 0, 115, 230)) !important;\r\n\t\t}\r\n\r\n\t\t/* TinyMCE editor styling in ev-field */\r\n\t\t.ev-field-input-div .mce-tinymce {\r\n\t\t\tmin-height: 150px;\r\n\t\t\twidth: 100% !important;\r\n\t\t}\r\n\t\t.ev-field-input-div .mce-edit-area iframe {\r\n\t\t\tmin-height: 100px;\r\n\t\t}\r\n\r\n\t&lt;/style&gt;\r\n\r\n\t&lt;div id&#61;&#34;case_creation_container&#34; class&#61;&#34;maincontent ng-cloak&#34; ng-controller&#61;&#34;NgCaseCreation&#34; role&#61;&#34;main&#34;&gt;\r\n\t\t&lt;!-- Messages --&gt;\r\n\t\t&lt;now-message key&#61;&#34;List Calculations&#34; value&#61;&#34;${JS,HTML:gs.getMessage(&#39;List Calculations&#39;)}&#34;&gt;&lt;/now-message&gt;\r\n\t\t&lt;now-message key&#61;&#34;Sort in descending order&#34; value&#61;&#34;${JS,HTML:gs.getMessage(&#39;Sort in descending order&#39;)}&#34;&gt;&lt;/now-message&gt;\r\n\t\t&lt;now-message key&#61;&#34;Sort in ascending order&#34; value&#61;&#34;${JS,HTML:gs.getMessage(&#39;Sort in ascending order&#39;)}&#34;&gt;&lt;/now-message&gt;\r\n\t\t&lt;now-message key&#61;&#34;Hide column search row&#34; value&#61;&#34;${JS,HTML:gs.getMessage(&#39;Hide column search row&#39;)}&#34;&gt;&lt;/now-message&gt;\r\n\t\t&lt;now-message key&#61;&#34;Show column search row&#34; value&#61;&#34;${JS,HTML:gs.getMessage(&#39;Show column search row&#39;)}&#34;&gt;&lt;/now-message&gt;\r\n\t\t&lt;now-message key&#61;&#34;Preview {0}&#34; value&#61;&#34;${JS,HTML:gs.getMessage(&#39;Preview {0}&#39;)}&#34;&gt;&lt;/now-message&gt;\r\n\r\n\t\t&lt;!-- Navbar --&gt;\r\n\t\t&lt;div class&#61;&#34;section_header_div_no_scroll form_title&#34; style&#61;&#34;height:46px;&#34;&gt;\r\n\t\t\t&lt;nav class&#61;&#34;navbar navbar-default&#34; role&#61;&#34;navigation&#34; style&#61;&#34;max-height:100%;&#34; aria-label&#61;&#34;${gs.getMessage(&#39;Case Creation&#39;)}&#34;&gt;\r\n\t\t\t\t&lt;div class&#61;&#34;container-fluid&#34;&gt;\r\n\t\t\t\t\t&lt;div class&#61;&#34;navbar-header mobile-header-left&#34;&gt;\r\n\t\t\t\t\t\t&lt;div class&#61;&#34;navbar-header navbar-heading-wrap&#34;&gt;\r\n\t\t\t\t\t\t\t&lt;button title&#61;&#34;${gs.getMessage(&#39;Back&#39;)}&#34; aria-label&#61;&#34;${gs.getMessage(&#39;Back&#39;)}&#34; class&#61;&#34;btn btn-default icon-chevron-left navbar-btn&#34; style&#61;&#34;padding:6px 9px; margin-left:4px; float:left; margin-right:5px;&#34; onclick&#61;&#34;window.history.go(-1);&#34;&gt;&lt;/button&gt;\r\n\t\t\t\t\t\t\t&lt;div class&#61;&#34;form_header&#34; style&#61;&#34;margin-top:5px;&#34;&gt;\r\n\t\t\t\t\t\t\t\t&lt;h1 class&#61;&#34;form_header&#34;&gt;${gs.getMessage(&#34;Case Creation&#34;)}&lt;/h1&gt;\r\n\t\t\t\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t\t&lt;div class&#61;&#34;navbar-right&#34; style&#61;&#34;float:right;&#34;&gt;\r\n\t\t\t\t\t\t&lt;button class&#61;&#34;btn btn-primary&#34; ng-click&#61;&#34;createCase()&#34; ng-disabled&#61;&#34;clearForm || creatingCase || fetchingFields&#34; aria-label&#61;&#34;${gs.getMessage(&#39;Create Case&#39;)}&#34; role&#61;&#34;button&#34;&gt;${gs.getMessage(&#39;Create Case&#39;)}&lt;/button&gt;\r\n\t\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t&lt;/div&gt;\r\n\t\t\t&lt;/nav&gt;\r\n\t\t&lt;/div&gt;\r\n\t\t&lt;!-- Error Message --&gt;\r\n\t\t&lt;div role&#61;&#34;alert&#34; class&#61;&#34;error-message&#34;&gt;\r\n\t\t\t&lt;div class&#61;&#34;notification notification-danger&#34; ng-if&#61;&#34;showError&#34; aria-label&#61;&#34;{<!-- -->{errorMessage}}&#34; aria-live&#61;&#34;polite&#34;&gt;\r\n\t\t\t\t&lt;span class&#61;&#34;notification-icon icon-cross-circle&#34;&gt;\r\n\t\t\t\t\t&lt;span class&#61;&#34;sr-only&#34;&gt;${gs.getMessage(&#39;Error Message&#39;)}&lt;/span&gt;\r\n\t\t\t\t&lt;/span&gt;\r\n\t\t\t\t\t{<!-- -->{errorMessage}}\r\n\t\t\t\t&lt;button class&#61;&#34;btn btn-icon close icon-cross&#34; ng-click&#61;&#34;toggleErrorMessage(false, null)&#34; aria-label&#61;&#34;${gs.getMessage(&#39;Close Messages&#39;)}&#34; role&#61;&#34;button&#34;&gt;&lt;/button&gt;\r\n\t\t\t&lt;/div&gt;\r\n\t\t&lt;/div&gt;\r\n\t\t&lt;!-- Form --&gt;\r\n\t\t&lt;div class&#61;&#34;ev-container section_header_content_no_scroll touch_scroll&#34; role&#61;&#34;form&#34;&gt;\r\n\t\t\t&lt;!-- Employee Search Section --&gt;\r\n\t\t\t&lt;div class&#61;&#34;row ev-section&#34; ng-show&#61;&#34;!skippedVerification&#34;&gt;\r\n\t\t\t\t&lt;h2 class&#61;&#34;col-xs-12 ev-section-header&#34;&gt;\r\n\t\t\t\t\t${gs.getMessage(&#34;Search for Employee&#34;)}\r\n\t\t\t\t&lt;/h2&gt;\r\n\t\t\t\t&lt;div class&#61;&#34;col-xs-12 no-padding form-group&#34;&gt;\r\n\t\t\t\t\t&lt;div class&#61;&#34;hidden-xs hidden-sm col-md-1_5 col-lg-2 control-label ev-field-label&#34; /&gt;\r\n\t\t\t\t\t&lt;div class&#61;&#34;col-xs-10 col-md-9 col-lg-8 form-field input_controls&#34;&gt;\r\n\t\t\t\t\t\t&lt;input id&#61;&#34;search_input&#34; class&#61;&#34;select2 form-control ev-field-input-select ev-field-reference&#34; aria-hidden&#61;&#34;true&#34;/&gt;\r\n\t\t\t\t\t\t&lt;j:if test&#61;&#34;${evConfig.allowSkippingVerification}&#34;&gt;\t\r\n\t\t\t\t\t\t&lt;div id&#61;&#34;skip_verification_container&#34; /&gt;\r\n\t\t\t\t\t\t&lt;/j:if&gt;\r\n\t\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t\t&lt;div class&#61;&#34;col-xs-2 col-md-1_5 col-lg-2 form-field-addons&#34; ng-if&#61;&#34;profile&#34; ng-show&#61;&#34;profile $[AND] profile.hasOwnProperty(&#39;sys_id&#39;)&#34;&gt;\r\n\t\t\t\t\t\t&lt;button id&#61;&#34;profile_{<!-- -->{profile.sys_id}}&#34; \r\n\t\t\t\t\t\t\t\tname&#61;&#34;profile_{<!-- -->{profile.sys_id}}&#34;\r\n\t\t\t\t\t\t\t\ttitle&#61;&#34;{<!-- -->{profile.tooltip}} - {<!-- -->{profile.display}}&#34;\r\n\t\t\t\t\t\t\t\taria-haspopup&#61;&#34;true&#34;\r\n\t\t\t\t\t\t\t\tclass&#61;&#34;btn btn-default btn-ref icon-info&#34;\r\n\t\t\t\t\t\t\t\tng-click&#61;&#34;showRefPopup($event, profile);&#34;\r\n\t\t\t\t\t\t\t\taria-label&#61;&#34;${gs.getMessage(&#39;Open searched record in current window - &#39;)} {<!-- -->{profile.display}}&#34;&gt;\r\n\t\t\t\t\t\t&lt;/button&gt;\r\n\t\t\t\t\t\t&lt;a class&#61;&#34;btn btn-default text-ellipsis deep-link&#34; \r\n\t\t\t\t\t\t ng-show&#61;&#34;profile.links $[AND] profile.links.length&#34; \r\n\t\t\t\t\t\t ng-repeat&#61;&#34;link in profile.links&#34;\r\n\t\t\t\t\t\t title&#61;&#34;{<!-- -->{sanitize(link.url)}}&#34; \r\n\t\t\t\t\t\t ng-click&#61;&#34;openLink(link)&#34; \r\n\t\t\t\t\t\t href&#61;&#34;&#34;&gt;\r\n\t\t\t\t\t\t\t{<!-- -->{sanitize(link.btnName)}}\r\n\t\t\t\t\t\t&lt;/a&gt;\r\n\t\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t&lt;/div&gt;\r\n\t\t\t&lt;/div&gt;\r\n\t\t\t&lt;!-- Employee Information Fields Section --&gt;\r\n\t\t\t&lt;div class&#61;&#34;row ev-section ng-cloak&#34; id&#61;&#34;section-ev_information&#34; ng-if&#61;&#34;!skippedVerification $[AND] profile.sys_id $[AND] (profile.task || profile.left_fields.length || profile.right_fields.length)&#34;&gt;\r\n\t\t\t\t&lt;h2 class&#61;&#34;col-xs-11 no-padding ev-section-header&#34;&gt;\r\n\t\t\t\t\t${gs.getMessage(&#34;Employee Information&#34;)}\r\n\t\t\t\t&lt;/h2&gt;\r\n\t\t\t\t&lt;div class&#61;&#34;col-xs-1 ev-section-collapse&#34;&gt;\r\n\t\t\t\t\t&lt;span style&#61;&#34;float:right;&#34;&gt;\r\n\t\t\t\t\t\t&lt;g:call function&#61;&#34;collapsing_image.xml&#34; id&#61;&#34;ev_information&#34;\r\n\t\t\t\t\t\t\t\tfirst_section_id&#61;&#34;ev_information&#34;\r\n\t\t\t\t\t\t\t\timage_alt&#61;&#34;${gs.getMessage(&#39;Collapse&#39;)}&#34;\r\n\t\t\t\t\t\t\t\tsection_title&#61;&#34;${gs.getMessage(&#39;Employee Information&#39;)}&#34;\r\n\t\t\t\t\t\t\t\t/&gt;\r\n\t\t\t\t\t&lt;/span&gt;\r\n\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t&lt;div class&#61;&#34;col-xs-12 form-horizontal no-padding section-content&#34; id&#61;&#34;ev_information&#34;&gt;\r\n\t\t\t\t\t&lt;div class&#61;&#34;vsplit col-xs-12 col-sm-6 ev-fields&#34;&gt;\r\n\t\t\t\t\t\t&lt;ev-field ng-if&#61;&#34;profile.task&#34; field&#61;&#34;profile.task&#34; disabled&#61;&#34;true&#34; &gt;&lt;/ev-field&gt;\r\n\t\t\t\t\t\t&lt;ev-field field&#61;&#34;field&#34; disabled&#61;&#34;true&#34; ng-repeat&#61;&#34;field in profile.left_fields&#34;/&gt;\r\n\t\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t\t&lt;div class&#61;&#34;vsplit col-xs-12 col-sm-6 ev-fields&#34;&gt;\r\n\t\t\t\t\t&lt;ev-field field&#61;&#34;field&#34; disabled&#61;&#34;true&#34; ng-repeat&#61;&#34;field in profile.right_fields&#34;/&gt;\r\n\r\n\t\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t&lt;/div&gt;\r\n\t\t\t&lt;/div&gt;\r\n\t\t\t&lt;!-- Task Creation Section --&gt;\r\n\t\t\t&lt;div class&#61;&#34;row ev-section ng-cloak&#34; id&#61;&#34;section-ev_case&#34; ng-class&#61;&#34;{&#39;sole-section&#39;: skippedVerification}&#34; style&#61;&#34;display:none&#34;&gt;\r\n\t\t\t\t&lt;h2 class&#61;&#34;col-xs-11 no-padding ev-section-header&#34;&gt;\r\n\t\t\t\t\t${gs.getMessage(&#34;Case Details&#34;)}\r\n\t\t\t\t&lt;/h2&gt;\r\n\t\t\t\t&lt;div class&#61;&#34;col-xs-1 ev-section-collapse&#34;&gt;\r\n\t\t\t\t\t&lt;span style&#61;&#34;float:right;&#34; ng-show&#61;&#34;!skippedVerification&#34;&gt;\r\n\t\t\t\t\t\t&lt;g:call function&#61;&#34;collapsing_image.xml&#34; id&#61;&#34;ev_case&#34;\r\n\t\t\t\t\t\t\t\tfirst_section_id&#61;&#34;ev_case&#34;\r\n\t\t\t\t\t\t\t\timage_alt&#61;&#34;${gs.getMessage(&#39;Collapse&#39;)}&#34;\r\n\t\t\t\t\t\t\t\tsection_title&#61;&#34;${gs.getMessage(&#39;Case Details&#39;)}&#34;\r\n\t\t\t\t\t\t\t\t/&gt;\r\n\t\t\t\t\t&lt;/span&gt;\r\n\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t&lt;div class&#61;&#34;col-xs-12 form-horizontal no-padding section-content&#34; id&#61;&#34;ev_case&#34;&gt;\r\n\t\t\t\t\t&lt;div ng-if&#61;&#34;isChildOfUR&#34; class&#61;&#34;fieldmsg-container col-xs-12 form-horizontal form-group&#34; aria-live&#61;&#34;polite&#34;&gt;\r\n\t\t\t\t\t\t&lt;div class&#61;&#34;fieldmsg notification notification-info&#34;&gt;${gs.getMessage(&#39;Enter additional details about the issue or request in Work notes of the HR Case to help the HR agent provide quick resolution.&#39;)}\r\n\t\t\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t\t&lt;div class&#61;&#34;vsplit col-xs-12 col-sm-6 ev-fields&#34;&gt;\r\n\t\t\t\t\t\t&lt;div class&#61;&#34;ev-field form-group&#34;&gt;\r\n\t\t\t\t\t\t\t&lt;label ng-class&#61;&#34;classes.label&#34; for&#61;&#34;coe_input&#34; id&#61;&#34;coe_input_label&#34;&gt;\r\n\t\t\t\t\t\t\t\t&lt;span title&#61;&#34;${coeHint}&#34;&gt;${coeLabel}&lt;/span&gt;\r\n\t\t\t\t\t\t\t&lt;/label&gt;\r\n\t\t\t\t\t\t\t&lt;div class&#61;&#34;ev-field-input-div&#34; ng-class&#61;&#34;classes.field&#34;&gt;\r\n\t\t\t\t\t\t\t\t&lt;input id&#61;&#34;coe_input&#34; class&#61;&#34;select2 form-control ev-field ev-field-reference&#34;/&gt;\r\n\t\t\t\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t\t&lt;div class&#61;&#34;vsplit col-xs-12 col-sm-6 ev-fields&#34;&gt;\r\n\t\t\t\t\t\t&lt;div class&#61;&#34;ev-field form-group&#34; ng-class&#61;&#34;missingService ? &#39;is-required&#39; : &#39;is-filled&#39;&#34;&gt;\r\n\t\t\t\t\t\t\t&lt;label ng-class&#61;&#34;classes.label&#34; for&#61;&#34;service_input&#34; id&#61;&#34;service_input_label&#34;&gt;\r\n\t\t\t\t\t\t\t\t&lt;span class&#61;&#34;required-marker&#34; mandatory&#61;&#34;true&#34; aria-label&#61;&#34;${gs.getMessage(&#39;Mandatory - must be populated before submit&#39;)}&#34; title&#61;&#34;${gs.getMessage(&#39;Mandatory - must be populated before submit&#39;)}&#34;&gt;&lt;/span&gt;\r\n\t\t\t\t\t\t\t\t&lt;span title&#61;&#34;${serviceHint}&#34;&gt;${serviceLabel}&lt;/span&gt;\r\n\t\t\t\t\t\t\t&lt;/label&gt;\r\n\t\t\t\t\t\t\t&lt;div class&#61;&#34;ev-field-input-div&#34; ng-class&#61;&#34;classes.field&#34;&gt;\r\n\t\t\t\t\t\t\t\t&lt;input id&#61;&#34;service_input&#34; class&#61;&#34;select2 form-control ev-field ev-field-reference&#34; aria-required&#61;&#34;{<!-- -->{missingService}}&#34;/&gt;\r\n\t\t\t\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t\t&lt;div class&#61;&#34;vsplit col-xs-12 col-sm-6 ev-fields&#34;&gt;\r\n\t\t\t\t\t\t&lt;ev-field field&#61;&#34;field&#34; ng-repeat&#61;&#34;field in taskFields.left_fields&#34; ng-if&#61;&#34;!field.hidden&#34;/&gt;\r\n\t\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t\t&lt;div class&#61;&#34;vsplit col-xs-12 col-sm-6 ev-fields&#34;&gt;\r\n\t\t\t\t\t\t&lt;ev-field field&#61;&#34;field&#34; ng-repeat&#61;&#34;field in taskFields.right_fields&#34; ng-if&#61;&#34;!field.hidden&#34;/&gt;\r\n\t\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t\t&lt;div class&#61;&#34;col-xs-12 ev-fields&#34;&gt;\r\n\t\t\t\t\t\t&lt;ev-field field&#61;&#34;field&#34; wide&#61;&#34;true&#34; ng-repeat&#61;&#34;field in taskFields.bottom_fields&#34; ng-if&#61;&#34;!field.hidden&#34;/&gt;\r\n\t\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t\t&lt;div class&#61;&#34;col-xs-12&#34; style&#61;&#34;margin-top:15px; padding-left:4px;&#34;&gt;\r\n\t\t\t\t\t\t&lt;button class&#61;&#34;btn btn-primary&#34; ng-click&#61;&#34;createCase()&#34; ng-disabled&#61;&#34;clearForm || creatingCase || fetchingFields&#34; aria-label&#61;&#34;${gs.getMessage(&#39;Create Case&#39;)}&#34; role&#61;&#34;button&#34;&gt;${gs.getMessage(&#39;Create Case&#39;)}&lt;/button&gt;\r\n\t\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t&lt;/div&gt;\r\n\t\t\t&lt;/div&gt;\r\n\t\t\t&lt;!-- Related List Section --&gt;\r\n\t\t\t&lt;div class&#61;&#34;row ev-section ng-cloak&#34; id&#61;&#34;section-related_lists&#34; ng-show&#61;&#34;profile.sys_id $[AND] relatedLists.length $[AND] activeListExists()&#34; ng-if&#61;&#34;profile&#34;&gt;\r\n\t\t\t\t&lt;h2 class&#61;&#34;col-xs-11 no-padding ev-section-header&#34;&gt;\r\n\t\t\t\t\t${gs.getMessage(&#34;Related Case Information&#34;)}\r\n\t\t\t\t&lt;/h2&gt;\r\n\t\t\t\t&lt;div class&#61;&#34;col-xs-1 ev-section-collapse&#34;&gt;\r\n\t\t\t\t\t&lt;span style&#61;&#34;float:right;&#34;&gt;\r\n\t\t\t\t\t\t&lt;g:call function&#61;&#34;collapsing_image.xml&#34; id&#61;&#34;related_lists&#34;\r\n\t\t\t\t\t\t\t\tfirst_section_id&#61;&#34;related_lists&#34;\r\n\t\t\t\t\t\t\t\timage_alt&#61;&#34;${gs.getMessage(&#39;Collapse&#39;)}&#34;\r\n\t\t\t\t\t\t\t\tsection_title&#61;&#34;${gs.getMessage(&#39;Related Case Information&#39;)}&#34;\r\n\t\t\t\t\t\t\t\t/&gt;\r\n\t\t\t\t\t&lt;/span&gt;\r\n\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t&lt;div class&#61;&#34;col-xs-12 no-padding section-content&#34; id&#61;&#34;related_lists&#34;&gt;\r\n\t\t\t\t\t&lt;div id&#61;&#34;tabs2&#34; class&#61;&#34;tabs2_strip tabs2_tab_header&#34; role&#61;&#34;tablist&#34; aria-label&#61;&#34;${gs.getMessage(&#39;Related Case Information&#39;)}&#34;&gt;\r\n\t\t\t\t\t\t&lt;span class&#61;&#34;tab_header&#34; ng-repeat&#61;&#34;list in relatedLists&#34; ng-click&#61;&#34;showList(list)&#34; ng-hide&#61;&#34;list.hide&#34; role&#61;&#34;tab&#34;&gt;\r\n\t\t\t\t\t\t\t&lt;span class&#61;&#34;tabs2_tab&#34; ng-class&#61;&#34;{&#39;tabs2_active&#39;: list.active}&#34;&gt;\r\n\t\t\t\t\t\t\t\t&lt;span class&#61;&#34;tab_caption_text&#34;&gt;\r\n\t\t\t\t\t\t\t\t\t{<!-- -->{list.properties.displayLabel}}\r\n\t\t\t\t\t\t\t\t&lt;/span&gt;\r\n\t\t\t\t\t\t\t&lt;/span&gt;\r\n\t\t\t\t\t\t&lt;/span&gt;\r\n\t\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t\t&lt;div class&#61;&#34;tab-pane&#34; ng-repeat&#61;&#34;list in relatedLists&#34;&gt;\r\n\t\t\t\t\t\t&lt;div role&#61;&#34;tabpanel&#34; class&#61;&#34;tab-pane&#34; aria-label&#61;&#34;{<!-- -->{list.properties.displayLabel}}&#34; ng-show&#61;&#34;isListActive(list)&#34;&gt;\r\n\t\t\t\t\t\t\t&lt;sn-list table&#61;&#34;list.table&#34;\r\n\t\t\t\t\t\t\t\t view&#61;&#34;list.view&#34;\r\n\t\t\t\t\t\t\t\t parameters&#61;&#34;list.parameters&#34;\r\n\t\t\t\t\t\t\t\t properties&#61;&#34;list.properties&#34;\r\n\t\t\t\t\t\t\t\t include&#61;&#34;list.include&#34;\r\n\t\t\t\t\t\t\t/&gt;\r\n\t\t\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t\t&lt;/div&gt;\r\n\t\t\t\t&lt;/div&gt;\r\n\t\t\t&lt;/div&gt;\r\n\t\t&lt;/div&gt;\r\n\t&lt;/div&gt;\r\n&lt;/j:jelly&gt;]]&gt;&lt;/html&gt;\r\n &lt;name&gt;case_creation&lt;/name&gt;\r\n &lt;processing_script/&gt;\r\n &lt;sys_class_name&gt;sys_ui_page&lt;/sys_class_name&gt;\r\n &lt;sys_created_by&gt;admin&lt;/sys_created_by&gt;\r\n &lt;sys_created_on&gt;2017-06-13 18:18:01&lt;/sys_created_on&gt;\r\n &lt;sys_id&gt;3433fb86eb533200a9e7e26ac106fef2&lt;/sys_id&gt;\r\n &lt;sys_mod_count&gt;511&lt;/sys_mod_count&gt;\r\n &lt;sys_name&gt;case_creation&lt;/sys_name&gt;\r\n &lt;sys_package display_value&#61;&#34;Human Resources: Core&#34; source&#61;&#34;sn_hr_core&#34;&gt;d4ac3fff5b311200a4656ede91f91af2&lt;/sys_package&gt;\r\n &lt;sys_policy&gt;read&lt;/sys_policy&gt;\r\n &lt;sys_scope display_value&#61;&#34;Human Resources: Core&#34;&gt;d4ac3fff5b311200a4656ede91f91af2&lt;/sys_scope&gt;\r\n &lt;sys_update_name&gt;sys_ui_page_3433fb86eb533200a9e7e26ac106fef2&lt;/sys_update_name&gt;\r\n &lt;sys_updated_by&gt;admin&lt;/sys_updated_by&gt;\r\n &lt;sys_updated_on&gt;2026-04-12 11:13:00&lt;/sys_updated_on&gt;\r\n &lt;/sys_ui_page&gt;\r\n &lt;sys_es_latest_script action&#61;&#34;INSERT_OR_UPDATE&#34;&gt;\r\n &lt;id&gt;3433fb86eb533200a9e7e26ac106fef2&lt;/id&gt;\r\n &lt;sys_created_by&gt;admin&lt;/sys_created_by&gt;\r\n &lt;sys_created_on&gt;2024-12-30 07:55:27&lt;/sys_created_on&gt;\r\n &lt;sys_id&gt;221c6bdd9ff6521078035b091b0a1c87&lt;/sys_id&gt;\r\n &lt;sys_mod_count&gt;0&lt;/sys_mod_count&gt;\r\n &lt;sys_updated_by&gt;admin&lt;/sys_updated_by&gt;\r\n &lt;sys_updated_on&gt;2024-12-30 07:55:27&lt;/sys_updated_on&gt;\r\n &lt;table&gt;sys_ui_page&lt;/table&gt;\r\n &lt;use_es_latest&gt;false&lt;/use_es_latest&gt;\r\n &lt;/sys_es_latest_script&gt;\r\n&lt;/record_update&gt;</code></pre>\r\n<p> </p>\r\n<p> </p></div><div><br /><strong>Related Problem: PRB2007826</strong></div></div>"}</script>
  Loading...
Skip to page contentSkip to chat
Skip to page contentSkip to chat