started with template fixes

This commit is contained in:
Dennis Eichhorn 2024-03-29 15:25:59 +00:00
parent 51ad6ea444
commit 9ba044cc40

View File

@ -14,15 +14,18 @@ declare(strict_types=1);
use phpOMS\Localization\ISO639Enum; use phpOMS\Localization\ISO639Enum;
function render_accounts(array $accounts) : string function render_accounts(array $accounts, int $depth = 0) : string
{ {
$padding = $depth * 10;
$width = 200 - $padding;
$row = ''; $row = '';
foreach ($accounts as $account) { foreach ($accounts as $account) {
$row .= <<<ROW $row .= <<<ROW
<div class="account data-row"> <div class="account data-row">
<div class="expand-col"></div> <div class="expand-col"></div>
<div class="name-col">{$account->code} - {$account->getL11n()}</div> <div class="name-col" style="min-width: {$width}px; width: {$width}px;">{$account->code} - {$account->getL11n()}</div>
<div>123,456.00</div> <div>123,456.00</div>
<div>123,456.00</div> <div>123,456.00</div>
<div>123,456.00</div> <div>123,456.00</div>
@ -45,12 +48,15 @@ function render_accounts(array $accounts) : string
return $row; return $row;
} }
function render_elements(array $elements, ?int $parent = null) : string function render_elements(array $elements, ?int $parent = null, int $depth = 0) : string
{ {
$row = ''; $row = '';
$fn = 'render_elements'; $fn = 'render_elements';
$acc = 'render_accounts'; $acc = 'render_accounts';
$padding = $depth > 0 ? 10 : 0;
$width = 200 - $padding * $depth;
foreach ($elements as $element) { foreach ($elements as $element) {
if ($element->parent !== $parent) { if ($element->parent !== $parent) {
continue; continue;
@ -69,11 +75,11 @@ function render_elements(array $elements, ?int $parent = null) : string
$expanded = $element->expanded ? ' checked' : ''; $expanded = $element->expanded ? ' checked' : '';
$row .= <<<ROW $row .= <<<ROW
<div> <div style="padding-left: {$padding}px;">
<input id="iEle{$element->id}-expand" type="checkbox" class="vh"{$expanded}> <input id="iEle{$element->id}-expand" type="checkbox" class="vh"{$expanded}>
<div class="{$element->style} data-row"> <div class="{$element->style} data-row">
<div class="expand-col">{$expand}</div> <div class="expand-col">{$expand}</div>
<div class="name-col">{$element->getL11n()}</div> <div class="name-col" style="min-width: {$width}px; width: {$width}px;">{$element->getL11n()}</div>
<div>123,456.00</div> <div>123,456.00</div>
<div>123,456.00</div> <div>123,456.00</div>
<div>123,456.00</div> <div>123,456.00</div>
@ -92,8 +98,8 @@ function render_elements(array $elements, ?int $parent = null) : string
</div> </div>
<div class="checked-visibility"> <div class="checked-visibility">
{$fn($elements, $element->id)} {$fn($elements, $element->id, $depth + 1)}
{$acc($element->accounts)} {$acc($element->accounts, $depth)}
</div> </div>
</div> </div>
ROW; ROW;
@ -188,8 +194,8 @@ echo $this->data['nav']->render();
} }
.name-col { .name-col {
width: 150px; width: 200px;
min-width: 150px; min-width: 200px;
padding-left: 0px; padding-left: 0px;
border-right: 1px solid #000; border-right: 1px solid #000;
overflow: clip; overflow: clip;
@ -307,7 +313,7 @@ echo $this->data['nav']->render();
<div class="row sticky" style="font-size: 0.8rem; display: flex;"> <div class="row sticky" style="font-size: 0.8rem; display: flex;">
<div style="display: flex; flex-direction: row; align-items: center; color: #fff; background: #3697db; padding: .5rem 0 .5rem 0"> <div style="display: flex; flex-direction: row; align-items: center; color: #fff; background: #3697db; padding: .5rem 0 .5rem 0">
<div style="width: 30px; min-width: 30px; text-align: center;"></div> <div style="width: 30px; min-width: 30px; text-align: center;"></div>
<div style="width: 150px; min-width: 150px; box-sizing: border-box; text-align: center;"><?= $this->getHtml('Category'); ?></div> <div style="width: 200px; min-width: 200px; box-sizing: border-box; text-align: center;"><?= $this->getHtml('Category'); ?></div>
<div class="title-cell">1</div> <div class="title-cell">1</div>
<div class="title-cell">2</div> <div class="title-cell">2</div>
<div class="title-cell">3</div> <div class="title-cell">3</div>