Fix: Le drag and drop des boites effacait la personnalisation des paramètres de config

This commit is contained in:
Laurent Destailleur 2006-11-12 16:57:50 +00:00
parent 2fc12bc192
commit d9df66c655

View File

@ -374,30 +374,43 @@ function dolibarr_del_const($db, $name)
\brief Sauvegarde parametrage personnel \brief Sauvegarde parametrage personnel
\param db Handler d'accès base \param db Handler d'accès base
\param user Objet utilisateur \param user Objet utilisateur
\param url Si defini, on sauve parametre du tableau tab dont clé = sortfield, sortorder, begin et page \param url Si defini, on sauve parametre du tableau tab dont clé = (url avec sortfield, sortorder, begin et page)
Si non defini on sauve tous parametres du tableau tab Si non defini on sauve tous parametres du tableau tab
\param tab Tableau (clé=>valeur) des paramètres à sauvegarder \param tab Tableau (clé=>valeur) des paramètres à sauvegarder
\return int <0 si ko, >0 si ok \return int <0 si ko, >0 si ok
*/ */
function dolibarr_set_user_page_param($db, &$user, $url='', $tab) function dolibarr_set_user_page_param($db, &$user, $url='', $tab)
{ {
// Verification parametres
if (sizeof($tab) < 1) return -1;
$db->begin(); $db->begin();
// On efface paramètres anciens // On efface anciens paramètres pour toutes les clé dans $tab
$sql = "DELETE FROM ".MAIN_DB_PREFIX."user_param"; $sql = "DELETE FROM ".MAIN_DB_PREFIX."user_param";
$sql.= " WHERE fk_user = ".$user->id; $sql.= " WHERE fk_user = ".$user->id;
if ($url) $sql.=" AND page='".$url."'"; if ($url) $sql.=" AND page='".$url."'";
else $sql.=" AND page=''"; else $sql.=" AND page=''"; // Page ne peut etre null
$sql.= " AND param in (";
$i=0;
foreach ($tab as $key => $value)
{
if ($i > 0) $sql.=',';
$sql.="'".$key."'";
$i++;
}
$sql.= ")";
dolibarr_syslog("functions.inc.php::dolibarr_set_user_page_param $sql"); dolibarr_syslog("functions.inc.php::dolibarr_set_user_page_param $sql");
$resql=$db->query($sql); $resql=$db->query($sql);
if (! $resql) if (! $resql)
{ {
dolibarr_print_error($db); dolibarr_print_error($db);
$db->rollback();
exit; exit;
} }
foreach ($tab as $key=>$value) foreach ($tab as $key => $value)
{ {
// On positionne nouveaux paramètres // On positionne nouveaux paramètres
if ($value && (! $url || in_array($key,array('sortfield','sortorder','begin','page')))) if ($value && (! $url || in_array($key,array('sortfield','sortorder','begin','page'))))
@ -409,7 +422,13 @@ function dolibarr_set_user_page_param($db, &$user, $url='', $tab)
$sql.= " '".$key."','".addslashes($value)."');"; $sql.= " '".$key."','".addslashes($value)."');";
dolibarr_syslog("functions.inc.php::dolibarr_set_user_page_param $sql"); dolibarr_syslog("functions.inc.php::dolibarr_set_user_page_param $sql");
$db->query($sql); $result=$db->query($sql);
if (! $result)
{
dolibarr_print_error($db);
$db->rollback();
exit;
}
$user->page_param[$key] = $value; $user->page_param[$key] = $value;
} }