Suite dev pour grer le drag and drop des boxes ainsi que liste des box propres a chaque user
This commit is contained in:
parent
245dea6f48
commit
67b6803078
110
htdocs/boxes.php
110
htdocs/boxes.php
@ -51,45 +51,87 @@ class InfoBox
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Retourne tableau des boites elligibles pour la zone
|
* \brief Retourne tableau des boites elligibles pour la zone et le user
|
||||||
* \param $zone ID de la zone (0 pour la Homepage, ...)
|
* \param $zone ID de la zone (0 pour la Homepage, ...)
|
||||||
|
* \param $user Objet user
|
||||||
* \return array Tableau d'objet box
|
* \return array Tableau d'objet box
|
||||||
*/
|
*/
|
||||||
function listBoxes($zone)
|
function listBoxes($zone,$user)
|
||||||
{
|
{
|
||||||
$boxes=array();
|
global $conf;
|
||||||
|
|
||||||
$sql = "SELECT b.rowid, b.box_id,";
|
$boxes=array();
|
||||||
$sql.= " d.file, d.note";
|
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."boxes as b, ".MAIN_DB_PREFIX."boxes_def as d";
|
|
||||||
$sql.= " WHERE b.box_id = d.rowid";
|
|
||||||
$sql.= " AND position = ".$zone;
|
|
||||||
$sql.= " ORDER BY box_order";
|
|
||||||
|
|
||||||
dolibarr_syslog("InfoBox::listBoxes sql=$sql");
|
|
||||||
|
|
||||||
$result = $this->db->query($sql);
|
|
||||||
if ($result)
|
|
||||||
{
|
|
||||||
$num = $this->db->num_rows($result);
|
|
||||||
$j = 0;
|
|
||||||
while ($j < $num)
|
|
||||||
{
|
|
||||||
$obj = $this->db->fetch_object($result);
|
|
||||||
$boxname=eregi_replace('.php$','',$obj->file);
|
|
||||||
|
|
||||||
include_once(DOL_DOCUMENT_ROOT."/includes/boxes/".$boxname.".php");
|
$confuserzone='MAIN_BOXES_'.$zone;
|
||||||
$box=new $boxname($this->db,$obj->note);
|
if ($user->id && $user->conf->$confuserzone)
|
||||||
$boxes[$j]=$box;
|
{
|
||||||
|
// Recupere liste des boites d'un user si ce dernier a sa propre liste
|
||||||
|
$sql = "SELECT b.rowid, b.box_id,";
|
||||||
|
$sql.= " d.file, d.note";
|
||||||
|
$sql.= " FROM ".MAIN_DB_PREFIX."boxes as b, ".MAIN_DB_PREFIX."boxes_def as d";
|
||||||
|
$sql.= " WHERE b.box_id = d.rowid";
|
||||||
|
$sql.= " AND b.position = ".$zone;
|
||||||
|
$sql.= " AND b.fk_user = ".$user->id;
|
||||||
|
$sql.= " ORDER BY b.box_order";
|
||||||
|
|
||||||
|
dolibarr_syslog("InfoBox::listBoxes sql=$sql");
|
||||||
|
$result = $this->db->query($sql);
|
||||||
|
if ($result)
|
||||||
|
{
|
||||||
|
$num = $this->db->num_rows($result);
|
||||||
|
$j = 0;
|
||||||
|
while ($j < $num)
|
||||||
|
{
|
||||||
|
$obj = $this->db->fetch_object($result);
|
||||||
|
$boxname=eregi_replace('\.php$','',$obj->file);
|
||||||
|
include_once(DOL_DOCUMENT_ROOT."/includes/boxes/".$boxname.".php");
|
||||||
|
$box=new $boxname($this->db,$obj->note);
|
||||||
|
$boxes[$j]=$box;
|
||||||
|
$j++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$this->error=$this->db->error();
|
||||||
|
dolibarr_syslog("InfoBox::listBoxes Error ".$this->error);
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Recupere liste des boites active par defaut pour tous
|
||||||
|
$sql = "SELECT b.rowid, b.box_id,";
|
||||||
|
$sql.= " d.file, d.note";
|
||||||
|
$sql.= " FROM ".MAIN_DB_PREFIX."boxes as b, ".MAIN_DB_PREFIX."boxes_def as d";
|
||||||
|
$sql.= " WHERE b.box_id = d.rowid";
|
||||||
|
$sql.= " AND b.position = ".$zone;
|
||||||
|
$sql.= " AND b.fk_user = 0";
|
||||||
|
$sql.= " ORDER BY b.box_order";
|
||||||
|
|
||||||
$j++;
|
dolibarr_syslog("InfoBox::listBoxes sql=$sql");
|
||||||
}
|
$result = $this->db->query($sql);
|
||||||
}
|
if ($result)
|
||||||
else {
|
{
|
||||||
return array();
|
$num = $this->db->num_rows($result);
|
||||||
}
|
$j = 0;
|
||||||
return $boxes;
|
while ($j < $num)
|
||||||
}
|
{
|
||||||
|
$obj = $this->db->fetch_object($result);
|
||||||
|
$boxname=eregi_replace('\.php$','',$obj->file);
|
||||||
|
include_once(DOL_DOCUMENT_ROOT."/includes/boxes/".$boxname.".php");
|
||||||
|
$box=new $boxname($this->db,$obj->note);
|
||||||
|
$boxes[$j]=$box;
|
||||||
|
$j++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$this->error=$this->db->error();
|
||||||
|
dolibarr_syslog("InfoBox::listBoxes Error ".$this->error);
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $boxes;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|||||||
@ -74,7 +74,14 @@ class box_external_rss extends ModeleBoxes {
|
|||||||
$site=$reg[1];
|
$site=$reg[1];
|
||||||
|
|
||||||
// Recupere flux RSS definie dans EXTERNAL_RSS_URLRSS_$site
|
// Recupere flux RSS definie dans EXTERNAL_RSS_URLRSS_$site
|
||||||
$rss = fetch_rss( @constant("EXTERNAL_RSS_URLRSS_".$site) );
|
$url=@constant("EXTERNAL_RSS_URLRSS_".$site);
|
||||||
|
$rss=fetch_rss($url);
|
||||||
|
if (! is_object($rss))
|
||||||
|
{
|
||||||
|
dolibarr_syslog("FETCH_RSS site=".$site);
|
||||||
|
dolibarr_syslog("FETCH_RSS url=".$url);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
// INFO sur le channel
|
// INFO sur le channel
|
||||||
$description=$rss->channel['tagline'];
|
$description=$rss->channel['tagline'];
|
||||||
@ -135,7 +142,6 @@ class box_external_rss extends ModeleBoxes {
|
|||||||
$this->info_box_contents[$i][1] = array('align' => 'right',
|
$this->info_box_contents[$i][1] = array('align' => 'right',
|
||||||
'text' => $date,
|
'text' => $date,
|
||||||
'td' => 'nowrap="1"');
|
'td' => 'nowrap="1"');
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -420,10 +420,18 @@ class DolibarrModules
|
|||||||
//$titre = $this->boxes[$key][0];
|
//$titre = $this->boxes[$key][0];
|
||||||
$file = $this->boxes[$key][1];
|
$file = $this->boxes[$key][1];
|
||||||
//$note = $this->boxes[$key][2];
|
//$note = $this->boxes[$key][2];
|
||||||
|
|
||||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes_def ";
|
$sql = "DELETE ".MAIN_DB_PREFIX."boxes";
|
||||||
$sql.= "WHERE file = '".$file."'";
|
$sql.= " FROM ".MAIN_DB_PREFIX."boxes, ".MAIN_DB_PREFIX."boxes_def";
|
||||||
if (! $this->db->query($sql) )
|
$sql.= " WHERE ".MAIN_DB_PREFIX."boxes.box_id = ".MAIN_DB_PREFIX."boxes_def.rowid";
|
||||||
|
$sql.= " AND ".MAIN_DB_PREFIX."boxes_def.file = '".$file."'";
|
||||||
|
dolibarr_syslog("DolibarrModules::delete_boxes sql=".$sql);
|
||||||
|
$this->db->query($sql);
|
||||||
|
|
||||||
|
$sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes_def";
|
||||||
|
$sql.= " WHERE file = '".$file."'";
|
||||||
|
dolibarr_syslog("DolibarrModules::delete_boxes sql=".$sql);
|
||||||
|
if (! $this->db->query($sql))
|
||||||
{
|
{
|
||||||
$err++;
|
$err++;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,13 +27,21 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
require("./pre.inc.php");
|
require("./pre.inc.php");
|
||||||
|
require_once(DOL_DOCUMENT_ROOT."/boxes.php");
|
||||||
|
|
||||||
$user->getrights('');
|
$user->getrights('');
|
||||||
|
|
||||||
|
|
||||||
// Simule le menu par défaut sur Home
|
// Simule le menu par défaut sur Home
|
||||||
if (! isset($_GET["mainmenu"])) $_GET["mainmenu"]="home";
|
if (! isset($_GET["mainmenu"])) $_GET["mainmenu"]="home";
|
||||||
|
|
||||||
|
$infobox=new InfoBox($db);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Affichage page
|
||||||
|
*/
|
||||||
|
|
||||||
llxHeader();
|
llxHeader();
|
||||||
|
|
||||||
@ -480,11 +488,17 @@ print '</td></tr></table>';
|
|||||||
* Affichage des boites
|
* Affichage des boites
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
include_once("./boxes.php");
|
$boxarray=$infobox->listboxes("0",$user); // 0=valeur pour la page accueil
|
||||||
$infobox=new InfoBox($db);
|
|
||||||
$boxarray=$infobox->listboxes("0"); // 0 = valeur pour la page accueil
|
|
||||||
$boxjavascriptids=array();
|
$boxjavascriptids=array();
|
||||||
|
|
||||||
|
if (eregi('boxobject_([0-9]+)',$_GET["switchfrom"],$regfrom)
|
||||||
|
&& eregi('boxto_([0-9]+)',$_GET["switchto"],$regto))
|
||||||
|
{
|
||||||
|
//print "Modif ordre box: ".$regfrom[1]." <-> ".$regto[1];
|
||||||
|
// print_r($boxarray);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$NBCOLS=2; // Nombre de colonnes pour les boites
|
$NBCOLS=2; // Nombre de colonnes pour les boites
|
||||||
|
|
||||||
if (sizeof($boxarray))
|
if (sizeof($boxarray))
|
||||||
@ -492,42 +506,40 @@ if (sizeof($boxarray))
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
print_fiche_titre($langs->trans("OtherInformationsBoxes"));
|
print_fiche_titre($langs->trans("OtherInformationsBoxes"));
|
||||||
print '<table width="100%" class="notopnoleftnoright">';
|
print '<table width="100%" class="notopnoleftnoright">';
|
||||||
}
|
for ($ii=0, $ni=sizeof($boxarray); $ii < $ni; $ii++)
|
||||||
for ($ii=0, $ni=sizeof($boxarray); $ii<$ni; $ii++)
|
{
|
||||||
{
|
$boxjavascriptids[$ii]='"box_'.$ii.'"';
|
||||||
$boxjavascriptids[$ii]='"box_'.$ii.'"';
|
|
||||||
|
if ($ii % $NBCOLS == 0) print "<tr>\n";
|
||||||
|
print '<td valign="top" width="50%">';
|
||||||
|
print '<div id="boxto_'.$ii.'">';
|
||||||
|
|
||||||
|
if ($conf->use_ajax && $conf->browser->firefox)
|
||||||
|
{
|
||||||
|
print '<ul class="nocellnopadd" height="100px" id="box_'.$ii.'">';
|
||||||
|
print '<li class="nocellnopadd" height="100px">';
|
||||||
|
}
|
||||||
|
// Affichage boite ii
|
||||||
|
$box=$boxarray[$ii];
|
||||||
|
$box->loadBox();
|
||||||
|
$box->boxid="$ii";
|
||||||
|
$box->showBox();
|
||||||
|
if ($conf->use_ajax && $conf->browser->firefox)
|
||||||
|
{
|
||||||
|
print '</li>';
|
||||||
|
print '</ul>';
|
||||||
|
}
|
||||||
|
|
||||||
|
print '</div>';
|
||||||
|
print "</td>";
|
||||||
|
if ($ii % $NBCOLS == ($NBCOLS-1)) print "</tr>\n";
|
||||||
|
}
|
||||||
|
|
||||||
if ($ii % $NBCOLS == 0) print "<tr>\n";
|
|
||||||
print '<td valign="top" width="50%">';
|
|
||||||
print '<div id="boxto_'.$ii.'">';
|
|
||||||
|
|
||||||
if ($conf->use_ajax && $conf->browser->firefox)
|
|
||||||
{
|
|
||||||
print '<ul class="nocellnopadd" height="100px" id="box_'.$ii.'">';
|
|
||||||
print '<li class="nocellnopadd" height="100px">';
|
|
||||||
}
|
|
||||||
// Affichage boite ii
|
|
||||||
$box=$boxarray[$ii];
|
|
||||||
$box->loadBox();
|
|
||||||
$box->boxid="$ii";
|
|
||||||
$box->showBox();
|
|
||||||
if ($conf->use_ajax && $conf->browser->firefox)
|
|
||||||
{
|
|
||||||
print '</li>';
|
|
||||||
print '</ul>';
|
|
||||||
}
|
|
||||||
|
|
||||||
print '</div>';
|
|
||||||
print "</td>";
|
|
||||||
if ($ii % $NBCOLS == ($NBCOLS-1)) print "</tr>\n";
|
|
||||||
}
|
|
||||||
if (sizeof($boxarray))
|
|
||||||
{
|
|
||||||
if ($ii % $NBCOLS == ($NBCOLS-1)) print "</tr>\n";
|
if ($ii % $NBCOLS == ($NBCOLS-1)) print "</tr>\n";
|
||||||
print "</table>";
|
print "</table>";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($conf->use_ajax && $conf->browser->firefox && 1==2)
|
if ($conf->use_ajax && $conf->browser->firefox && $conf->global->MAIN_SHOW_DEVELOPMENT_MODULES)
|
||||||
{
|
{
|
||||||
print '<script type="text/javascript" language="javascript">'."\n";
|
print '<script type="text/javascript" language="javascript">'."\n";
|
||||||
for ($ii=0, $ni=sizeof($boxarray); $ii < $ni; $ii++)
|
for ($ii=0, $ni=sizeof($boxarray); $ii < $ni; $ii++)
|
||||||
@ -543,7 +555,8 @@ if ($conf->use_ajax && $conf->browser->firefox && 1==2)
|
|||||||
print ");\n";
|
print ");\n";
|
||||||
*/
|
*/
|
||||||
print 'new Draggable(\'boxobject_'.$ii.'\', {revert:false});'."\n";
|
print 'new Draggable(\'boxobject_'.$ii.'\', {revert:false});'."\n";
|
||||||
print 'Droppables.add(\'boxto_'.$ii.'\', {onDrop:function(element,dropon){alert(\'From: \' + encodeURIComponent(element.id) + \' - To: \' + encodeURIComponent(dropon.id))}});'."\n";
|
//print 'Droppables.add(\'boxto_'.$ii.'\', {onDrop:function(element,dropon){alert(\'From: \' + encodeURIComponent(element.id) + \' - To: \' + encodeURIComponent(dropon.id))}});'."\n";
|
||||||
|
print 'Droppables.add(\'boxto_'.$ii.'\', {onDrop:function(element,dropon){ window.location.href=\''.$_SERVER["PHP_SELF"].'?switchfrom=\'+encodeURIComponent(element.id)+\'&switchto=\'+encodeURIComponent(dropon.id); }});'."\n";
|
||||||
//print 'Droppables.add(\'box_'.$ii.'\', {onDrop:function(element,dropon){alert(\'w/o hoverclass, should be:\' + encodeURIComponent(element.id) )}});'."\n";
|
//print 'Droppables.add(\'box_'.$ii.'\', {onDrop:function(element,dropon){alert(\'w/o hoverclass, should be:\' + encodeURIComponent(element.id) )}});'."\n";
|
||||||
}
|
}
|
||||||
print '</script>'."\n";
|
print '</script>'."\n";
|
||||||
|
|||||||
@ -478,6 +478,9 @@ alter table llx_facturedet_rec add column total_tva real;
|
|||||||
alter table llx_facturedet_rec add column total_ttc real;
|
alter table llx_facturedet_rec add column total_ttc real;
|
||||||
|
|
||||||
|
|
||||||
|
update llx_boxes set fk_user = 0 where fk_user IS NULL;
|
||||||
|
ALTER TABLE llx_boxes modify fk_user integer default 0 NOT NULL;
|
||||||
|
|
||||||
-- Supprimme orphelins pour permettre montée de la clé
|
-- Supprimme orphelins pour permettre montée de la clé
|
||||||
-- V4 DELETE llx_boxes FROM llx_boxes LEFT JOIN llx_boxes_def ON llx_boxes.box_id = llx_boxes_def.rowid WHERE llx_boxes_def.rowid IS NULL;
|
-- V4 DELETE llx_boxes FROM llx_boxes LEFT JOIN llx_boxes_def ON llx_boxes.box_id = llx_boxes_def.rowid WHERE llx_boxes_def.rowid IS NULL;
|
||||||
|
|
||||||
@ -485,3 +488,4 @@ ALTER TABLE llx_boxes ADD INDEX idx_boxes_boxid (box_id);
|
|||||||
-- V4 ALTER TABLE llx_boxes ADD CONSTRAINT fk_boxes_box_id FOREIGN KEY (box_id) REFERENCES llx_boxes_def (rowid);
|
-- V4 ALTER TABLE llx_boxes ADD CONSTRAINT fk_boxes_box_id FOREIGN KEY (box_id) REFERENCES llx_boxes_def (rowid);
|
||||||
|
|
||||||
ALTER TABLE llx_boxes ADD INDEX idx_boxes_fk_user (fk_user);
|
ALTER TABLE llx_boxes ADD INDEX idx_boxes_fk_user (fk_user);
|
||||||
|
|
||||||
|
|||||||
@ -24,6 +24,6 @@
|
|||||||
-- V4 DELETE llx_boxes FROM llx_boxes LEFT JOIN llx_boxes_def ON llx_boxes.box_id = llx_boxes_def.rowid WHERE llx_boxes_def.rowid IS NULL;
|
-- V4 DELETE llx_boxes FROM llx_boxes LEFT JOIN llx_boxes_def ON llx_boxes.box_id = llx_boxes_def.rowid WHERE llx_boxes_def.rowid IS NULL;
|
||||||
|
|
||||||
ALTER TABLE llx_boxes ADD INDEX idx_boxes_boxid (box_id);
|
ALTER TABLE llx_boxes ADD INDEX idx_boxes_boxid (box_id);
|
||||||
-- V4 ALTER TABLE llx_boxes ADD CONSTRAINT fk_boxes_box_id FOREIGN KEY (box_id) REFERENCES llx_boxes_def (rowid);
|
ALTER TABLE llx_boxes ADD CONSTRAINT fk_boxes_box_id FOREIGN KEY (box_id) REFERENCES llx_boxes_def (rowid);
|
||||||
|
|
||||||
ALTER TABLE llx_boxes ADD INDEX idx_boxes_fk_user (fk_user);
|
ALTER TABLE llx_boxes ADD INDEX idx_boxes_fk_user (fk_user);
|
||||||
@ -30,5 +30,5 @@ create table llx_boxes
|
|||||||
box_id integer NOT NULL,
|
box_id integer NOT NULL,
|
||||||
position smallint NOT NULL,
|
position smallint NOT NULL,
|
||||||
box_order smallint default 0 NOT NULL,
|
box_order smallint default 0 NOT NULL,
|
||||||
fk_user integer
|
fk_user integer default 0
|
||||||
)type=innodb;
|
)type=innodb;
|
||||||
|
|||||||
@ -24,4 +24,4 @@
|
|||||||
-- V4 DELETE llx_commandedet FROM llx_commandedet LEFT JOIN llx_commande ON llx_commandedet.fk_commande = llx_commande.rowid WHERE llx_commande.rowid IS NULL;
|
-- V4 DELETE llx_commandedet FROM llx_commandedet LEFT JOIN llx_commande ON llx_commandedet.fk_commande = llx_commande.rowid WHERE llx_commande.rowid IS NULL;
|
||||||
|
|
||||||
ALTER TABLE llx_commandedet ADD INDEX idx_commandedet_fk_commande (fk_commande);
|
ALTER TABLE llx_commandedet ADD INDEX idx_commandedet_fk_commande (fk_commande);
|
||||||
ALTER TABLE llx_commandedet ADD CONSTRAINT fk_commandedet_fk_commande FOREIGN KEY (fk_commande) REFERENCES llx_commande (rowid);
|
-- V4 ALTER TABLE llx_commandedet ADD CONSTRAINT fk_commandedet_fk_commande FOREIGN KEY (fk_commande) REFERENCES llx_commande (rowid);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user