function EventsTable()

in static/js/com/events-table.js [167:207]


function EventsTable(elem, events) {
  var that = this;

  that.elem = elem;

  // Convert event date from string to Date object
  for (var i = 0, len = events.length; i < len; i++) {
    var event = events[i];
    var isDateRange = util.isArray(event.date);

    if (isDateRange && (typeof event.date[0] === 'string')) {
      event.date = [
        new Date(event.date[0]),
        new Date(event.date[1])
      ];
    }
    else if (!isDateRange && typeof event.date === 'string') {
      event.date = new Date(event.date);
    }
  }

  // Sorting
  events.sort(function (a, b) {
    var dateA = a.date,
      dateB = b.date,
      isADateIsRange = util.isArray(dateA),
      isBDateIsRange = util.isArray(dateB),
      compareA = isADateIsRange ? dateA[1] : dateA,
      compareB = isBDateIsRange ? dateB[1] : dateB;

    if (compareA === compareB) {
      return 0;
    }

    return (compareA < compareB) ? 1 : -1;
  });

  this.events = events;

  elem.appendChild(that.render());
}