Ejemplo n.º 1
0
  component.generateSource = function (startDate, endDate, originalData) {

    var ConvertUtil = require('core.util.ConvertUtil');

    // reset schedule data
    this.scheduleData = {};
    this.scheduleIds = {};

    originalData = originalData || [];

    for (var i = 0, len = originalData.length; i < len; i++) {
      var schedule = originalData[i];

      if (!this.scheduleData[schedule.date]) {
        this.scheduleData[schedule.date] = {};
        this.scheduleIds[schedule.date] = {};
      }

      this.scheduleData[schedule.date]['slot' + schedule.slot] = 'UNCHANGED';
      this.scheduleIds[schedule.date]['slot' + schedule.slot] = schedule.scheduleId;
    }

    var sourceData = [];

    // generate source data
    if (startDate && endDate && ConvertUtil.DateTime.compare(startDate, endDate) <= 0) {

      var Moment = require('lib.Moment');

      while (ConvertUtil.DateTime.compare(startDate, endDate) <= 0) {
        var dayOfWeek = ConvertUtil.DateTime.convertDateToDayOfWeek(startDate);

        var item = {
          date: dayOfWeek
        };

        for (var j = 1; j <= 9; j++) {
          var selected = !!(this.scheduleData[startDate] && this.scheduleData[startDate]['slot' + j]);

          item['slot' + j] = selected;
        }

        sourceData.push(item);

        startDate = ConvertUtil.DateTime.addDays(startDate, 1);
      }

    }

    // build source
    var source = {
      dataType: 'local',
      localData: sourceData,
      dataFields: this.getGridDataFields(),

      updaterow: function (rowid, rowdata, commit) {
        commit(true);
      }
    };

    var dataAdapter = new jQuery.jqx.dataAdapter(source);

    return dataAdapter;
  };