Skip to main content

ServiceNow - Embedded widget on catalog item - how to pass a variable from the cat item form

ServiceNow - Embedded widget on catalog item - how to pass a variable from the cat item form 

Client controller:

api.controller = function($scope) {
    /* widget controller */
    var c = this;


    $scope.$watch(function() {
        if ($scope.page.g_form) {
            return $scope.page.g_form.getValue('service_offering');
        }

    }, function(value, oldValue) {

        //validate that value is not the same as oldValue (loading)
        if (value != oldValue) {
            //execute on change of the variable
            c.data.message = value;
            c.server.update();
            //  alert(value);
        }

    });




    c.display = function(a) {
        //alert(a);
        $scope.page.g_form.setDisplay('parent_incident', true);
        $scope.page.g_form.setValue('parent_incident', a.toString());
        $scope.page.g_form.setDisplay('parent_incident', false);
        //g_form.setDisplay('parent_incident',false);
    };

};

 

Server script:

 (function() {
    /* populate the 'data' object */
    /* e.g., data.table = $sp.getValue('table'); */
    if (input) {
        //gs.addErrorMessage('gr.number.toString()');
        var items = [];
        var idx = 0;
        //  var item = {};
        session.onlineImpersonate("system");
        var itemsGR = new GlideRecord("incident");
        itemsGR.addQuery("service_offering", input.message);
        itemsGR.addEncodedQuery('active=true^major_incident_state=accepted');
        itemsGR.queryNoDomain(); //--to avoid any cross-domain issues
        while (itemsGR.next()) {
            var item = {};
            item.short_description = itemsGR.short_description.toString();
            item.num = itemsGR.number.toString();
            //item.business_impact = itemsGR.business_impact;
            item.sysId = itemsGR.sys_id.toString();
            // item.shorty =gr12.short_description.toString();
            items[idx] = item;
            //gs.addErrorMessage('gr.number.toString()'+ items[idx].toString());
            idx++;
        }

        data.items = items;
        session.onlineUnimpersonate();
    }

})();

 

HTML:

<div ng-show="data.items">
  <div ng-hide="data.items==''">
  <h5 class = "mi" id='infomsg1'> Are you impacted by any of below Incident?</h5>
  </div>
</div>
  <div ng-repeat="item in data.items"  ng-controller="RadioController">
 
         <input type="radio" name="incidents"   id="{{item.sysId}}"     ng-click="c.display(item.sysId)"/> {{::item.num}} - {{::item.short_description}}

</div>
   

CSS:

.mi {color: red;
  font-size: 15px;
  font-weight: bold;
}
 

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 check for null or nil or empty (or not)

Haven't tested these all recently within global/local scopes, so feel free to have a play! option 1 use an encoded query embedded in the GlideRecord , e.g.  var grProf = new GlideRecord ( 'x_cls_clear_skye_i_profile' ); grProf . addQuery ( 'status=1^ owner=NULL ' ); grProf . query (); even better use the glideRecord  addNotNullQuery or addNullQuery option 2 JSUtil.nil / notNil (this might be the most powerful. See this link ) example: if ( current . operation () == 'insert' && JSUtil . notNil ( current . parent ) && ! current . work_effort . nil ())  option 3 there might be times when you need to get inside the GlideRecord and perform the check there, for example if the code goes down 2 optional routes depending on null / not null can use gs.nil : var grAppr = new GlideRecord ( 'sysapproval_approver' ); var grUser = new GlideRecord ( 'sys_user' ); if ( grUser . get ( 'sys_id' , current . approver )){