Merge branch '18.0' of git@github.com:Dolibarr/dolibarr.git into develop

This commit is contained in:
Laurent Destailleur 2023-09-06 15:12:21 +02:00
commit f8e5bcdb62
16 changed files with 113 additions and 19 deletions

View File

@ -869,7 +869,7 @@ function show_projects($conf, $langs, $db, $object, $backtopage = '', $nocreatel
// Ref
print '<td class="nowraponall">';
print $projecttmp->getNomUrl(1);
print $projecttmp->getNomUrl(1, '', 0, '', '-', 0, 1, '', 'project:'.$_SERVER["PHP_SELF"].'?socid=__SOCID__');
print '</td>';
// Label

View File

@ -1085,6 +1085,18 @@ if (!defined('NOLOGIN')) {
unset($_SESSION['lastsearch_mode_tmp_'.$relativepathstring]);
}
}
if (!empty($_GET['save_pageforbacktolist']) && !empty($_SERVER["HTTP_REFERER"])) { // We must use $_GET here
if (empty($_SESSION['pageforbacktolist'])) {
$pageforbacktolistarray = array();
} else {
$pageforbacktolistarray = $_SESSION['pageforbacktolist'];
}
$tmparray = explode(':', $_GET['save_pageforbacktolist'], 2);
if (!empty($tmparray[0]) && !empty($tmparray[1])) {
$pageforbacktolistarray[$tmparray[0]] = $tmparray[1];
$_SESSION['pageforbacktolist'] = $pageforbacktolistarray;
}
}
$action = '';
$parameters = array();

View File

@ -127,7 +127,13 @@ print dol_get_fiche_head($head, 'agenda', $langs->trans("Project"), -1, ($object
// Project card
$linkback = '<a href="'.DOL_URL_ROOT.'/projet/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
if (!empty($_SESSION['pageforbacktolist']) && !empty($_SESSION['pageforbacktolist']['project'])) {
$tmpurl = $_SESSION['pageforbacktolist']['project'];
$tmpurl = preg_replace('/__SOCID__/', $object->socid, $tmpurl);
$linkback = '<a href="'.$tmpurl.(preg_match('/\?/', $tmpurl) ? '&' : '?'). 'restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
} else {
$linkback = '<a href="'.DOL_URL_ROOT.'/projet/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
}
$morehtmlref = '<div class="refidno">';
// Title

View File

@ -463,7 +463,16 @@ if (empty($reshook)) {
$result = $object->delete($user);
if ($result > 0) {
setEventMessages($langs->trans("RecordDeleted"), null, 'mesgs');
header("Location: list.php?restore_lastsearch_values=1");
if (!empty($_SESSION['pageforbacktolist']) && !empty($_SESSION['pageforbacktolist']['project'])) {
$tmpurl = $_SESSION['pageforbacktolist']['project'];
$tmpurl = preg_replace('/__SOCID__/', $object->socid, $tmpurl);
$urlback = $tmpurl.(preg_match('/\?/', $tmpurl) ? '&' : '?'). 'restore_lastsearch_values=1';
} else {
$urlback = DOL_URL_ROOT.'/projet/list.php?restore_lastsearch_values=1';
}
header("Location: ".$urlback);
exit;
} else {
dol_syslog($object->error, LOG_DEBUG);
@ -1221,7 +1230,13 @@ if ($action == 'create' && $user->rights->projet->creer) {
// Project card
$linkback = '<a href="'.DOL_URL_ROOT.'/projet/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
if (!empty($_SESSION['pageforbacktolist']) && !empty($_SESSION['pageforbacktolist']['project'])) {
$tmpurl = $_SESSION['pageforbacktolist']['project'];
$tmpurl = preg_replace('/__SOCID__/', $object->socid, $tmpurl);
$linkback = '<a href="'.$tmpurl.(preg_match('/\?/', $tmpurl) ? '&' : '?'). 'restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
} else {
$linkback = '<a href="'.DOL_URL_ROOT.'/projet/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
}
$morehtmlref = '<div class="refidno">';
// Title

View File

@ -1312,9 +1312,10 @@ class Project extends CommonObject
* @param int $notooltip 1=Disable tooltip
* @param int $save_lastsearch_value -1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking
* @param string $morecss More css on a link
* @param string $save_pageforbacktolist Back to this page 'context:url'
* @return string String with URL
*/
public function getNomUrl($withpicto = 0, $option = '', $addlabel = 0, $moreinpopup = '', $sep = ' - ', $notooltip = 0, $save_lastsearch_value = -1, $morecss = '')
public function getNomUrl($withpicto = 0, $option = '', $addlabel = 0, $moreinpopup = '', $sep = ' - ', $notooltip = 0, $save_lastsearch_value = -1, $morecss = '', $save_pageforbacktolist = '')
{
global $conf, $langs, $user, $hookmanager;
@ -1363,6 +1364,10 @@ class Project extends CommonObject
if ($add_save_lastsearch_values) {
$url .= '&save_lastsearch_values=1';
}
$add_save_backpagefor = ($save_pageforbacktolist ? 1 : 0);
if ($add_save_backpagefor) {
$url .= "&save_pageforbacktolist=".urlencode($save_pageforbacktolist);
}
}
$linkclose = '';

View File

@ -98,7 +98,13 @@ $param = ($mode == 'mine' ? '&mode=mine' : '');
// Project card
$linkback = '<a href="'.DOL_URL_ROOT.'/projet/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
if (!empty($_SESSION['pageforbacktolist']) && !empty($_SESSION['pageforbacktolist']['project'])) {
$tmpurl = $_SESSION['pageforbacktolist']['project'];
$tmpurl = preg_replace('/__SOCID__/', $object->socid, $tmpurl);
$linkback = '<a href="'.$tmpurl.(preg_match('/\?/', $tmpurl) ? '&' : '?'). 'restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
} else {
$linkback = '<a href="'.DOL_URL_ROOT.'/projet/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
}
$morehtmlref = '<div class="refidno">';
// Title

View File

@ -294,7 +294,13 @@ if ($id > 0 || !empty($ref)) {
// Project card
$linkback = '<a href="'.DOL_URL_ROOT.'/projet/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
if (!empty($_SESSION['pageforbacktolist']) && !empty($_SESSION['pageforbacktolist']['project'])) {
$tmpurl = $_SESSION['pageforbacktolist']['project'];
$tmpurl = preg_replace('/__SOCID__/', $object->socid, $tmpurl);
$linkback = '<a href="'.$tmpurl.(preg_match('/\?/', $tmpurl) ? '&' : '?'). 'restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
} else {
$linkback = '<a href="'.DOL_URL_ROOT.'/projet/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
}
$morehtmlref = '<div class="refidno">';
// Title

View File

@ -131,7 +131,13 @@ if ($object->id > 0) {
// Project card
$linkback = '<a href="'.DOL_URL_ROOT.'/projet/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
if (!empty($_SESSION['pageforbacktolist']) && !empty($_SESSION['pageforbacktolist']['project'])) {
$tmpurl = $_SESSION['pageforbacktolist']['project'];
$tmpurl = preg_replace('/__SOCID__/', $object->socid, $tmpurl);
$linkback = '<a href="'.$tmpurl.(preg_match('/\?/', $tmpurl) ? '&' : '?'). 'restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
} else {
$linkback = '<a href="'.DOL_URL_ROOT.'/projet/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
}
$morehtmlref = '<div class="refidno">';
// Title

View File

@ -212,7 +212,13 @@ print dol_get_fiche_head($head, 'element', $langs->trans("Project"), -1, ($objec
// Project card
$linkback = '<a href="'.DOL_URL_ROOT.'/projet/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
if (!empty($_SESSION['pageforbacktolist']) && !empty($_SESSION['pageforbacktolist']['project'])) {
$tmpurl = $_SESSION['pageforbacktolist']['project'];
$tmpurl = preg_replace('/__SOCID__/', $object->socid, $tmpurl);
$linkback = '<a href="'.$tmpurl.(preg_match('/\?/', $tmpurl) ? '&' : '?'). 'restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
} else {
$linkback = '<a href="'.DOL_URL_ROOT.'/projet/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
}
$morehtmlref = '<div class="refidno">';
// Title

View File

@ -110,7 +110,13 @@ if (($id > 0 && is_numeric($id)) || !empty($ref)) {
// Project card
$linkback = '<a href="'.DOL_URL_ROOT.'/projet/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
if (!empty($_SESSION['pageforbacktolist']) && !empty($_SESSION['pageforbacktolist']['project'])) {
$tmpurl = $_SESSION['pageforbacktolist']['project'];
$tmpurl = preg_replace('/__SOCID__/', $object->socid, $tmpurl);
$linkback = '<a href="'.$tmpurl.(preg_match('/\?/', $tmpurl) ? '&' : '?'). 'restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
} else {
$linkback = '<a href="'.DOL_URL_ROOT.'/projet/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
}
$morehtmlref = '<div class="refidno">';
// Title

View File

@ -375,6 +375,8 @@ if (empty($reshook)) {
* View
*/
unset($_SESSION['pageforbacktolist']['project']);
$form = new Form($db);
$formcompany = new FormCompany($db);

View File

@ -126,7 +126,13 @@ print dol_get_fiche_head($head, 'agenda', $langs->trans("Project"), -1, ($object
// Project card
$linkback = '<a href="'.DOL_URL_ROOT.'/projet/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
if (!empty($_SESSION['pageforbacktolist']) && !empty($_SESSION['pageforbacktolist']['project'])) {
$tmpurl = $_SESSION['pageforbacktolist']['project'];
$tmpurl = preg_replace('/__SOCID__/', $object->socid, $tmpurl);
$linkback = '<a href="'.$tmpurl.(preg_match('/\?/', $tmpurl) ? '&' : '?'). 'restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
} else {
$linkback = '<a href="'.DOL_URL_ROOT.'/projet/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
}
$morehtmlref = '<div class="refidno">';
// Title

View File

@ -96,7 +96,13 @@ if ($id > 0 || !empty($ref)) {
// Project card
$linkback = '<a href="'.DOL_URL_ROOT.'/projet/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
if (!empty($_SESSION['pageforbacktolist']) && !empty($_SESSION['pageforbacktolist']['project'])) {
$tmpurl = $_SESSION['pageforbacktolist']['project'];
$tmpurl = preg_replace('/__SOCID__/', $object->socid, $tmpurl);
$linkback = '<a href="'.$tmpurl.(preg_match('/\?/', $tmpurl) ? '&' : '?'). 'restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
} else {
$linkback = '<a href="'.DOL_URL_ROOT.'/projet/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
}
$morehtmlref = '<div class="refidno">';
// Title

View File

@ -566,7 +566,13 @@ if ($id > 0 || !empty($ref)) {
// Project card
$linkback = '<a href="'.DOL_URL_ROOT.'/projet/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
if (!empty($_SESSION['pageforbacktolist']) && !empty($_SESSION['pageforbacktolist']['project'])) {
$tmpurl = $_SESSION['pageforbacktolist']['project'];
$tmpurl = preg_replace('/__SOCID__/', $object->socid, $tmpurl);
$linkback = '<a href="'.$tmpurl.(preg_match('/\?/', $tmpurl) ? '&' : '?'). 'restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
} else {
$linkback = '<a href="'.DOL_URL_ROOT.'/projet/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
}
$morehtmlref = '<div class="refidno">';
// Title

View File

@ -943,7 +943,13 @@ if (($id > 0 || !empty($ref)) || $projectidforalltimes > 0 || $allprojectforuser
// Project card
$linkback = '<a href="'.DOL_URL_ROOT.'/projet/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
if (!empty($_SESSION['pageforbacktolist']) && !empty($_SESSION['pageforbacktolist']['project'])) {
$tmpurl = $_SESSION['pageforbacktolist']['project'];
$tmpurl = preg_replace('/__SOCID__/', $projectstatic->socid, $tmpurl);
$linkback = '<a href="'.$tmpurl.(preg_match('/\?/', $tmpurl) ? '&' : '?'). 'restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
} else {
$linkback = '<a href="'.DOL_URL_ROOT.'/projet/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
}
$morehtmlref = '<div class="refidno">';
// Title

View File

@ -37,6 +37,8 @@ require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
// Load translation files required by the page
$langs->loadLangs(array('companies', 'projects'));
$action = GETPOST('action', 'aZ09');
// Security check
$socid = GETPOST('socid', 'int');
if ($user->socid) {
@ -47,6 +49,8 @@ $result = restrictedArea($user, 'societe', $socid, '&societe');
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
$hookmanager->initHooks(array('projectthirdparty'));
$object = new Societe($db);
/*
* Actions
@ -64,9 +68,7 @@ if ($reshook < 0) {
* View
*/
$contactstatic = new Contact($db);
$form = new Form($db);
unset($_SESSION['pageforbacktolist']['project']);
if ($socid) {
require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
@ -74,8 +76,6 @@ if ($socid) {
$langs->load("companies");
$object = new Societe($db);
$result = $object->fetch($socid);
$title = $langs->trans("Projects");