style: Kabel-Liste als Flexbox, sortiert nach Querschnitt
- Sortierung: kleinster Querschnitt zuerst (dann Aderanzahl, dann Ref) - Flexbox-Layout statt Tabelle (3 Spalten, links buendig) - Responsives Layout mit min-width Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
f2ccdbac2a
commit
0b280144c0
2 changed files with 9 additions and 29 deletions
|
|
@ -499,11 +499,11 @@ class MetallzuschlagApi
|
|||
{
|
||||
$results = array();
|
||||
|
||||
$sql = "SELECT p.rowid, p.ref, p.label, pe.kupfergehalt";
|
||||
$sql = "SELECT p.rowid, p.ref, p.label, pe.kupfergehalt, pe.querschnitt, pe.aderanzahl";
|
||||
$sql .= " FROM ".$this->db->prefix()."product p";
|
||||
$sql .= " INNER JOIN ".$this->db->prefix()."product_extrafields pe ON pe.fk_object = p.rowid";
|
||||
$sql .= " WHERE pe.kupfergehalt IS NOT NULL AND pe.kupfergehalt > 0";
|
||||
$sql .= " ORDER BY p.ref ASC";
|
||||
$sql .= " ORDER BY pe.querschnitt ASC, pe.aderanzahl ASC, p.ref ASC";
|
||||
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql) {
|
||||
|
|
|
|||
|
|
@ -317,46 +317,26 @@ if (!empty($cablesWithKupfer) && !empty($chartData['labels'])) {
|
|||
print '<input type="hidden" name="cable_mode" value="'.$cableMode.'">';
|
||||
print '<input type="hidden" name="cable_filter" value="1">';
|
||||
|
||||
print '<table class="noborder centpercent">';
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td colspan="4">'.$langs->trans("MetallzuschlagSelectCables").'</td>';
|
||||
print '</tr>';
|
||||
print '<tr class="oddeven">';
|
||||
print '<div class="titre inline-block">'.$langs->trans("MetallzuschlagSelectCables").'</div>';
|
||||
print '<div style="display: flex; flex-wrap: wrap; gap: 10px 20px; margin: 10px 0; align-items: flex-start;">';
|
||||
|
||||
$colCount = 0;
|
||||
foreach ($cablesWithKupfer as $cable) {
|
||||
// Beim ersten Laden alle auswaehlen, danach nur die ausgewaehlten
|
||||
$checked = (!$cableFilterSubmitted || in_array($cable->rowid, $cableIds)) ? ' checked' : '';
|
||||
print '<td style="width: 25%;">';
|
||||
print '<label>';
|
||||
print '<label style="flex: 0 0 calc(33.33% - 20px); min-width: 200px; white-space: nowrap;">';
|
||||
print '<input type="checkbox" name="cable_ids[]" value="'.$cable->rowid.'"'.$checked.'> ';
|
||||
print dol_escape_htmltag($cable->ref);
|
||||
if (!empty($cable->label)) {
|
||||
print ' <span class="opacitymedium">('.dol_trunc($cable->label, 30).')</span>';
|
||||
print ' <span class="opacitymedium">('.dol_trunc($cable->label, 25).')</span>';
|
||||
}
|
||||
print '</label>';
|
||||
print '</td>';
|
||||
|
||||
$colCount++;
|
||||
if ($colCount % 4 == 0) {
|
||||
print '</tr><tr class="oddeven">';
|
||||
}
|
||||
}
|
||||
|
||||
// Leere Zellen auffuellen
|
||||
while ($colCount % 4 != 0) {
|
||||
print '<td></td>';
|
||||
$colCount++;
|
||||
}
|
||||
|
||||
print '</tr>';
|
||||
print '<tr class="oddeven">';
|
||||
print '<td colspan="4">';
|
||||
print '</div>';
|
||||
print '<div style="margin-top: 10px;">';
|
||||
print '<button type="submit" class="butAction small">'.$langs->trans("Refresh").'</button> ';
|
||||
print '<a class="butAction small" href="#" onclick="metallzuschlagToggleAllCables(); return false;">'.$langs->trans("MetallzuschlagAllCables").'</a>';
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
print '</table>';
|
||||
print '</div>';
|
||||
print '</form>';
|
||||
print '</div>';
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue