diff --git a/index.html b/index.html index 97c4819..108cc1d 100644 --- a/index.html +++ b/index.html @@ -21,22 +21,34 @@ 💼 Portfolio -
No cash accounts yet
+Create access tokens to authenticate API requests for third-party integrations like n8n workflows. Keep your tokens secure and never share them publicly.
+Loading tokens...
+Important: Copy your token now. You won't be able to see it again!
+
+curl -H "Authorization: Bearer YOUR_TOKEN" \
+ http://localhost:3000/api/trades
+
+ Track your cash savings accounts alongside your ETF investments. Manage different account types and monitor your total cash position.
+Loading accounts...
+No transfers found
+Record deposits and withdrawals for your cash accounts. Transfers will automatically update account balances.
+No transfers found
+No cash accounts yet
'; + return; + } + + const accountTypeMap = { + savings: 'Savings', + checking: 'Checking', + money_market: 'Money Market', + cd: 'Certificate of Deposit', + other: 'Other' + }; + + accountsList.innerHTML = accounts.slice(0, 5).map(account => { + const balance = parseFloat(account.balance); + const currencySymbol = account.currency === 'EUR' ? '€' : '$'; + const formattedBalance = `${currencySymbol}${balance.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2})}`; + + return ` +No cash accounts found. Add your first account above.
'; + return; + } + + accountsList.innerHTML = accounts.map(account => { + const createdDate = new Date(account.created_at).toLocaleDateString(); + const balance = parseFloat(account.balance); + const currencySymbol = account.currency === 'EUR' ? '€' : '$'; + const formattedBalance = `${currencySymbol}${balance.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2})}`; + + const accountTypeMap = { + savings: 'Savings Account', + checking: 'Checking Account', + money_market: 'Money Market', + cd: 'Certificate of Deposit', + other: 'Other' + }; + + return ` +No transfers found
'; + return; + } + + transfersList.innerHTML = transfers.map(transfer => { + const transferDate = new Date(transfer.transfer_date).toLocaleDateString(); + const amount = parseFloat(transfer.amount); + const currencySymbol = transfer.currency === 'USD' ? '$' : '€'; + + return ` +No transfers found
'; + return; + } + + // Show only the last 10 transfers for the standalone page + const recentTransfers = transfers.slice(0, 10); + + transfersList.innerHTML = recentTransfers.map(transfer => { + const transferDate = new Date(transfer.transfer_date).toLocaleDateString(); + const amount = parseFloat(transfer.amount); + const currencySymbol = transfer.currency === 'USD' ? '$' : '€'; + + return ` +No access tokens found. Create your first token above.
'; + return; + } + + tokensList.innerHTML = tokens.map(token => { + const createdDate = new Date(token.created_at).toLocaleDateString(); + const lastUsed = token.last_used_at ? new Date(token.last_used_at).toLocaleDateString() : 'Never'; + const expiresAt = token.expires_at ? new Date(token.expires_at).toLocaleDateString() : 'Never'; + const isExpired = token.expires_at && new Date(token.expires_at) < new Date(); + + return ` +