<!DOCTYPE html>
|
|
<html lang="it">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<title>{{ "link_title"|tr(lang) }} – {{ "index_title"|tr(lang) }}</title>
|
|
<meta name="robots" content="noindex" />
|
|
<meta name="description" content="{{ "meta_description"|tr(lang) }}" />
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<link rel="icon" type="image/png" sizes="48x48" href="/assets/favicon.svg" />
|
|
<link rel="stylesheet" href="/assets/index.css?v=1.0" />
|
|
<link rel="stylesheet" href="/assets/cloud.css?v=1.0" />
|
|
<link rel="stylesheet" href="/assets/digitalcourage.css" />
|
|
<link rel="stylesheet" href="/assets/bootstrap.min.css" />
|
|
|
|
<script type="text/javascript">
|
|
window.onload = function () {
|
|
// show link copy button if javascript is enabled
|
|
document.getElementById("script-copy").style.display = "unset";
|
|
let btn = document.getElementById("script-copy-btn");
|
|
btn.style.cursor = "pointer";
|
|
|
|
let csrf_token = "{{ csrf_token }}";
|
|
let lang = "{{ lang }}";
|
|
document.getElementById('langs').value=lang;
|
|
document.getElementById('new_link_button').addEventListener('click', function () {
|
|
new_link(csrf_token);
|
|
});
|
|
|
|
|
|
btn.addEventListener('click', function() {
|
|
var copyText = document.getElementById("link");
|
|
/* Select the text field */
|
|
copyText.select();
|
|
copyText.setSelectionRange(0, 99999);
|
|
|
|
document.execCommand("copy");
|
|
btn.innerHTML = '{{ "link_copied"|tr(lang) }}';
|
|
});
|
|
|
|
function ValidateEmail(mail)
|
|
{
|
|
if (/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(mail))
|
|
{
|
|
return (true)
|
|
}
|
|
alert("Die eingegebene Mail Adresse ist ungültig. Sie können sich auch anmelden, ohne den Token zugeschickt zu bekommen.")
|
|
return (false)
|
|
}
|
|
|
|
|
|
|
|
document.getElementById("email-register").style.display = "unset";
|
|
let btn2 = document.getElementById("email-register-btn");
|
|
btn2.style.cursor = "pointer";
|
|
|
|
btn2.addEventListener('click', function() {
|
|
var email = document.getElementById("email").value;
|
|
var adtok = document.getElementById("link").value;
|
|
console.log(email);
|
|
var validation = ValidateEmail(email);
|
|
/* var emailjsonstring = JSON.stringify(JSON.parse(document.getElementById('email'))); */
|
|
if (validation == true)
|
|
{
|
|
var xhr1=new XMLHttpRequest();
|
|
xhr1.open("POST",'link/email', true);
|
|
xhr1.send(email + ',' + adtok + '\n');
|
|
document.getElementById("email").value = "Die Email ist auf dem Weg";
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
}
|
|
|
|
function new_link(csrf) {
|
|
var sel = document.getElementById('langs');
|
|
let opt = getSelectedOption(sel);
|
|
let lang = opt.value;
|
|
document.getElementById('langs').value = lang;
|
|
document.getElementById("link_lang").value = lang;
|
|
document.getElementById("csrf_token").value = csrf;
|
|
document.getElementById('new_link').submit();
|
|
document.getElementById('new_link_button').classList.add("hidden");
|
|
document.getElementById('loading_ring').classList.remove("hidden");
|
|
}
|
|
function getSelectedOption(sel) {
|
|
var opt;
|
|
for ( var i = 0, len = sel.options.length; i < len; i++ ) {
|
|
opt = sel.options[i];
|
|
if ( opt.selected === true ) {
|
|
break;
|
|
}
|
|
}
|
|
return opt;
|
|
}
|
|
|
|
|
|
|
|
</script>
|
|
|
|
<style>
|
|
.break {
|
|
flex-basis: 100%;
|
|
height: 0;
|
|
}
|
|
|
|
|
|
|
|
.div_120 {
|
|
flex-basis: 100%;
|
|
height: 120px;
|
|
}
|
|
|
|
|
|
|
|
.div_45 {
|
|
flex-basis: 100%;
|
|
height: 45px;
|
|
}
|
|
|
|
.div_35 {
|
|
flex-basis: 100%;
|
|
height: 35px;
|
|
}
|
|
|
|
.div_25 {
|
|
flex-basis: 100%;
|
|
height: 25px;
|
|
}
|
|
|
|
.div_10 {
|
|
flex-basis: 100%;
|
|
height: 10px;
|
|
}
|
|
|
|
.grid-container {
|
|
display: grid;
|
|
grid-template-columns: auto auto;
|
|
width: 725px;
|
|
grid-gap: 25px;
|
|
}
|
|
.grid-container2 {
|
|
display: grid;
|
|
grid-template-columns: auto auto auto;
|
|
width: 532px;
|
|
grid-gap: 20px;
|
|
}
|
|
@media only screen and (max-width: 768px) {
|
|
/* For mobile phones: */
|
|
[class*="grid-container"] {
|
|
grid-template-columns: auto;
|
|
max-width: 100%;
|
|
justify-content: center;
|
|
}
|
|
[class*="grid-container2"] {
|
|
grid-template-columns: auto;
|
|
max-width: 100%;
|
|
justify-content: center;
|
|
}
|
|
[class*="item2"] {
|
|
grid-template-columns: auto;
|
|
max-width: 100%;
|
|
align-items: center;
|
|
}
|
|
}
|
|
.center {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
}
|
|
.item1 {
|
|
width: 350px;
|
|
height: 200px;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
}
|
|
.item2 {
|
|
width: 350px;
|
|
height: 200px;
|
|
#display: flex;
|
|
#justify-content: center;
|
|
#align-items: center;
|
|
}
|
|
.h2 {
|
|
font-size: 30pt;
|
|
}
|
|
p {
|
|
font-size: 16pt;
|
|
}
|
|
.downDC {
|
|
height: 90px;
|
|
padding: 10px;
|
|
}
|
|
|
|
.c-img-shadow {
|
|
height: 200px;
|
|
max-width: 100%;
|
|
box-shadow: 0 0 5px rgba(0, 0, 0, 0.18),0 5px 5px rgba(0, 0, 0, 0.18);
|
|
border-radius: 2px;
|
|
}
|
|
|
|
</style>
|
|
<body>
|
|
<div class="container ombre">
|
|
|
|
<header role="banner" class="clearfix">
|
|
<form id="new_link" method="post" action="/link" class="hidden-print">
|
|
<div class="input-group input-group-sm pull-right col-xs-12 col-sm-2 langs" style="margin-right: 8px">
|
|
<select id="langs" name="lang" class="form-control" title="Select language" >
|
|
<option lang="fr" value="fr">Français</option>
|
|
<option lang="en" selected value="en">English</option>
|
|
<option lang="oc" value="oc">Occitan</option>
|
|
<option lang="es" value="es">Español</option>
|
|
<option lang="de" value="de">Deutsch</option>
|
|
<option lang="nl" value="nl">Dutch</option>
|
|
<option lang="it" value="it">Italiano</option>
|
|
<option lang="br" value="br">Brezhoneg</option>
|
|
</select>
|
|
<input id="csrf_token" name="csrf_token" type="text" class="hidden">
|
|
<input id="link_lang" name="link_lang" type="text" class="hidden">
|
|
|
|
<span class="input-group-btn">
|
|
<a id="new_link_button" class="btn btn-default btn-sm language_button" title="Change language">OK</a>
|
|
</span>
|
|
</div>
|
|
</form>
|
|
|
|
<a href="https://foorms.digitalcourage.de/" title="Home - foorms" style="margin-left: 8px" >
|
|
<img src="/assets/foorms_logo_beta.svg" alt="foorms" class="" height="58vh" />
|
|
</a>
|
|
<h2 class="lead col-xs-12"></h2> <div class="trait col-xs-12" role="presentation"></div>
|
|
</header>
|
|
<main role="main">
|
|
|
|
|
|
<center>
|
|
<div class="has-text-centered">
|
|
<br />
|
|
<h2>{{ "link_title"|tr(lang) }}</h2>
|
|
<div class="div_25"> </div>
|
|
<p>{{ "link_desc1_1"|tr(lang)|safe }}</p>
|
|
<div class="break"> </div>
|
|
<p>{{ "link_desc1_2"|tr(lang)|safe }}</p>
|
|
<div class="div_25"> </div>
|
|
<div class="c-flex c-jumbo">
|
|
<input id="link" class="ncstyle-input" type="text" style='font-size: 16px; text-align:center' size="80" readonly value="{{ config.sncf_url }}/admin/{{ admin_token }}" />
|
|
</div>
|
|
<div class="div_35"> </div>
|
|
<div id="script-copy">
|
|
|
|
<div class="c-flex">
|
|
<a id="script-copy-btn" class="ncstyle-button margin-bottom">{{ "link_copy"|tr(lang) }}</a>
|
|
</div>
|
|
</div>
|
|
<div class="div_120"> </div>
|
|
<p>{{ "link_desc2_1"|tr(lang)|safe }}</p>
|
|
<div class="break"> </div>
|
|
<p>{{ "link_desc2_2"|tr(lang)|safe }}</p>
|
|
<div class="div_25"> </div>
|
|
<div class="c-flex">
|
|
<input id="email" class="ncstyle-input" style="text-align:center;" type="text" value="Send_Password_Link@invalid" />
|
|
</div>
|
|
<div class="div_35"> </div>
|
|
|
|
<div id="email-register">
|
|
<div class="c-flex">
|
|
<a id="email-register-btn" class="ncstyle-button margin-bottom">{{ "link_mail"|tr(lang) }}</a>
|
|
</div>
|
|
<div class="div_120"> </div>
|
|
</div>
|
|
<p>{{ "link_desc3_1"|tr(lang) }}</p>
|
|
<div class="break"></div>
|
|
<p>{{ "link_desc3_2"|tr(lang) }}</p>
|
|
<div class=div_35></div>
|
|
<div class="c-flex">
|
|
<a id="forms-btn" class="ncstyle-button margin-bottom" href="{{ config.sncf_url }}/admin/{{ admin_token }}">{{ "link_access_btn"|tr(lang) }}</a>
|
|
</div>
|
|
</div>
|
|
<div class="div_120"></div>
|
|
</center>
|
|
<center>
|
|
<div class="c-blue grid-container2">
|
|
<a href="https://42l.fr/Rapport-technique" style="font-size:15px;" class="c-button" target="_blank">{{ "index_bottom_docs"|tr(lang) }}</a>
|
|
<a href="https://git.42l.fr/neil/sncf" style="font-size:15px;" class="c-button" target="_blank">{{ "index_bottom_source"|tr(lang) }}</a>
|
|
<a href="https://git.42l.fr/neil/sncf/src/branch/root/LICENSE" style="font-size:15px;" class="c-button" target="_blank">{{ "index_bottom_lic"|tr(lang) }}</a>
|
|
</div>
|
|
|
|
</center>
|
|
<div class="div_10"></div>
|
|
<div class="div_10"></div>
|
|
<div class="div_10"></div>
|
|
</main>
|
|
</div> <!-- .container -->
|
|
|
|
<div class="container ombre downDC" style="display:flex; align-items:center;">
|
|
<h2 class="lead"><a target="_blank" href="https://digitalcourage.de/">Digitalcourage</a> | <a target="_blank" href="https://digitalcourage.de/newsletter">Newsletter</a> | <a target="_blank" href="https://digitalcourage.de/spenden">{{ "impressum_donations"|tr(lang)|safe }}</a> | <a target="_blank" href="https://digitalcourage.de/en">Impressum</a> | <a target="_blank" href="https://digitalcourage.de/en">{{ "impressum_privacy"|tr(lang)|safe }}</a> </h2>
|
|
</div>
|
|
|
|
|
|
</body>
|
|
</html>
|
|
|