diff --git a/htdocs/core/lib/project.lib.php b/htdocs/core/lib/project.lib.php index e4ecb884a1ce0..ce345a44a6830 100644 --- a/htdocs/core/lib/project.lib.php +++ b/htdocs/core/lib/project.lib.php @@ -443,16 +443,17 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t /** * Output a task line * - * @param string &$inc ? - * @param string $parent ? - * @param Object $lines ? - * @param int &$level ? - * @param string &$projectsrole ? - * @param string &$tasksrole ? - * @param int $mytask 0 or 1 to enable only if task is a task i am affected to + * @param string &$inc ? + * @param string $parent ? + * @param Object $lines ? + * @param int &$level ? + * @param string &$projectsrole ? + * @param string &$tasksrole ? + * @param string $mine Show only task lines I am assigned to + * @param int $restricteditformytask 0=No restriction, 1=Enable add time only if task is a task i am affected to * @return $inc */ -function projectLinesb(&$inc, $parent, $lines, &$level, &$projectsrole, &$tasksrole, $mytask=0) +function projectLinesb(&$inc, $parent, $lines, &$level, &$projectsrole, &$tasksrole, $mine, $restricteditformytask=0) { global $user, $bc, $langs; global $form, $projectstatic, $taskstatic; @@ -475,99 +476,104 @@ function projectLinesb(&$inc, $parent, $lines, &$level, &$projectsrole, &$tasksr $lastprojectid=$lines[$i]->fk_project; } - print "\n"; - - // Project - print ""; - $projectstatic->id=$lines[$i]->fk_project; - $projectstatic->ref=$lines[$i]->projectref; - $projectstatic->public=$lines[$i]->public; - $projectstatic->label=$langs->transnoentitiesnoconv("YourRole").': '.$projectsrole[$lines[$i]->fk_project]; - print $projectstatic->getNomUrl(1); - print ""; - - // Ref - print ''; - $taskstatic->id=$lines[$i]->id; - $taskstatic->ref=$lines[$i]->id; - print $taskstatic->getNomUrl(1); - print ''; - - // Label task - print ""; - for ($k = 0 ; $k < $level ; $k++) + // If we want all or we have a role on task, we show it + if (empty($mine) || ! empty($tasksrole[$lines[$i]->id])) { - print "   "; - } - $taskstatic->id=$lines[$i]->id; - $taskstatic->ref=$lines[$i]->label; - print $taskstatic->getNomUrl(0); - print "\n"; - - // Date start - print ''; - print dol_print_date($lines[$i]->date_start,'dayhour'); - print ''; - - // Date end - print ''; - print dol_print_date($lines[$i]->date_end,'dayhour'); - print ''; - - // Planned Workload - print ''; - if ($lines[$i]->planned_workload) print convertSecondToTime($lines[$i]->planned_workload,'allhourmin'); - else print '--:--'; - print ''; - - // Progress declared % - print ''; - print $lines[$i]->progress.' %'; - print ''; - - // Time spent - print ''; - if ($lines[$i]->duration) - { - print ''; - print convertSecondToTime($lines[$i]->duration,'allhourmin'); - print ''; - } - else print '--:--'; - print "\n"; - - $disabledproject=1;$disabledtask=1; - //print "x".$lines[$i]->fk_project; - //var_dump($lines[$i]); - //var_dump($projectsrole[$lines[$i]->fk_project]); - // If at least one role for project - if ($lines[$i]->public || ! empty($projectsrole[$lines[$i]->fk_project]) || $user->rights->projet->all->creer) - { - $disabledproject=0; - $disabledtask=0; - } - // If mytask and no role on task - if ($mytask && empty($tasksrole[$lines[$i]->id])) - { - $disabledtask=1; + print "\n"; + + // Project + print ""; + $projectstatic->id=$lines[$i]->fk_project; + $projectstatic->ref=$lines[$i]->projectref; + $projectstatic->public=$lines[$i]->public; + $projectstatic->label=$langs->transnoentitiesnoconv("YourRole").': '.$projectsrole[$lines[$i]->fk_project]; + print $projectstatic->getNomUrl(1); + print ""; + + // Ref + print ''; + $taskstatic->id=$lines[$i]->id; + $taskstatic->ref=$lines[$i]->id; + print $taskstatic->getNomUrl(1); + print ''; + + // Label task + print ""; + for ($k = 0 ; $k < $level ; $k++) + { + print "   "; + } + $taskstatic->id=$lines[$i]->id; + $taskstatic->ref=$lines[$i]->label; + print $taskstatic->getNomUrl(0); + print "\n"; + + // Date start + print ''; + print dol_print_date($lines[$i]->date_start,'dayhour'); + print ''; + + // Date end + print ''; + print dol_print_date($lines[$i]->date_end,'dayhour'); + print ''; + + // Planned Workload + print ''; + if ($lines[$i]->planned_workload) print convertSecondToTime($lines[$i]->planned_workload,'allhourmin'); + else print '--:--'; + print ''; + + // Progress declared % + print ''; + print $lines[$i]->progress.' %'; + print ''; + + // Time spent + print ''; + if ($lines[$i]->duration) + { + print ''; + print convertSecondToTime($lines[$i]->duration,'allhourmin'); + print ''; + } + else print '--:--'; + print "\n"; + + $disabledproject=1;$disabledtask=1; + //print "x".$lines[$i]->fk_project; + //var_dump($lines[$i]); + //var_dump($projectsrole[$lines[$i]->fk_project]); + // If at least one role for project + if ($lines[$i]->public || ! empty($projectsrole[$lines[$i]->fk_project]) || $user->rights->projet->all->creer) + { + $disabledproject=0; + $disabledtask=0; + } + // If $restricteditformytask is on and I have no role on task, i disable edit + if ($restricteditformytask && empty($tasksrole[$lines[$i]->id])) + { + $disabledtask=1; + } + + print ''; + $s =$form->select_date('',$lines[$i]->id,'','','',"addtime",1,0,1,$disabledtask); + $s.='   '; + $s.=$form->select_duration($lines[$i]->id,'',$disabledtask,'text'); + $s.=' '; + print $s; + print ''; + print ''; + if ((! $lines[$i]->public) && $disabledproject) print $form->textwithpicto('',$langs->trans("YouAreNotContactOfProject")); + else if ($disabledtask) print $form->textwithpicto('',$langs->trans("TaskIsNotAffectedToYou")); + print ''; + + print "\n"; } - - print ''; - $s =$form->select_date('',$lines[$i]->id,'','','',"addtime",1,0,1,$disabledtask); - $s.='   '; - $s.=$form->select_duration($lines[$i]->id,'',$disabledtask,'text'); - $s.=' '; - print $s; - print ''; - print ''; - if ((! $lines[$i]->public) && $disabledproject) print $form->textwithpicto('',$langs->trans("YouAreNotContactOfProject")); - else if ($disabledtask) print $form->textwithpicto('',$langs->trans("TaskIsNotAffectedToYou")); - print ''; - - print "\n"; + $inc++; $level++; - if ($lines[$i]->id) projectLinesb($inc, $lines[$i]->id, $lines, $level, $projectsrole, $tasksrole, $mytask); + if ($lines[$i]->id) projectLinesb($inc, $lines[$i]->id, $lines, $level, $projectsrole, $tasksrole, $mine, $restricteditformytask); $level--; } else diff --git a/htdocs/projet/activity/list.php b/htdocs/projet/activity/list.php index 719d178d0cef7..9eebe84bb8737 100644 --- a/htdocs/projet/activity/list.php +++ b/htdocs/projet/activity/list.php @@ -133,11 +133,14 @@ print_barre_liste($title, $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, "", $num); // Filter on user -dol_fiche_head(''); -print ''; -print ''; -print '
'.$langs->trans("User").''.$user->getLoginUrl(1).'
'; -dol_fiche_end(); +/* dol_fiche_head(''); + print ''; + print ''; + print '
'.$langs->trans("User").''; + if ($mine) print $user->getLoginUrl(1); + print '
'; + dol_fiche_end(); +*/ print '
'; print ''; @@ -157,9 +160,12 @@ print ''.$langs->trans("AddDuration").''; print "\n"; +// By default, we can edit only tasks we are assigned to +$restricteditformytask=(empty($conf->global->PROJECT_TIME_ON_ALL_TASKS_MY_PROJECTS)?1:0); + if (count($tasksarray) > 0) { - projectLinesb($j, 0, $tasksarray, $level, $projectsrole, $tasksrole, $mine); + projectLinesb($j, 0, $tasksarray, $level, $projectsrole, $tasksrole, $mine, $restricteditformytask); } else {