Boersenchecker UI2
All checks were successful
Deploy / deploy-staging (push) Successful in 5s
Deploy / deploy-production (push) Has been skipped

This commit is contained in:
2026-04-23 00:03:06 +02:00
parent 327f40adec
commit ac3ac0803b
2 changed files with 60 additions and 45 deletions

View File

@@ -100,7 +100,7 @@
Alpha Vantage Mindestabstand: <?= e((string) $alphaMinIntervalMinutes) ?> Min.
</div>
<div class="muted" style="margin-top:.35rem;">
API-Key und Timeout werden ueber <a class="nav-link" href="/modules/setup/boersenchecker">Modul-Setup</a> gepflegt.
API-Key und Timeout werden ueber <a class="bc-button bc-button--secondary" href="/modules/setup/boersenchecker">Modul-Setup</a> gepflegt.
</div>
<div class="muted" style="margin-top:.75rem;">
Standard-Berichtswahrung: <?= e($defaultReportCurrency) ?> · Max. Alter: <?= e((string) $fxMaxAgeHours) ?>h
@@ -288,7 +288,7 @@
<div style="margin-top:1rem;" class="grid">
<?php if ($portfolios === []): ?>
<div class="card">
<div class="bc-panel">
<div class="muted">Noch keine Depots vorhanden.</div>
</div>
<?php else: ?>
@@ -297,19 +297,19 @@
$portfolioId = (int) $portfolio['id'];
$stats = $portfolioStats[$portfolioId] ?? ['positions' => 0, 'invested' => 0.0, 'current' => 0.0, 'gain' => null, 'has_invested' => false, 'has_current' => false];
?>
<div class="card" style="background:var(--panel-2);">
<div class="bc-panel">
<div style="display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap;">
<div>
<strong><?= e((string) $portfolio['name']) ?></strong>
<div class="muted"><?= e((string) $portfolio['base_currency']) ?> · <?= e((string) $stats['positions']) ?> Position(en)</div>
</div>
<div style="display:flex; gap:10px; flex-wrap:wrap;">
<a class="nav-link" href="/module/boersenchecker/depotverwaltung?owner_sub=<?= urlencode((string) $ownerSub) ?>&edit_portfolio=<?= e((string) $portfolioId) ?>">Bearbeiten</a>
<a class="bc-button bc-button--secondary" href="/module/boersenchecker/depotverwaltung?owner_sub=<?= urlencode((string) $ownerSub) ?>&edit_portfolio=<?= e((string) $portfolioId) ?>">Bearbeiten</a>
<form method="post" onsubmit="return confirm('Depot wirklich loeschen?')">
<input type="hidden" name="action" value="delete_portfolio">
<input type="hidden" name="owner_sub" value="<?= e((string) $ownerSub) ?>">
<input type="hidden" name="portfolio_id" value="<?= e((string) $portfolioId) ?>">
<button class="nav-link" type="submit">Loeschen</button>
<button class="bc-button bc-button--secondary" type="submit">Loeschen</button>
</form>
</div>
</div>
@@ -317,15 +317,15 @@
<div class="muted" style="margin-top:.65rem;"><?= e((string) $portfolio['notes']) ?></div>
<?php endif; ?>
<div class="grid" style="margin-top:1rem; grid-template-columns:repeat(auto-fit, minmax(140px, 1fr)); gap:10px;">
<div class="card">
<div class="bc-stat">
<div class="muted">Investiert</div>
<strong><?= $stats['has_invested'] ? e($fmtNumber((float) $stats['invested'])) . ' ' . e((string) $portfolio['base_currency']) : 'n/a' ?></strong>
</div>
<div class="card">
<div class="bc-stat">
<div class="muted">Aktuell</div>
<strong><?= $stats['has_current'] ? e($fmtNumber((float) $stats['current'])) . ' ' . e((string) $portfolio['base_currency']) : 'n/a' ?></strong>
</div>
<div class="card">
<div class="bc-stat">
<div class="muted">Gewinn / Verlust</div>
<strong><?= $stats['gain'] !== null ? e($fmtNumber((float) $stats['gain'])) . ' ' . e((string) $portfolio['base_currency']) : 'n/a' ?></strong>
</div>
@@ -335,13 +335,13 @@
<?php endif; ?>
</div>
<div class="card" style="margin-top:1rem;">
<div class="bc-panel" style="margin-top:1rem;">
<strong>Positionen</strong>
<?php if ($positions === []): ?>
<div class="muted" style="margin-top:.75rem;">Noch keine Positionen vorhanden.</div>
<?php else: ?>
<div style="overflow:auto; margin-top:.75rem;">
<table style="width:100%; border-collapse:collapse;">
<div class="bc-table-shell" style="margin-top:.75rem;">
<table class="bc-table">
<thead>
<tr style="text-align:left; border-bottom:1px solid var(--border);">
<th style="padding:8px;">Depot</th>
@@ -398,19 +398,19 @@
</td>
<td style="padding:8px;">
<div style="display:flex; gap:8px; flex-wrap:wrap;">
<a class="nav-link" href="/module/boersenchecker/depotverwaltung?owner_sub=<?= urlencode((string) $ownerSub) ?>&edit_position=<?= e((string) $position['id']) ?>">Bearbeiten</a>
<a class="nav-link" href="/module/boersenchecker/depotverwaltung?owner_sub=<?= urlencode((string) $ownerSub) ?>&instrument_id=<?= e((string) $position['instrument_id']) ?>">Kurs erfassen</a>
<a class="bc-button bc-button--secondary" href="/module/boersenchecker/depotverwaltung?owner_sub=<?= urlencode((string) $ownerSub) ?>&edit_position=<?= e((string) $position['id']) ?>">Bearbeiten</a>
<a class="bc-button bc-button--secondary" href="/module/boersenchecker/depotverwaltung?owner_sub=<?= urlencode((string) $ownerSub) ?>&instrument_id=<?= e((string) $position['instrument_id']) ?>">Kurs erfassen</a>
<form method="post">
<input type="hidden" name="action" value="refresh_alpha_vantage_position">
<input type="hidden" name="owner_sub" value="<?= e((string) $ownerSub) ?>">
<input type="hidden" name="position_id" value="<?= e((string) $position['id']) ?>">
<button class="nav-link" type="submit">API-Kurs</button>
<button class="bc-button bc-button--secondary" type="submit">API-Kurs</button>
</form>
<form method="post" onsubmit="return confirm('Position wirklich loeschen?')">
<input type="hidden" name="action" value="delete_position">
<input type="hidden" name="owner_sub" value="<?= e((string) $ownerSub) ?>">
<input type="hidden" name="position_id" value="<?= e((string) $position['id']) ?>">
<button class="nav-link" type="submit">Loeschen</button>
<button class="bc-button bc-button--secondary" type="submit">Loeschen</button>
</form>
</div>
</td>