Show Catalog Tasks Widget

Service Portal Widget to display Catalog Tasks for RITM.
Can add to Standard Ticket Config Page for Requested Item.

(code works but could use some cleanup before using)

HTML

  <div ng-if="data.canRead && data.isRITM && data.validStage" >
    



<div class="tab-content">
 
  <div id="home" class="tab-pane fade in active">

 
    <div ng-if="data.canRead && data.isRITM && data.validStage" class="panel b">
  

  <div class="panel-body">
    
      <div class="row">
        
        <table style="table-layout: fixed; width: 100%" class="table">
             <thead>
              <tr>
                <th ng-if="data.hasTasks2">${Task Number}</th>
                <th ng-if="data.hasTasks2">${Task Short Description}</th>
                <th ng-if="data.hasTasks2">${State}</th>
                 <th ng-if="data.hasTasks2">${Assignment Group}</th>
                <th ng-if="data.hasTasks2">${Agent working on the task}</th>    
                 <th ng-if="data.hasTasks2">${Agent's Phone Number}</th>  
                 <th ng-if="data.noTasks2">Tasks will be created when request is approved. Please check back soon.</th>  
            
              </tr>
    		</thead>
             <tbody>          
              <tr ng-repeat="task in data.tasks2">
                <td>{{task.number}}</td>
                <td>{{task.short_description}}</td>
                <td>{{task.state}}</td>
                <td>{{task.assignment_group}}</td>
                <td>{{task.assigned_to}}</td>
                <td>{{task.phone}}</td>
  
              </tr>
             </tbody> 
          
		</table>
        
        

        </div>
      </div>
 
</div>
    
    
    
    

  </div>
  
</div>
    
    </div>

Client Script

function() {  /* widget controller */  var c = this;}

Server Script

(function() {
  /* populate the 'data' object */
  /* e.g., data.table = $sp.getValue('table'); */
	
	var gr = $sp.getRecord();
	data.canRead = gr.canRead();
	
	data.isRITM = gr.getTableName() == 'sc_req_item' ;
	data.stage = gr.stage.toString();

		data.validStage = true;
	 data.hasTasks = true;
	data.hasTasks2 = true;
	
	if (!data.canRead) 
		return;



	
	//Tasks
	
	
		var tsk2 = new GlideRecord('sc_task');
	tsk2.addQuery('request_item', gr.getUniqueValue());
	//tsk.addActiveQuery();
	tsk2.query();
	
	data.tasks2 = [];
	while(tsk2.next()){
		var temp2 = {};
		temp2.number = tsk2.number.toString();
		temp2.short_description = tsk2.short_description.toString();
		temp2.assigned_to = tsk2.assigned_to.getDisplayValue();
		temp2.phone = tsk2.assigned_to.phone.getDisplayValue();
		temp2.state = tsk2.state.getDisplayValue();
		temp2.assignment_group = tsk2.assignment_group.getDisplayValue();
			temp2.sys_id = tsk2.sys_id.toString();
		data.tasks2.push(temp2);
	}
	
	 if (data.tasks2 <1){
		  data.hasTasks2 = false;
	data.noTasks2 = true;
	 }

	
	
})();

Leave a comment

Latest Posts