
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-07-2016 03:25 PM
Needing help developing a UI page dialog box to re-assign a ticket based upon a ui action button. Where I'm stuck is getting the UI Reference field for the assigned to field to be dependent on the assignment group.
<g:ui_form>
<!-- Get the values from dialog preferences -->
<g:evaluate var="jvar_short_text"
expression="RP.getWindowProperties().get('short_text')" />
<g:evaluate var="jvar_comments_text"
expression="RP.getWindowProperties().get('assigned_to_text')" />
<g:evaluate var="jvar_assignment_group"
expression="RP.getWindowProperties().get('assignment_group')" />
<!-- Set up form fields and labels -->
<table width="100%">
<tr id="description_row" valign="top">
<td colspan="2">
<!-- Short description value used as a label -->
${jvar_short_text}
</td>
</tr>
<tr>
<td>
<!-- Assigned to input reference field -->
<g:ui_reference name="assigned_to" id="assigned_to" table="sys_user" query="group=${jvar_assignment_group}" label="Assign to Problem Manager:"
mandatory="true" />
</td>
</tr>
<tr>
<td colspan="2">
</td>
</tr>
<tr id="dialog_buttons">
<td colspan="2" align="right">
<!-- Add OK/Cancel buttons. Clicking OK calls the validateComments script -->
<g:dialog_buttons_ok_cancel ok="return validateInput()" ok_type="button" cancel_type="button" />
</td>
</tr>
</table>
</g:ui_form>
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-07-2016 04:40 PM
Here's the conceptual code (totally untested)
<g:evaluate var="jvar_users">
var ug = new GlideRecord('sys_user_grmember');
ug.addQuery('group', "${jvar_assignment_group}"); // use your jelly variable here for the group to filter
ug.query();
var list = []; // create an array of user IDs
while (ug.next()) {
list.push(ug.getValue('user')); // add record's user to list as a member of that group
}
var users = list.join(','); // create comma separated values
users; // save it to jvar_users
</g:evaluate>
Now you can use jvar_users as your reference qualifier in the g:ui_reference tag.
query="sys_idIN${jvar_users}"
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-04-2016 09:10 AM
hey Alex -
I have a UI Action - that displays GlideDialogWindow and takes values from assignment group and assigned_to from the incident form.
GDW displays Assigned_to and Assignment_group that can be modified as below and should be submitted to the form -
o I want the assignment group to be displayed in the GlideDialogWindow with a value from form and modified with any other value.
o I want the assigned_to to be displayed in the GlideDialogWindow and modified with any other value.
I want the value of the group to depend on the user and vice versa.
I was able to achieve dependency of the user to group present on the form but not user to group present on the GDW's modified value.
I want the reference qualifier to be set on both these fields to achieve mutual dependency.
_______________UI ACTION___________________
function invokeReturnToSubmitter(){
var objassignedto_grp = g_form.getReference('assignment_group',assignGrpInfo);
var assigned_to_user = '';
var reason_return = '';
//Async Call Back function for getReference.
function assignGrpInfo(objassignedto_grp){
var assignedto_grp = objassignedto_grp.name;
var assignedto_grp_sysID = objassignedto_grp.sys_id;
var gdw = new GlideDialogWindow('Return_to_Submitter');
gdw.setTitle('Return To Submitter');
gdw.setPreference("assignedto_grp", assignedto_grp);
gdw.setPreference("assignedto_grp_sysID",assignedto_grp_sysID);
gdw.setPreference("assigned_to_user", assigned_to_user);
gdw.setPreference("reason_return",reason_return);
gdw.render();
//gsftSubmit(null, g_form.getFormElement(), 'return.submitter'); //MUST call the 'Action name' set in this UI Action
}
}
_____________________UI PAGE__________________________
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<!-- Get values from dialog passed in -->
<g:evaluate var="jvar_assignedto_grp"
expression="RP.getWindowProperties().get('assignedto_grp')" />
<g:evaluate var="jvar_assignedto_grp_sysID"
expression="RP.getWindowProperties().get('assignedto_grp_sysID')" />
<g:evaluate var="jvar_reason_return"
expression="RP.getWindowProperties().get('reason_return')" />
<!-- <g:evaluate var="jvar_assigned_to_user"
expression="RP.getWindowProperties().get('assigned_to_user')" /> -->
<g:evaluate var="jvar_assigned_to_user">
var grpUsers = new GlideRecord('sys_user_grmember');
grpUsers.addQuery('group','${jvar_assignedto_grp_sysID}');
grpUsers.query();
var list = []; //Array to carry users from above query
while(grpUsers.next())
{
list.push(grpUsers.getValue('user')); // Add record's user to list as a member of that group
}
var assigned_to_user = list.join(','); // Create comma separated values
assigned_to_user; // Save it to jvar_assigned_to_user
</g:evaluate>
<table width ="100%">
<!-- First row in window for Assignment Group -->
<tr id="assignment_grp_row" valign="top">
<td>
Assignment Group :
</td>
<td>
<g:ui_reference name="assignment_group" id="assignment_group" table="sys_user_group" query="active=true^u_assignment=true" mandatory="true" value="${jvar_assignedto_grp_sysID}" displayvalue="${jvar_assignedto_grp}"/>
</td>
</tr>
<!-- Second row in window for Assigned To -->
<tr>
<td>
Assigned To :
</td>
<td>
<!-- <g:ui_reference name="assigned_to" id="assigned_to" table="sys_user" query="active=true" mandatory="true" value="$[grp.user]" /> -->
<!-- <g:ui_reference name="assigned_to" id="assigned_to" table="sys_user" query="active=true" mandatory="true" value="${jvar_assigned_to_user}" /> -->
<!-- <g:ui_reference name="assigned_to" id="assigned_to" table="sys_user_grmember" /> -->
<g:ui_reference name="assigned_to" id="assigned_to" table="sys_user" query="sys_idIN${jvar_assigned_to_user}" />
</td>
</tr>
</table>
<!-- Third row in window for Reason to Resubmit -->
<table width ="100%">
<tr>
<td>
<g:ui_multiline_input_field name="reason_return" id="reason_return" label="Reason for Returning" value="${jvar_reason_return}" mandatory="true" />
</td>
</tr>
<tr id="dialog_buttons">
<td colspan="2" align="right">
<!-- Pull in 'dialog_buttons_ok_cancel' UI Macro for submit/cancel buttons.'ok' option will call the 'validateComments' Client script function from the UI Page -->
<g:dialog_buttons_ok_cancel ok="return validateReason()" ok_type="button" cancel_type="button" />
</td>
</tr>
</table>
</j:jelly>