3 Commits

4 changed files with 137 additions and 38 deletions

View File

@ -4,10 +4,18 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>Přehled Financí 2024</title> <title>Přehled Financí 2024</title>
<link rel="stylesheet" href="styly.css"> <link rel="stylesheet" href="styly.css">
</head> </head>
<body> <body>
<h1>Přehled Financí za rok 2024</h1> <h2 class="archive-title">Přehled Financí za rok 2024</h2>
<table id="finance-table" border="1"> <div class="export-button-container">
<a href="finance_2024.csv" download="finance_2024.csv" class="btn btn-primary">📂 Stáhnout CSV</a>
</div>
</div>
<!-- Obalíme tabulku do kontejneru pro centrování -->
<div class="archive-table-container">
<table id="finance-table" class="table table-striped mb-3 archive-table">
<thead> <thead>
<tr> <tr>
<th>Datum</th> <th>Datum</th>
@ -20,6 +28,7 @@
<tbody> <tbody>
</tbody> </tbody>
</table> </table>
</div>
<script> <script>
fetch('finance_2024.csv') fetch('finance_2024.csv')

View File

@ -1,16 +0,0 @@
# Vytvoření testovacího DataFrame s podobnou strukturou jako uživatelův CSV soubor
data_corrected = {
'Datum': ['2024-06-04', '2024-06-05', '2024-06-10', '2024-06-17', '2024-06-18'],
'Popis': ['Stav účtu', 'Příspěvek @tritol128', 'Příspěvek @fabia_man', 'Příspěvek @Onqa6', 'Příspěvek D.Kolaja'],
'Částka': [9253.0, 512.0, 100.0, 100.0, 111.0],
'Měna': ['CZK', 'CZK', 'CZK', 'CZK', 'CZK'],
'Typ': ['Příjem', 'Příjem', 'Příjem', 'Příjem', 'Příjem']
}
df_corrected = pd.DataFrame(data_corrected)
# Uložení do CSV souboru
corrected_csv_path = "/mnt/data/finance_2024_corrected.csv"
df_corrected.to_csv(corrected_csv_path, index=False)
corrected_csv_path
Can't render this file because it contains an unexpected character in line 13 and column 22.

View File

@ -1,11 +1,11 @@
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {
// Funkce pro načítání financí // Funkce pro načítání CSV souboru
function loadFinanceData(csvFile) { function loadFinanceData(csvFile) {
console.log(`Načítání souboru: ${csvFile}`); // Debug výpis console.log(`Načítání souboru: ${csvFile}`); // Debug výpis
fetch(csvFile) fetch(csvFile)
.then(response => { .then(response => {
if (!response.ok) { if (!response.ok) {
throw new Error('Network response was not ok'); throw new Error(`Soubor ${csvFile} nebyl nalezen.`);
} }
return response.text(); return response.text();
}) })
@ -37,7 +37,11 @@ document.addEventListener('DOMContentLoaded', function() {
accountBalance += amount; accountBalance += amount;
} else if (currency === 'EUR') { } else if (currency === 'EUR') {
accountBalance += amount * 25; // Pro jednoduchost: 1 EUR = 25 CZK accountBalance += amount * 25; // Pro jednoduchost: 1 EUR = 25 CZK
} else {
console.warn(`Nepodporovaná měna: ${currency}`); // Pro chyby v měně
} }
} else {
console.warn('Neplatná částka:', columns[2]);
} }
} }
}); });
@ -45,7 +49,7 @@ document.addEventListener('DOMContentLoaded', function() {
}) })
.catch(error => { .catch(error => {
console.error('Chyba při načítání CSV souboru:', error); console.error('Chyba při načítání CSV souboru:', error);
document.getElementById('account-balance').textContent = 'Chyba při načítání dat'; document.getElementById('account-balance').textContent = `Chyba: ${error.message}`;
}); });
} }
@ -57,9 +61,10 @@ document.addEventListener('DOMContentLoaded', function() {
loadFinanceData('finance_2024_corrected.csv'); // Stejná složka pro archivovaný soubor loadFinanceData('finance_2024_corrected.csv'); // Stejná složka pro archivovaný soubor
}); });
}); });
// Dropdown menu toggle (Bootstrap)
$(document).ready(function() { $(document).ready(function() {
$('#dropdownMenuButton').on('click', function() { $('#dropdownMenuButton').on('click', function() {
$('.dropdown-menu').toggle(); // Ruční zobrazení dropdown menu $('.dropdown-menu').toggle(); // Ruční zobrazení dropdown menu
}); });
}); });

109
styly.css
View File

@ -33,8 +33,8 @@ a[rel="me"] {
} }
.dropdown { .dropdown {
display: flex; display: flex;
justify-content: flex-end; /* Posune tlačítko doprava */ justify-content: flex-end;
margin-right: 20px; /* Přidá trochu prostoru od kraje */ margin-right: 20px;
} }
header .d-flex { header .d-flex {
display: flex; display: flex;
@ -47,6 +47,107 @@ header h1 {
text-align: center; text-align: center;
} }
.dropdown { /* Hlavní tabulka - beze změn */
margin-right: 20px; #finance-table {
width: 100%;
margin-top: 20px;
border-collapse: collapse;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
border-radius: 8px;
overflow: hidden;
}
/* Hlavička tabulky */
#finance-table th {
background-color: #343a40;
color: #fff;
text-transform: uppercase;
padding: 12px 18px;
text-align: center;
}
/* Řádky tabulky */
#finance-table td {
padding: 10px 15px;
text-align: left;
border-bottom: 1px solid #ddd;
}
/* Speciální úpravy pro archivní tabulku */
.archive-table-container {
max-width: 1000px; /* Pevná maximální šířka tabulky */
width: 100%;
margin: 0 auto; /* Centrované umístění */
padding: 20px;
}
/* Archivní tabulka - nebude přes celý monitor */
.archive-table {
width: 100%;
border-collapse: collapse;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
border-radius: 8px;
overflow: hidden;
}
/* Zvýraznění řádků pro archivní tabulku */
.archive-table tbody tr:nth-child(even) {
background-color: #d9d9d9; /* O něco tmavší šedá */
}
.archive-table tbody tr:nth-child(odd) {
background-color: #f2f2f2; /* O něco světlejší šedá */
}
/* Barevné odlišení příjmů a výdajů pro archivní tabulku */
.archive-table td.pozitivni {
color: #218838; /* Sytější zelená */
font-weight: bold;
}
.archive-table td.negativni {
color: #c82333; /* Sytější červená */
font-weight: bold;
}
/* Responzivní design */
@media (max-width: 768px) {
.archive-table-container {
max-width: 100%; /* Na mobilech bude tabulka široká 100% */
}
#finance-table th, #finance-table td {
padding: 8px;
font-size: 14px;
}
}
/* Zvýraznění nadpisu archivu */
.archive-title {
text-align: center;
font-size: 26px;
font-weight: bold;
color: #343a40;
text-transform: uppercase;
margin-bottom: 20px;
border-bottom: 3px solid #218838;
padding-bottom: 8px;
}
/* Kontejner pro tlačítko exportu */
.export-button-container {
text-align: center; /* Zarovná tlačítko na střed */
margin-top: 20px; /* Přidá trochu prostoru nad tlačítkem */
}
/* Styl tlačítka */
#export-pdf {
padding: 10px 20px; /* Lepší padding */
font-size: 16px; /* Větší písmo pro lepší čitelnost */
border-radius: 5px; /* Zaoblené rohy */
cursor: pointer;
transition: background-color 0.3s ease-in-out;
}
/* Efekt při najetí myší */
#export-pdf:hover {
background-color: #0056b3; /* Lehce tmavší modrá při hover */
} }