Name

global.SNHelpUtil

Description

No description available

Script

var SNHelpUtil = Class.create();
SNHelpUtil.prototype = {
  initialize: function() {},

  setError: function(message, arg1, arg2) {
      var err = "{0} {1} {2}";
      gs.error(err, message || '', arg1 || '', arg2 || '');
  },

  constructPayLoad: function(mapper, records) {

      var result = [],
          cur_record, key, i, j;
      for (i = 0; i < records.length; i++) {
          cur_record = {};
          for (j = 0; j < mapper.length; j++) {
              key = mapper[j];
              if (records[i].hasOwnProperty(key)) {
                  cur_record[key] = records[i][key];
              }
          }
          result.push(cur_record);
      }
      return result;
  },
  // get new number for order field on step, question and answer table
  // new number is totalRows + 1
  getNextOrder: function(field, value, current) {
      var table = current.getRecordClassName();
      var gr = new GlideRecord(table);
      gr.addQuery(field, value);

      if (field === 'guidance')
          gr.addNullQuery("parent");

      gr.query();

      return gr.getRowCount() + 1;
  },
  // adjust order on delete for guidance step, questions and answers table
  adjustOrder: function(field, value, current) {
      // orphan record - Dont do anything 
      if (!current[field].getRefRecord().isValidRecord())
          return;

      var table = current.getRecordClassName();
      var gr = new GlideRecord(table);

      gr.addQuery(field, value);
      gr.addQuery("order", ">=", current.order);
      gr.orderBy("order");
      gr.query();

      while (gr.next()) {
          // There exist another step with same order - don't do anything
          if (gr.order == current.order)
              return;
          // Adjust the order to accommodate deleted step order.
          else if (gr.order > 0) {
              gr.order = gr.order - 1;
              gr.setWorkflow(false);
              gr.autoSysFields(false);
              gr.update();
          }
      }
  },

  getNumberOfQuestions: function(content) {
      var gr = new GlideRecord("help_question");
      gr.addQuery("content", content);
      gr.query();
      return gr.getRowCount();
  },
  isSnHelpEnabled: function() {
      if (gs.getProperty("com.glide.sn_help.enabled", "true") === "true")
          return true;
      return false;
  },
  snHelpDisabledError: function(response) {
      var helpConstants = new SNHelpConstantProvider();
      if (!response)
          return;
      response.setStatus(helpConstants.httpStatus.BAD_REQUEST);
      response.setBody({
          error: helpConstants.snHelpDisabled
      });
  },

  canEditHelp: function() {
      return (gs.getUser().hasRole("admin") || gs.getUser().hasRole("sn_help_admin"));
  },

  canEditHelp: function() {
  	return (gs.getUser().hasRole("admin") || gs.getUser().hasRole("sn_help_admin"));
  },
  getCurrentVersion: function() {
  	return gs.getProperty("com.glide.embedded_help.version", "all");
  },
  type: 'SNHelpUtil'
};

Sys ID

8feee0005344101065f2ddeeff7b128c

Offical Documentation

Official Docs: