Fix: Si toutes les box ont été mise du meme coté on peut a nouveau en remettre de l'autre coté.

Qual: Simplification du code de gestion des boxes.
This commit is contained in:
Laurent Destailleur 2007-12-02 14:40:41 +00:00
parent 7ee0aaa41c
commit 13dfe98e34
5 changed files with 154 additions and 116 deletions

View File

@ -38,6 +38,7 @@ class box_factures_fourn extends ModeleBoxes {
var $db; var $db;
var $param; var $param;
var $textnohtmlencoded=true;
var $info_box_head = array(); var $info_box_head = array();
var $info_box_contents = array(); var $info_box_contents = array();
@ -50,7 +51,7 @@ class box_factures_fourn extends ModeleBoxes {
global $langs; global $langs;
$langs->load("boxes"); $langs->load("boxes");
$this->boxlabel=$langs->trans("BoxLastSupplierBills"); $this->boxlabel=$langs->transnoentities("BoxLastSupplierBills");
} }
/** /**
@ -65,7 +66,7 @@ class box_factures_fourn extends ModeleBoxes {
$facturestatic=new FactureFournisseur($db); $facturestatic=new FactureFournisseur($db);
$this->info_box_head = array( $this->info_box_head = array(
'text' => $langs->trans("BoxTitleLastSupplierBills",$max), 'text' => $langs->transnoentities("BoxTitleLastSupplierBills",$max),
); );
if ($user->rights->fournisseur->facture->lire) if ($user->rights->fournisseur->facture->lire)
@ -89,7 +90,7 @@ class box_factures_fourn extends ModeleBoxes {
if ($result) if ($result)
{ {
$num = $db->num_rows(); $num = $db->num_rows($result);
$i = 0; $i = 0;
@ -124,7 +125,7 @@ class box_factures_fourn extends ModeleBoxes {
} }
else { else {
$this->info_box_contents[0][0] = array('align' => 'left', $this->info_box_contents[0][0] = array('align' => 'left',
'text' => $langs->trans("ReadPermissionNotAllowed")); 'text' => $langs->transnoentities("ReadPermissionNotAllowed"));
} }
} }

View File

@ -38,7 +38,7 @@ class ModeleBoxes
var $db; var $db;
var $error=''; var $error='';
var $textnohtmlencoded=false;
/* /*
* \brief Constructeur * \brief Constructeur
@ -105,123 +105,138 @@ class ModeleBoxes
$bcx[0] = 'class="box_pair"'; $bcx[0] = 'class="box_pair"';
$bcx[1] = 'class="box_impair"'; $bcx[1] = 'class="box_impair"';
$var = true; $var = true;
// Define nbcol and nblines
$nbcol=0; $nbcol=0;
if (isset($contents[0])) $nbcol=sizeof($contents[0])+1; if (isset($contents[0])) $nbcol=sizeof($contents[0])+1;
$nblines=sizeof($contents); $nblines=sizeof($contents);
print "\n\n<!-- Box start -->\n"; print "\n\n<!-- Box start -->\n";
print '<table width="100%" class="noborder"'; print '<div style="padding-right: 2px; padding-left: 2px; padding-bottom: 4px;" id="boxto_'.$this->box_id.'">'."\n";
if (isset($this->box_id)) print ' id="boxobject_'.$this->box_id.'"';
print '>';
// Affiche titre de la boite // Affiche titre de la boite
print '<tr class="box_titre">'; if (! empty($head['text']) || ! empty($head['sublink']))
print '<td';
if ($nbcol > 0) { print ' colspan="'.$nbcol.'"'; }
print '>';
if ($conf->use_ajax)
{ {
print '<table class="nobordernopadding" width="100%"><tr><td align="left">'; print '<div id="boxto_'.$this->box_id.'_title">'."\n";
print '<table width="100%" class="noborder">'."\n";
print '<tr class="box_titre">';
print '<td';
if ($nbcol > 0) { print ' colspan="'.$nbcol.'"'; }
print '>';
if ($conf->use_ajax)
{
print '<table class="nobordernopadding" width="100%"><tr><td align="left">';
}
if (! empty($head['text']))
{
$s=dolibarr_trunc($head['text'],isset($head['limit'])?$head['limit']:$this->MAXLENGTHBOX);
if ($this->textnohtmlencoded) print htmlentities($s);
else print $s;
}
if (! empty($head['sublink']))
{
print ' <a href="'.$head['sublink'].'" target="_new">'.img_picto($head['subtext'],$head['subpicto']).'</a>';
}
if ($conf->use_ajax)
{
print '</td><td class="nocellnopadd" width="14">';
print img_picto($langs->trans("MoveBox",$this->box_id),'uparrow','style="cursor:move;"');
print '</td></tr></table>';
}
print '</td>';
print "</tr>\n";
print "</table>\n";
print "</div>\n";
} }
if (isset($head['text'])) print dolibarr_trunc($head['text'],isset($head['limit'])?$head['limit']:$this->MAXLENGTHBOX);
if (isset($head['sublink']) && $head['sublink'])
{
print ' <a href="'.$head['sublink'].'" target="_new">'.img_picto($head['subtext'],$head['subpicto']).'</a>';
}
if ($conf->use_ajax)
{
print '</td><td class="nocellnopadd" width="14">';
print img_picto($langs->trans("Move"),'uparrow','style="cursor:move;"');
print '</td></tr></table>';
}
print '</td>';
print '</tr>';
// Affiche chaque ligne de la boite // Affiche chaque ligne de la boite
for ($i=0, $n=$nblines; $i < $n; $i++) if ($nblines)
{ {
if (isset($contents[$i])) print '<table width="100%" class="noborder">'."\n";
{ for ($i=0, $n=$nblines; $i < $n; $i++)
$var=!$var; {
if (sizeof($contents[$i])) if (isset($contents[$i]))
{ {
if (isset($contents[$i][-1]['class'])) print '<tr valign="top" class="'.$contents[$i][-1]['class'].'">'; $var=!$var;
else print '<tr valign="top" '.$bcx[$var].'>'; if (sizeof($contents[$i]))
} {
if (isset($contents[$i][-1]['class'])) print '<tr valign="top" class="'.$contents[$i][-1]['class'].'">';
else print '<tr valign="top" '.$bcx[$var].'>';
}
// Affiche chaque cellule // Affiche chaque cellule
for ($j=0, $m=isset($contents[$i][-1])?sizeof($contents[$i])-1:sizeof($contents[$i]); $j < $m; $j++) for ($j=0, $m=isset($contents[$i][-1])?sizeof($contents[$i])-1:sizeof($contents[$i]); $j < $m; $j++)
{ {
$tdparam=""; $tdparam="";
if (isset($contents[$i][$j]['align'])) $tdparam.=' align="'. $contents[$i][$j]['align'].'"'; if (isset($contents[$i][$j]['align'])) $tdparam.=' align="'. $contents[$i][$j]['align'].'"';
if (isset($contents[$i][$j]['nowrap'])) $tdparam.=' nowrap="'. $contents[$i][$j]['align'].'"'; if (isset($contents[$i][$j]['nowrap'])) $tdparam.=' nowrap="'. $contents[$i][$j]['align'].'"';
if (isset($contents[$i][$j]['width'])) $tdparam.=' width="'. $contents[$i][$j]['width'].'"'; if (isset($contents[$i][$j]['width'])) $tdparam.=' width="'. $contents[$i][$j]['width'].'"';
if (isset($contents[$i][$j]['colspan'])) $tdparam.=' colspan="'. $contents[$i][$j]['colspan'].'"'; if (isset($contents[$i][$j]['colspan'])) $tdparam.=' colspan="'. $contents[$i][$j]['colspan'].'"';
if (isset($contents[$i][$j]['class'])) $tdparam.=' class="'. $contents[$i][$j]['class'].'"'; if (isset($contents[$i][$j]['class'])) $tdparam.=' class="'. $contents[$i][$j]['class'].'"';
if (isset($contents[$i][$j]['td'])) $tdparam.=' '.$contents[$i][$j]['td']; if (isset($contents[$i][$j]['td'])) $tdparam.=' '.$contents[$i][$j]['td'];
if (!$contents[$i][$j]['text']) $contents[$i][$j]['text']=""; if (!$contents[$i][$j]['text']) $contents[$i][$j]['text']="";
$texte=isset($contents[$i][$j]['text'])?$contents[$i][$j]['text']:''; $texte=isset($contents[$i][$j]['text'])?$contents[$i][$j]['text']:'';
$textewithnotags=eregi_replace('<[^>]+>','',$texte); $textewithnotags=eregi_replace('<[^>]+>','',$texte);
$texte2=isset($contents[$i][$j]['text2'])?$contents[$i][$j]['text2']:''; $texte2=isset($contents[$i][$j]['text2'])?$contents[$i][$j]['text2']:'';
$texte2withnotags=eregi_replace('<[^>]+>','',$texte2); $texte2withnotags=eregi_replace('<[^>]+>','',$texte2);
//print "xxx $textewithnotags y"; //print "xxx $textewithnotags y";
if (isset($contents[$i][$j]['logo']) && $contents[$i][$j]['logo']) print '<td width="16">'; if (isset($contents[$i][$j]['logo']) && $contents[$i][$j]['logo']) print '<td width="16">';
else print '<td '.$tdparam.'>'; else print '<td '.$tdparam.'>';
// Picto // Picto
if (isset($contents[$i][$j]['url'])) { if (isset($contents[$i][$j]['url'])) {
print '<a href="'.$contents[$i][$j]['url'].'" title="'.$textewithnotags.'"'; print '<a href="'.$contents[$i][$j]['url'].'" title="'.$textewithnotags.'"';
//print ' alt="'.$textewithnotags.'"'; // Pas de alt sur un "<a href>" //print ' alt="'.$textewithnotags.'"'; // Pas de alt sur un "<a href>"
print isset($contents[$i][$j]['target'])?' target="'.$contents[$i][$j]['target'].'"':''; print isset($contents[$i][$j]['target'])?' target="'.$contents[$i][$j]['target'].'"':'';
print '>'; print '>';
} }
// Texte // Texte
if (isset($contents[$i][$j]['logo']) && $contents[$i][$j]['logo']) if (isset($contents[$i][$j]['logo']) && $contents[$i][$j]['logo'])
{ {
$logo=eregi_replace("^object_","",$contents[$i][$j]['logo']); $logo=eregi_replace("^object_","",$contents[$i][$j]['logo']);
print img_object($langs->trans("Show"),$logo); print img_object($langs->trans("Show"),$logo);
if (isset($contents[$i][$j]['url'])) print '</a>'; if (isset($contents[$i][$j]['url'])) print '</a>';
print '</td><td '.$tdparam.'>'; print '</td><td '.$tdparam.'>';
if (isset($contents[$i][$j]['url'])) if (isset($contents[$i][$j]['url']))
{ {
print '<a href="'.$contents[$i][$j]['url'].'" title="'.$textewithnotags.'"'; print '<a href="'.$contents[$i][$j]['url'].'" title="'.$textewithnotags.'"';
//print ' alt="'.$textewithnotags.'"'; // Pas de alt sur un "<a href>" //print ' alt="'.$textewithnotags.'"'; // Pas de alt sur un "<a href>"
print isset($contents[$i][$j]['target'])?' target="'.$contents[$i][$j]['target'].'"':''; print isset($contents[$i][$j]['target'])?' target="'.$contents[$i][$j]['target'].'"':'';
print '>'; print '>';
} }
} }
$maxlength=$this->MAXLENGTHBOX; $maxlength=$this->MAXLENGTHBOX;
if (isset($contents[$i][$j]['maxlength'])) $maxlength=$contents[$i][$j]['maxlength']; if (isset($contents[$i][$j]['maxlength'])) $maxlength=$contents[$i][$j]['maxlength'];
if ($maxlength && strlen($textewithnotags) > $maxlength) if ($maxlength && strlen($textewithnotags) > $maxlength)
{ {
$texte=substr($texte,0,$maxlength)."..."; $texte=substr($texte,0,$maxlength)."...";
} }
if ($maxlength && strlen($texte2withnotags) > $maxlength) if ($maxlength && strlen($texte2withnotags) > $maxlength)
{ {
$texte2=substr($texte2,0,$maxlength)."..."; $texte2=substr($texte2,0,$maxlength)."...";
} }
print $texte; print $texte;
if (isset($contents[$i][$j]['url'])) print '</a>'; if (isset($contents[$i][$j]['url'])) print '</a>';
print $texte2; print $texte2;
print "</td>"; print "</td>";
} }
if (sizeof($contents[$i])) print '</tr>'; if (sizeof($contents[$i])) print "</tr>\n";
} }
} }
print "</table>\n";
}
print "</table>"; // If invisible box with no contents
if (empty($head['text']) && empty($head['sublink']) && ! $nblines) print "<br><br>\n";
print "\n<!-- Box end -->\n\n";
print "</div>\n";
print "<!-- Box end -->\n\n";
} }
} }

View File

@ -550,7 +550,8 @@ if (sizeof($boxarray))
print '<td>'."\n"; print '<td>'."\n";
// Affichage colonne gauche // Affichage colonne gauche
print '<div id="left" style="width: 50%; padding: 0px; margin: 0px; float: left;">'."\n"; print "\n<!-- Box container -->\n";
print '<div id="left" style="position: absolute; display: block; width: 50%; padding: 0px; margin: 0px; float: left;">'."\n";
$ii=0; $ii=0;
foreach ($boxarray as $key => $box) foreach ($boxarray as $key => $box)
{ {
@ -558,21 +559,31 @@ if (sizeof($boxarray))
if (eregi('^A',$box->box_order)) // colonne A if (eregi('^A',$box->box_order)) // colonne A
{ {
$ii++; $ii++;
print '<div style="padding-right: 2px; padding-left: 2px; padding-bottom: 4px;" id="boxto_'.$box->box_id.'">';
//print 'box_id '.$boxarray[$ii]->box_id.' '; //print 'box_id '.$boxarray[$ii]->box_id.' ';
//print 'box_order '.$boxarray[$ii]->box_order.'<br>'; //print 'box_order '.$boxarray[$ii]->box_order.'<br>';
$boxid_left[$key] = $boxarray[$key]->box_id; $boxid_left[$key] = $boxarray[$key]->box_id;
// Affichage boite key // Affichage boite key
$box->loadBox(); $box->loadBox();
$box->showBox(); $box->showBox();
print '</div>';
} }
} }
print '</div>';
// If no box on left, we show add an invisible empty box
if (! $ii)
{
$box->box_id='A';
$box->info_box_head=array();
$box->info_box_contents=array();
$box->showBox();
}
print "</div>\n";
print "<!-- End box container -->\n";
print "\n"; print "\n";
// Affichage colonne droite // Affichage colonne droite
print "\n<!-- Box container -->\n";
// print '<div id="right" style="position: absolute; display: block; width: 50%; padding: 0px; margin: 0px; float: right;">'."\n";
print '<div id="right" style="width: 50%; padding: 0px; margin: 0px; float: right;">'."\n"; print '<div id="right" style="width: 50%; padding: 0px; margin: 0px; float: right;">'."\n";
$ii=0; $ii=0;
foreach ($boxarray as $key => $box) foreach ($boxarray as $key => $box)
@ -580,26 +591,35 @@ if (sizeof($boxarray))
if (eregi('^B',$box->box_order)) // colonne B if (eregi('^B',$box->box_order)) // colonne B
{ {
$ii++; $ii++;
print '<div style="padding-right: 2px; padding-left: 2px; padding-bottom: 4px;" id="boxto_'.$box->box_id.'">';
//print 'box_id '.$boxarray[$ii]->box_id.' '; //print 'box_id '.$boxarray[$ii]->box_id.' ';
//print 'box_order '.$boxarray[$ii]->box_order.'<br>'; //print 'box_order '.$boxarray[$ii]->box_order.'<br>';
$boxid_right[$key] = $boxarray[$key]->box_id; $boxid_right[$key] = $boxarray[$key]->box_id;
// Affichage boite key // Affichage boite key
$box->loadBox(); $box->loadBox();
$box->showBox(); $box->showBox();
print '</div>';
} }
} }
print '</div>';
print "\n";
print "</td></tr>"; // If no box on left, we show add an invisible empty box
print "</table>"; if (! $ii)
{
$box->box_id='B';
$box->info_box_head=array();
$box->info_box_contents=array();
$box->showBox();
}
print "</div>\n";
print "<!-- End box container -->\n";
print "\n";
print "</td></tr>";
print "</table>";
} }
if ($conf->use_ajax) if ($conf->use_ajax)
{ {
print "\n";
print '<script type="text/javascript" language="javascript"> print '<script type="text/javascript" language="javascript">
function updateOrder(){ function updateOrder(){
var left_list = cleanSerialize(Sortable.serialize(\'left\')); var left_list = cleanSerialize(Sortable.serialize(\'left\'));

View File

@ -392,6 +392,7 @@ CanBeModifiedIfKo=Can be modified if not valid
AutomaticCode=Automatic code AutomaticCode=Automatic code
NotManaged=Not managed NotManaged=Not managed
FeatureDisabled=Feature disabled FeatureDisabled=Feature disabled
MoveBox=Move box %s
# Week day # Week day
Monday=Monday Monday=Monday
Tuesday=Tuesday Tuesday=Tuesday

View File

@ -393,6 +393,7 @@ CanBeModifiedIfKo=Peut
AutomaticCode=Création automatique du code AutomaticCode=Création automatique du code
NotManaged=Non géré NotManaged=Non géré
FeatureDisabled=Fonction désactivée FeatureDisabled=Fonction désactivée
MoveBox=Déplacer la boite %s
# Week day # Week day
Monday=Lundi Monday=Lundi
Tuesday=Mardi Tuesday=Mardi