Name

sn_flow_diagram.FlowDiagramDatabaseApi

Description

No description available

Script

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

  type: 'FlowDiagramDatabaseApi'
};

FlowDiagramDatabaseApi.getTemplateJSON = function(configurationId) {
  var configuration = new GlideRecord(FlowDiagramConstants.TABLE_NAMES.DIAGRAM_BUILDER.CONFIGURATION);
  if (configuration.get(configurationId)) {
      var template = new GlideRecord(FlowDiagramConstants.TABLE_NAMES.DIAGRAM_BUILDER.DIAGRAM_TEMPLATE);
      if (template.get(configuration.getValue(FlowDiagramConstants.FIELD_NAMES.DIAGRAM_BUILDER.CONFIGURATION.DIAGRAM_TEMPLATE))) {
          return template.getValue(FlowDiagramConstants.FIELD_NAMES.DIAGRAM_BUILDER.DIAGRAM_TEMPLATE.TEMPLATE_JSON);
      }
  }
  return "";
};

FlowDiagramDatabaseApi.getConfigurationActions = function(configurationId) {
  var actionsGR = new GlideRecord(FlowDiagramConstants.TABLE_NAMES.DIAGRAM_BUILDER.CANVAS_ACTION);
  var encodedQuery = "builder_configuration=" + configurationId;
  actionsGR.addEncodedQuery(encodedQuery);
  actionsGR.query();

  var actions = [];
  while (actionsGR.next()) {
      actions.push({
          id: actionsGR.getUniqueValue(),
          name: actionsGR.getValue(FlowDiagramConstants.FIELD_NAMES.DIAGRAM_BUILDER.CANVAS_ACTION.NAME),
          order: actionsGR.getValue(FlowDiagramConstants.FIELD_NAMES.DIAGRAM_BUILDER.CANVAS_ACTION.ORDER),
          componentTagName: actionsGR.getValue(FlowDiagramConstants.FIELD_NAMES.DIAGRAM_BUILDER.CANVAS_ACTION.ACTION_TYPE) == "action_component" ?
              actionsGR.getDisplayValue(FlowDiagramConstants.FIELD_NAMES.DIAGRAM_BUILDER.CANVAS_ACTION.UI_COMPONENT) : ""
      });
  }
  return actions;
};

FlowDiagramDatabaseApi.getConfiguration = function(configurationId) {
  var configuration = new GlideRecord(FlowDiagramConstants.TABLE_NAMES.DIAGRAM_BUILDER.CONFIGURATION);
  if (configuration.get(configurationId)) {
      var configurationObj = {
          id: configuration.getUniqueValue(),
          name: configuration.getValue(FlowDiagramConstants.FIELD_NAMES.DIAGRAM_BUILDER.CONFIGURATION.NAME),
          theme: configuration.getValue(FlowDiagramConstants.FIELD_NAMES.DIAGRAM_BUILDER.CONFIGURATION.THEME),
          leftPanel: configuration.getValue(FlowDiagramConstants.FIELD_NAMES.DIAGRAM_BUILDER.CONFIGURATION.LEFT_PANEL) == 1,
          leftComponent: configuration.getDisplayValue(FlowDiagramConstants.FIELD_NAMES.DIAGRAM_BUILDER.CONFIGURATION.LEFT_COMPONENT_TAG) || "",
          rightPanel: configuration.getValue(FlowDiagramConstants.FIELD_NAMES.DIAGRAM_BUILDER.CONFIGURATION.RIGHT_PANEL) == 1,
          rightComponent: configuration.getDisplayValue(FlowDiagramConstants.FIELD_NAMES.DIAGRAM_BUILDER.CONFIGURATION.RIGHT_COMPONENT_TAG) || "",
          alertsComponent: configuration.getDisplayValue(FlowDiagramConstants.FIELD_NAMES.DIAGRAM_BUILDER.CONFIGURATION.ALERTS_COMPONENT_TAG) || "",
          advancedProperties: configuration.getValue(FlowDiagramConstants.FIELD_NAMES.DIAGRAM_BUILDER.CONFIGURATION.ADVANCED) == 1,
          props: configuration.getValue(FlowDiagramConstants.FIELD_NAMES.DIAGRAM_BUILDER.CONFIGURATION.PROPS),
          nodeDef: [],
          actions: FlowDiagramDatabaseApi.getConfigurationActions(configurationId),
          header: configuration.getValue(FlowDiagramConstants.FIELD_NAMES.DIAGRAM_BUILDER.CONFIGURATION.HEADER) == 1,
          appScope: configuration.getDisplayValue(FlowDiagramConstants.FIELD_NAMES.DIAGRAM_BUILDER.CONFIGURATION.SCOPE_SCOPE_NAME),
          diagramTemplate: configuration.getDisplayValue(FlowDiagramConstants.FIELD_NAMES.DIAGRAM_BUILDER.CONFIGURATION.DIAGRAM_TEMPLATE_TEMPLATE_JSON),
          enableSearch: configuration.getValue(FlowDiagramConstants.FIELD_NAMES.DIAGRAM_BUILDER.CONFIGURATION.ENABLE_SEARCH) == 1,
          diagramOptions: configuration.getValue(FlowDiagramConstants.FIELD_NAMES.DIAGRAM_BUILDER.CONFIGURATION.DIAGRAM_OPTIONS),
      };

      var enableLayoutCustomization = configuration.getValue(FlowDiagramConstants.FIELD_NAMES.DIAGRAM_BUILDER.CONFIGURATION.ENABLE_LAYOUT_CUSTOMIZATION) == 1;
      if (enableLayoutCustomization) {
          var configScript = configuration.getValue(FlowDiagramConstants.FIELD_NAMES.DIAGRAM_BUILDER.CONFIGURATION.LAYOUT);
          var layout = sn_flow_diagram.FlowDiagramLayoutGenerator.createLayoutScript(configScript, FlowDiagramConstants);
          configurationObj.layout = layout;
      }

      return configurationObj;
  }
  return {};
};

Sys ID

2bdd039dff3030104ef14ee9453bf195

Offical Documentation

Official Docs: