Name

global.cxs_TableActions

Description

Gets email search request records.

Script

var cxs_TableActions = Class.create();
cxs_TableActions.prototype = {
  DEFAULT_LIMIT: 10,

  initialize: function(actionName, gr) {
      this._gr = gr;
  },

  getTableConfig: function(tableName, recordSysId) {
      var searchConfig = {};

      if (!tableName)
          return searchConfig;

      var tableConfigGr = new GlideRecord("cxs_table_config");
      tableConfigGr.addQuery("table", tableName);
  	tableConfigGr.addNullQuery("ui_type").addOrCondition("ui_type", "").addOrCondition("ui_type", "platform");
      tableConfigGr.addActiveQuery();
      tableConfigGr.query();
      if (!tableConfigGr.next())
          return searchConfig;

      var tableConfig = cxs_App.getBusiness(tableConfigGr);

      searchConfig = tableConfig.getTableConfigObject();
      searchConfig.hasRequiredRoles = tableConfig.evaluateUserHasRole();
      searchConfig.record_matches_condition = tableConfig.matchesCondition(recordSysId);
      return searchConfig;
  },
  
  getTableFilterConfig: function(tableConfigId) {
      var searchFilterConfig = {};
      
      var isActive = GlidePluginManager.isActive('com.snc.contextual_search.dynamic_filters');
  	
      if (!isActive || !tableConfigId)
          return searchFilterConfig;
  	
  	searchFilterConfig.source = "cxs_TableActions";
  	searchFilterConfig.filters_configured = false;
  	searchFilterConfig.config_id = tableConfigId;

      var tableConfigGr = new GlideRecord("cxs_filter_config");
      tableConfigGr.addQuery("cxs_table_config", tableConfigId);
      tableConfigGr.addActiveQuery();
      tableConfigGr.query();
  	
  	while(tableConfigGr.next()) {
  		var tableConfig = cxs_App.getBusiness(tableConfigGr);
  		if(tableConfig.isFiltersConfigured()) {
  			searchFilterConfig.filters_configured = true;
  			break;
  		}
  	}
      return searchFilterConfig;
  },
  
  getFilters: function(tableConfigId, fieldValues) {
  	return SNC.SearchService.getTableFilters(tableConfigId, fieldValues);
  },
  
  getEmailSearchRequest: function(emailActionGr) {
      if (!this._gr || !this._gr.getTableName() || !emailActionGr)
          return null;

  	var searchEmailConfigGr = new GlideRecord("cxs_table_email_config");
      searchEmailConfigGr.addQuery("sysevent_email_action", emailActionGr.getUniqueValue());
  	searchEmailConfigGr.addQuery("cxs_table_config.table", this._gr.getTableName());
      searchEmailConfigGr.query();

  	if (!searchEmailConfigGr.next())
  		return null;

  	var searchConfigGr = searchEmailConfigGr.cxs_table_config.getRefRecord();
  	if (!searchConfigGr)
  		return null;

  	var searchConfig = cxs_App.getBusiness(searchConfigGr);
  	var searchText = this._gr.getValue(searchConfig.getDefaultSearchField().field);
  	if (!searchText)
  		return null;

  	var searchLimit = parseInt(searchConfigGr.getValue("limit"), 10) || this.DEFAULT_LIMIT;
  	var searchRequestObj = {
  		meta: {
  			limit: searchLimit,
  			results_header_text: searchConfigGr.results_header_text.getDisplayValue()
  		},
  		context: searchConfigGr.getValue("cxs_context_config"),
  		query: {
  			freetext: searchText
  		}
  	};

  	var limit = searchEmailConfigGr.getValue("limit");

  	if (limit && !isNaN(limit))
  		searchRequestObj.meta.limit = parseInt(limit, 10);

  	var userField = searchEmailConfigGr.getValue("user_field");
  	var runAsUser;
  	if (userField)
  		runAsUser = this._gr.getValue(userField);

  	if (runAsUser)
  		searchRequestObj.meta.runAsUser = runAsUser;

      var searchRequestJSON = new JSON().encode(searchRequestObj);
      return new SNC.SearchRequest().fromJSON(searchRequestJSON);
  },

  type: "cxs_TableActions"
};

Sys ID

46f1db01eb2121003623666cd206fe75

Offical Documentation

Official Docs: