Name

sn_oe_sfs.VACommonTableAdapter

Description

No description available

Script

var VACommonTableAdapter = Class.create();
VACommonTableAdapter.prototype = {
  initialize: function(adapter, inputBuilder) {
      this.adapter = adapter;
      this.inputBuilder = inputBuilder;
      this.logger = new sn_oe_sfs.VACommonLogger(this.inputBuilder.getChannelLogger(), 'VACommonTableAdapter');
      this.logger.debug("VACommonTableAdapter channel: " + JSON.stringify(this.adapter) + " \n inputs: " + JSON.stringify(inputBuilder));
  },

  transform: function() {
      try {
          var richControl = this.inputBuilder.getRichControl();
          var data = this.inputBuilder.getData();
          var payload = this.inputBuilder.getPayload();
          var headers = richControl.headers || [];
          var label = richControl.label;
          var paginationBreak = Number(richControl.paginationBreak);
          var totalRows = Number(richControl.totalSearchResultsCount);
          var appInboundId = this.adapter.getAppInboundId(payload);
          var providerUserId = this.adapter.getUserId(payload);
          var isShowMoreSelected = this.adapter.isShowMoreSelected(payload);
          var startRowNum = 0;

          if (isShowMoreSelected) {
              var nextIndex = this.adapter.getNextIndexFromUserContext(appInboundId, providerUserId);
              startRowNum = nextIndex ? Number(nextIndex) : 0;
          }

          var endRowNum = startRowNum + paginationBreak;

          data = data.slice(startRowNum, endRowNum);

          var response = this.adapter.addTable(headers, label, data, startRowNum);

          if (endRowNum >= totalRows) {
              response = this.adapter.addButtons(response);
          } else {
              this.adapter.setNextIndexInUserContext(endRowNum, appInboundId, providerUserId);

              var remainingRowCount = totalRows - endRowNum;
              var numOfRowsDisplay = remainingRowCount > paginationBreak ? paginationBreak : remainingRowCount;
              response = this.adapter.addButtons(response, numOfRowsDisplay);
          }

          return this.adapter.getTableResult(response, payload);
      } catch (e) {
          this.logger.error("Error in default table outbound transformer : " + e.message);
          throw e;
      }
  },

  type: 'VACommonTableAdapter'
};

Sys ID

f681da87eb03011095b3378ab5522831

Offical Documentation

Official Docs: