NEW Pagination into list of time spent
This commit is contained in:
parent
e3d53867f4
commit
2db0f84f29
@ -576,7 +576,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
|
|||||||
print '<!-- List of time spent for task -->'."\n";
|
print '<!-- List of time spent for task -->'."\n";
|
||||||
|
|
||||||
$title=$langs->trans("ListTaskTimeForTask");
|
$title=$langs->trans("ListTaskTimeForTask");
|
||||||
//print_barre_liste($title, 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, $linktotasks, $num, $totalnboflines, 'title_generic.png', 0, '', '', 0, 1);
|
//print_barre_liste($title, 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, $linktotasks, $num, $nbtotalofrecords, 'title_generic.png', 0, '', '', 0, 1);
|
||||||
print load_fiche_titre($title, $linktocreatetime, 'title_generic.png');
|
print load_fiche_titre($title, $linktocreatetime, 'title_generic.png');
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -703,6 +703,41 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
|
|||||||
$massactionbutton=$form->selectMassAction('', $arrayofmassactions);
|
$massactionbutton=$form->selectMassAction('', $arrayofmassactions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$param='';
|
||||||
|
if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage);
|
||||||
|
if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit);
|
||||||
|
if ($search_month > 0) $param.= '&search_month='.urlencode($search_month);
|
||||||
|
if ($search_year > 0) $param.= '&search_year='.urlencode($search_year);
|
||||||
|
if ($search_user > 0) $param.= '&search_user='.urlencode($search_user);
|
||||||
|
if ($search_task_ref != '') $param.= '&search_task_ref='.urlencode($search_task_ref);
|
||||||
|
if ($search_task_label != '') $param.= '&search_task_label='.urlencode($search_task_label);
|
||||||
|
if ($search_note != '') $param.= '&search_note='.urlencode($search_note);
|
||||||
|
if ($search_duration != '') $param.= '&search_field2='.urlencode($search_duration);
|
||||||
|
if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss);
|
||||||
|
/*
|
||||||
|
// Add $param from extra fields
|
||||||
|
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
|
||||||
|
*/
|
||||||
|
if ($id) $param.='&id='.urlencode($id);
|
||||||
|
if ($projectid) $param.='&projectid='.urlencode($projectid);
|
||||||
|
if ($withproject) $param.='&withproject='.urlencode($withproject);
|
||||||
|
|
||||||
|
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
|
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
||||||
|
if ($action == 'editline') print '<input type="hidden" name="action" value="updateline">';
|
||||||
|
elseif ($action == 'splitline') print '<input type="hidden" name="action" value="updatesplitline">';
|
||||||
|
elseif ($action == 'createtime' && empty($id) && $user->rights->projet->lire) print '<input type="hidden" name="action" value="addtimespent">';
|
||||||
|
else print '<input type="hidden" name="action" value="list">';
|
||||||
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
|
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||||
|
print '<input type="hidden" name="page" value="'.$page.'">';
|
||||||
|
|
||||||
|
print '<input type="hidden" name="id" value="'.$id.'">';
|
||||||
|
print '<input type="hidden" name="projectid" value="'.$projectidforalltimes.'">';
|
||||||
|
print '<input type="hidden" name="withproject" value="'.$withproject.'">';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* List of time spent
|
* List of time spent
|
||||||
*/
|
*/
|
||||||
@ -711,10 +746,11 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
|
|||||||
$sql = "SELECT t.rowid, t.fk_task, t.task_date, t.task_datehour, t.task_date_withhour, t.task_duration, t.fk_user, t.note, t.thm,";
|
$sql = "SELECT t.rowid, t.fk_task, t.task_date, t.task_datehour, t.task_date_withhour, t.task_duration, t.fk_user, t.note, t.thm,";
|
||||||
$sql .= " pt.ref, pt.label,";
|
$sql .= " pt.ref, pt.label,";
|
||||||
$sql .= " u.lastname, u.firstname, u.login, u.photo, u.statut as user_status,";
|
$sql .= " u.lastname, u.firstname, u.login, u.photo, u.statut as user_status,";
|
||||||
$sql .= " il.fk_facture as invoice_id, il.total_ht";
|
$sql .= " il.fk_facture as invoice_id, inv.fk_statut";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."projet_task_time as t";
|
$sql .= " FROM ".MAIN_DB_PREFIX."projet_task_time as t";
|
||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."facturedet as il ON il.rowid = t.invoice_line_id";
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."facturedet as il ON il.rowid = t.invoice_line_id";
|
||||||
$sql .= ", ".MAIN_DB_PREFIX."projet_task as pt, ".MAIN_DB_PREFIX."user as u";
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."facture as inv ON inv.rowid = il.fk_facture,";
|
||||||
|
$sql .= " ".MAIN_DB_PREFIX."projet_task as pt, ".MAIN_DB_PREFIX."user as u";
|
||||||
$sql .= " WHERE t.fk_user = u.rowid AND t.fk_task = pt.rowid";
|
$sql .= " WHERE t.fk_user = u.rowid AND t.fk_task = pt.rowid";
|
||||||
if (empty($projectidforalltimes)) $sql .= " AND t.fk_task =".$object->id;
|
if (empty($projectidforalltimes)) $sql .= " AND t.fk_task =".$object->id;
|
||||||
else $sql.= " AND pt.fk_projet IN (".$projectidforalltimes.")";
|
else $sql.= " AND pt.fk_projet IN (".$projectidforalltimes.")";
|
||||||
@ -738,22 +774,48 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
|
|||||||
{
|
{
|
||||||
$sql.= " AND t.task_datehour BETWEEN '".$db->idate(dol_get_first_day($search_year,1,false))."' AND '".$db->idate(dol_get_last_day($search_year,12,false))."'";
|
$sql.= " AND t.task_datehour BETWEEN '".$db->idate(dol_get_first_day($search_year,1,false))."' AND '".$db->idate(dol_get_last_day($search_year,12,false))."'";
|
||||||
}
|
}
|
||||||
|
//$sql .= ' GROUP BY t.rowid, t.fk_task, t.task_date, t.task_datehour, t.task_date_withhour, t.task_duration, t.fk_user, t.note, t.thm, pt.ref, pt.label, u.lastname, u.firstname, u.login, u.photo, u.statut, il.fk_facture';
|
||||||
$sql .= $db->order($sortfield, $sortorder);
|
$sql .= $db->order($sortfield, $sortorder);
|
||||||
|
|
||||||
$resql = $db->query($sql);
|
// Count total nb of records
|
||||||
if ($resql)
|
$nbtotalofrecords = '';
|
||||||
|
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
||||||
{
|
{
|
||||||
$num = $db->num_rows($resql);
|
$resql = $db->query($sql);
|
||||||
$totalnboflines=$num;
|
$nbtotalofrecords = $db->num_rows($resql);
|
||||||
|
if (($page * $limit) > $nbtotalofrecords) // if total of record found is smaller than page * limit, goto and load page 0
|
||||||
|
{
|
||||||
|
$page = 0;
|
||||||
|
$offset = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// if total of record found is smaller than limit, no need to do paging and to restart another select with limits set.
|
||||||
|
if (is_numeric($nbtotalofrecords) && $limit > $nbtotalofrecords)
|
||||||
|
{
|
||||||
|
$num = $nbtotalofrecords;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$sql.= $db->plimit($limit+1, $offset);
|
||||||
|
|
||||||
|
$resql=$db->query($sql);
|
||||||
|
if (! $resql)
|
||||||
|
{
|
||||||
|
dol_print_error($db);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$num = $db->num_rows($resql);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($num >= 0)
|
||||||
|
{
|
||||||
if (! empty($projectidforalltimes))
|
if (! empty($projectidforalltimes))
|
||||||
{
|
{
|
||||||
print '<!-- List of time spent for project -->'."\n";
|
print '<!-- List of time spent for project -->'."\n";
|
||||||
|
|
||||||
$title=$langs->trans("ListTaskTimeUserProject");
|
$title=$langs->trans("ListTaskTimeUserProject");
|
||||||
//$linktotasks='<a href="'.DOL_URL_ROOT.'/projet/tasks.php?id='.$projectstatic->id.'">'.$langs->trans("GoToListOfTasks").'</a>';
|
|
||||||
//print_barre_liste($title, 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, $linktotasks, $num, $totalnboflines, 'title_generic.png', 0, '', '', 0, 1);
|
|
||||||
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_generic', 0, $linktocreatetime, '', $limit);
|
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_generic', 0, $linktocreatetime, '', $limit);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -771,18 +833,12 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
|
|||||||
dol_print_error($db);
|
dol_print_error($db);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Form to add time spent
|
* Form to add time spent
|
||||||
*/
|
*/
|
||||||
if ($action == 'createtime' && empty($id) && $user->rights->projet->lire)
|
if ($action == 'createtime' && empty($id) && $user->rights->projet->lire)
|
||||||
{
|
{
|
||||||
print '<!-- form to add time spent -->'."\n";
|
print '<!-- table to add time spent -->'."\n";
|
||||||
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
|
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
|
||||||
print '<input type="hidden" name="action" value="addtimespent">';
|
|
||||||
print '<input type="hidden" name="projectid" value="'.$projectstatic->id.'">';
|
|
||||||
print '<input type="hidden" name="withproject" value="'.$withproject.'">';
|
|
||||||
|
|
||||||
print '<table class="noborder nohover" width="100%">';
|
print '<table class="noborder nohover" width="100%">';
|
||||||
|
|
||||||
@ -859,47 +915,11 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
|
|||||||
print '<input type="submit" name="cancel" class="button" value="'.$langs->trans("Cancel").'">';
|
print '<input type="submit" name="cancel" class="button" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
print '</table></form>';
|
print '</table>';
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$param='';
|
|
||||||
if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage);
|
|
||||||
if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit);
|
|
||||||
if ($search_month > 0) $param.= '&search_month='.urlencode($search_month);
|
|
||||||
if ($search_year > 0) $param.= '&search_year='.urlencode($search_year);
|
|
||||||
if ($search_user > 0) $param.= '&search_user='.urlencode($search_user);
|
|
||||||
if ($search_task_ref != '') $param.= '&search_task_ref='.urlencode($search_task_ref);
|
|
||||||
if ($search_task_label != '') $param.= '&search_task_label='.urlencode($search_task_label);
|
|
||||||
if ($search_note != '') $param.= '&search_note='.urlencode($search_note);
|
|
||||||
if ($search_duration != '') $param.= '&search_field2='.urlencode($search_duration);
|
|
||||||
if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss);
|
|
||||||
/*
|
|
||||||
// Add $param from extra fields
|
|
||||||
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
|
|
||||||
*/
|
|
||||||
if ($id) $param.='&id='.urlencode($id);
|
|
||||||
if ($projectid) $param.='&projectid='.urlencode($projectid);
|
|
||||||
if ($withproject) $param.='&withproject='.urlencode($withproject);
|
|
||||||
|
|
||||||
|
|
||||||
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'?id='.$id.'">';
|
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
|
||||||
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
|
||||||
if ($action == 'editline') print '<input type="hidden" name="action" value="updateline">';
|
|
||||||
elseif ($action == 'splitline') print '<input type="hidden" name="action" value="updatesplitline">';
|
|
||||||
else print '<input type="hidden" name="action" value="list">';
|
|
||||||
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
|
||||||
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
|
||||||
print '<input type="hidden" name="page" value="'.$page.'">';
|
|
||||||
|
|
||||||
print '<input type="hidden" name="id" value="'.$id.'">';
|
|
||||||
print '<input type="hidden" name="projectid" value="'.$projectidforalltimes.'">';
|
|
||||||
print '<input type="hidden" name="withproject" value="'.$withproject.'">';
|
|
||||||
|
|
||||||
$moreforfilter = '';
|
$moreforfilter = '';
|
||||||
|
|
||||||
$parameters=array();
|
$parameters=array();
|
||||||
@ -916,6 +936,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
|
|||||||
|
|
||||||
$varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
|
$varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
|
||||||
$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields
|
$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields
|
||||||
|
$selectedfields.=(count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : '');
|
||||||
|
|
||||||
print '<div class="div-table-responsive">';
|
print '<div class="div-table-responsive">';
|
||||||
print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
|
print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
|
||||||
@ -957,7 +978,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
|
|||||||
print $hookmanager->resPrint;
|
print $hookmanager->resPrint;
|
||||||
// Action column
|
// Action column
|
||||||
print '<td class="liste_titre center">';
|
print '<td class="liste_titre center">';
|
||||||
$searchpicto=$form->showFilterAndCheckAddButtons($massactionbutton?1:0, 'checkforselect', 1);
|
$searchpicto=$form->showFilterButtons();
|
||||||
print $searchpicto;
|
print $searchpicto;
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>'."\n";
|
print '</tr>'."\n";
|
||||||
@ -996,6 +1017,8 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
|
|||||||
$totalarray=array();
|
$totalarray=array();
|
||||||
foreach ($tasks as $task_time)
|
foreach ($tasks as $task_time)
|
||||||
{
|
{
|
||||||
|
if ($i >= $limit) break;
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
|
|
||||||
$date1=$db->jdate($task_time->task_date);
|
$date1=$db->jdate($task_time->task_date);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user