4 Commits

3 changed files with 31 additions and 9 deletions

View File

@@ -472,22 +472,23 @@ Damit ist die App für Menschen mit unterschiedlichen Einschränkungen (z.B. Seh
### Code Statistik ### Code Statistik
cloc|github.com/AlDanial/cloc v 2.06 T=0.08 s (269.8 files/s, 57268.4 lines/s) cloc|github.com/AlDanial/cloc v 2.06 T=0.08 s (301.6 files/s, 72354.1 lines/s)
--- | --- --- | ---
Language|files|blank|comment|code Language|files|blank|comment|code
:-------|-------:|-------:|-------:|-------: :-------|-------:|-------:|-------:|-------:
HTML|8|36|6|1998 HTML|8|47|6|2086
Python|2|53|57|614 Python|2|59|68|690
JavaScript|2|95|87|571 JavaScript|2|95|87|571
Markdown|2|139|0|360 Markdown|3|176|0|492
PO File|2|234|240|492
JSON|3|0|0|243 JSON|3|0|0|243
CSS|1|186|3|188 CSS|1|186|3|188
SVG|2|0|0|14 SVG|2|0|0|14
Dockerfile|1|5|6|8 Dockerfile|1|5|6|8
DOS Batch|1|0|0|1 DOS Batch|1|0|0|1
--------|--------|--------|--------|-------- --------|--------|--------|--------|--------
SUM:|22|514|159|3997 SUM:|25|802|410|4785
## Lizenz ## Lizenz

2
app.py
View File

@@ -20,7 +20,7 @@ app.config['BABEL_TRANSLATION_DIRECTORIES'] = 'translations'
babel = Babel() babel = Babel()
# Version der App # Version der App
APP_VERSION = "1.4.1" APP_VERSION = "1.4.3"
# HTML-Template wird jetzt aus templates/index.html geladen # HTML-Template wird jetzt aus templates/index.html geladen

View File

@@ -40,6 +40,11 @@
* { * {
box-sizing: border-box; box-sizing: border-box;
} }
html {
overflow-x: hidden;
width: 100%;
}
body { body {
background: var(--background); background: var(--background);
color: var(--text); color: var(--text);
@@ -47,7 +52,10 @@ body {
margin: 0; margin: 0;
padding: 0; padding: 0;
overflow-x: hidden; overflow-x: hidden;
overflow-y: auto;
box-sizing: border-box; box-sizing: border-box;
min-height: 100vh;
width: 100%;
} }
.container { .container {
max-width: 480px; max-width: 480px;
@@ -60,6 +68,7 @@ body {
border: 1px solid var(--border); border: 1px solid var(--border);
position: relative; position: relative;
box-sizing: border-box; box-sizing: border-box;
overflow: hidden;
} }
.help-button-container { .help-button-container {
position: absolute; position: absolute;
@@ -145,8 +154,9 @@ body {
padding: 2em; padding: 2em;
max-width: 90%; max-width: 90%;
width: 90%; width: 90%;
max-height: 90%; max-height: 90vh;
overflow-y: auto; overflow-y: auto;
overflow-x: hidden;
position: relative; position: relative;
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2); box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
margin: 0 auto; margin: 0 auto;
@@ -345,6 +355,7 @@ button:focus, .accordion-header:focus {
/* Layout-Shift-Prävention */ /* Layout-Shift-Prävention */
min-height: 200px; min-height: 200px;
contain: layout style paint; contain: layout style paint;
width: 100%;
} }
.accordion-item + .accordion-item { .accordion-item + .accordion-item {
border-top: 1px solid var(--border); border-top: 1px solid var(--border);
@@ -374,6 +385,7 @@ button:focus, .accordion-header:focus {
overflow: hidden; overflow: hidden;
transition: max-height 0.3s ease-out, padding 0.3s ease-out; transition: max-height 0.3s ease-out, padding 0.3s ease-out;
opacity: 0; opacity: 0;
width: 100%;
} }
.accordion-content.active { .accordion-content.active {
display: block; display: block;
@@ -459,9 +471,11 @@ button:focus, .accordion-header:focus {
padding: 1.2em 0.7em 1em 0.7em; padding: 1.2em 0.7em 1em 0.7em;
width: calc(100% - 2em); width: calc(100% - 2em);
max-width: none; max-width: none;
overflow: hidden;
} }
h1 { h1 {
font-size: 1.3em; font-size: 1.3em;
margin-top: 3.5em; /* Abstand für Sprachauswahl */
} }
.help-button-container { .help-button-container {
top: 1em; top: 1em;
@@ -494,8 +508,11 @@ button:focus, .accordion-header:focus {
margin: 1em; margin: 1em;
width: calc(100% - 2em); width: calc(100% - 2em);
max-width: none; max-width: none;
max-height: 85vh;
left: 0; left: 0;
transform: none; transform: none;
overflow-y: auto;
overflow-x: hidden;
} }
} }
@@ -602,7 +619,11 @@ footer br + a {
function changeLanguage(language) { function changeLanguage(language) {
// Speichere Sprache in localStorage (datenschutzfreundlich) // Speichere Sprache in localStorage (datenschutzfreundlich)
localStorage.setItem('preferred_language', language); localStorage.setItem('preferred_language', language);
window.location.href = '/set_language/' + language;
// Erstelle neue URL mit korrektem lang-Parameter
const currentUrl = new URL(window.location.href);
currentUrl.searchParams.set('lang', language);
window.location.href = currentUrl.toString();
} }
function openAccordion(idx) { function openAccordion(idx) {
const headers = document.querySelectorAll('.accordion-header'); const headers = document.querySelectorAll('.accordion-header');
@@ -832,7 +853,7 @@ footer br + a {
</select> </select>
</label> </label>
</fieldset> </fieldset>
<button name="action" value="tage_werktage" type="submit">Berechnen</button> <button name="action" value="tage_werktage" type="submit">{{ _('Berechnen') }}</button>
</form> </form>
{% if tage is not none %} {% if tage is not none %}
<div class="result" aria-live="polite"> <div class="result" aria-live="polite">