* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /** * \file htdocs/projet/ganttchart.inc.php * \ingroup projet * \brief Gantt diagram of a project */ ?>
idtask,1=>idtasktofinishfisrt)) if ($value[0] == $task['task_id']) { $depend.=($count>0?",":"").$value[1]; $count ++; } } $depend .= "\""; // Define parent if ($project_id && $level < 0) $parent = 'p'.$project_id; else $parent = $task["task_parent"]; // Define percent $percent = $task['task_percent_complete']?$task['task_percent_complete']:0; // Link $link=DOL_URL_ROOT.'/projet/tasks/task.php?withproject=1&id='.$task["task_id"]; // Name $name=$task['task_name']; for($i=0; $i < $level; $i++) { $name='     '.$name; } // Add line to gantt /* g.AddTaskItem(new JSGantt.TaskItem(1, 'Define Chart API','', '', 'ggroupblack','', 0, 'Brian', 0, 1,0,1,'','','Some Notes text',g)); g.AddTaskItem(new JSGantt.TaskItem(11,'Chart Object', '2014-02-20','2014-02-20','gmilestone', '', 1, 'Shlomy',100,0,1,1,'','','',g));

Method definition: TaskItem(pID, pName, pStart, pEnd, pColor, pLink, pMile, pRes, pComp, pGroup, pParent, pOpen, pDepend, pCaption, pNotes, pGantt)

pID
(required) a unique numeric ID used to identify each row
pName
(required) the task Label
pStart
(required) the task start date, can enter empty date ('') for groups. You can also enter specific time (2014-02-20 12:00) for additional precision.
pEnd
(required) the task end date, can enter empty date ('') for groups
pClass
(required) the css class for this task
pLink
(optional) any http link to be displayed in tool tip as the "More information" link.
pMile
(optional) indicates whether this is a milestone task - Numeric; 1 = milestone, 0 = not milestone
pRes
(optional) resource name
pComp
(required) completion percent, numeric
pGroup
(optional) indicates whether this is a group task (parent) - Numeric; 0 = normal task, 1 = standard group task, 2 = combined group task*
pParent
(required) identifies a parent pID, this causes this task to be a child of identified task. Numeric, top level tasks should have pParent set to 0
pOpen
(required) indicates whether a standard group task is open when chart is first drawn. Value must be set for all items but is only used by standard group tasks. Numeric, 1 = open, 0 = closed
pDepend
(optional) comma separated list of id's this task is dependent on. A line will be drawn from each listed task to this item
Each id can optionally be followed by a dependency type suffix. Valid values are:
'FS' - Finish to Start (default if suffix is omitted)
'SF' - Start to Finish
'SS' - Start to Start
'FF' - Finish to Finish
If present the suffix must be added directly to the id e.g. '123SS'
pCaption
(optional) caption that will be added after task bar if CaptionType set to "Caption"
pNotes
(optional) Detailed task information that will be displayed in tool tip for this task
pGantt
(required) javascript JSGantt.GanttChart object from which to take settings. Defaults to "g" for backwards compatibility
*/ $note=""; $s = "\n// Add taks id=".$task["task_id"]." level = ".$level."\n"; $s.= "g.AddTaskItem(new JSGantt.TaskItem(".$task['task_id'].",'".dol_escape_js($name)."','".$start_date."', '".$end_date."', '".$task['task_color']."', '".$link."', ".$task['task_milestone'].", '".$resources."', ".($percent >= 0 ? $percent : 0).", ".($task["task_is_group"]>0?1:0).", '".$parent."', 1, '".($depend?$depend:"")."', '".$note."'));"; // For JSGanttImproved //$s.= "g.AddTaskItem(new JSGantt.TaskItem(".$task['task_id'].",'".dol_escape_js($name)."','".$start_date."', '".$end_date."', 'gtaskblue', '".$link."', ".$task['task_milestone'].", '".$resources."', ".($percent >= 0 ? $percent : 0).", ".($task["task_is_group"]>0?1:0).", '".$parent."', 1, '".($depend?$depend:"")."', '".$note."'));"; echo $s; } /** * Find child Gantt line * * @param string $tarr tarr * @param int $parent Parent * @param Project $project_dependencies Project object * @param int $level Level * @return void */ function findChildGanttLine($tarr,$parent,$project_dependencies,$level) { $n=count($tarr); for ($x=0; $x < $n; $x++) { if($tarr[$x]["task_parent"] == $parent && $tarr[$x]["task_parent"] != $tarr[$x]["task_id"]) { constructGanttLine($tarr,$tarr[$x],$project_dependencies,$level,null); findChildGanttLine($tarr,$tarr[$x]["task_id"],$project_dependencies,$level+1); } } }