Name

sn_slack_ah.SlackUtils

Description

No description available

Script

var SlackUtils = Class.create();
SlackUtils.prototype = {
  initialize: function() {
  },
  
  htmlEscape : function(str) {
  	return str
  	.replace(/&/g, '&')
  	.replace(/</g, '&lt;')
  	.replace(/>/g, '&gt;');
  },
  
  createPayload : function(inputs, defaultFields) {
  		var payload = {};
  		payload.text = this.htmlEscape(inputs.message);
  		
  		if (!gs.nil(inputs.channel.trim()))
  			payload.channel = inputs.channel.trim();
  		
  		if (!gs.nil(inputs.icon.trim()))
  			payload.icon_emoji = inputs.icon.trim();
  		
  		if(!gs.nil(inputs.username.trim()))
  			payload.username = inputs.username.trim();
  		
  		payload.attachments = [];
  		
  		var fields = [];
  		var fieldsToSend = defaultFields.split(',');
  		var _this = this;
  		
  		fieldsToSend.forEach(function (fieldName) {
  			fieldName = fieldName.trim();
  			var fieldValue = inputs.record.getDisplayValue(fieldName) || '';
  			var isShort = (fieldValue.length > 30 || fieldName == 'short_description') ? false : true;
  			
  			if (!gs.nil(fieldValue)){
  				fieldValue = _this.htmlEscape(fieldValue);
  				fields.push({
  					title:inputs.record[fieldName].getLabel(),
  					value:fieldValue,
  					short:isShort
  				});
  			}
  		});
  		
  		var incidentNumber = inputs.record.getDisplayValue('number');
  		var recordLink = inputs.record.getLink();
  		var incidentLink = gs.getProperty('glide.servlet.uri') + recordLink;
  		var incidentUrl = '<' + incidentLink + '|' + incidentNumber + '>';
  		
  		payload.attachments.push({
  			text: incidentUrl,
  			fallback: inputs.message,
  			fields: fields
  		});
  		
  		return payload;
  	},
  	
  	type: 'SlackUtils'
  };

Sys ID

4743ae0b3ba0030057a4a2e334efc4ea

Offical Documentation

Official Docs: