- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-19-2023 06:01 AM - edited 09-19-2023 06:09 AM
Hi Everyone,
I am building a Dynamic Content Block that retrieves a unique array of short descriptions from a list of records, and then adds those as options for a "ui_choice_input_field" UI Macro.
This works, however there is a long line of script displayed before the actual element and I don't understand where it's coming from.
I attached a screenshot of the issue.
This is my code:
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<g:evaluate>
var options = [];
<!-- Get all the demand tasks assigned to this group -->
var dmnTaskGR = new GlideRecordSecure("dmn_demand_task");
dmnTaskGR.addQuery("assignment_group","cc4909c41b92edd019f6740f8b4bcbd1");
dmnTaskGR.query();
<!-- Get a unique list of short descriptions from these demand tasks -->
while(dmnTaskGR.next()) {
var shortDesc = dmnTaskGR.getValue("short_description");
if(!(options.indexOf(shortDesc) >= 0)) {
options.push(shortDesc);
}
}
</g:evaluate>
<g:ui_choice_input_field id="shortDescInput" name="shortDescInput" label="Short description:">
<option value="none">--None--</option>
<!-- Create an option value for each unique short description value -->
<j:forEach var="jvar_options" items="${options}">
<option value="optVal">${jvar_options}</option>
</j:forEach>
</g:ui_choice_input_field>
</j:jelly>
This is the code that the dynamic content block displays:
var accessibleTooltips = (gs.getPreference('glide.ui.accessibility.accessible.tooltips', 'true') == 'true');
accessibleTooltips;
var accessibleDateFormat = (gs.getPreference('glide.ui.accessibility.accessible.dateFormat', 'false') == 'true');
accessibleDateFormat;
var labelTitle = jelly.jvar_element_hint;
var buttonStyle = "display: none;";
if (labelTitle) {
if (labelTitle.length > 0) {
buttonStyle="";
}
}
buttonStyle;
var labelTitle = jelly.jvar_element_hint;
var ariaHidden = "true";
if (labelTitle) {
if (labelTitle.length > 0) {
ariaHidden="false";
}
}
ariaHidden;
if (typeof(__ref__) == 'undefined') {
var __ref__ = null;
var __ref_string__ = '';
}
Thanks in advance
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-19-2023 06:42 AM
Hi @SyncWizard ,
Try this code.
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<g:evaluate>
var options = [];
<!-- Get all the demand tasks assigned to this group -->
var dmnTaskGR = new GlideRecordSecure("dmn_demand_task");
dmnTaskGR.addQuery("assignment_group","cc4909c41b92edd019f6740f8b4bcbd1");
dmnTaskGR.query();
<!-- Get a unique list of short descriptions from these demand tasks -->
while(dmnTaskGR.next()) {
var shortDesc = dmnTaskGR.getValue("short_description");
if(!(options.indexOf(shortDesc) >= 0)) {
options.push(shortDesc);
}
}
</g:evaluate>
<select aria-required="false" aria-labelledby="Short description:" name="shortDescInput" id="shortDescInput" style="; " class="form-control">
<option value="none">--None--</option>
<!-- Create an option value for each unique short description value -->
<j:forEach var="jvar_options" items="${options}">
<option value="optVal">${jvar_options}</option>
</j:forEach>
</select>
</j:jelly>
Please mark my answer helpful/accept as solution if it helped you 👍✔️
Anvesh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-19-2023 06:42 AM
Hi @SyncWizard ,
Try this code.
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<g:evaluate>
var options = [];
<!-- Get all the demand tasks assigned to this group -->
var dmnTaskGR = new GlideRecordSecure("dmn_demand_task");
dmnTaskGR.addQuery("assignment_group","cc4909c41b92edd019f6740f8b4bcbd1");
dmnTaskGR.query();
<!-- Get a unique list of short descriptions from these demand tasks -->
while(dmnTaskGR.next()) {
var shortDesc = dmnTaskGR.getValue("short_description");
if(!(options.indexOf(shortDesc) >= 0)) {
options.push(shortDesc);
}
}
</g:evaluate>
<select aria-required="false" aria-labelledby="Short description:" name="shortDescInput" id="shortDescInput" style="; " class="form-control">
<option value="none">--None--</option>
<!-- Create an option value for each unique short description value -->
<j:forEach var="jvar_options" items="${options}">
<option value="optVal">${jvar_options}</option>
</j:forEach>
</select>
</j:jelly>
Please mark my answer helpful/accept as solution if it helped you 👍✔️
Anvesh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-19-2023 01:02 PM
Hi @AnveshKumar M ,
Can you please pinpoint what exactly is causing this issue when using the OOB "ui_choice_input_field" UI Macro?
I am very curious of the actual reason causing this issue.
This is the code of the OOB Macro:
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="true" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null">
<g:macro name="REQUIRED" label="REQUIRED" value="" onchange="onChange('${jvar_name}');" onclick_label="" mandatory="false"/>
<table class="wide">
<tr>
<td id="label.${jvar_name}" class="label" nowrap="true" type="string" choice="0" oncontextmenu="${jvar_oncontextmenu}">
<g:form_label onclick="${jvar_onclick_label}" for="${jvar_name}"> ${jvar_label}<j2:if test="$[GlideMobileExtensions.getDeviceType() != 'doctype']">:</j2:if></g:form_label>
</td>
<td nowrap="true" style="width:100%">
<select name="${jvar_name}" id="${jvar_name}" onChange="${jvar_onchange}">
<!-- xml for element type inserted here... -->
<g:insert/>
</select>
</td>
</tr>
</table>
</j:jelly>
Thanks in advance!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-19-2023 08:15 PM - edited 09-19-2023 08:56 PM
Hi @SyncWizard
ui_choice_input_field contains both Phase1 and Phase 2 jelly tags (g and j are phase 1 tags & g2 and j2 are Phase2 tags), to make it work in content blocks you need to check the Two Phase field as shown in below screenshot.
Please mark my answer helpful/accept as solution if it helped you 👍✔️
Anvesh