"Options" Part along with variables in Ticket Fields widget is not visible to End User

Sohithanjan G
Kilo Sage
Kilo Sage

Hi,

"Options" Part along with variables in Ticket Fields widget is not visible to End User, but its visible for admin users. Ticket Fields widget has both snc_external & snc_internal roles. Please help me with any suggestions.

find_real_file.png

Please mark as Accepted Solution if this solves your query and HIT Helpful if you find my answer helped you. This will help other community mates too..:)
1 ACCEPTED SOLUTION

Can you update the variable summarizer to the below and try again:

HTML

<div ng-if="c.data.variables.length > 0" ng-init="c.variable_toggle = c.toggle">
  <button class="btn variables-toggle-btn" aria-expanded="{{c.variable_toggle}}" aria-label="{{data.ariaLabel}}" ng-click="c.variable_toggle = !c.variable_toggle" ng-if="!c.hide_control">
    <span style="font-size: 12px;" class="glyphicon" ng-class="c.variable_toggle ? 'glyphicon-chevron-down' : 'glyphicon-chevron-up'"></span>
    {{data.label}}
  </button>

  <div ng-if="c.variable_toggle" id="variables-toggle" aria-hidden="{{!c.variable_toggle}}">
    <hr role="presentation" ng-if="!c.hide_control">
    <div class="m-b break-word" ng-repeat="variable in c.data.variables">
      <label class="m-t-xs m-b-none text-muted"><b>{{::variable.label}}</b></label>
      <div ng-if="!variable.multi_row">
        <div ng-switch="variable.type">
          <!-- 27 is type URL, 33 is type Attachment -->
          <a ng-switch-when="27" class="pre-wrap" title="{{::variable.label}}" href="{{::variable.display_value}}" target="_blank">{{::variable.display_value}}</a>
          <span ng-switch-when="33" class="file-attachment">
          	<a ng-if="::variable.state != 'not_available'" class="pre-wrap" title="{{::variable.label}}" href="javascript:void(0);" ng-click="scanAttachment(variable)" aria-label="${Download {{variable.display_value}}}">{{::variable.display_value}}</a>
            <span ng-if="::variable.state == 'not_available'" class="error">
							<a class="pre-wrap" title="{{::variable.label}}" href="javascript:void(0);" ng-click="scanAttachment(variable)" aria-label="${File {{variable.display_value}} failed security scan}">{{::variable.display_value}}</a>
             	(${File failed security scan})
            </span>
          </span>
          <span ng-switch-default class="pre-wrap">{{::variable.display_value}}</span>
        </div>
      </div>
      <div ng-if="variable.multi_row">
        <a href="javascript:void(0)" class="hidden-xs" uib-popover-template="'sp_multirow_vs_summarizer.html'" popover-title="{{variable.label}}" popover-placement="auto top" popover-append-to-body="true" popover-trigger="outsideClick">${Click to view}</a>
        <a href="javascript:void(0)" class="visible-xs" ng-click="c.openMrvsModal(variable)">${Click to view}</a>
      </div>
    </div>
  </div>
</div>

 

Server Script:

(function() {
	data.label = options.label || gs.getMessage("Options");
	if(options.task)
		data.ariaLabel =  gs.getMessage("{0} for {1}", [data.label, options.task]);
	else
		data.ariaLabel = data.label;
	if (options.variables) {
		data.variables = filterVariables(options.variables);
		return;
	}
	data.labelClose = gs.getMessage("Close");
	var tableName = options.table || $sp.getParameter('table');
	var sysId = options.sys_id || $sp.getParameter('sys_id');
	var record = sn_std_tkt_api.TicketConfig.getTicketRecord(tableName, sysId);
	
	if (record == null)
		return;

	data.canRead = record.canRead();
	if (!data.canRead)
		return;
	
	data.variables = filterVariables(new GlobalServiceCatalogUtil().getVariablesForTask(record, true));
	
 })();

function filterVariables(variables) {
	if (variables == null || variables.length == 0)
		return variables;
	
	var filteredVariables = [];
	variables.forEach(function(variable) {
		if (variable.visible_summary)
			filteredVariables.push(variable);
	});
	
	return filteredVariables;
}



Client Script:

 

function($scope, snAttachmentHandler, i18n, spModal) {
  /* widget controller */
  var c = this;
	c.toggle = c.options.toggle || false;
	c.hide_control = c.options.hide_control || false;
	c.task = c.options ? c.options.task : "";
	
	/* Open mrvs data in a model for mobile screen */
	c.openMrvsModal = function(data) {
		spModal.open({
			title: data.label,
			widget: "template_renderer",
			widgetInput: {data: data, template: "sp_multirow_vs_summarizer.html"}, 
			buttons: [{label:c.data.labelClose, primary: true}]
		});	
	}
	
	$scope.scanAttachment = function(variable) {
		if (variable.state == 'not_available')
			snAttachmentHandler.showMessage('error',i18n.getMessage('Upload file scan failed').withValues([variable.display_value]));
		else
			snAttachmentHandler.scanAttachment({'sys_id' : variable.value});
	}
}

 

CSS:

button.variables-toggle-btn {
		background: none;
		border: none;
		color: $link-color;
		&:hover, &:focus{
		color: $link-hover-color;
		text-decoration: $link-hover-decoration;
	}
}
Hope this helps!
BR.
Ishaan Shoor

View solution in original post

25 REPLIES 25

Hi Sohith, Please try the options discussed and mark this as helpful/correct if this resolved your issue. Regards, Ishaan
Hope this helps!
BR.
Ishaan Shoor

Hi,

are you using standard ticket page?


Thanks and Regards,

Saurabh Gupta

Yes Saurabh

Please mark as Accepted Solution if this solves your query and HIT Helpful if you find my answer helped you. This will help other community mates too..:)

Have you check the visibility condition of that tab?


Thanks and Regards,

Saurabh Gupta

https://your_instance_name.service-now.com/nav_to.do?uri=%2Fticket_configuration.do%3Fsys_id%3D33ad80e787f10010e0ef0cf888cb0b87%26sysparm_record_target%3Dticket_configuration%26sysparm_record_row%3D1%26sysparm_record_rows%3D3%26sysparm_record_list%3Dactive%253Dtrue


Thanks and Regards,

Saurabh Gupta