Skip to main content

UI Macro and Widget for service catalog: load external url using both UI macro and widget

(much neater ways of doing this with generic UI macro/widget but this was pulled together at very short notice)
UI MESSAGE:
store the url, remember to prefix with https:// !!
ritm.hardwarereq.url

UI MACRO:

<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<a href='' onclick='ext_loadURL()'>Click here</a>

<script>
function ext_loadURL(){
var ext_url=getMessage('ritm.hardwarereq.url');
 
window.open(ext_url, "_blank");
//or in popup: window.open(ext_url, "s", "resizable=yes, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, copyhistory=no").blur();
      
}
</script>
</j:jelly>

SERVICE PORTAL WIDGET:

HTML:
<div>
<!-- your widget template -->
  <a href='' ng-click='load_ext_url()'>Click here</a>
  
</div>

Client Script:
function($scope, i18n, $window) {
  /* widget controller */
  var c = this;


$scope.load_ext_url = function() {
   //console.log("message", 'run the op');
  //var ext_url=i18n.getMessage('ritm.hardwarereq.url');
  // alert('URL: ' + r.data.exturl);
   
c.server.get().then(function(r){
             
            var ext_url=r.data.exturl;
alert(ext_url);
            window.open(ext_url);   
        });              
  };
}
Server Script:
(function() {
  /* populate the 'data' object */
  /* e.g., data.table = $sp.getValue('table'); */
  data.exturl=gs.getMessage('ritm.hardwarereq.url');
//gs.addInfoMessage(data.exturl)
})();

SERVICE CATALOG VARIABLE:

Comments

Popular posts from this blog

Get URL Parameter - server side script (portal or classic UI)

Classic UI : var sURL_editparam = gs . action . getGlideURI (). getMap (). get ( ' sysparm_aparameter ' ); if ( sURL_editparam == 'true' ) { gs . addInfoMessage ( 'parameter passed ); } Portal : var sURL_editparam = $sp . getParameter ( " sysparm_aparameter " ); if ( sURL_editparam == 'true' ) { gs . addInfoMessage ( 'parameter passed ); }

ServiceNow - script include: build up the results as a JSON object (array) - example 2

function call var sCurrentGroupMembers = new <script_include> (). getGroupMembers ( group_sysid ); gs . print ( 'sCurrentGroupMembers:' + sCurrentGroupMembers ); var oGroupMembers = JSON . parse ( sCurrentGroupMembers ); gs . print ( JSON . stringify ( oGroupMembers . users )); oNewGroupMember = JSON . parse ( group_members ); var oGroupConfig = getGroupDeltas ( oGroupMembers . users , oNewGroupMember ); gs . print ( JSON . stringify ( oGroupConfig . remove )); gs . print ( JSON . stringify ( oGroupConfig . add )) output : *** Script: sCurrentGroupMembers: {"manager":"3b2649efdb0f8c10cc0652f3f39xxxxx", "email":"", "type":"33a2226edb99c340edfc7cbdae96xxxx", "description":"Created for xyz", "users":[{"user":"3b2649efdb0f8c10cc0652f3f396xxxx"},{"user":"856a8f71db3d73041b4ffc45ae96196a"},{"user":"3752771