You are here

function views_gantt_update_tasks in Views Gantt 7

Callback for task/project update when we change it in Gantt chart.

1 string reference to 'views_gantt_update_tasks'
views_gantt_menu in ./views_gantt.module
Implements hook_menu().

File

./views_gantt.module, line 130
Module file for Views Gantt

Code

function views_gantt_update_tasks($task_id) {

  // tmp.
  if ($_POST) {
    $_SESSION['views_gantt_save'] = $_POST;
  }
  if (isset($_SESSION['views_gantt_save'])) {
    $data = $_SESSION['views_gantt_save'];
    $view_name = $data['view_name'];
    $style_options = views_gantt_get_style_options($view_name);

    // Update project info.
    if (isset($data['fields']['project_date_field'])) {
      $project_date = $data['fields']['project_date_field'];
      unset($data['fields']['project_date_field']);
      $project_id = $data['project_id'];
      $project = node_load($project_id);
      if ($project) {
        views_gantt_update_node($project, array(
          'project_date_field' => $project_date,
        ), $style_options);
      }
    }

    // Update task info.
    $task = node_load($task_id);
    if ($task) {
      if (isset($data['action']) && $data['action'] == 'drag') {
        $date_field = $data['fields']['date_field'];
        $end_date_field = $data['fields']['end_date_field'];
        if ($date_field == $end_date_field) {
          $data['fields']['end_date_field'] += 3600 * 24;
        }
      }
      views_gantt_update_node($task, $data['fields'], $style_options);
    }
  }

  // Show empty page in browser.
  return NULL;
}