templates/login/index.html.twig line 1

  1. {# templates/login/index.html.twig #}
  2. {% extends 'base.html.twig' %}
  3. {% block body %}
  4. <div class="container sm:px-10">
  5.     <div class="block xl:grid grid-cols-2 gap-4">
  6.         <!-- BEGIN: Login Info -->
  7.         <div class="hidden xl:flex flex-col min-h-screen">
  8.             <a href="/" class="-intro-x flex items-center pt-5">
  9.                 {# <img id="logo" alt="/" class="w-32" src="{% if app.session.get('logo') %}/customerdata/{{ app.session.get('logo') }}{% else %}/images/logo-msu-farbig.svg{% endif %}"> #}
  10.                 <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>
  11.             </a>
  12.             <div class="my-auto">
  13.                 <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">
  14.                     {{ texte["login-0"]|raw }}
  15.                 </div>
  16.                 <div class="-intro-x mt-5 text-white text-opacity-70 dark:text-slate-400">
  17.                     <div class="text-lg">
  18.                         <span class="{% if is_granted('ROLE_ADMIN') %} customText {% else %} loadText {% endif %}" data-key="login-1">{{ texte["login-1"]|raw }}</span>
  19.                         <br>
  20.                         <br>
  21.                         <span class="{% if is_granted('ROLE_ADMIN') %} customText {% else %} loadText {% endif %}" data-key="login-2">
  22.                             {{ texte["login-2"]|raw }}
  23.                         </span>
  24.                     </div>
  25.                     <div class="mt-5">
  26.                         {% if "login-3" in texte|keys and texte["login-3"] is not empty %}
  27.                             <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>
  28.                         {% endif %}
  29.                         {% if "login-4" in texte|keys and texte["login-4"] is not empty %}
  30.                             <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>
  31.                         {% endif %}
  32.                         {% if "login-5" in texte|keys and texte["login-5"] is not empty %}
  33.                             <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>
  34.                         {% endif %}
  35.                         {% if "login-6" in texte|keys and texte["login-6"] is not empty %}
  36.                             <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>
  37.                         {% endif %}
  38.                         {% if "login-7" in texte|keys and texte["login-7"] is not empty %}
  39.                             <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>
  40.                         {% endif %}
  41.                         {% if "login-8" in texte|keys and texte["login-8"] is not empty %}
  42.                             <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>
  43.                         {% endif %}
  44.                         {% if "login-9" in texte|keys and texte["login-9"] is not empty %}
  45.                             <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>
  46.                         {% endif %}
  47.                     </div>
  48.                     <div class="flex justify-left mt-20">
  49.                         {% if is_granted('ROLE_ADMIN') %}
  50.                             <div class="flex items-center ml-5">
  51.                                 <a href="/dashboard" class="flex items-center py-2 mt-2 rounded-md"> Backend </a>
  52.                             </div>
  53.                         {% endif %}
  54.                     </div>
  55.                 </div>
  56.             </div>
  57.         </div>
  58.         <!-- END: Login Info -->
  59.         <!-- BEGIN: Login Form -->
  60.         <div class="h-screen xl:h-auto flex py-5 xl:py-0 my-10 xl:my-0">
  61.             <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">
  62.                 <img id="logo" alt="/" class="w-32" src="{% if app.session.get('logo') %}/customerdata/{{ app.session.get('logo') }}{% else %}/images/logo-msu-farbig.svg{% endif %}">
  63.                 <input type="hidden" name="target_action" value="{% if target_action is defined and target_action is not empty %}{{target_action}}{% endif %}">
  64.                 {% if portalvariante is defined and portalvariante == 'zaehlerstand' %}
  65.                     <button id="btn_zaehlerstand_melden" class="btn btn-dark-soft py-3 px-4 w-full xl:w-auto xl:mr-3 align-top" data-tw-toggle="modal" data-tw-target="#zaehlerstand-melden"
  66.                     {% if zaehlerstand_online is defined and not zaehlerstand_online == true %} disabled {% endif %}
  67.                     >Zählerstand melden
  68.                     {% if zaehlerstand_online is defined and not zaehlerstand_online == true %} <a class="flex items-center tooltip ml-2" data-theme="light" title="Diese Funktion steht zur Zeit nicht zur Verfügung" href="javascript:;">
  69.                         <i style="width: 15px; height: 15px;" data-lucide="info"></i>    
  70.                     </a> {% endif %}
  71.                     </button>
  72.                 {% else %}
  73.                 <form action="{{ path('login') }}" method="post" id="anmeldeFormular" class="mt-5">
  74.                 <h2 class="intro-x font-bold text-2xl xl:text-3xl text-center xl:text-left">
  75.                     {% if wartungsarbeiten is defined and wartungsarbeiten is not empty %}
  76.                         Es finden aktuell Wartungsarbeiten statt, so dass Sie sich nicht anmelden können.
  77.                         <input type="hidden" id="wartungsarbeiten" value="yes">
  78.                     {% elseif online is defined and online == false %}
  79.                         Das Portal ist aktuell offline.
  80.                         <input type="hidden" id="offline" value="yes">
  81.                     {% else %}
  82.                         <span class="{% if is_granted('ROLE_ADMIN') %}customText{% else %} loadText {% endif %}" data-key="login-11">Loggen Sie sich jetzt ein.</span>
  83.                     {% endif %}
  84.                 </h2>
  85.                     <p class="mt-5 font-normal">
  86.                         Bitte geben Sie hier Ihre Daten ein. Wenn Sie noch kein Kundenkonto bei uns haben, können Sie sich hier registrieren.
  87.                     </p>
  88.                 {% if error %}
  89.                     <br>
  90.                     <div class="alert alert-danger show flex items-center mb-2" role="alert">
  91.                         <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') }}
  92.                     </div>
  93.                 {% endif %}
  94.                 <div class="intro-x mt-2 text-slate-400 xl:hidden text-center"> </div>
  95.                 <div class="intro-x mt-8">
  96.                     <input type="text" class="intro-x login__input form-control py-3 px-4 block" id="username" name="_username" placeholder="E-Mail Adresse" value="{% if app.session.get("emailtwofa") %}{{ app.session.get("emailtwofa") }}{% endif %}">
  97.                     <input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}">
  98.                     <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("pwtwofa") %}{{ app.session.get("pwtwofa") }}{% endif %}">
  99.                     <input type="hidden" id="origin_route" name="origin_route" value="user">
  100.                     {% if app.request.get('twofa') %}
  101.                         <input type="text" id="code" name="code" class="intro-x login__input form-control py-3 px-4 block mt-4" placeholder="Code" value="">
  102.                     {% endif %}
  103.                 </div>
  104.                 <div class="intro-x flex text-slate-600 dark:text-slate-500 text-xs sm:text-sm mt-4">
  105.                     <a href="/passwort-vergessen/">Passwort vergessen?</a>
  106.                 </div>
  107.                 <div class="intro-x mt-5 xl:mt-8 text-center xl:text-left">
  108.                     <input type="hidden" id="twofa" value="{% if twofa is defined and twofa is not empty %} {{twofa}} {% endif %}">
  109.                     <button class="btn btn-primary py-3 px-4 w-full xl:w-32 xl:mr-3 align-top" id="anmelden">Anmelden</button>
  110.                 </div>
  111.                 </form>
  112.                 {% if wartungsarbeiten is not defined or wartungsarbeiten is empty %}
  113.                 <div class="intro-x mt-5 xl:mt-8 text-center xl:text-left">
  114.                     <button id="btn_zugang_beantragen" class="btn btn-dark-soft py-3 px-4 w-full xl:w-auto xl:mr-3 align-top" data-tw-toggle="modal" data-tw-target="#zugang-beantragen">Zugang beantragen</button>
  115.                     <button id="btn_zaehlerstand_melden" class="btn btn-dark-soft py-3 px-4 w-full xl:w-auto xl:mr-3 align-top" data-tw-toggle="modal" data-tw-target="#zaehlerstand-melden"
  116.                         {% if zaehlerstand_online is defined and not zaehlerstand_online == true %} disabled title="Die Zählerstandsmeldung ist aktuell nicht verfügbar." {% endif %}
  117.                     >Zählerstand melden
  118.                     {% if zaehlerstand_online is defined and not zaehlerstand_online == true %} <a class="flex items-center tooltip ml-2" data-theme="light" title="Diese Funktion steht zur Zeit nicht zur Verfügung" href="javascript:;">
  119.                         <i style="width: 15px; height: 15px;" data-lucide="info"></i>    
  120.                     </a> {% endif %}
  121.                     </button>
  122.                     {% if app.session.get('tarifrechner') %}
  123.                         <div class="btn btn-dark-soft py-3 px-4 w-full xl:w-auto xl:mr-3 align-tops"><a href="/tarifrechner/">Tarifrechner</a></div>
  124.                     {% endif %}
  125.                     <button class="btn btn-primary py-3 px-4 w-full xl:w-auto xl:mr-3 align-top" id="test" data-tw-toggle="modal" data-tw-target="#barrierefreiheit">Barrierefreiheit</button>
  126.                     <button class="hidden" id="druckenbutton" data-tw-toggle="modal" data-tw-target="#drucken">drucken</button>
  127.                     <button class="hidden" id="twofabutton" data-tw-toggle="modal" data-tw-target="#twofapopup">drucken</button>
  128.                 </div>
  129.                 {% endif %}
  130.                 {% if info is defined %}
  131.                     <div class="alert alert-secondary show flex items-center mb-2 mt-2" role="alert">
  132.                         <i data-lucide="mail" class="w-6 h-6 mr-2"></i> {{ info }}
  133.                     </div>
  134.                 {% endif %}
  135.             {% endif %}
  136.             <div class="intro-x mt-10 xl:mt-24 text-slate-600 dark:text-slate-500 text-center xl:text-left">
  137.                 <a href="{% if barrierefreiheit is defined and barrierefreiheit is not empty %} {{barrierefreiheit}} {% endif %}" class="text-primary dark:text-slate-200 mr-5"> Barrierefreiheit </a>
  138.                 <a href="{% if datenschutz is defined and datenschutz is not empty %} {{datenschutz}} {% endif %}" class="text-primary dark:text-slate-200 mr-5"> Datenschutz </a>
  139.                 <a href="{% if impressum is defined and impressum is not empty %} {{impressum}} {% endif %}" class="text-primary dark:text-slate-200"> Impressum </a>
  140.             </div>
  141.         </div>
  142.         <!-- END: Login Form -->
  143.     </div>
  144. </div>
  145. <!-- BEGIN: Modal Content Zugang beantragen bearbeiten -->
  146. <div id="zugang-beantragen" class="modal z-10" data-tw-backdrop="static" tabindex="-1" aria-hidden="true">
  147.     <div class="modal-dialog modal-xl">
  148.         <div class="modal-content" id="form-validation">
  149.             <form action="/zugangbeantragen/" method="post" id="loginForm">
  150.                 <!-- BEGIN: Modal Header -->
  151.                 <div class="modal-header">
  152.                     <h2 class="font-medium text-base mr-auto">Zugang beantragen</h2>
  153.                     <a data-tw-dismiss="modal" href="javascript:;"> <i data-lucide="x" class="w-8 h-8 text-slate-400"></i> </a>
  154.                 </div> <!-- END: Modal Header -->
  155.                 <div class="modal-body p-10">
  156.                     {% if authmethode is defined and authmethode == 'internal' %}
  157.                     <div class="input-form">
  158.                         <label for="validation-form-1" class="form-label">Rahmenvertragsnummer* </label>
  159.                         <input id="customerid"  type="text" class="form-control" name="kundennummer" placeholder="123456" required>
  160.                     </div>
  161.                     {% else %}
  162.                     <div class="input-form">
  163.                         <label for="validation-form-1" class="form-label">Geschäftspartnernummer* </label>
  164.                         <input id="customerid"  type="text" class="form-control" name="kundennummer" placeholder="GP1234" required>
  165.                     </div>
  166.                     {% endif %}
  167.                     <div class="input-form mt-3">
  168.                         <label for="horizontal-form-1" class="form-label">Zählernummer*</label>
  169.                         <input id="meterno" type="text" class="form-control" name="leistungsobjektnummer" placeholder="123456" required>
  170.                     </div>
  171.                     <div class="input-form mt-3">
  172.                         <label for="horizontal-form-1" class="form-label">E-Mail-Adresse*</label>
  173.                         <input id="email" type="email" name="email" class="form-control" placeholder="test@test.de" required>
  174.                     </div>
  175.                     <div class="input-form mt-3">
  176.                         <label for="horizontal-form-1" class="form-label">E-Mail-Adresse zur Überprüfung erneut eingeben* </label>
  177.                         <input id="emailnochmal" type="email" name="emailnochmal" class="form-control" placeholder="test@test.de" required>
  178.                     </div>
  179.                     <div class="input-form mt-3">
  180.                         <label for="horizontal-form-2" class="form-label">Passwort</label>
  181.                         <input id="passwortupdate" type="password" name="passwort" class="form-control" placeholder="****" required autocomplete="off">
  182.                     </div>
  183.                     <div class="input-form mt-3">
  184.                         <label for="horizontal-form-2" class="form-label">Passwort bestätigen</label>
  185.                         <input id="passwortupdaterepeat" type="password" name="passwort-repeat" class="form-control" placeholder="****" required autocomplete="off">
  186.                     </div>
  187.                     {#
  188.                     <div class="input-form mt-3">
  189.                         <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>
  190.                         {% if zustellarten is defined and zustellarten is not empty %}
  191.                             <select class="form-select mt-2 sm:mr-2" aria-label="" name="zustellart" id="zustellart">
  192.                                 <option value="">Bitte auswählen</option>
  193.                                     {% for key,value in zustellarten %}
  194.                                         <option value="{{ value }}">{{ value }}</option>
  195.                                     {% endfor %}
  196.                             </select>
  197.                         {% endif %}
  198.                     </div>
  199.                     #}
  200.                     <div class="input-form mt-5 border-t pt-5">
  201.                         <div class="form-check form-switch">
  202.                             <input id="datenschutz" class="form-check-input" type="checkbox" required name="datenschutz">
  203.                             <label class="form-check-label" for="datenschutz">Ja, ich habe die <a target="_blank" href="{% if datenschutz is defined and datenschutz is not empty %} {{datenschutz}} {% endif %}">Datenschutzerklärung</a> zur Kenntnis genommen und akzeptiere diese.</label>
  204.                         </div>
  205.                     </div>
  206.                     {% if app.session.get('textzugangbeantragen') %}
  207.                         <div class="input-form mt-3">
  208.                             <div class="form-check form-switch">
  209.                                 <input id="kundenportal" class="form-check-input" type="checkbox" name="kundenportal">
  210.                                 <label class="form-check-label" for="kundenportal">Ja, ich möchte zukünftig meine Dokumente nur über das Kundenportal abrufen.</label>
  211.                             </div>
  212.                         </div>
  213.                         <div class="input-form mt-3">
  214.                             <div class="form-check form-switch">
  215.                                 <input id="informationen" class="form-check-input" type="checkbox" name="informationen">
  216.                                 <label class="form-check-label" for="informationen">Ja, ich möchte weitere Informationen zu neuen Produkten erhalten.</label>
  217.                             </div>
  218.                         </div>
  219.                     {% endif %}
  220.                 </div>
  221.                 <div class="modal-footer text-center">
  222.                     <a data-tw-dismiss="modal" href="javascript:;">
  223.                         <span class="btn btn-secondary abbrechen" id="abbrechen">Abbrechen</span>
  224.                     </a>
  225.                     <input type="submit" class="btn btn-primary" value="Zugang beantragen" id="zugangbeantragen">
  226.                 </div>
  227.             </form>
  228.         </div>
  229.     </div>
  230. </div> <!-- END: Modal Content -->
  231.     <!-- BEGIN: Modal Content Zählerstand melden bearbeiten -->
  232. <div id="zaehlerstand-melden" class="modal" data-tw-backdrop="static" tabindex="-1" aria-hidden="true">
  233.     <div class="modal-dialog modal-xl">
  234.         <div class="modal-content" id="form-validation">
  235.             <form action="/zaehlerstanderfassen/" method="post" id="zaehlerstandMeldenForm">
  236.                 <div class="intro-y box p-5">
  237.                     <!-- BEGIN: Modal Header -->
  238.                     <div class="modal-header">
  239.                         <h2 class="font-medium text-base mr-auto">Zählerstand melden</h2>
  240.                         <a data-tw-dismiss="modal" href="javascript:;" class="zaehlerstandmeldenschliessen"> <i data-lucide="x" class="w-8 h-8 text-slate-400"></i> </a>
  241.                     </div> <!-- END: Modal Header -->
  242.                     <p class="p-5">Hier können Sie die Zählerstände eines Rahmenvertrages melden. Wenn Sie zu einem Zähler keinen Stand melden wollen, lassen Sie das Feld neuer Zählerstand bitte leer.</p>
  243.                     <div class="modal-header"><h2 class="font-medium text-base mr-auto">Anmeldung</h2></div>
  244.                     <div class="grid grid-cols-12 gap-6 p-5">
  245.                         <div class="col-span-12 lg:col-span-6">
  246.                             <div class="">
  247.                                 <label for="" class="form-label">Rahmenvertragsnummer <span class="red"> *</span></label>
  248.                                 <input id="customeridz"  type="text" class="form-control" name="kundennummer" required value="{% if app.session.get('rahmenvertrag') %}{{ app.session.get('rahmenvertrag')}}{% endif %}">
  249.                                 <input id="showFormularAuto" type="hidden" value="{% if app.request.get('rahmenvertrag') %}1{% else %}2{% endif %}">
  250.                                 <input id="hiddenrv" type="hidden" value="{{ app.session.get('rahmenvertrag')}}">
  251.                                 <input id="hiddenznr" type="hidden" value="{{ app.session.get('zaehlernr')}}">
  252.                             </div>
  253.                         </div>
  254.                         <div class="col-span-12 lg:col-span-6">
  255.                             <div class="input-form">
  256.                                 <label for="" class="form-label">Zählernummer<span class="red"> *</span></label>
  257.                                 <input id="leistungsobjektnummerz" type="text" class="form-control" name="leistungsobjektnummer" required value="{% if app.session.get('zaehlernr') %}{{ app.session.get('zaehlernr')}}{% endif %}">
  258.                                 <input id="contractnoz" type="hidden" class="form-control" name="AccountingContractNo" placeholder="">
  259.                                 <input id="ZS_METERREGIDX" type="hidden" class="form-control" name="ZS_METERREGIDX" placeholder="">
  260.                                 <input id="minToleranz" type="hidden" class="form-control" name="minToleranz" placeholder="">
  261.                                 <input id="maxToleranz" type="hidden" class="form-control" name="maxToleranz" placeholder="">
  262.                             </div>
  263.                         </div>
  264.                     </div>
  265.                 </div>
  266.                 <div class="hidden" id="mehrerevertraege">
  267.                 </div>
  268.                 <div class="input-form mt-5 hidden" id="hiddenKontakt">
  269.                     <span class="font-bold mt-3">Optionale Kontaktdaten</span>
  270.                     <br>
  271.                     <span class="mt-5">Wenn Sie Ihre E-Mail-Adresse eingeben, dann erhalten Sie eine Bestätigung der Zählerstandsmeldung an Ihre E-Mail.
  272.                         Ihre Kontaktdaten werden für mögliche Nachfragen an uns übermittelt. Sie müssen diese nicht eingeben.</span>
  273.                     <br>
  274.                     <label for="horizontal-form-2" class="form-label mt-5">E-Mail-Adresse</label>
  275.                     <input type="email" name="emailkontakt" id="emailkontakt" class="form-control" placeholder="" autocomplete="off">
  276.                     <label for="horizontal-form-2" class="form-label mt-5">Telefonnummer</label>
  277.                     <input type="text" name="telefonkontakt" class="form-control" placeholder="" autocomplete="off">
  278.                 </div>
  279.                 <div class="modal-footer text-center">
  280.                     <a data-tw-dismiss="modal" href="javascript:;">
  281.                         <span class="btn btn-secondary abbrechen zaehlerstandmeldenschliessen" id="abbrechen">Abbrechen</span>
  282.                     </a>
  283.                     <input type="submit" class="btn btn-primary" value="Daten prüfen" id="zaehlerstandmelden">
  284.                 </div>
  285.             </form>
  286.         </div>
  287.     </div>
  288. </div> <!-- END: Modal Content -->
  289.     {% if app.request.get('drucken') == 1 %}
  290.         <div id="drucken" class="modal" data-tw-backdrop="static" tabindex="-1" aria-hidden="true">
  291.             <div class="modal-dialog modal-lg">
  292.                 <div class="modal-content" id="form-validation">
  293.                     <div class="modal-header">
  294.                         <h2 class="font-medium text-base mr-auto">Zählerstand drucken  </h2>
  295.                         <a data-tw-dismiss="modal" class="closeDrucken" href="javascript:;"> <i data-lucide="x" class="w-8 h-8 text-slate-400"></i> </a>
  296.                     </div> <!-- END: Modal Header -->
  297.                     <div class="modal-body p-5">
  298.                         <div id="druckenElemente">
  299.                             <div class="input-form">
  300.                                 <h2 class="font-medium text-base mr-auto">Zählerstand gemeldet</h2>
  301.                             </div>
  302.                             <div class="input-form mt-3">
  303.                                 {{ app.session.get('druckentext')|raw }}
  304.                             </div>
  305.                             {#
  306.                             {% for key,value in app.session.get('zaehler') %}
  307.                                     {% if app.session.get('staende')[key] is not empty %}
  308.                                         <div class="input-form mt-3">
  309.                                             <label for="horizontal-form-1" class="form-label">Zähler: {{ value }}</label>
  310.                                         </div>
  311.                                         <div class="input-form mt-1">
  312.                                             <label for="horizontal-form-1" class="form-label">Ablesedatum: {{ app.session.get('ablesedatum')[key]|date("d.m.Y") }}</label>
  313.                                         </div>
  314.                                         <div class="input-form mt-1">
  315.                                             <label for="horizontal-form-1" class="form-label">Neuer Zählerstand: {{ app.session.get('staende')[key]|replace({",":"."})|number_format(2,",",".") }}</label>
  316.                                         </div>
  317.                                     {% endif %}
  318.                             {% endfor %}
  319.                             #}
  320.                             <div class="input-form mt-3">
  321.                                 <label for="horizontal-form-1" class="form-label">gemeldet am: {{ "now"|date("d.m.Y") }} um {{ "now"|date_modify("+2 hours ")|date("H:i") }} Uhr</label>
  322.                             </div>
  323.                         </div>
  324.                         <div class="input-form mt-5">
  325.                             <input type="button" id="druckenDialog" class="btn btn-primary" value="Drucken">
  326.                         </div>
  327.                     </div>
  328.                 </div>
  329.             </div>
  330.         </div>
  331.     {% endif %}
  332.     {% if twofa is defined and app.request.get('twofa') is empty %}
  333.         <div id="twofapopup" class="modal" data-tw-backdrop="static" tabindex="-1" aria-hidden="true">
  334.             <div class="modal-dialog modal-lg">
  335.                 <div class="modal-content" id="form-validation">
  336.                     <div class="modal-header">
  337.                         <h2 class="font-medium text-base mr-auto">Information zur 2FA </h2>
  338.                         <a data-tw-dismiss="modal" class="closeDrucken" href="javascript:;"> <i data-lucide="x" class="w-8 h-8 text-slate-400"></i> </a>
  339.                     </div> <!-- END: Modal Header -->
  340.                     <div class="modal-body p-10">
  341.                         <form action="/login/twofa/" method="post" id="login2faformular">
  342.                             <div class="input-form mt-3">
  343.                                 <label for="horizontal-form-1" class="form-label">Wir haben Ihnen einen Logincode per E-Mail zugesendet.</label>
  344.                             </div>
  345.                             <div class="input-form mt-5">
  346.                                 <input type="hidden" id="emailtwofa" name="emailtwofa" class="btn btn-primary" value="">
  347.                                 <input type="hidden" id="pwtwofa" name="pwtwofa" class="btn btn-primary" value="">
  348.                                 <input type="submit" class="btn btn-primary" value="Absenden">
  349.                             </div>
  350.                         </form>
  351.                     </div>
  352.                 </div>
  353.             </div>
  354.         </div>
  355.     {% endif %}
  356. {% endblock %}
  357. {% block scripts %}
  358.     <script src="{{ asset('/js/printthis/printThis.js')}}"></script>
  359.     <script src="{{ asset('/js/login.js')}}"></script>
  360. {% endblock %}