UI page on Agent workspace
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-13-2022 10:49 AM
Hi can someone please help me on how can i show the ui page functionality on the agent workspace on click of the UI action. Currently its working on Native UI to mark attachments as internal(u_internal on sys_attachment table) and vice versa. Same functionality i need on the workspace.
UI Page:
HTML
<?xml version="1.0" encoding="UTF-8"?>
<j:jelly trim="false" xmlns:g="glide" xmlns:g2="null" xmlns:j="jelly:core"
xmlns:j2="null">
<j:set var="jvar_target_sys_id" value="${JS:RP.getWindowProperties().get('target_sys_id')}" />
<j:set var="jvar_target_table" value="${JS:RP.getWindowProperties().get('target_table')}" />
<j:set var="jvar_attachment_disabled" value="${RP.getWindowProperties().get('attachment_disabled')}" />
<j:set var="jvar_sc_override" value="${RP.getWindowProperties().get('sc_override')}" />
<j:set var="jvar_show_link" value="true" />
<j:if test="${gs.getProperty('glide.ui.disable_attachment_view') == 'true'}">
<j:set var="jvar_show_link" value="false" />
</j:if>
<input type="hidden" id="ni.show_attachment_view" name="ni.show_attachment_view"
value="${jvar_show_link}" />
<j:set var="jvar_show_link_popup" value="true" />
<j:if test="${gs.getProperty('glide.ui.attachment_popup')=='false'}">
<j:set var="jvar_show_link_popup" value="false" />
</j:if>
<style>
tr {
height: 30px;
}
</style>
<span style="font-size:14px;">Use the internal link to restrict a file visibility only to agents.</span>
<input type="hidden" id="ni.show_attachment_popup" name="ni.show_attachment_popup"
value="${jvar_show_link_popup}" />
<table width="100%" style="table-layout:fixed;">
<tbody>
<tr>
<td>
<input name="sysparm_nostack" type="hidden" value="yes" />
<input name="sysparm_this_url" id="sysparm_this_url" type="hidden"
value="" />
<table width="100%" style="table-layout:fixed;">
<TR >
<TD style="white-space:nowrap;">
<div id="current_attachments" style="display:block">
<div style="margin-top:4px;">
<div id="attachment_dialog_list">
<table width="100%" style="table-layout:fixed;">
<tbody id="attachment_table_body">
<g2:attachment_list_by_availability sys_id="${jvar_target_sys_id}"
table="${jvar_target_table}" available="true">
<g2:for_each_record file_variable="sys_attachment"
var="attachment">
<TR>
<TD colspan="2" style="white-space:nowrap;">
<input name="Name" type="hidden" value="false" />
<input type="hidden" id="$[sys_attachment.sys_id]" class="attachment_sys_id" />
<g2:attachment_entry_custom />
</TD>
</TR>
</g2:for_each_record>
</g2:attachment_list_by_availability>
</tbody>
</table>
</div>
</div>
</div>
</TD>
</TR>
</table>
</td>
</tr>
</tbody>
</table>
</j:jelly>
Client Script:
function markInternal(attachId) {
gel('progressicon_'+attachId).style.display='inline';
var gInternal = new GlideAjax('InternalAttachments');
gInternal.addParam('sysparm_name', 'markInternal');
gInternal.addParam('sysparm_attachId', attachId);
gInternal.getXMLAnswer(showInternalIcon);
}
/**
* This showcase internal flag icon and remove internal link.
* This also hides the internl button/link.
* @param value
*/
function showInternalIcon(response) {
var iconSpan = 'internalFlag_' + response;
var internalLink = 'internal_view_' + response;
var removeInternalLink ='removeInternal_view_'+response;
var iconClass = document.getElementsByClassName(iconSpan);
for (i = 0; i < iconClass.length; i++) {
iconClass[i].style.display = "inline";
}
var removeInternalClass = document.getElementsByClassName(removeInternalLink);
for (y = 0; y < removeInternalClass.length; y++) {
removeInternalClass[y].style.display = "inline";
}
var internalClass = document.getElementsByClassName(internalLink);
for (n = 0; n < internalClass.length; n++) {
internalClass[n].style.display = "none";
}
gel('progressicon_'+response).style.display='none';
}
function removeInternal(attachId) {
gel('progressicon_'+attachId).style.display='inline';
var gInternal = new GlideAjax('InternalAttachments');
gInternal.addParam('sysparm_name', 'removeInternal');
gInternal.addParam('sysparm_attachId', attachId);
gInternal.getXMLAnswer(hideInternalIcon);
}
/**
* This showcase internal flag icon and remove internal link.
* This also hides the internl button/link.
* @param value
*/
function hideInternalIcon(response) {
var iconSpan = 'internalFlag_' + response;
var internalLink = 'internal_view_' + response;
var removeInternalLink ='removeInternal_view_'+response;
var iconClass = document.getElementsByClassName(iconSpan);
for (i = 0; i < iconClass.length; i++) {
iconClass[i].style.display = "none";
}
var removeInternalClass = document.getElementsByClassName(removeInternalLink);
for (y = 0; y < removeInternalClass.length; y++) {
removeInternalClass[y].style.display = "none";
}
var internalClass = document.getElementsByClassName(internalLink);
for (n = 0; n < internalClass.length; n++) {
internalClass[n].style.display = "inline";
}
gel('progressicon_'+response).style.display='none';
}
Workspace UI action:
- Labels:
-
Agent Workspace

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-31-2024 02:25 AM
Did you find any solution?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-21-2023 07:46 AM
Hi, I am facing similar issue if you know the solution
please give me solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-11-2024 01:22 AM
Did you find any solution? facing same issue with passing parameters to UI page.