templates/login/index.html.twig line 1
{# templates/login/index.html.twig #}{% extends 'base.html.twig' %}{% block body %}<div class="container sm:px-10"><div class="block xl:grid grid-cols-2 gap-4"><!-- BEGIN: Login Info --><div class="hidden xl:flex flex-col min-h-screen"><a href="/" class="-intro-x flex items-center pt-5"><span class="text-white text-lg"><span class="{% if is_granted('ROLE_ADMIN') %} customText {% else %} loadText {% endif %}" data-key="login-10">{{ texte["login-10"] }}</span></span></a><div class="my-auto">{% include 'global/logos-login-links.html.twig' %}<div class="-intro-x text-white font-medium text-3xl leading-tight {% if is_granted('ROLE_ADMIN') %} customText {% else %} loadText {% endif %}" data-key="login-0">{{ texte["login-0"]|raw }}</div><div class="-intro-x mt-5 text-white text-opacity-70 dark:text-slate-400"><div class="text-lg"><span class="{% if is_granted('ROLE_ADMIN') %} customText {% else %} loadText {% endif %}" data-key="login-1">{{ texte["login-1"]|raw }}</span><br><br><span class="{% if is_granted('ROLE_ADMIN') %} customText {% else %} loadText {% endif %}" data-key="login-2">{{ texte["login-2"]|raw }}</span></div><div class="mt-5">{% if "login-3" in texte|keys and texte["login-3"] is not empty %}<p class="flex items-center py-1 rounded-md"> <i class="w-4 h-4 mr-2" data-lucide="star"></i> <span class="{% if is_granted('ROLE_ADMIN') %}customText{% else %} loadText {% endif %}" data-key="login-3">{{ texte["login-3"]|raw }}</span></p>{% endif %}{% if "login-4" in texte|keys and texte["login-4"] is not empty %}<p class="flex items-center py-1 rounded-md"> <i class="w-4 h-4 mr-2" data-lucide="star"></i> <span class="{% if is_granted('ROLE_ADMIN') %}customText{% else %} loadText {% endif %}" data-key="login-4">{{ texte["login-4"]|raw }}</span></p>{% endif %}{% if "login-5" in texte|keys and texte["login-5"] is not empty %}<p class="flex items-center py-1 rounded-md"> <i class="w-4 h-4 mr-2" data-lucide="star"></i> <span class="{% if is_granted('ROLE_ADMIN') %}customText{% else %} loadText {% endif %}" data-key="login-5">{{ texte["login-5"]|raw }}</span></p>{% endif %}{% if "login-6" in texte|keys and texte["login-6"] is not empty %}<p class="flex items-center py-1 rounded-md"> <i class="w-4 h-4 mr-2" data-lucide="star"></i> <span class="{% if is_granted('ROLE_ADMIN') %}customText{% else %} loadText {% endif %}" data-key="login-6">{{ texte["login-6"]|raw }}</span></p>{% endif %}{% if "login-7" in texte|keys and texte["login-7"] is not empty %}<p class="flex items-center py-1 rounded-md"> <i class="w-4 h-4 mr-2" data-lucide="star"></i> <span class="{% if is_granted('ROLE_ADMIN') %}customText{% else %} loadText {% endif %}" data-key="login-7">{{ texte["login-7"]|raw }}</span></p>{% endif %}{% if "login-8" in texte|keys and texte["login-8"] is not empty %}<p class="flex items-center py-1 rounded-md"> <i class="w-4 h-4 mr-2" data-lucide="star"></i> <span class="{% if is_granted('ROLE_ADMIN') %}customText{% else %} loadText {% endif %}" data-key="login-8">{{ texte["login-8"]|raw }}</span></p>{% endif %}{% if "login-9" in texte|keys and texte["login-9"] is not empty %}<p class="flex items-center py-1 rounded-md"> <i class="w-4 h-4 mr-2" data-lucide="star"></i> <span class="{% if is_granted('ROLE_ADMIN') %}customText{% else %} loadText {% endif %}" data-key="login-9">{{ texte["login-9"]|raw }}</span></p>{% endif %}</div><div class="text-lg">{% if "login-14" in texte|keys and texte["login-14"] is not empty %}<span class="data-key="login-14">{{ texte["login-14"]|raw }}</span>{% endif %}<br><br>{% if "login-15" in texte|keys and texte["login-15"] is not empty %}<span class=" data-key="login-15">{{ texte["login-15"]|raw }}</span>{% endif %}</div><div class="flex justify-left mt-20">{% set linkImpressum = "https://msu-solutions.de/impressum/" %}{% set linkDatenschutz = "https://msu-solutions.de/datenschutz/" %}{% if app.session.get('impressum') is defined and app.session.get('impressum') is not empty %}{% set linkImpressum = app.session.get('impressum') %}{% endif %}{% if app.session.get('datenschutz') is defined and app.session.get('datenschutz') is not empty %}{% set linkDatenschutz = app.session.get('datenschutz') %}{% endif %}<input type="hidden" id="impressumLink" class="hidden" value="{{ linkImpressum }}"><input type="hidden" id="datenschutzLink" class="hidden" value="{{ linkDatenschutz }}">{% if app.session.get('barrierefreiheitanzeigen') %}<div class="flex items-center mr-5"><a href="{% if barrierefreiheit is defined and barrierefreiheit is not empty %} {{barrierefreiheit}} {% endif %}" class="flex items-center py-2 mt-2 rounded-md" target="_blank"> Barrierefreiheit </a></div>{% endif %}<div class="flex items-center mr-5"><a href="{{ datenschutz }}" class="flex items-center py-2 mt-2 rounded-md" target="_blank"> Datenschutz </a></div><div class="flex items-center mr-5"><a href="{{ impressum }}" class="flex items-center py-2 mt-2 rounded-md" target="_blank"> Impressum </a></div>{% if satzung is defined and satzung is not empty %}<div class="flex items-center mr-5"><a href="{% if satzung is defined and satzung is not empty %} {{satzung}} {% endif %}" class="flex items-center py-2 mt-2 rounded-md" target="_blank">Aktuelle Satzung</a></div>{% endif %}{% if is_granted('ROLE_ADMIN') %}<div class="flex items-center ml-5"><a href="/dashboard" class="flex items-center py-2 mt-2 rounded-md"> Backend </a></div>{% endif %}</div></div>{% if app.session.get('news-funktion')and neuestenews %}<!-- BEGIN: Single Item --><div class="intro-y box mt-5"><div class="flex flex-col sm:flex-row items-center p-2 border-b border-slate-200/60 dark:border-darkmode-400"><h2 class="font-medium text-base mr-auto dark:text-gray-300 ml-4"><a href="javascript:;" data-tw-toggle="modal" data-tw-target="#basic-modal-preview-{{ neuestenews.id }}" title="Anzeigen">Neueste News vom {{ neuestenews.start|date("d.m.Y") }}: {{ neuestenews.titel|slice(0,40) }} ...</a></h2></div><div id="center-mode-slider" class="p-5"><div class="preview"><div class="mx-6"><div class="center-mode">{% for key,entry in news %}<div class="h-10 px-2"><div class="h-full bg-slate-100 dark:bg-darkmode-400 rounded-md"><a href="javascript:;" data-tw-toggle="modal" data-tw-target="#basic-modal-preview-{{ entry.id }}" title="Anzeigen"class="h-full flex items-center justify-center primary font-normal">{{ entry.titel|slice(0,40) }} ...</a></div></div>{% endfor %}</div></div></div></div></div><!-- END: Single Item -->{% endif %}</div></div>{% for key,entry in news %}<div id="basic-modal-preview-{{ entry.id }}" class="modal" tabindex="-1" aria-hidden="true"><div class="modal-dialog modal-lg"><div class="modal-content"><div class="modal-header"><h2 class="font-medium text-base mr-auto">{{ entry.titel }}</h2></div> <!-- END: Modal Header --><div class="modal-body">{{ entry.inhalt|raw }}</div><div class="modal-footer text-left">veröffentlicht am: {{ entry.start|date("d.m.Y") }}</div></div></div></div>{% endfor %}<!-- END: Login Info --><!-- BEGIN: Login Form --><div class="flex content-container"><div class="my-auto mx-auto xl:ml-20 bg-white dark:bg-darkmode-600 xl:bg-transparent px-5 sm:px-8 py-8 xl:p-0 rounded-md shadow-md xl:shadow-none w-full sm:w-3/4 lg:w-2/4 xl:w-auto">{% set zaehlerstandAktiv = true %}{% if zaehlerstandAktivStart is defined and zaehlerstandAktivStart is not empty and zaehlerstandAktivEnde is defined and zaehlerstandAktivEnde is not empty and zaehlerstandAktivText is defined and zaehlerstandAktivText is not empty %}{% if zaehlerstandAktivStart|date('U') <= "now"|date("d.m.Y")|date('U') and zaehlerstandAktivEnde|date('U') >= "now"|date("d.m.Y")|date('U') %}{% set zaehlerstandAktiv = true %}{% else %}{% set zaehlerstandAktiv = false %}{% endif %}{% endif %}{% include 'global/logos-login-rechts.html.twig' %}<button class="hidden" id="druckenbutton" data-tw-toggle="modal" data-tw-target="#drucken">drucken</button><button class="hidden" id="twofabutton" data-tw-toggle="modal" data-tw-target="#twofapopup">drucken</button><input type="hidden" name="target_action" value="{% if target_action is defined and target_action is not empty %}{{target_action}}{% endif %}">{% if portalvariante is defined and portalvariante == 'zaehlerstand' %}{% if app.session.get('zaehlerstandmelden_abgemeldet') %}{% if zaehlerstandAktiv == false %}<p class="py-5"><span>{{ zaehlerstandAktivText }}</span></p>{% endif %}<button id="btn_zaehlerstand_melden" class="btn btn-dark-soft py-3 px-4 mt-3 w-full xl:w-auto" data-tw-toggle="modal" data-tw-target="#zaehlerstand-melden"{% if zaehlerstandAktiv == false or webservice == false %} disabled {% endif %}>Zählerstand melden{% if zaehlerstandAktiv == false or webservice == false %} <a class="flex items-center tooltip ml-2" data-theme="light" title="Diese Funktion steht zur Zeit nicht zur Verfügung" href="javascript:;"><i style="width: 15px; height: 15px;" data-lucide="info"></i></a> {% endif %}</button>{% endif %}{% else %}<form action="{{ path('login') }}" method="post" id="anmeldeFormular" class="mt-5"><h2 class="intro-x font-bold text-2xl xl:text-3xl text-center xl:text-left">{% if wartungsarbeiten is defined and wartungsarbeiten is not empty %}Es finden aktuell Wartungsarbeiten statt, so dass Sie sich nicht anmelden können.<input type="hidden" id="wartungsarbeiten" value="yes">{% elseif online is defined and online == false or webservice == false %}Das Portal ist aktuell offline.<input type="hidden" id="offline" value="yes">{% else %}<span class="{% if is_granted('ROLE_ADMIN') %}customText{% else %} loadText {% endif %}" data-key="login-11">Loggen Sie sich jetzt ein.</span>{% endif %}</h2><p class="intro-x mt-5 font-normal">Bitte geben Sie hier Ihre Daten ein. Wenn Sie noch kein Kundenkonto bei uns haben, können Sie sich hier registrieren.</p>{% if error %}<br><div class="alert alert-danger show flex items-center mb-2" role="alert"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" icon-name="alert-octagon" data-lucide="alert-octagon" class="lucide lucide-alert-octagon w-6 h-6 mr-2"><polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"></polygon><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg> {{ error.messageKey|trans(error.messageData, 'security') }}</div>{% endif %}<div class="intro-x mt-8"><input type="text" class="intro-x login__input form-control py-3 px-4 block" id="username" name="_username" placeholder="E-Mail Adresse" value="{{ app.session.get('emailtwofa') }}{{ email }}"><input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}"><input type="password" id="password" name="_password" class="intro-x login__input form-control py-3 px-4 block mt-4" placeholder="Passwort" value="{% if app.session.get("passwordtwofa") %}{{ app.session.get("passwordtwofa") }}{% endif %}"><input type="text" id="code" name="code" class="intro-x login__input form-control py-3 px-4 block mt-4 {% if app.request.get('webid') %}{% else %}hidden{% endif %}" placeholder="Web-ID" value="{{ app.request.get('webid') }}" data-webid="{{ app.request.get('webid') }}">{% if app.request.get('twofa') %}<input type="text" id="twofacode" name="twofacode" class="intro-x login__input form-control py-3 px-4 block mt-4" placeholder="Code" value="">{% endif %}</div>{% if wartungsarbeiten is defined and (wartungsarbeiten == 0 or online == false or webservice == false) %}<div class="intro-x flex text-slate-600 dark:text-slate-500 text-xs sm:text-sm mt-4"><a href="/passwort-vergessen/">Passwort vergessen?</a></div>{% endif %}<div class="intro-x mt-5 xl:mt-8 text-center xl:text-left"><input type="hidden" id="twofa" value="{{ twofa }}"><button class="btn btn-primary py-3 px-4 w-60 align-top" id="anmelden">Anmelden</button></div>{% if captcha %}<br><altcha-widget challengeurl="/altcha-challenge"></altcha-widget>{% endif %}</form>{% if wartungsarbeiten is defined and (wartungsarbeiten == 0 or online == false or webservice == false) %}<div class="btn-grid intro-x mt-5 xl:mt-8 text-center xl:text-left"><button class="btn btn-dark-soft py-3 px-4 align-top w-60" data-tw-toggle="modal" data-tw-target="#zugang-beantragen" {% if online == false or webservice == false %} disabled title="Die Zugangsbeantragung ist aktuell nicht verfügbar." {% endif %}>Zugang beantragen{% if online == false or webservice == false %}<a class="flex items-center tooltip ml-2" data-theme="light" title="Diese Funktion steht zur Zeit nicht zur Verfügung" href="javascript:;"><i style="width: 15px; height: 15px;" data-lucide="info"></i></a>{% endif %}</button>{% if app.session.get('zaehlerstandmelden_abgemeldet') %}<button id="btn_zaehlerstand_melden" class="btn btn-dark-soft py-3 px-4 align-top w-60" data-tw-toggle="modal" data-tw-target="#zaehlerstand-melden" {% if zaehlerstand_online is defined and not zaehlerstand_online == true or online == false or webservice == false %} disabled title="Die Zählerstandsmeldung ist aktuell nicht verfügbar." {% endif %}>Zählerstand melden{% if zaehlerstand_online is defined and not zaehlerstand_online == true or online == false or webservice == false %}<a class="flex items-center tooltip ml-2" data-theme="light" title="Diese Funktion steht zur Zeit nicht zur Verfügung" href="javascript:;"><i style="width: 15px; height: 15px;" data-lucide="info"></i></a>{% endif %}</button>{% endif %}<button class="btn btn-primary py-3 px-4 align-top w-60 mt-1" id="test" data-tw-toggle="modal" data-tw-target="#barrierefreiheit">Barrierefreiheit</button></div>{% endif %}{% if info is defined %}<div class="alert alert-secondary show flex items-center mb-2 mt-2" role="alert"><i data-lucide="mail" class="w-6 h-6 mr-2"></i> {{ info }}</div>{% endif %}{% include 'global/logos-login-footer.html.twig' %}<div class="xl:hidden">{% include 'global/footerlinks-login.html.twig' %}</div>{% endif %}</div></div><!-- END: Login Form --></div></div><!-- BEGIN: Modal Content Zugang beantragen bearbeiten --><div id="zugang-beantragen" class="modal" data-tw-backdrop="static" tabindex="-1" aria-hidden="true"><div class="modal-dialog modal-xl"><div class="modal-content" id="form-validation"><form action="/zugangbeantragen/" method="post" id="loginForm"><!-- BEGIN: Modal Header --><div class="modal-header"><h2 class="font-medium text-base mr-auto">Zugang beantragen</h2><a data-tw-dismiss="modal" href="javascript:;"> <i data-lucide="x" class="w-8 h-8 text-slate-400"></i> </a></div> <!-- END: Modal Header --><div class="modal-body p-10"><div class="input-form"><label for="validation-form-1" class="form-label">Kundennummer* </label><input id="customerid" type="text" class="form-control" name="kundennummer" placeholder="" required></div>{% if auth.metavalue == "internal" %}<div class="input-form mt-3"><label for="horizontal-form-1" class="form-label">Zählernummer*</label><input id="meterno" type="text" class="form-control" name="meterno" placeholder="" required></div>{% elseif auth.metavalue == "accountingcontract" %}<div class="input-form mt-3"><label for="horizontal-form-1" class="form-label">Vertragsnummer*</label><input id="meterno" type="text" class="form-control" name="leistungsobjektnummer" placeholder="" required></div>{% else %}<div class="input-form mt-3"><label for="horizontal-form-1" class="form-label">{{ texte["begriff_leistungsobjektnummer"]|default('Leistungsobjektnummer')|raw }}*</label><input id="meterno" type="text" class="form-control" name="leistungsobjektnummer" placeholder="" required></div>{% endif %}<div class="input-form mt-3"><label for="horizontal-form-1" class="form-label">E-Mail-Adresse*</label><input id="email" type="email" name="email" class="form-control" placeholder="test@test.de" required></div><div class="input-form mt-3"><label for="horizontal-form-1" class="form-label">E-Mail-Adresse zur Überprüfung erneut eingeben* </label><input id="emailnochmal" type="email" name="emailnochmal" class="form-control" placeholder="test@test.de" required></div><div class="input-form mt-3"><label for="horizontal-form-2" class="form-label">Passwort</label><input id="passwortupdate" type="password" name="passwort" class="form-control" placeholder="****" required autocomplete="off"></div><div class="input-form mt-3"><label for="horizontal-form-2" class="form-label">Passwort bestätigen</label><input id="passwortupdaterepeat" type="password" name="passwort-repeat" class="form-control" placeholder="****" required autocomplete="off"></div><div class="mt-3"><div class="alert alert-secondary show flex flex-col items-start text-left" role="alert"><p class="font-bold">Hinweis</p><p>Zulässige Sonderzeichen: !@#$%^&*</p></div></div>{% if output.metavalue == "on" %}<div class="input-form mt-3"><label for="horizontal-form-2" class="form-label">Zustellart* (An dieser Stelle können Sie sich dafür entscheiden, wie Sie zukünftig Ihre Rechnung erhalten möchten.)</label><select class="form-select mt-2 sm:mr-2" aria-label="" name="zustellart" id="zustellart"><option value="">Bitte auswählen</option>{% if abrufarten is iterable %}{% for key,value in abrufarten %}<option value="{{ value.Code }}">{{ value.Description }}</option>{% endfor %}{% else %}{% for key,value in zustellarten %}<option value="{{ value }}">{{ value }}</option>{% endfor %}{% endif %}</select></div>{% endif %}<div class="input-form mt-5 border-t py-5"><label for="horizontal-form-2" class="form-label">Datenschutz*</label><div class="form-check form-switch"><input id="datenschutz" class="form-check-input" type="checkbox" required><label class="form-check-label" for="datenschutz">{% if datenschutzText is not empty %}{{ datenschutzText|raw }}{% endif %}</label></div></div></div><div class="modal-footer text-center"><a data-tw-dismiss="modal" href="javascript:;"><span class="btn btn-secondary abbrechen" id="abbrechen">Abbrechen</span></a><input type="submit" class="btn btn-primary" value="Zugang beantragen" id="zugangbeantragen"></div></form></div></div></div> <!-- END: Modal Content --><!-- BEGIN: Modal Content Zählerstand melden bearbeiten --><div id="zaehlerstand-melden" class="modal" data-tw-backdrop="static" tabindex="-1" aria-hidden="true"><div class="modal-dialog modal-xl"><div class="modal-content" id="form-validation"><form action="/zaehlerstanderfassen/" method="post" id="zaehlerstandMeldenForm" enctype="multipart/form-data"><div class="intro-y box p-5"><!-- BEGIN: Modal Header --><div class="modal-header"><h2 class="font-medium text-base mr-auto">Zählerstand melden</h2><a data-tw-dismiss="modal" href="javascript:;"> <i data-lucide="x" class="w-8 h-8 text-slate-400"></i> </a></div><!-- END: Modal Header -->{% if zaehlerstandAktiv == false %}<p class="p-5"><span>{{ zaehlerstandAktivText }}</span></p>{% else %}<p class="p-5">Hier können Sie Ihre Zählerstände melden. Wenn Sie zu einem Zähler keinen Stand melden wollen, lassen Sie das Feld neuer Zählerstand bitte leer.</p><div class="modal-header"><h2 class="font-medium text-base mr-auto">Anmeldung</h2></div><div class="grid grid-cols-12 gap-6 p-5"><div class="col-span-6"><div class="input-form">{% if authz.metavalue == "hashz" %}<label for="validation-form-1" class="form-label">{{ app.session.get('texte')["bezeichn_kundennummer_AuthwithHash"]}}<span class="red"> *</span></label><input id="customeridz" type="text" class="form-control" name="kundennummer" placeholder="123456" required>{% else %}<label for="validation-form-1" class="form-label">Kundennummer<span class="red"> *</span></label><input id="customeridz" type="text" class="form-control" name="kundennummer" placeholder="123456" required>{% endif %}<input id="showFormularAuto" type="hidden" value="{% if app.request.get('rahmenvertrag') %}1{% else %}2{% endif %}"><input id="hiddenrv" type="hidden" value="{{ app.session.get('rahmenvertrag')}}"><input id="hiddenznr" type="hidden" value="{{ app.session.get('leistungsobjektnr')}}"><input id="bezeichn_kundennummer_AuthwithHash" type="hidden" value="{{ app.session.get('texte')["bezeichn_kundennummer_AuthwithHash"]}}"><input id="begriff_leistungsobjektnummer" type="hidden" value="{{ app.session.get('texte')["begriff_leistungsobjektnummer"]|default("Leistungsobjektnummer")|raw }}"></div></div><div class="col-span-6"><div class="input-form"><label for="horizontal-form-1" class="form-label">{% if authz.metavalue == "internalz" %}Zählernummer{% elseif authz.metavalue == "accountingcontractz" %}Vertragsnummer{% else %}{% if texte is definedand texte["begriff_leistungsobjektnummer"] is definedand texte["begriff_leistungsobjektnummer"] is not emptyand texte["begriff_leistungsobjektnummer"] != "Vertragsnummer" %}{{ texte["begriff_leistungsobjektnummer"]|default("Leistungsobjektnummer")|raw }}{% else %}Leistungsobjektnummer{% endif %}{% endif %}<span class="red"> *</span></label><input id="leistungsobjektnummerz" type="text" class="form-control" name="leistungsobjektnummer" placeholder="123456" required><input id="contractnoz" type="hidden" class="form-control" name="AccountingContractNo" placeholder=""><!-- <input id="ZS_METERREGIDX" type="hidden" class="form-control" name="ZS_METERREGIDX" placeholder=""> --></div></div></div>{% endif %}</div><div class="hidden" id="mehrerevertraege"></div>{% if hinweiszaehler is defined %}<div id="hinweis_zaehler"><p class="text-left p-5">{{ hinweiszaehler.beschreibung }}</p></div>{% endif %}<div class="input-form mt-5 hidden" id="hiddenKontakt"><span class="font-bold mt-3">Optionale Kontaktdaten</span><br><span class="mt-5">Wenn Sie Ihre E-Mail-Adresse eingeben, dann erhalten Sie eine Bestätigung der Zählerstandsmeldung an Ihre E-Mail.Ihre Kontaktdaten werden für mögliche Nachfragen an uns übermittelt. Sie müssen diese nicht eingeben.</span><br><label for="horizontal-form-2" class="form-label mt-5">E-Mail-Adresse</label><input type="email" name="emailkontakt2" id="emailkontakt2" class="form-control" placeholder="" autocomplete="off"><label for="horizontal-form-2" class="form-label mt-5">Telefonnummer</label><input type="text" name="telefonkontakt2" class="form-control" placeholder="" autocomplete="off"></div><div class="modal-footer text-center"><a data-tw-dismiss="modal" href="javascript:;"><span class="btn btn-secondary abbrechen" id="abbrechen">Abbrechen</span></a><input type="submit" class="btn btn-primary" value="Daten prüfen" id="zaehlerstandmelden" {% if zaehlerstandAktiv == false %}disabled="true"{% endif %}></div></form><script>function validateNumericInput(input) {const error = document.getElementById('zaehlerstandneu-error');if (/[^0-9]/.test(input.value)) {error.style.display = 'inline';input.value = input.value.replace(/[^0-9]/g, '');} else {error.style.display = 'none';}}</script></div></div></div> <!-- END: Modal Content -->{% if app.request.get('drucken') == 1 %}<div id="drucken" class="modal" data-tw-backdrop="static" tabindex="-1" aria-hidden="true"><div class="modal-dialog modal-lg"><div class="modal-content" id="form-validation"><div class="modal-header"><h2 class="font-medium text-base mr-auto">Zählerstand drucken </h2><a data-tw-dismiss="modal" class="closeDrucken" href="javascript:;"> <i data-lucide="x" class="w-8 h-8 text-slate-400"></i> </a></div> <!-- END: Modal Header --><div class="modal-body p-5"><div id="druckenElemente"><div class="input-form"><h2 class="font-medium text-base mr-auto">Zählerstand gemeldet</h2></div>{% for key,value in app.session.get('zaehler') %}{% if app.session.get('staende')[key] is not empty %}<div class="input-form mt-3"><label for="horizontal-form-1" class="form-label">Zähler: {{ value }}</label></div><div class="input-form"><label for="horizontal-form-1" class="form-label">Ablesedatum: {{ app.session.get('ablesedatum')[key]|date("d.m.Y") }}</label></div><div class="input-form"><label for="horizontal-form-1" class="form-label">Neuer Zählerstand: {{ app.session.get('staende')[key] }} {{ app.session.get('einheit')[key] }}</label></div>{% if key in app.session.get('toleranzart')|keys %}{% if app.session.get('toleranzart')[key] == "Anderer Grund" %}<div class="input-form"><label for="horizontal-form-1" class="form-label">Grund: {{ app.session.get('toleranzarttext')[key] }}</label></div>{% elseif app.session.get('toleranzart')[key] is not empty %}<div class="input-form"><label for="horizontal-form-1" class="form-label">Grund: {{ app.session.get('toleranzart')[key] }}</label></div>{% endif %}{% endif %}{% if value in app.session.get('fotos')|keys %}<img src="data:image/jpeg;base64,{{ app.session.get('fotos')[value] }}" alt="Foto" class="mt-3">{% endif %}{% endif %}{% endfor %}<div class="input-form mt-3"><label for="horizontal-form-1" class="form-label">gemeldet am: {{ "now"|date("d.m.Y") }} um {{ "now"|date("H:i") }} Uhr</label></div></div><div class="input-form mt-5"><input type="button" id="druckenDialog" class="btn btn-primary" value="Drucken"></div></div></div></div></div>{% endif %}{% if twofa and app.request.get('twofa') is empty %}<div id="twofapopup" class="modal" data-tw-backdrop="static" tabindex="-1" aria-hidden="true"><div class="modal-dialog modal-lg"><div class="modal-content" id="form-validation"><div class="modal-header"><h2 class="font-medium text-base mr-auto">Information zur 2FA </h2><a data-tw-dismiss="modal" class="closeDrucken" href="javascript:;"> <i data-lucide="x" class="w-8 h-8 text-slate-400"></i> </a></div> <!-- END: Modal Header --><div class="modal-body p-10"><form action="/login/twofa/" method="post" id="login2faformular"><div class="input-form mt-3"><label for="horizontal-form-1" class="form-label">Ihnen wird der Code nach dem Absenden per Mail zugesendet.</label></div><div class="input-form mt-5"><input type="hidden" id="emailtwofa" name="emailtwofa" class="btn btn-primary" value=""><input type="hidden" id="passwordtwofa" name="passwordtwofa" class="btn btn-primary" value=""><input type="submit" class="btn btn-primary" value="Absenden"></div></form></div></div></div></div>{% endif %}{% endblock %}{% block scripts %}<script src="{{ asset('/js/password-strength/jquery.strengthify.js')}}"></script><script src="{{ asset('/js/printthis/printThis.js')}}"></script><script src="{{ asset('/js/login.js')}}"></script>{% endblock %}