diff --git a/htdocs/ajaxbox.php b/htdocs/ajaxbox.php
new file mode 100644
index 00000000000..12b6adfde73
--- /dev/null
+++ b/htdocs/ajaxbox.php
@@ -0,0 +1,46 @@
+
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * $Id$
+ * $Source$
+ */
+
+/**
+ \file htdocs/ajaxbox.php
+ \brief Fichier de reponse sur evenement Ajax
+ \version $Revision$
+*/
+
+require('master.inc.php');
+require_once(DOL_DOCUMENT_ROOT."/boxes.php");
+
+// Enregistrement de la position des boxes
+if((isset($_GET['boxorder']) && !empty($_GET['boxorder'])) && (isset($_GET['boxid']) && !empty($_GET['boxid'])) && (isset($_GET['userid']) && !empty($_GET['userid'])))
+{
+ $infobox=new InfoBox($db);
+
+ dolibarr_syslog("InfoBox::Ajax.Request list=".$_GET['boxorder']." boxid=".$_GET['boxid']." userid=".$_GET['userid'], LOG_DEBUG);
+
+ $boxid = explode(',',$_GET['boxid']);
+ $boxorder = explode(',',$_GET['boxorder']);
+
+ $infobox->saveboxorder("0",$boxid,$boxorder,$_GET['userid']);
+
+}
+
+
+?>
diff --git a/htdocs/boxes.php b/htdocs/boxes.php
index 8726fe8e324..86b3c58efab 100644
--- a/htdocs/boxes.php
+++ b/htdocs/boxes.php
@@ -147,18 +147,21 @@ class InfoBox
/**
* \brief Sauvegarde sequencement des boites pour la zone et le user
* \param $zone ID de la zone (0 pour la Homepage, ...)
- * \param $boxarray Tableau des boites dans le bon ordre
- * \param $user Objet user
- * \return int <0 si ko, >= 0 si ok
+ * \param $boxid Id des boites
+ * \param $boxorder Liste des boites dans le bon ordre
+ * \param $userid Id du user
+ * \return int <0 si ko, >= 0 si ok
*/
- function saveboxorder($zone,$boxarray,$user)
+ function saveboxorder($zone,$boxid,$boxorder,$userid=0)
{
- dolibarr_syslog("InfoBoxes::saveboxorder zone=".$zone." user=".$user->id);
+ dolibarr_syslog("InfoBoxes::saveboxorder zone=".$zone." user=".$userid);
- if (! is_object($user) || ! $user->id) return 0;
+ if (! $userid || $userid == 0) return 0;
+
+ $user = new User($this->db,$userid);
$this->db->begin();
-
+
// Sauve parametre indiquant que le user a une
$confuserzone='MAIN_BOXES_'.$zone;
$tab[$confuserzone]=1;
@@ -170,24 +173,22 @@ class InfoBox
}
$sql ="DELETE FROM ".MAIN_DB_PREFIX."boxes";
- $sql.=" WHERE fk_user = ".$user->id;
+ $sql.=" WHERE fk_user = ".$userid;
$sql.=" AND position = ".$zone;
$result = $this->db->query($sql);
if ($result)
{
- for ($ii=0, $ni=sizeof($boxarray); $ii < $ni; $ii++)
+ for ($ii=0, $ni=sizeof($boxid); $ii < $ni; $ii++)
{
- //print "box_id".$boxarray[$ii]->box_id.'
';
- //print "box_order".$boxarray[$ii]->box_order.'
';
- $sql = "INSERT INTO ".MAIN_DB_PREFIX."boxes";
- $sql.= "(box_id, position, box_order, fk_user)";
- $sql.= " values (";
- $sql.= " ".$boxarray[$ii]->box_id.",";
- $sql.= " ".$zone.",";
- $sql.= " ".$boxarray[$ii]->box_order.",";
- $sql.= " ".$user->id;
- $sql.= ")";
- $result = $this->db->query($sql);
+ $sql = "INSERT INTO ".MAIN_DB_PREFIX."boxes";
+ $sql.= "(box_id, position, box_order, fk_user)";
+ $sql.= " values (";
+ $sql.= " ".$boxid[$ii].",";
+ $sql.= " ".$zone.",";
+ $sql.= " ".$boxorder[$ii].",";
+ $sql.= " ".$userid;
+ $sql.= ")";
+ $result = $this->db->query($sql);
if ($result < 0)
{
$error++;
diff --git a/htdocs/index.php b/htdocs/index.php
index a11c06db02a..92f9da443ae 100644
--- a/htdocs/index.php
+++ b/htdocs/index.php
@@ -539,109 +539,100 @@ print '';
*
*/
$boxarray=$infobox->listboxes("0",$user); // 0=valeur pour la page accueil
-$boxjavascriptids=array();
-//print_r($boxarray);
-
-// Gestion deplacement des boxes
-if (eregi('boxobject_([0-9]+)',$_GET["switchfrom"],$regfrom)
- && eregi('boxto_([0-9]+)',$_GET["switchto"],$regto))
-{
- /*
- print "Modif ordre box: ";
- print $boxarray[$regfrom[1]]->box_id."(".$boxarray[$regfrom[1]]->box_order.")";
- print " <-> ";
- print $boxarray[$regto[1]]->box_id."(".$boxarray[$regto[1]]->box_order.")";
- print "
\n";
- */
-
- // Permutation boites
- $switchii=$boxarray[$regto[1]];
- $boxarray[$regto[1]]=$boxarray[$regfrom[1]];
- $boxarray[$regfrom[1]]=$switchii;
-
- // Permutation box_order
- $switchbox_order=$boxarray[$regto[1]]->box_order;
- $boxarray[$regto[1]]->box_order=$boxarray[$regfrom[1]]->box_order;
- $boxarray[$regfrom[1]]->box_order=$switchbox_order;
-
- /*
- print "Modif ordre box: ";
- print $boxarray[$regfrom[1]]->box_id."(".$boxarray[$regfrom[1]]->box_order.")";
- print " <-> ";
- print $boxarray[$regto[1]]->box_id."(".$boxarray[$regto[1]]->box_order.")";
- print "
\n";
- */
-
- // Sauvegarde nouvel ordre pour l'utilisateur
- $result=$infobox->saveboxorder("0",$boxarray,$user);
- if ($result < 0)
- {
- dolibarr_print_error($db,$infobox->error);
- }
-}
-
-
-$NBCOLS=2; // Nombre de colonnes pour les boites
if (sizeof($boxarray))
{
print '
';
print_fiche_titre($langs->trans("OtherInformationsBoxes"));
print '
| '."\n"; + + $box_id = Array(); + + // Création de la liste des id for ($ii=0, $ni=sizeof($boxarray); $ii < $ni; $ii++) { - $boxjavascriptids[$ii]='"box_'.$ii.'"'; - - if ($ii % $NBCOLS == 0) print " |
| ';
- print ' ';
+ //print 'box_id '.$boxarray[$ii]->box_id.' ';
+ //print 'box_order '.$boxarray[$ii]->box_order.' ';
- print "'; - if ($conf->use_ajax && $conf->browser->firefox) - { - print '
| ";
- if ($ii % $NBCOLS == ($NBCOLS-1)) print "