fix(mahnung): Button per JS ans Ende der Aktionsleiste schieben statt Flex-Spacer [deploy]
All checks were successful
Deploy mahnung / deploy (push) Successful in 13s
All checks were successful
Deploy mahnung / deploy (push) Successful in 13s
Vorher: Flex-Spacer-Trick (flex-basis:100%) sollte den Button in zweite Zeile zwingen — funktioniert aber nur wenn .tabsAction ein Flexbox-Container mit flex-wrap ist. Im AwlDark-Theme ist das nicht der Fall → Button landete einfach am Anfang der Aktionsleiste. Jetzt: kurzes JS-Snippet verschiebt #btn-mahnung-create per insertBefore vor den ersten .butActionRefused (= disabled "Löschen" / "Auf anderen Kunden übertragen" — typisch sichtbar bei freigegebener Rechnung). Fallback: appendTo ans Ende der .tabsAction. So landet "Mahnung erstellen" optisch direkt bei den Verwaltungs-Buttons am rechten/unteren Ende, wie Eddy es wollte. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
7031bea118
commit
d49e178554
1 changed files with 15 additions and 9 deletions
|
|
@ -77,18 +77,24 @@ class ActionsMahnung
|
||||||
$btn = dolGetButtonAction($label, '', 'default', '#', 'btn-mahnung-create', 0, array('attr' => $attr));
|
$btn = dolGetButtonAction($label, '', 'default', '#', 'btn-mahnung-create', 0, array('attr' => $attr));
|
||||||
}
|
}
|
||||||
|
|
||||||
// In die zweite Zeile zwingen: Flex-Spacer mit voller Breite und 0 Höhe DIREKT
|
// Der Hook läuft VOR den Standard-Buttons → der Mahnung-Button würde sonst ganz
|
||||||
// vor dem Button. Wirkt nur bei flex-wrap-Layouts (Standard in .tabsAction) —
|
// am Anfang der .tabsAction-Div stehen. Eddy will ihn aber bei den letzten
|
||||||
// sonst harmlos. So landet "Mahnung" optisch unter den Standard-Aktionen, neben
|
// "Verwaltungs"-Buttons (Löschen / Auf anderen Kunden übertragen — typisch
|
||||||
// Import Zeilen / Löschen / Auf anderen Kunden übertragen.
|
// butActionRefused weil disabled bei freigegebener Rechnung).
|
||||||
$spacer = '<div class="mahnung-row-break" style="flex-basis:100%;height:0;width:0;"></div>';
|
// JS verschiebt den Button per insertBefore VOR den ersten .butActionRefused —
|
||||||
|
// fällt zurück auf appendTo wenn keiner existiert.
|
||||||
|
$js = "<script>jQuery(function(\$){";
|
||||||
|
$js .= "var \$btn=\$('#btn-mahnung-create');";
|
||||||
|
$js .= "if(!\$btn.length)return;";
|
||||||
|
$js .= "var \$ref=\$('.tabsAction .butActionRefused').first();";
|
||||||
|
$js .= "if(\$ref.length){\$btn.insertBefore(\$ref);}";
|
||||||
|
$js .= "else{\$btn.appendTo('.tabsAction');}";
|
||||||
|
$js .= "});</script>";
|
||||||
|
|
||||||
// WICHTIG: addMoreActionsButtons braucht direkten print, nicht $this->resprints.
|
// WICHTIG: addMoreActionsButtons braucht direkten print, nicht $this->resprints.
|
||||||
// card.php wertet zwar $reshook aus, druckt aber $hookmanager->resPrint an dieser
|
// card.php wertet zwar $reshook aus, druckt aber $hookmanager->resPrint an dieser
|
||||||
// Stelle NICHT — anders als bei formObjectOptions. Output direkt in die tabsAction-Div
|
// Stelle NICHT — anders als bei formObjectOptions.
|
||||||
// ist hier sicher, weil der Hook bereits innerhalb des dafür vorgesehenen
|
print $btn.$js;
|
||||||
// Container-Divs aufgerufen wird.
|
|
||||||
print $spacer.$btn;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue