Fix: visible task into area "time" for "My task" must limit task to

tasks i am assigned to.

Conflicts:
	htdocs/core/lib/project.lib.php
	htdocs/projet/activity/list.php
This commit is contained in:
Laurent Destailleur 2014-08-07 11:48:19 +02:00
parent a49bce10de
commit 48fc945648
2 changed files with 106 additions and 97 deletions

View File

@ -422,16 +422,17 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t
/** /**
* Output a task line * Output a task line
* *
* @param string &$inc ? * @param string &$inc ?
* @param string $parent ? * @param string $parent ?
* @param Object $lines ? * @param Object $lines ?
* @param int &$level ? * @param int &$level ?
* @param string &$projectsrole ? * @param string &$projectsrole ?
* @param string &$tasksrole ? * @param string &$tasksrole ?
* @param int $mytask 0 or 1 to enable only if task is a task i am affected to * @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 * @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 $user, $bc, $langs;
global $form, $projectstatic, $taskstatic; global $form, $projectstatic, $taskstatic;
@ -454,99 +455,104 @@ function projectLinesb(&$inc, $parent, $lines, &$level, &$projectsrole, &$tasksr
$lastprojectid=$lines[$i]->fk_project; $lastprojectid=$lines[$i]->fk_project;
} }
print "<tr ".$bc[$var].">\n"; // If we want all or we have a role on task, we show it
if (empty($mine) || ! empty($tasksrole[$lines[$i]->id]))
// Project
print "<td>";
$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 "</td>";
// Ref
print '<td>';
$taskstatic->id=$lines[$i]->id;
$taskstatic->ref=$lines[$i]->id;
print $taskstatic->getNomUrl(1);
print '</td>';
// Label task
print "<td>";
for ($k = 0 ; $k < $level ; $k++)
{ {
print "&nbsp;&nbsp;&nbsp;"; print "<tr ".$bc[$var].">\n";
}
$taskstatic->id=$lines[$i]->id; // Project
$taskstatic->ref=$lines[$i]->label; print "<td>";
print $taskstatic->getNomUrl(0); $projectstatic->id=$lines[$i]->fk_project;
print "</td>\n"; $projectstatic->ref=$lines[$i]->projectref;
$projectstatic->public=$lines[$i]->public;
// Date start $projectstatic->label=$langs->transnoentitiesnoconv("YourRole").': '.$projectsrole[$lines[$i]->fk_project];
print '<td align="center">'; print $projectstatic->getNomUrl(1);
print dol_print_date($lines[$i]->date_start,'day'); print "</td>";
print '</td>';
// Ref
// Date end print '<td>';
print '<td align="center">'; $taskstatic->id=$lines[$i]->id;
print dol_print_date($lines[$i]->date_end,'day'); $taskstatic->ref=$lines[$i]->id;
print '</td>'; print $taskstatic->getNomUrl(1);
print '</td>';
// Planned Workload
print '<td align="right">'; // Label task
if ($lines[$i]->planned_workload) print convertSecondToTime($lines[$i]->planned_workload,'allhourmin'); print "<td>";
else print '--:--'; for ($k = 0 ; $k < $level ; $k++)
print '</td>'; {
print "&nbsp;&nbsp;&nbsp;";
// Progress declared % }
print '<td align="right">'; $taskstatic->id=$lines[$i]->id;
print $lines[$i]->progress.' %'; $taskstatic->ref=$lines[$i]->label;
print '</td>'; print $taskstatic->getNomUrl(0);
print "</td>\n";
// Time spent
print '<td align="right">'; // Date start
if ($lines[$i]->duration) print '<td align="center">';
{ print dol_print_date($lines[$i]->date_start,'dayhour');
print '<a href="'.DOL_URL_ROOT.'/projet/tasks/time.php?id='.$lines[$i]->id.'">'; print '</td>';
print convertSecondToTime($lines[$i]->duration,'allhourmin');
print '</a>'; // Date end
} print '<td align="center">';
else print '--:--'; print dol_print_date($lines[$i]->date_end,'dayhour');
print "</td>\n"; print '</td>';
$disabledproject=1;$disabledtask=1; // Planned Workload
//print "x".$lines[$i]->fk_project; print '<td align="right">';
//var_dump($lines[$i]); if ($lines[$i]->planned_workload) print convertSecondToTime($lines[$i]->planned_workload,'allhourmin');
//var_dump($projectsrole[$lines[$i]->fk_project]); else print '--:--';
// If at least one role for project print '</td>';
if ($lines[$i]->public || ! empty($projectsrole[$lines[$i]->fk_project]) || $user->rights->projet->all->creer)
{ // Progress declared %
$disabledproject=0; print '<td align="right">';
$disabledtask=0; print $lines[$i]->progress.' %';
} print '</td>';
// If mytask and no role on task
if ($mytask && empty($tasksrole[$lines[$i]->id])) // Time spent
{ print '<td align="right">';
$disabledtask=1; if ($lines[$i]->duration)
{
print '<a href="'.DOL_URL_ROOT.'/projet/tasks/time.php?id='.$lines[$i]->id.'">';
print convertSecondToTime($lines[$i]->duration,'allhourmin');
print '</a>';
}
else print '--:--';
print "</td>\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 '<td class="nowrap">';
$s =$form->select_date('',$lines[$i]->id,'','','',"addtime",1,0,1,$disabledtask);
$s.='&nbsp;&nbsp;&nbsp;';
$s.=$form->select_duration($lines[$i]->id,'',$disabledtask,'text');
$s.='&nbsp;<input type="submit" class="button"'.($disabledtask?' disabled="disabled"':'').' value="'.$langs->trans("Add").'">';
print $s;
print '</td>';
print '<td align="right">';
if ((! $lines[$i]->public) && $disabledproject) print $form->textwithpicto('',$langs->trans("YouAreNotContactOfProject"));
else if ($disabledtask) print $form->textwithpicto('',$langs->trans("TaskIsNotAffectedToYou"));
print '</td>';
print "</tr>\n";
} }
print '<td class="nowrap">';
$s =$form->select_date('',$lines[$i]->id,'','','',"addtime",1,0,1,$disabledtask);
$s.='&nbsp;&nbsp;&nbsp;';
$s.=$form->select_duration($lines[$i]->id,'',$disabledtask,'text');
$s.='&nbsp;<input type="submit" class="button"'.($disabledtask?' disabled="disabled"':'').' value="'.$langs->trans("Add").'">';
print $s;
print '</td>';
print '<td align="right">';
if ((! $lines[$i]->public) && $disabledproject) print $form->textwithpicto('',$langs->trans("YouAreNotContactOfProject"));
else if ($disabledtask) print $form->textwithpicto('',$langs->trans("TaskIsNotAffectedToYou"));
print '</td>';
print "</tr>\n";
$inc++; $inc++;
$level++; $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--; $level--;
} }
else else

View File

@ -158,9 +158,12 @@ print '<td align="right">'.$langs->trans("TimeSpent").'</td>';
print '<td colspan="2">'.$langs->trans("AddDuration").'</td>'; print '<td colspan="2">'.$langs->trans("AddDuration").'</td>';
print "</tr>\n"; print "</tr>\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) if (count($tasksarray) > 0)
{ {
projectLinesb($j, 0, $tasksarray, $level, $projectsrole, $tasksrole, $mine); projectLinesb($j, 0, $tasksarray, $level, $projectsrole, $tasksrole, $mine, $restricteditformytask);
} }
else else
{ {