src/core/create.js
function forwardPassTask(task, start) {
    var resAll = ['_proj', '_task' + task.id],
        resources = task.resources ? resAll.concat(task.resources) : resAll,
        duration = task.duration,
        next = start,
        scheduledTask = {schedule: [], duration: task.duration};

    while(duration) {
      var r = resMgr.makeReservation(resources, next, task.minSchedule || 1, duration);
      if(!r.success) return undefined;

      scheduledTask.earlyStart = scheduledTask.earlyStart || r.start;
      scheduledTask.schedule.push(r);
      duration -= r.duration;
      next = r.end;
    }

    scheduledTask.earlyFinish = next;
    scheduledTasks[task.id] = scheduledTask;

    return next;
  }
function forwardPassTask(task, start) {
    var resAll = ['_proj', '_task' + task.id],
        resources = task.resources ? resAll.concat(task.resources) : resAll,
        duration = task.duration,
        next = start,
        scheduledTask = {schedule: [], duration: task.duration};

    while(duration) {
      var r = resMgr.makeReservation(resources, next, task.minSchedule || 1, duration);
      if(!r.success) return undefined;

      scheduledTask.earlyStart = scheduledTask.earlyStart || r.start;
      scheduledTask.schedule.push(r);
      duration -= r.duration;
      next = r.end;
    }

    scheduledTask.earlyFinish = next;
    scheduledTasks[task.id] = scheduledTask;

    return next;
  }
function forwardPassTask ( task , start ) { var resAll = [ '_proj' , '_task' + task . id ] , resources = task . resources ? resAll . concat ( task . resources ) : resAll , duration = task . duration , next = start , scheduledTask = { schedule : [ ] , duration : task . duration } ; while ( duration ) { var r = resMgr . makeReservation ( resources , next , task . minSchedule || 1 , duration ) ; if ( ! r . success ) return undefined ; scheduledTask . earlyStart = scheduledTask . earlyStart || r . start ; scheduledTask . schedule . push ( r ) ; duration -= r . duration ; next = r . end ; } scheduledTask . earlyFinish = next ; scheduledTasks [ task . id ] = scheduledTask ; return next ; }
Finds the next available time that all of a tasks constraints are met and
makes the appropriate resource reservations. A task may be scheduled in a
single contiguous block or multiple blocks of time.
Finds the next available time that all of a tasks constraints are met and makes the appropriate resource reservations . A task may be scheduled in a single contiguous block or multiple blocks of time .