Total days
${days(current.totalDays)}
@@ -382,6 +397,21 @@ function renderDashboard() {
`;
}
+function renderDashboardBalanceCard(card, year, month) {
+ return `
+
+ ${escapeHtml(card.label)}
+
+ ${escapeHtml(card.hint)}
+
+ `;
+}
+
+function currentMonthParts() {
+ const today = new Date();
+ return { year: today.getFullYear(), month: today.getMonth() + 1 };
+}
+
function renderHeaderWarnings() {
const warnings = state.plan.current.warnings;
$('headerWarnings').innerHTML = warnings.length
@@ -444,10 +474,14 @@ function renderPlanner() {
`;
+ bindBalanceOverrideInputs();
+ syncPlannerScroll();
+}
+
+function bindBalanceOverrideInputs() {
document.querySelectorAll('.balance-override-input').forEach((input) => {
input.addEventListener('change', (event) => saveBalanceOverride(event).catch((error) => toast(error.message || String(error))));
});
- syncPlannerScroll();
}
function syncPlannerScroll() {
diff --git a/style.css b/style.css
index 2263815..07e5b2a 100644
--- a/style.css
+++ b/style.css
@@ -175,6 +175,17 @@ main {
.header-cards .card .label { font-size: .88rem; font-weight: 950; white-space: nowrap; }
.header-cards .card .value { font-size: 1.55rem; font-weight: 950; margin: 0; }
.header-cards .card .hint { display: none; }
+.header-cards .card .dashboard-balance-input {
+ width: 5.25rem;
+ min-width: 0;
+ padding: .05rem .18rem;
+ border-radius: 6px;
+ text-align: right;
+ background: rgba(16,16,16,.55);
+ font-size: 1.45rem;
+ font-weight: 950;
+ line-height: 1;
+}
.card.bad .value { color: var(--bad); }
.card.warn .value { color: var(--warn); }
.card.good .value { color: var(--good); }
@@ -397,6 +408,7 @@ tbody tr:hover { background: rgba(255,255,255,.04); }
.header-cards .card { padding: .14rem .2rem; gap: .18rem; }
.header-cards .card .label { font-size: .72rem; font-weight: 950; }
.header-cards .card .value { font-size: 1.45rem; font-weight: 950; }
+ .header-cards .card .dashboard-balance-input { width: 3.9rem; padding: .04rem .12rem; font-size: 1rem; }
.header-entries { padding: .16rem .22rem; margin: .16rem 0; }
.header-entries .table-wrap { overflow-x: visible; overflow-y: visible; }