diff options
author | Thomas <> | 2022-06-03 16:02:01 +0200 |
---|---|---|
committer | Thomas <> | 2022-06-03 16:02:01 +0200 |
commit | 9d1d6626032aa59eb169e310ed239b94c0bc5447 (patch) | |
tree | 4ecbdce1b177ae5380b0470555d4fb90297e26ff /basicConfig/ms-connector/templates | |
parent | 7f0a925a72dc9841280e66fcba1515af62b9efdf (diff) | |
download | National_eIDAS_Gateway-9d1d6626032aa59eb169e310ed239b94c0bc5447.tar.gz National_eIDAS_Gateway-9d1d6626032aa59eb169e310ed239b94c0bc5447.tar.bz2 National_eIDAS_Gateway-9d1d6626032aa59eb169e310ed239b94c0bc5447.zip |
chore(config): split default configuration into MS-Connector and MS-Proxy-Servie
Diffstat (limited to 'basicConfig/ms-connector/templates')
8 files changed, 772 insertions, 0 deletions
diff --git a/basicConfig/ms-connector/templates/countrySelection.html b/basicConfig/ms-connector/templates/countrySelection.html new file mode 100644 index 00000000..275d20f6 --- /dev/null +++ b/basicConfig/ms-connector/templates/countrySelection.html @@ -0,0 +1,133 @@ +<!DOCTYPE html> +<html xmlns:th="http://www.thymeleaf.org" + xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" + layout:decorator="fragments/base" + th:with="lang=${#locale.language}" th:lang="${lang}"> +<head> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> + <meta name="viewport" content="width=device-width, initial-scale=1"> +<!-- <link rel="stylesheet" href="$contextPath/css/css_country.css" th:href="@{/css/css_country.css}"/> --> + <link rel="stylesheet" href="/static/common.css"/> + <title th:text="#{gui.countryselection.title}">eIDAS-Login Länderauswahl</title> +<style> +</style> +<script type="text/javascript"> + +/* Element.closest polyfill - https://developer.mozilla.org/en-US/docs/Web/API/Element/closest License: public domain*/ +if (!Element.prototype.matches) + Element.prototype.matches = Element.prototype.msMatchesSelector || + Element.prototype.webkitMatchesSelector; + +if (!Element.prototype.closest) + Element.prototype.closest = function(s) { + var el = this; + if (!document.documentElement.contains(el)) return null; + do { + if (el.matches(s)) return el; + el = el.parentElement || el.parentNode; + } while (el !== null && el.nodeType === 1); + return null; + }; + + +function clickCountryFlag(element) { + if (!element) return false; + + var form = element.closest("form"); + + if (!form) return false; + + form.submit(); + return false; +} +</script> +</head> +<body> + <div class="header container"> + <div class="titlebar"> + <div> + <a href="https://www.bmi.gv.at/" target="_blank" title="Home"> + <img class="toplogo img-responsive" src="/static/BMI.png" alt="Logo BMI" + th:attr="alt=#{gui.countryselection.logo.bmi.alt}"> + <h1 class="hidden" th:text="#{gui.countryselection.header1}"> Bundesministerium für Inneres </h1> + </a> + </div> + <ul class="nav_oben"> + <li> + <div class="languageselection" th:include="language_selection :: selectlanguage"> + LanguageSelectionBlock + </div> + </li> + + <li><a href="https://www.bmi.gv.at/" target="_blank" th:text="#{gui.countryselection.link.bmi}" > Startseite BMI </a></li> + </ul> + </div> + </div> + <div class="content"> + <div class="subtitle"> + <h1 th:text="#{gui.countryselection.header2}" > Zentraler eIDAS Knoten der Republik Österreich </h1> + <h2 th:text="#{gui.countryselection.header3}" > Betrieben durch das Bundesministerium für Inneres </h2> + </div> + + <h1 th:text="#{gui.countryselection.header.selection}"> Wählen Sie Ihr Land / Select your country </h1> + + <!-- Active countries --> + + <div id="country" th:with="countries=${ {'be', 'dk', 'de', 'ee', 'el', 'it', 'hr', 'lt', 'lv', 'lu', 'nl', 'pt', 'sk', 'si', 'es', 'cz' }}"> + <form th:each="country : ${countries}" class="block" method="post" action="$contextPath$submitEndpoint" th:attr="action=@{${submitEndpoint}}"> + <a onclick='clickCountryFlag(this)'><img class="countryimage" + th:attr="src=@{#{gui.countryselection.country.__${country}__.img}},alt=#{gui.countryselection.country.__${country}__.logo.alt}"/></a> + + <input type="submit" class="country-button" role="button" value="?countryname?" th:attr="value=#{gui.countryselection.country.__${country}__}" /> + <input type="hidden" name="selectedCountry" th:value="${#strings.toUpperCase(country)}"> + <input type="hidden" name="pendingid" value="$pendingid" th:attr="value=${pendingid}" /> + </form> + </div> +<!--/* + <div id="country"> + <form class="block" method="post" action="$contextPath$submitEndpoint" th:attr="action=@{${submitEndpoint}}"> + <a><img class="countryimage" src="$contextPath/img/countries/germany-eu_.png" alt="Germany-eID" + th:attr="src=@{/img/countries/germany-eu_.png},alt=#{gui.countryselection.country.de.logo.alt}"/></a> + <input type="submit" role="button" value="Deutschland / Germany" th:attr="value=#{gui.countryselection.country.de}" /> + <input type="hidden" name="selectedCountry" value="DE"> + <input type="hidden" name="pendingid" value="$pendingid" th:attr="value=${pendingid}" /> + </form> + + </div> +*/--> + + <!-- Abbrechen Button --> + <form class="block" method="post" action="$contextPath$submitEndpoint" th:attr="action=@{${submitEndpoint}}"> + <input type="submit" class="btn btn-outline-primary btn-block cancel-button" value="Abbrechen/Cancel" th:attr="value=#{gui.countryselection.cancle}"> + <input type="hidden" name="stopAuthProcess" value="true" > + <input type="hidden" name="pendingid" value="$pendingid" th:attr="value=${pendingid}"> + </form> + + <p th:text="#{gui.countryselection.notsupportedinfo}" >Wenn Sie Ihr Land in dieser Aufzählung nicht entdecken ... </p> + +<h2 th:text="#{gui.countryselection.infos.general.header}" > Information zur Anmeldung über Europäische eIDs </h2> +<p> + <span th:text="#{gui.countryselection.infos.general.part.1}"> first part </span> + <a href="https://www.bmi.gv.at/" target="_blank" th:text="#{gui.countryselection.header1}" > Bundesministerium für Inneres </a> + <span th:text="#{gui.countryselection.infos.general.part.2}"> second part </span> +</p> + +<p> + <span th:text="#{gui.countryselection.infos.general.part.3}"> third part </span> + <a href="https://eur-lex.europa.eu/legal-content/DE/TXT/HTML/?uri=CELEX:32014R0910&from=DE" target="_blank" th:text="#{gui.countryselection.infos.general.link.1}"> eIDAS-Verordnung der Europäischen Union </a> + <span th:text="#{gui.countryselection.infos.general.part.4}"> fourth part </span> +</p> + +<p> + <span th:text="#{gui.countryselection.infos.general.part.5}"> fived part </span> + <a href="http://ernp.bmi.gv.at/" target="_blank" th:text="#{gui.countryselection.infos.general.link.2}" ></a> + <span th:text="#{gui.countryselection.infos.general.part.6}"> sixed part </span> +</p> + + </div> + <footer> + <div class="copyright">© BUNDESMINISTERIUM FÜR INNERES</div> + <div></div> + </footer> +</body> +</html> diff --git a/basicConfig/ms-connector/templates/countrySelection_example.html b/basicConfig/ms-connector/templates/countrySelection_example.html new file mode 100644 index 00000000..39d96225 --- /dev/null +++ b/basicConfig/ms-connector/templates/countrySelection_example.html @@ -0,0 +1,54 @@ +<!DOCTYPE html> +<html xmlns:th="http://www.thymeleaf.org" + xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" + layout:decorator="fragments/base" + th:with="lang=${#locale.language}" th:lang="${lang}"> + +<head> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link rel="stylesheet" href="../webcontent/css/css_country.css" th:href="@{/static/css/css_country.css}"/> + <script type="text/javascript" src="../webcontent/js/js_country.js" th:attr="src=@{/static/js/js_country.js}"></script> + <title th:text="#{gui.countryselection.title}">eIDAS-Login Länderauswahl</title> +</head> + +<body> + <div id="page"> + <div class="languageselection" th:include="language_selection :: selectlanguage"> + LanguageSelectionBlock + </div> + + <h2 th:text="#{gui.countryselection.header.selection}"> Select your country </h2> + <div id="country"> + + <form class="block" method="post" action="$contextPath$submitEndpoint" th:attr="action=@{${submitEndpoint}}"> + <a><img class="countryimage" src="../webcontent/img/countries/germany-eu_.png" alt="Germany-eID" + th:attr="src=@{/img/countries/germany-eu_.png},alt=#{gui.countryselection.country.de.logo.alt}"/></a> + <input type="submit" role="button" value="Deutschland / Germany" th:attr="value=#{gui.countryselection.country.de}" /> + <input type="hidden" name="selectedCountry" value="DE"> + <input type="hidden" name="pendingid" value="$pendingid" th:attr="value=${pendingid}" /> + <select id="testEnvironment" name="selectedEnvironment"> + <option value="prod" th:text="#{gui.countryselection.mode.prod}">Production</option> + <option value="qs" th:text="#{gui.countryselection.mode.qs}">QS</option> + <option value="test" th:text="#{gui.countryselection.mode.test}">Testing</option> + <option value="dev" th:text="#{gui.countryselection.mode.dev}">Development</option> + </select> + </form> + + <form class="block" method="post" action="$contextPath$submitEndpoint" th:attr="action=@{${submitEndpoint}}"> + <a><img class="countryimage" src="../webcontent/img/countries/Belgium-EU_gray.png" alt="Belgium-eID" + th:attr="src=@{img/countries/Belgium-EU_gray.png},alt=#{gui.countryselection.country.be.logo.alt}"/></a> + <input type="submit" value="Belgium" th:attr="value=#{gui.countryselection.country.be}"> + </form> + + </div> + + <form class="block" method="post" action="$contextPath$submitEndpoint" th:attr="action=@{${submitEndpoint}}"> + <input type="submit" class="btn btn-outline-primary btn-block" value="Abbrechen/Cancel" th:attr="value=#{gui.countryselection.cancel}"> + <input type="hidden" name="stopAuthProcess" value="true" > + <input type="hidden" name="pendingid" value="$pendingid" th:attr="value=${pendingid}"> + </form> + + </div> +</body> +</html> diff --git a/basicConfig/ms-connector/templates/eidas_node_forward.html b/basicConfig/ms-connector/templates/eidas_node_forward.html new file mode 100644 index 00000000..4486d146 --- /dev/null +++ b/basicConfig/ms-connector/templates/eidas_node_forward.html @@ -0,0 +1,36 @@ +<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org"
+ xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+ layout:decorator="fragments/base"
+ th:with="lang=${#locale.language}" th:lang="${lang}">
+<head>
+ <script src="$contextPath/autocommit.js"
+ th:attr="src=@{/autocommit.js}"></script>
+</head>
+<body>
+ <noscript>
+ <p>
+ <strong>Note:</strong> Since your browser does not support
+ JavaScript, you must press the Continue button once to proceed.
+ </p>
+ </noscript>
+
+ <div id="alert">Your login is being processed. Thank you for
+ waiting.</div>
+
+ <form action="${endPoint}" method="post" target="_parent"
+ th:attr="action=@{${endPoint}}">
+ <div>
+ <input type="hidden" name="${tokenName}" value="${tokenValue}"
+ th:attr="value=${tokenValue},name=${tokenName}" />
+ </div>
+ <noscript>
+ <div>
+ <p>Your browser does not support JavaScript. Click the button to continuing the process .</p>
+ <input type="submit" value="Continue" />
+ </div>
+ </noscript>
+ </form>
+
+</body>
+</html>
\ No newline at end of file diff --git a/basicConfig/ms-connector/templates/error_message.html b/basicConfig/ms-connector/templates/error_message.html new file mode 100644 index 00000000..0d8d2d4e --- /dev/null +++ b/basicConfig/ms-connector/templates/error_message.html @@ -0,0 +1,60 @@ +<!DOCTYPE HTML>
+<html xmlns:th="http://www.thymeleaf.org"
+ xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+ layout:decorator="fragments/base"
+ th:with="lang=${#locale.language}" th:lang="${lang}">
+
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+ <link rel="stylesheet" href="/static/common.css"/>
+
+ <title th:text="#{gui.errorpage.msg.title}">An error arise ... </title>
+</head>
+
+<body>
+ <div class="header container">
+ <div class="titlebar">
+ <div>
+ <a href="https://www.bmi.gv.at/" target="_blank" title="Home">
+ <img class="toplogo img-responsive" src="/static/BMI.png" alt="Logo BMI"
+ th:attr="alt=#{gui.countryselection.logo.bmi.alt}">
+ <h1 class="hidden" th:text="#{gui.countryselection.header1}"> Bundesministerium für Inneres </h1>
+ </a>
+ </div>
+ <ul class="nav_oben">
+
+ <li><a href="https://www.bmi.gv.at/" target="_blank" th:text="#{gui.countryselection.link.bmi}" > Startseite BMI </a></li>
+ </ul>
+ </div>
+ </div>
+
+ <div class="content">
+ <div id="page1" class="case selected-case" role="main">
+ <div class="hell" role="application" >
+ <h2 class="OA_header" role="heading" th:text="#{gui.errorpage.msg.title}">Error Header</h2>
+
+ <div id="alert_area" class="hell" role="application" >
+ <p th:text="#{gui.errorpage.msg.information}">Error Information</p>
+ <br/>
+ <!-- internal errorCodes -->
+ <!--p><b th:text="#{gui.errorpage.msg.errorcode}">Code:</b> <span th:text="${errorCode}"></span></p-->
+
+ <!-- grouped external errorCodes -->
+ <p><b th:text="#{gui.errorpage.msg.errorcode}">Code:</b> <span th:text="${extErrorCode}"></span></p>
+
+ <p><b th:text="#{gui.errorpage.msg.errormsg}">Msg:</b> <span th:text="${#messages.msgWithParams('__${errorCode}__', '__${errorParams}__')}"></span></p>
+ </div>
+ </div>
+
+ <div th:if="${stacktrace}">
+ <p><b th:text="#{gui.errorpage.msg.stacktrace}">fullError</b> <span th:text="${stacktrace}"></span></p>
+ </div>
+
+ </div>
+ </div>
+ <footer>
+ <div class="copyright">© BUNDESMINISTERIUM FÜR INNERES</div>
+ <div></div>
+ </footer>
+
+</body>
+</html> diff --git a/basicConfig/ms-connector/templates/language_selection.html b/basicConfig/ms-connector/templates/language_selection.html new file mode 100644 index 00000000..8d34c73b --- /dev/null +++ b/basicConfig/ms-connector/templates/language_selection.html @@ -0,0 +1,15 @@ +<!DOCTYPE html SYSTEM "http://www.thymeleaf.org/dtd/xhtml1-strict-thymeleaf-4.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" + xmlns:th="http://www.thymeleaf.org"> + + <body> + + <div th:fragment="selectlanguage"> + <a th:href="@{|${submitEndpoint}?lang=de|(pendingid=${pendingid})}" th:text="#{gui.general.language.selection.de}">Spache1</a> + <span> </span> + <a th:href="@{|${submitEndpoint}?lang=en|(pendingid=${pendingid})}" th:text="#{gui.general.language.selection.en}">Spache2</a> + </div> + + </body> + +</html> diff --git a/basicConfig/ms-connector/templates/other_login_method.html b/basicConfig/ms-connector/templates/other_login_method.html new file mode 100644 index 00000000..120b0ecd --- /dev/null +++ b/basicConfig/ms-connector/templates/other_login_method.html @@ -0,0 +1,153 @@ +<!DOCTYPE html> +<html xmlns:th="http://www.thymeleaf.org" + xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" + layout:decorator="fragments/base" + th:with="lang=${#locale.language}" th:lang="${lang}"> +<head> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link rel="stylesheet" href="../webcontent/css/css_country.css" th:href="@{/static/css/css_country.css}"/> + <title th:text="#{gui.otherlogin.title}">eIDAS-Login Other Login Methods</title> + <style> + .block { + width: 100%; + } + button { + padding: 0.5em; + margin: 0.5em; + width: 20em; + } + </style> +</head> +<body> +<div class="header container"> + <div class="titlebar"> + <div> + <a href="https://www.bmi.gv.at/" target="_blank" title="Home"> + <img class="toplogo img-responsive" src="/static/BMI.png" alt="Logo BMI" + th:attr="alt=#{gui.countryselection.logo.bmi.alt}"> + <h1 class="hidden" th:text="#{gui.countryselection.header1}"> Bundesministerium für Inneres </h1> + </a> + </div> + <ul class="nav_oben"> + <li> + <div class="languageselection" th:include="language_selection :: selectlanguage"> + LanguageSelectionBlock + </div> + </li> + + <li> + <a href="https://www.bmi.gv.at/" target="_blank" th:text="#{gui.countryselection.link.bmi}">Startseite + BMI </a> + </li> + </ul> + </div> +</div> +<div class="content"> + <div class="subtitle"> + <h1 th:text="#{gui.countryselection.header2}"> Zentraler eIDAS Knoten der Republik Österreich </h1> + <h2 th:text="#{gui.countryselection.header3}"> Betrieben durch das Bundesministerium für Inneres </h2> + </div> + + <div th:if="${createNewErnpEntry != null} and ${createNewErnpEntry}"> + + <div class="mainDescription"> + <h3 th:text="#{gui.otherlogin.inserternp.header.selection}"> Generate new ERnP entry</h3> + + <p th:text="#{gui.otherlogin.inserternp.first}"> Insert ERnP first block </p> + <p th:text="#{gui.otherlogin.inserternp.second}"> Insert ERnP second block </p> + <p> + <span th:text="#{gui.otherlogin.inserternp.third.prefix}"> Insert ERnP third block / part 1 </span> + <span> <a href="mailto:BMI-IKT-eIDAS-Betrieb@bmi.gv.at"> BMI-IKT-eIDAS-Betrieb@bmi.gv.at </a></span> + <span th:text="#{gui.otherlogin.inserternp.third.postfix}"> Insert ERnP third block / part 3 </span> + </p> + </div> + + <div id="insertErnp" class="block"> + <form class="block,singleButton" method="post" action="$contextPath$submitEndpoint" th:attr="action=@{${submitEndpoint}}"> + <button type="submit" role="button" value="Keine weitere HS / eIDAS" + th:text="#{gui.otherlogin.button.inserternp}">D + </button> + <input type="hidden" name="loginSelection" value="ADD_ME_AS_NEW"> + <input type="hidden" name="pendingid" value="$pendingid" th:attr="value=${pendingid}"/> + </form> + </div> + + <div id="stopMatching" class="block"> + <!-- Abbrechen Button --> + <form class="block,singleButton" method="post" action="$contextPath$submitEndpoint" th:attr="action=@{${submitEndpoint}}"> + <button type="submit" value="Abbrechen/Cancel" th:text="#{gui.otherlogin.cancel}"></button> + <input type="hidden" name="stopAuthProcess" value="true"> + <input type="hidden" name="pendingid" value="$pendingid" th:attr="value=${pendingid}"> + </form> + </div> + + </div> + + <div th:unless="${createNewErnpEntry!= null} and ${createNewErnpEntry}"> + + <div class="mainDescription"> + <h3 th:text="#{gui.otherlogin.header.selection}"> No person data found</h3> + + <p th:text="#{gui.otherlogin.info.first}"> Info text after MDS search with one or more results</p> + <p th:text="#{gui.otherlogin.info.second}"> Prefix for option list</p> + <ul> + <li th:text="#{gui.otherlogin.info.list.1}"> ID Austria or alterantive eIDAS Login </li> + <li th:text="#{gui.otherlogin.info.list.2}"> Search with Address </li> + </ul> + </div> + + <div id="matchingError" + th:if="${advancedMatchingFailed != null} and ${advancedMatchingFailed}"> + <p th:if="${advancedMatchingFailedReason != null}" + th:text="#{${advancedMatchingFailedReason}}">Detailed + </p> + <p th:unless="${advancedMatchingFailedReason != null}" + th:text="#{module.eidasauth.matching.29}">Generell + </p> + </div> + + + <div id="otherlogin" class="block"> + <div id="selectOtherMethodArea" class="block"> + <form method="post" action="$contextPath$submitEndpoint" th:attr="action=@{${submitEndpoint}}"> + <button class="primaryButton" type="submit" role="button" value="Handy-Signatur / Mobile Signature" + th:text="#{gui.otherlogin.button.hs}">A + </button> + <input type="hidden" name="loginSelection" value="MOBILE_PHONE_SIGNATURE_LOGIN"> + <input type="hidden" name="pendingid" value="$pendingid" th:attr="value=${pendingid}"/> + </form> + <form method="post" action="$contextPath$submitEndpoint" th:attr="action=@{${submitEndpoint}}"> + <button class="primaryButton" type="submit" role="button" value="Andere eIDAS ID" + th:text="#{gui.otherlogin.button.eidas}">B + </button> + <input type="hidden" name="loginSelection" value="EIDAS_LOGIN"> + <input type="hidden" name="pendingid" value="$pendingid" th:attr="value=${pendingid}"/> + </form> + <form method="post" action="$contextPath$submitEndpoint" th:attr="action=@{${submitEndpoint}}"> + <button class="primaryButton" type="submit" role="button" value="Keine weitere HS / eIDAS" + th:text="#{gui.otherlogin.button.none}">C + </button> + <input type="hidden" name="loginSelection" value="NO_OTHER_LOGIN"> + <input type="hidden" name="pendingid" value="$pendingid" th:attr="value=${pendingid}"/> + </form> + </div> + + <div id="stopMatching" class="block"> + <!-- Abbrechen Button --> + <form class="block,singleButton" method="post" action="$contextPath$submitEndpoint" th:attr="action=@{${submitEndpoint}}"> + <button type="submit" value="Abbrechen/Cancel" th:text="#{gui.otherlogin.cancel}"></button> + <input type="hidden" name="stopAuthProcess" value="true"> + <input type="hidden" name="pendingid" value="$pendingid" th:attr="value=${pendingid}"> + </form> + </div> + </div> + + </div> + </div> + <footer> + <div class="copyright">© BUNDESMINISTERIUM FÜR INNERES</div> + <div></div> + </footer> +</body> +</html> diff --git a/basicConfig/ms-connector/templates/pvp2_post_binding.html b/basicConfig/ms-connector/templates/pvp2_post_binding.html new file mode 100644 index 00000000..8f72da13 --- /dev/null +++ b/basicConfig/ms-connector/templates/pvp2_post_binding.html @@ -0,0 +1,36 @@ +## ## Velocity Template for SAML 2 HTTP-POST binding ## ## Velocity
+##context may contain the following properties ## action - String - the
+##action URL for the form ## RelayState - String - the relay state for the
+##message ## SAMLRequest - String - the Base64 encoded SAML Request ##
+##SAMLResponse - String - the Base64 encoded SAML Response
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+ <script src="$contextPath/autocommit.js"></script>
+</head>
+<body>
+ <noscript>
+ <p>
+ <strong>Note:</strong> Since your browser does not support
+ JavaScript, you must press the Continue button once to proceed.
+ </p>
+ </noscript>
+
+ <div id="alert">Your login is being processed. Thank you for
+ waiting.</div>
+
+ <form action="${action}" method="post" target="_parent">
+ <div>
+ #if($RelayState) <input type="hidden" name="RelayState" value="${RelayState}"/> #end
+ #if($SAMLRequest) <input type="hidden" name="SAMLRequest" value="${SAMLRequest}" /> #end
+ #if($SAMLResponse) <input type="hidden" name="SAMLResponse" value="${SAMLResponse}" /> #end
+ </div>
+ <noscript>
+ <div>
+ <input type="submit" value="Continue" />
+ </div>
+ </noscript>
+ </form>
+
+</body>
+</html>
\ No newline at end of file diff --git a/basicConfig/ms-connector/templates/residency.html b/basicConfig/ms-connector/templates/residency.html new file mode 100644 index 00000000..26812ec0 --- /dev/null +++ b/basicConfig/ms-connector/templates/residency.html @@ -0,0 +1,285 @@ +<!DOCTYPE html> +<html xmlns:th="http://www.thymeleaf.org" + xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" + layout:decorator="fragments/base" + th:with="lang=${#locale.language}" th:lang="${lang}"> +<head> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link rel="stylesheet" href="../webcontent/css/css_country.css" th:href="@{/static/css/css_country.css}"/> + <script type="text/javascript" src="../webcontent/js/jquery-3.6.0.js" + th:attr="src=@{/static/js/jquery-3.6.0.min.js}"></script> + <title th:text="#{gui.residency.title}">Österreichischer Wohnsitz</title> + <script type="text/javascript" th:inline="javascript"> + $(document).ready(function () { + $("#textResult").hide(); + $("#tableResult").hide(); + $("#loading").hide(); + $.ajaxSetup({ + beforeSend: function () { + $("#loading").show(); + }, + complete: function () { + $("#loading").hide(); + } + }); + $("#inputForm input[type='text']").keyup(function (event) { + if (event.keyCode === 13) { + $("#buttonSearch").click(); + } + }); + }); + + function search() { + let updatedText = /*[[#{gui.residency.updated}]]*/ 'Updated text'; + let errorText = /*[[#{gui.residency.error}]]*/ 'Error'; + let foundText = /*[[#{gui.residency.found}]]*/ 'Found {0}'; + let uniqueText = /*[[#{gui.residency.unique}]]*/ 'Unique'; + let invalidInputText = /*[[#{gui.residency.header.inputinvalid}]]*/ 'Invalid'; + if (!$("#inputForm #inputMunicipality").val().trim() && !$("#inputForm #inputPostleitzahl").val().trim() && + !$("#inputForm #inputVillage").val().trim()) { + $("#textResult").show().text(invalidInputText); + return; + } + $.ajax({ + type: "POST", + url: "[(${wizardEndpoint})]", + data: $("#inputForm").serialize() + }).done(function (data, textStatus, jqXHR) { + if (data["resultCount"] === 1) { + $("#textResult").show().text(uniqueText); + $("#tableResult tbody").empty(); + $("#tableResult").hide(); + $("#inputForm #inputPostleitzahl").val(data["results"][0]["postleitzahl"]); + $("#inputForm #inputMunicipality").val(data["results"][0]["municipality"]); + $("#inputForm #inputVillage").val(data["results"][0]["village"]); + $("#inputForm #inputStreet").val(data["results"][0]["street"]); + $("#inputForm #inputNumber").val(data["results"][0]["number"]); + return; + } + $("#textResult").show().text(foundText.replace("{0}", data["resultCount"])); + $("#tableResult").show(); + $("#tableResult tbody").empty(); + $.each(data.results, function (i, output) { + $("#tableResult tbody") + .append($("<tr>") + .append($("<td>").text(output["postleitzahl"] !== null ? output["postleitzahl"] : "").css("text-align", "right")) + .append($("<td>").text(output["municipality"] !== null ? output["municipality"] : "")) + .append($("<td>").text(output["village"] !== null ? output["village"] : "")) + .append($("<td>").text(output["street"] !== null ? output["street"] : "")) + .append($("<td>").text(output["number"] !== null ? output["number"] : "").css("text-align", "right")) + .css("cursor", "pointer").click(function () { + $("#inputForm #inputPostleitzahl").val($(this).children("td:nth-child(1)").text()); + $("#inputForm #inputMunicipality").val($(this).children("td:nth-child(2)").text()); + $("#inputForm #inputVillage").val($(this).children("td:nth-child(3)").text()); + $("#inputForm #inputStreet").val($(this).children("td:nth-child(4)").text()); + $("#inputForm #inputNumber").val($(this).children("td:nth-child(5)").text()); + $("#textResult").show().text(updatedText); + search(); + }) + ); + }) + if (data.results.length === 0) { + $("#tableResult").hide(); + } + }).fail(function (jqXHR, textStatus, errorThrown) { + $("#textResult").show().text(errorText); + }) + } + + function clearInput() { + $("#inputForm #inputPostleitzahl").val(""); + $("#inputForm #inputMunicipality").val(""); + $("#inputForm #inputVillage").val(""); + $("#inputForm #inputStreet").val(""); + $("#inputForm #inputNumber").val(""); + $("#textResult").hide(); + $("#tableResult").hide(); + } + </script> + <style> + #residency label { + width: 10em; + display: inline-block; + margin-bottom: 0.5em; + } + + #residency input { + width: 15em; + display: inline-block; + margin-bottom: 0.5em; + } + + #result { + margin-bottom: 4em; + } + + button { + padding: 0.5em; + margin: 0.5em; + width: 12em; + } + + .block { + width: 80%; + justify-content: left; + } + + #tableResult td, #tableResult th { + padding: 1em 0.5em; + } + + #tableResult a { + text-decoration: underline; + } + + #tableResult { + border-collapse: collapse; + } + + #tableResult tr { + border-bottom: 1px solid black; + } + </style> +</head> + +<body> +<div class="header container"> + <div class="titlebar"> + <div> + <a href="https://www.bmi.gv.at/" target="_blank" title="Home"> + <img class="toplogo img-responsive" src="/static/BMI.png" alt="Logo BMI" + th:attr="alt=#{gui.countryselection.logo.bmi.alt}"> + <h1 class="hidden" th:text="#{gui.countryselection.header1}"> Bundesministerium für Inneres </h1> + </a> + </div> + <ul class="nav_oben"> + <li> + <div class="languageselection" th:include="language_selection :: selectlanguage"> + LanguageSelectionBlock + </div> + </li> + + <li> + <a href="https://www.bmi.gv.at/" target="_blank" th:text="#{gui.countryselection.link.bmi}">Startseite + BMI </a> + </li> + </ul> + </div> +</div> +<div class="content"> + <div class="subtitle"> + <h1 th:text="#{gui.countryselection.header2}"> Zentraler eIDAS Knoten der Republik Österreich </h1> + <h2 th:text="#{gui.countryselection.header3}"> Betrieben durch das Bundesministerium für Inneres </h2> + </div> + + <div class="mainDescription"> + <h3 th:text="#{gui.residency.header.selection}">Search your Austrian Residency </h3> + + <p th:text="#{gui.residency.info.first}"> Info text for matching by address </p> + <p th:text="#{gui.residency.info.second}"> HowTo search by address </p> + </div> + + <div id="matchingError" + th:if="${advancedMatchingFailed != null} and ${advancedMatchingFailed}"> + <p th:if="${advancedMatchingFailedReason != null}" + th:text="#{${advancedMatchingFailedReason}}">Detailed + </p> + <p th:unless="${advancedMatchingFailedReason != null}" + th:text="#{module.eidasauth.matching.29}">Generell + </p> + </div> + + <div id="residency"> + <form id="inputForm" method="post" action="$contextPath$submitEndpoint" + th:attr="action=@{${submitEndpoint}}"> + <div><p th:text="#{gui.residency.header.help}">Please enter a postcode, municipality or village first</p> + </div> + <div> + <label for="inputPostleitzahl" th:text="#{gui.residency.input.postleitzahl}">Postleitzahl</label> + <input type="text" id="inputPostleitzahl" name="postleitzahl" value=""/> + </div> + <div> + <label for="inputMunicipality" th:text="#{gui.residency.input.municipality}">Municipality</label> + <input type="text" id="inputMunicipality" name="municipality" value=""/> + </div> + <div> + <label for="inputVillage" th:text="#{gui.residency.input.village}">Village</label> + <input type="text" id="inputVillage" name="village" value=""/> + </div> + <div> + <label for="inputStreet" th:text="#{gui.residency.input.street}">Street</label> + <input type="text" id="inputStreet" name="street" value=""/> + </div> + <div> + <label for="inputNumber" th:text="#{gui.residency.input.number}">Number</label> + <input type="text" id="inputNumber" name="number" value=""/> + </div> + <div class="block"> + <button type="button" id="buttonSearch" onclick="search()" th:text="#{gui.residency.search}"> + Search + </button> + <button type="button" id="buttonClear" onclick="clearInput()" th:text="#{gui.residency.clear}"> + Clear + </button> + + <form method="post" action="$contextPath$submitEndpoint" th:attr="action=@{${submitEndpoint}}"> + <button type="submit" id="buttonProceed" value="Proceed" th:text="#{gui.residency.proceed}">Proceed</button> + <input type="hidden" name="pendingid" value="$pendingid" th:attr="value=${pendingid}"> + </form> + </div> + <input type="hidden" name="pendingid" value="$pendingid" th:attr="value=${pendingid}"/> + </form> + </div> + + + <div id="backOrReturn" class="block"> + + <p th:text="#{gui.residency.info.third}"> Alternativ infos and back </p> + <br> + <form class="block" method="post" action="$contextPath$submitEndpoint" th:attr="action=@{${submitEndpoint}}"> + <button type="submit" value="Back" th:text="#{gui.residency.back}">Back</button> + <input type="hidden" name="noResidence" value="true"> + <input type="hidden" name="pendingid" value="$pendingid" th:attr="value=${pendingid}"> + </form> + + <!--form class="block" method="post" action="$contextPath$submitEndpoint" th:attr="action=@{${submitEndpoint}}"> + <button type="submit" value="Abbrechen/Cancel" th:text="#{gui.residency.cancel}">Cancel</button> + <input type="hidden" name="stopAuthProcess" value="true"> + <input type="hidden" name="pendingid" value="$pendingid" th:attr="value=${pendingid}"> + </form--> + + </div> + + <div> + <img id="loading" src="../webcontent/img/ajax-loader.gif" + th:attr="src=@{/static/img/ajax-loader.gif}" style="display: none"/> + </div> + + <div id="result"> + <div> + <p><span id="textResult" style="display: none"></span></p> + </div> + <table id="tableResult" style="display: none"> + <thead> + <tr> + <th th:text="#{gui.residency.input.postleitzahl}" style="text-align: right">Postcode</th> + <th th:text="#{gui.residency.input.municipality}">Municipality</th> + <th th:text="#{gui.residency.input.village}">Village</th> + <th th:text="#{gui.residency.input.street}">Street</th> + <th th:text="#{gui.residency.input.number}" style="text-align: right">Number</th> + </tr> + </thead> + <tbody> + + </tbody> + </table> + </div> + +</div> +<footer> + <div class="copyright">© BUNDESMINISTERIUM FÜR INNERES</div> + <div></div> +</footer> +</body> +</html> |