1<!DOCTYPE html> 2<html lang="it"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <title>Route Crypto DAIVE</title> 7
7<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
7 8<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css"> 9<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> 10<link rel="stylesheet" href="https://www.route-crypto-daive.ai/static/styles.css">
11<script src="https://app.simplebotinstall.com/js/chat_plugin.js" data-bot-id="32148"></script>
11 12<link rel="icon" type="image/png" href="https://cdn-icons-png.flaticon.com/512/1813/1813778.png"> 13</head> 14<body style="background-color: #4d6e74;"> 15 16 <style> 17 nav ul a { 18 color: white; 19 font-weight: 500; 20 transition: color 0.3s ease; 21 } 22 23 nav ul a:hover { 24 color: white; 25 background-color: transparent; 26 } 27 28 .logo-img { 29 height: 40px; 30 margin-top: 10px; 31 } 32 33 /* Migliora l'icona della bandiera */ 34 .language-icon { 35 height: 17px; 36 margin-left: 10px; 37 vertical-align: middle; 38 } 39 40 /* Allinea le voci del menu e l'icona del selettore di lingua */ 41 ul.right { 42 display: flex; 43 align-items: center; 44 } 45 46 .sidenav-trigger { 47 margin-top: 8px; 48 } 49 50 /* Migliora l'allineamento dell'icona bandiera nel mobile */ 51 .sidenav .language-icon { 52 height: 24px; 53 } 54</style> 55 56<header> 57 <nav class="main-nav" style="background-color: #104447;"> 58 <div class="nav-wrapper container"> 59 <a href="/" class="brand-logo left"> 60 <img src="/static/img/logo.png" alt="Route Crypto Training" class="logo-img"> 61 </a> 62 <a href="#" data-target="mobile-demo" class="sidenav-trigger right"> 63 <i class="material-icons">menu</i> 64 </a> 65 <ul class="right hide-on-med-and-down"> 66 67 68 <li><a href="https://www.route-crypto-training.com">Route <b>Crypto</b> Training©</a></li> 69 70 <li><a href="/#concetto">Concetto</a></li> 71 <li><a href="/#strumenti">Strumenti</a></li> 72 <li><a href="/#categorie">Categorie</a></li> 73 74 <li><a href="/login/">Accedi</a></li> 75 76 <!-- Icona per il selettore di lingua --> 77 <li> 78 <a href="#" id="language-toggle"> 79 <img id="language-icon" src="https://flagcdn.com/it.svg" alt="Italian" class="language-icon" /> 80 </a> 81 </li> 82 </ul> 83 </div> 84 </nav> 85 86 <!-- Sidenav per mobile --> 87 <ul class="sidenav" id="mobile-demo"> 88 89 90 <li><a href="https://www.route-crypto-training.com">Route <b>Crypto</b> Training©</a></li> 91 92 <li><a href="/#concetto">Concetto</a></li> 93 <li><a href="/#strumenti">Strumenti</a></li> 94 <li><a href="/#categorie">Categorie</a></li> 95 96 <li><a href="/login/">Accedi</a></li> 97 98 <!-- Icona per il selettore di lingua nel mobile --> 99 <li> 100 <a href="#" id="language-toggle-mobile"> 101 <img id="language-icon-mobile" src="https://flagcdn.com/it.svg" alt="Italian" class="language-icon" /> 102 </a> 103 </li> 104 </ul> 105</header> 106 107<!-- Script per gestire il cambio di lingua e le icone -->
108<script> 109 document.addEventListener('DOMContentLoaded', function() { 110 var elems = document.querySelectorAll('.sidenav'); 111 var instances = M.Sidenav.init(elems, {}); 112 113 const languageIcon = document.getElementById('language-icon'); 114 const languageIconMobile = document.getElementById('language-icon-mobile'); 115 116 const currentLang = getCookie('locale') || 'it'; // Default 'it' 117 118 // Imposta icona iniziale in base alla lingua corrente 119 updateLanguageIcon(currentLang); 120 121 // Gestisci click per cambiare lingua 122 document.getElementById('language-toggle').addEventListener('click', function() { 123 const newLang = currentLang === 'it' ? 'en' : 'it'; 124 setCookie('locale', newLang, 30); 125 updateLanguageIcon(newLang); 126 window.location.reload(); // Ricarica pagina per applicare lingua 127 }); 128 129 document.getElementById('language-toggle-mobile').addEventListener('click', function() { 130 const newLang = currentLang === 'it' ? 'en' : 'it'; 131 setCookie('locale', newLang, 30); 132 updateLanguageIcon(newLang); 133 window.location.reload(); // Ricarica pagina per applicare lingua 134 }); 135 136 // Aggiorna l'icona della lingua 137 function updateLanguageIcon(lang) { 138 if (lang === 'it') { 139 languageIcon.src = "https://flagcdn.com/it.svg"; 140 languageIconMobile.src = "https://flagcdn.com/it.svg"; 141 } else { 142 languageIcon.src = "https://flagcdn.com/gb.svg"; 143 languageIconMobile.src = "https://flagcdn.com/gb.svg"; 144 } 145 } 146 147 // Funzione per impostare un cookie 148 function setCookie(name, value, days) { 149 const d = new Date(); 150 d.setTime(d.getTime() + (days * 24 * 60 * 60 * 1000)); 151 let expires = "expires=" + d.toUTCString(); 152 document.cookie = name + "=" + value + ";" + expires + ";path=/"; 153 } 154 155 // Funzione per leggere un cookie 156 function getCookie(name) { 157 let decodedCookie = decodeURIComponent(document.cookie); 158 let ca = decodedCookie.split(';'); 159 for(let i = 0; i < ca.length; i++) { 160 let c = ca[i].trim(); 161 if (c.indexOf(name + "=") === 0) { 162 return c.substring(name.length + 1, c.length); 163 } 164 } 165 return ""; 166 } 167 }); 168</script>
168 169 170 <main> 171 <div class="container"> 172 173 174 175 <div class="row" style="margin-top: 5%; margin-bottom: 5%;"> 176 <div class="col s12 m8 offset-m2 l6 offset-l3"> 177 <div class="card"> 178 <div class="card-content"> 179 <span class="card-title center-align">Accedi a Route Crypto Training</span> 180 <form id="login-form" action="/login/" method="POST"> 181 <div class="input-field"> 182 <i class="material-icons prefix">person</i> 183 <input id="username" name="username" type="text" class="validate" required pattern=".{3,}" title="Il nome utente deve essere di almeno 3 caratteri"> 184 <label for="username">Nome utente o Email</label> 185 </div> 186 <div class="input-field"> 187 <i class="material-icons prefix">lock</i> 188 <input id="password" name="password" type="password" class="validate" required pattern=".{3,}" title="La password deve essere di almeno 3 caratteri"> 189 <label for="password">Password</label> 190 </div> 191 <div class="center-align"> 192 <button class="btn-large waves-effect waves-light" type="submit" style="background-color: #E09111; width: 100%; margin-top: 20px;"> 193 Accedi <i class="material-icons right">login</i> 194 </button> 195 </div> 196 </form> 197 </div> 198 <div class="card-action"> 199 <p class="center-align">Non hai un account? <a href="/register/" style="color: #E09111;">Registrati qui</a></p> 200 <p class="center-align"><a href="#" id="reset-password-link" style="color: #104447;">Password dimenticata?</a></p> 201 <form id="reset-password-form" action="/reset_password_request" method="POST" style="display: none; margin-top: 20px;"> 202 <div class="input-field"> 203 <i class="material-icons prefix">email</i> 204 <input id="reset-email" name="email" type="email" class="validate" required> 205 <label for="reset-email">Inserisci la tua email</label> 206 </div> 207 <div class="center-align"> 208 <button class="btn waves-effect waves-light" type="submit" style="background-color: #104447;"> 209 Richiedi reset 210 </button> 211 </div> 212 </form> 213 </div> 214 </div> 215 </div> 216 </div> 217</div> 218 219 220<style> 221 .card { 222 border-radius: 8px; 223 box-shadow: 0 4px 10px rgba(0,0,0,0.1); 224 } 225 .card-title { 226 color: #333333; 227 font-weight: 600; 228 margin-bottom: 30px; 229 } 230 .input-field input:focus + label, 231 .input-field input:valid + label { 232 transform: translateY(-20px) scale(0.8); 233 color: #E09111 !important; 234 } 235 .input-field input:focus { 236 border-bottom: 1px solid #E09111 !important; 237 box-shadow: 0 1px 0 0 #E09111 !important; 238 } 239 .input-field .prefix.active { 240 color: #E09111; 241 } 242 .btn-large:hover { 243 background-color: #104447 !important; 244 } 245 .alert { 246 padding: 15px; 247 margin-bottom: 20px; 248 border: 1px solid transparent; 249 border-radius: 4px; 250 } 251 .alert.success { 252 color: #155724; 253 background-color: #d4edda; 254 border-color: #c3e6cb; 255 } 256 .alert.error { 257 color: #721c24; 258 background-color: #f8d7da; 259 border-color: #f5c6cb; 260 } 261</style> 262
263<script> 264document.addEventListener('DOMContentLoaded', function() { 265 const loginForm = document.getElementById('login-form'); 266 const resetPasswordLink = document.getElementById('reset-password-link'); 267 const resetPasswordForm = document.getElementById('reset-password-form'); 268 269 resetPasswordLink.addEventListener('click', function(e) { 270 e.preventDefault(); 271 resetPasswordForm.style.display = resetPasswordForm.style.display === 'none' ? 'block' : 'none'; 272 }); 273 274 loginForm.addEventListener('submit', function(event) { 275 if (!loginForm.checkValidity()) { 276 event.preventDefault(); 277 loginForm.classList.add('was-validated'); 278 } 279 }); 280 281 M.updateTextFields(); // This function updates the position of labels for prefilled or autofilled inputs 282}); 283</script>
283 284 285<!-- Include Materialize JavaScript -->
286<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
286 287 </main> 288 289 <footer class="page-footer"> 290 <div class="container"> 291 <div class="row"> 292 <div class="col l4 s12"> 293 <h5>Route Crypto Training©</h5> 294 <p>Una piattaforma di formazione e knowledge management su blockchain e criptovalute, specificamente concepita per Consulenti Private Banking, Consulenti Finanziari, Wealth Manager, Family Office e Consulenti Previdenziali</p> 295 </div> 296 <div class="col l4 s12"> 297 <h5>Link Utili</h5> 298 <ul> 299 <li><a href="https://www.route-crypto-training.com">Route <b>Crypto</b> Training©</a></li> 300 <li><a href="/#concetto">Concetto</a></li> 301 <li><a href="/#strumenti">Strumenti</a></li> 302 <li><a href="/#categorie">Categorie</a></li> 303 <li><a href="https://www.route-crypto-training.com/pages/contatti">Contatti</a></li> 304 </ul> 305 </div> 306 <div class="col l4 s12"> 307 <h5>Seguici</h5> 308 <div class="social-icons"> 309 <a href="https://www.linkedin.com/company/route-crypto-training/?viewAsMember=true" class="btn-floating"><i class="fab fa-linkedin"></i></a> 310 </div> 311 </div> 312 </div> 313 </div> 314 <div class="footer-copyright"> 315 <div class="container"> 316 © 2024 MFG Consulting SA. Tutti i diritti riservati. 317 </div> 318 </div> 319</footer> 320 321 322<style> 323 .page-footer { 324 background-color: #104447; 325 color: #FFFFFF; 326 padding-top: 40px; 327 } 328 329 .page-footer h5 { 330 font-size: 18px; 331 font-weight: 600; 332 margin-bottom: 20px; 333 } 334 335 .page-footer p, .page-footer ul li a { 336 color: #FFFFFF; 337 font-size: 14px; 338 } 339 340 .page-footer ul li { 341 margin-bottom: 10px; 342 } 343 344 .page-footer ul li a:hover { 345 transition: color 0.3s ease; 346 } 347 348 .social-icons { 349 margin-top: 20px; 350 } 351 352 .social-icons .btn-floating { 353 background-color: #E09111; 354 margin-right: 10px; 355 } 356 357 .social-icons .btn-floating:hover { 358 background-color: #FFFFFF; 359 color: #104447; 360 } 361 362 .footer-copyright { 363 background-color: rgba(0, 0, 0, 0.1); 364 padding: 15px 0; 365 font-size: 12px; 366 } 367</style> 368 369<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
370<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
370 371 372</body> 373</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.