Marktdefinitionen als eigene Märkte-Konfiguration anzeigen

This commit is contained in:
gitea_admin committed 2026-09-20 08:34:08 +02:00
1 parent debee672f8
commit 22880b512a
2 files changed
+46 -2

No files matched your search

+36 -1
View File
@@ -160,6 +160,39 @@ function auth_render_markets_content(array $marketTable): string
. '</aside></div>';
}
function auth_render_market_definitions_content(array $marketTable): string
{
$rows = $marketTable['rows'] ?? $marketTable;
$html = [];
$html[] = '<section class="sg-card-list-page" aria-label="Märkte">';
$html[] = '<article class="sg-card" data-component="basic-card"><div class="sg-card-segment sg-card-segment--body sg-card-segment--gray" data-component-part="card-body"><div class="sg-component-row sg-basic-card__actions"><button class="sg-interaction-element sg-button sg-button--active" type="button" aria-haspopup="dialog" aria-expanded="false" data-component="button" data-market-definition-create>Neuer Markt</button></div></div></article>';
$html[] = '<article class="sg-card sg-large-table sg-large-table--markets" data-component="large-table" role="table" aria-label="Märkte">';
$html[] = '<div class="sg-card-segment sg-card-segment--header sg-card-segment--darkblue sg-large-table__title-segment" data-component-part="large-table-header"><div class="sg-strong">Märkte</div></div>';
$html[] = '<div class="sg-card-segment sg-card-segment--body sg-card-segment--white sg-large-table__row sg-large-table__row--header" role="row" data-component-part="large-table-header-row">';
foreach (['Markt', 'Kategorie', 'Website', 'Durchführungen', 'Status'] as $label) {
$html[] = '<div class="sg-large-table__cell sg-large-table__cell--header" role="columnheader">' . auth_escape_html($label) . '</div>';
}
$html[] = '</div>';
foreach ($rows as $index => $row) {
$rowClass = 'sg-card-segment sg-card-segment--body sg-card-segment--white sg-large-table__row';
if ($index % 2 === 1) {
$rowClass .= ' sg-large-table__row--striped-light';
}
$website = (string) ($row['website_url'] ?? '');
$websiteValue = $website === '' ? 'Nicht hinterlegt' : $website;
$status = ($row['archived_at'] ?? null) === null ? 'Aktiv' : 'Archiviert';
$html[] = '<div class="' . $rowClass . '" role="row" data-component-part="large-table-row">';
$html[] = '<div class="sg-large-table__cell" role="cell">' . auth_escape_html((string) ($row['name'] ?? '')) . '</div>';
$html[] = '<div class="sg-large-table__cell" role="cell">' . auth_escape_html((string) ($row['category_name'] ?? $row['category_code'] ?? '')) . '</div>';
$html[] = '<div class="sg-large-table__cell" role="cell">' . auth_escape_html($websiteValue) . '</div>';
$html[] = '<div class="sg-large-table__cell" role="cell">' . auth_escape_html((string) ($row['occurrence_count'] ?? 0)) . '</div>';
$html[] = '<div class="sg-large-table__cell" role="cell">' . auth_escape_html($status) . '</div>';
$html[] = '</div>';
}
$html[] = '</article></section>';
return implode('', $html);
}
function auth_render_bestellungen_large_table(array $bestellungenTable): string
{
$rows = $bestellungenTable['rows'] ?? [];
@@ -597,7 +630,7 @@ function auth_render_lager_content(array $lagerProducts, array $lagerArtikel, ar
. '</div>';
}
function render_auth_home_page(array $user, array $otcProducts = [], array $otcMarketOptions = [], array $bestellungenTable = [], array $marketOccurrencesTable = [], array $lagerProducts = [], array $lagerArtikel = [], array $lagerManufacturers = []): void
function render_auth_home_page(array $user, array $otcProducts = [], array $otcMarketOptions = [], array $bestellungenTable = [], array $marketOccurrencesTable = [], array $lagerProducts = [], array $lagerArtikel = [], array $lagerManufacturers = [], array $marketDefinitionsTable = []): void
{
$otcProductRows = '';
foreach ($otcProducts as $product) {
@@ -653,11 +686,13 @@ function render_auth_home_page(array $user, array $otcProducts = [], array $otcM
);
$bestellungenContent = auth_render_bestellungen_content($bestellungenTable);
$marketsContent = auth_render_markets_content($marketOccurrencesTable);
$marketDefinitionsContent = auth_render_market_definitions_content($marketDefinitionsTable);
$lagerContent = auth_render_lager_content($lagerProducts, $lagerArtikel, $lagerManufacturers, auth_csrf_token());
$moduleContentCards = json_encode(
[
'Bestellungen' => $bestellungenContent,
'Markttage' => $marketsContent,
'Märkte' => $marketDefinitionsContent,
'Lager' => $lagerContent,
'Artikel' => auth_render_lager_content([], $lagerArtikel, $lagerManufacturers, auth_csrf_token(), 'Artikel'),
],
+10 -1
View File
@@ -79,6 +79,15 @@ if ($currentUser !== null) {
'page_size' => 20,
];
$marketOccurrencesTable['has_more'] = count($marketOccurrencesTable['rows']) >= $marketLimit;
$marketDefinitionsTable = [
'rows' => market_management_search_markets($pdo, [
'include_archived' => true,
'sort' => 'name',
'sort_direction' => 'ASC',
'limit' => 100,
'offset' => 0,
]),
];
if ((string) ($_GET['bestellungen_fragment'] ?? '') === '1') {
echo auth_render_bestellungen_content($bestellungenTable);
exit;
@@ -87,7 +96,7 @@ if ($currentUser !== null) {
echo auth_render_markets_content($marketOccurrencesTable);
exit;
}
render_auth_home_page($currentUser, $otcProducts, $otcMarketOptions, $bestellungenTable, $marketOccurrencesTable, $lagerProducts, $lagerArtikel, $lagerManufacturers);
render_auth_home_page($currentUser, $otcProducts, $otcMarketOptions, $bestellungenTable, $marketOccurrencesTable, $lagerProducts, $lagerArtikel, $lagerManufacturers, $marketDefinitionsTable);
exit;
}