PageSourceSearch

https://ssnapp.it/dashboard-aziende.php

html ssnapp.it collected 2026-10-02 01:03:46 UTC 10,386 bytes, 242 lines download raw bytes

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    
6<script>
7(function(){
8  try {
9    var V = "1.20", KEY = 'ssnapp_rel';
10    var prev = localStorage.getItem(KEY);
11    localStorage.setItem(KEY, V);
12    if (prev && prev !== V) {
13      var reload = function(){ location.reload(); };
14      if (window.caches && caches.keys) {
15        caches.keys()
16          .then(function(ks){ return Promise.all(ks.map(function(k){ return caches.delete(k); })); })
17          .then(reload, reload);
18      } else {
19        reload();
20      }
21    }
22  } catch(e){}
23})();
24</script>
24    <title>Accedi — Dashboard Aziende SSN App</title>
25    <link rel="icon" type="image/png" href="/assets/images/logo.jpg">
26    <link rel="stylesheet" href="/assets/css/variables.css?v=1.20.1783699004">
27    <link rel="stylesheet" href="/assets/css/base.css?v=1.20.1783699004">
28    <link rel="stylesheet" href="/assets/css/components.css?v=1.20.1783699004">
29    <meta name="csrf" content="1946e9ba5029f02986e31eba129aa023fe806c9d01f0b61e3cc626d3cbdf8eea">
30    <!-- iubenda Privacy Controls and Cookie Solution -->
31    
31<script type="text/javascript" src="https://embeds.iubenda.com/widgets/8c78957f-9ced-4eda-8c70-160c5d644b9e.js"></script>
31
32
33    <style>
34    .login-page {
35        min-height: 100vh;
36        background: linear-gradient(135deg, var(--section-bg), #eef2ff);
37        padding: 40px 16px;
38        display: flex;
39        align-items: center;
40        justify-content: center;
41    }
42    .login-card {
43        width: 100%;
44        max-width: 460px;
45        background: #fff;
46        border-radius: var(--radius-lg);
47        box-shadow: var(--shadow);
48        padding: 34px 32px;
49    }
50    .login-logo {
51        text-align: center;
52        margin-bottom: 18px;
53    }
54    .login-logo img { width: 78px; margin: 0 auto 8px; display:block; }
55    .login-logo h1 {
56        font-size: 22px;
57        font-weight: 700;
58        letter-spacing: .02em;
59        text-transform: uppercase;
60        margin: 0;
61    }
62    .login-logo p { color: var(--muted); font-size: 13px; margin: 4px 0 0; }
63
64    .back-home {
65        display: block;
66        text-align: center;
67        color: var(--muted);
68        margin-top: 18px;
69        font-size: 13px;
70    }
71    </style>
72</head>
73<body>
74
75<div class="login-page">
76    <div class="login-card">
77        <div class="login-logo">
78            <img src="/assets/images/logo.png" alt="SSN App" onerror="this.style.display='none'">
79            <h1>Dashboard Aziende</h1>
80            <p>Accedi o registrati per pubblicare annunci e trovare personale sanitario</p>
81        </div>
82
83        <div class="tabs">
84            <button type="button" class="tab is-active" data-tab="login" onclick="showTab('login')">Accedi</button>
85            <button type="button" class="tab" data-tab="reg" onclick="showTab('reg')">Registrati</button>
86        </div>
87
88        <!-- LOGIN -->
89        <div id="tab-login">
90            <form id="formLogin" autocomplete="on" onsubmit="return doLogin(event)">
91                <div class="form__group">
92                    <label class="form__label">Numero Cellulare</label>
93                    <input class="form__input" type="tel" name="telefono"
94                           inputmode="numeric" autocomplete="username"
95                           required>
96                </div>
97                <div class="form__group">
98                    <label class="form__label">Password</label>
99                    <div class="pw-wrap">
100                        <input class="form__input" id="pwLogin" type="password"
101                               name="password" autocomplete="current-password" required
102                               style="padding-right:42px;">
103                        <span class="pw-toggle" onclick="togglePw('pwLogin', this)">&#128065;</span>
104                    </div>
105                </div>
106                <button type="submit" class="btn btn--primary btn--block btn--lg">Entra</button>
107            </form>
108        </div>
109
110        <!-- REGISTRAZIONE -->
111        <div id="tab-reg" class="hidden">
112            <form id="formReg" autocomplete="off" onsubmit="return doRegister(event)">
113                <div class="form__float">
114                    <label>Nome Azienda</label>
115                    <input type="text" name="nome_azienda" required maxlength="100" placeholder=" ">
116                </div>
117                <div class="form__float">
118                    <label>Riferimento ( Nome e Cognome )</label>
119                    <input type="text" name="persona_riferimento" required maxlength="100" placeholder=" ">
120                </div>
121                <div class="form__float">
122                    <label>Numero Cellulare</label>
123                    <input type="tel" name="telefono" required inputmode="numeric"
124                           pattern="[0-9+ ]{6,20}" placeholder=" ">
125                </div>
126                <div class="form__float">
127                    <label>Email Contatto</label>
128                    <input type="email" name="email" required maxlength="200" placeholder=" ">
129                </div>
130                <div class="form__float">
131                    <label>Password</label>
132                    <input id="pwReg" type="password" name="password" required minlength="6"
133                           placeholder=" " style="padding-right:34px;">
134                    <span class="pw-toggle" onclick="togglePw('pwReg', this)">&#128065;</span>
135                </div>
136                <div class="form__float">
137                    <label>Conferma Password</label>
138                    <input id="pwRegConf" type="password" name="password_conferma" required minlength="6"
139                           placeholder=" " style="padding-right:34px;">
140                    <span class="pw-toggle" onclick="togglePw('pwRegConf', this)">&#128065;</span>
141                </div>
142                <button type="submit" class="btn btn--primary btn--block btn--lg btn--pill mt-md">Salva</button>
143            </form>
144        </div>
145
146        <a class="back-home" href="/">← Torna al sito</a>
147    </div>
148</div>
149
150<footer class="site-footer" style="background:#0f172a;color:#cbd5e1;padding:20px 16px;text-align:center;font-size:13px;">
151    <div style="display:flex;gap:12px;justify-content:center;flex-wrap:wrap;">
152        <a href="https://www.iubenda.com/privacy-policy/42675838"
153           class="iubenda-white iubenda-noiframe iubenda-embed"
154           title="Privacy Policy ">Privacy Policy</a>
155        <a href="https://www.iubenda.com/privacy-policy/42675838/cookie-policy"
156           class="iubenda-white iubenda-noiframe iubenda-embed"
157           title="Cookie Policy ">Cookie Policy</a>
158    </div>
159    
159<script type="text/javascript">(function (w,d) {var loader = function () {var s = d.createElement("script"), tag = d.getElementsByTagName("script")[0]; s.src="https://cdn.iubenda.com/iubenda.js"; tag.parentNode.insertBefore(s,tag);}; if(w.addEventListener){w.addEventListener("load", loader, false);}else if(w.attachEvent){w.attachEvent("onload", loader);}else{w.onload = loader;}})(window, document);</script>
159
160</footer>
161
162<!-- Modal info post-registrazione -->
163<div class="modal" id="modalInfoReg">
164    <div class="modal__overlay"></div>
165    <div class="modal__content" style="max-width:520px;">
166        <div class="modal__header">
167            <h3 class="modal__title">Informazioni</h3>
168            <button class="modal__close" type="button" onclick="Modal.close('modalInfoReg')">&times;</button>
169        </div>
170        <div class="modal__body" style="line-height:1.6;">
171            <p><strong>Gentile Azienda,</strong></p>
172            <p>La informiamo che, una volta compilati i dati richiesti, il nostro staff procederà con l'attivazione del Suo account.</p>
173            <p>Dopo aver ricevuto l'email di conferma, potrà effettuare il login e iniziare a eseguire le ricerche.</p>
174            <p>L'attivazione del Suo account avverrà in pochi minuti.</p>
175            <p><strong>Per ogni professionista ricercato, avrà la possibilità di:</strong></p>
176            <ul style="padding-left:18px; color:var(--muted);">
177                <li>Visualizzare e/o scaricare il curriculum vitae</li>
178                <li>Visionare la video presentazione, se disponibile</li>
179                <li>Contattare direttamente il professionista via WhatsApp o telefonicamente</li>
180            </ul>
181            <p>Restiamo a Sua disposizione per qualsiasi informazione. Può contattarci via email all'indirizzo <strong>[email protected]</strong></p>
182            <p>Cordialmente,<br>Lo staff di SSN App</p>
183        </div>
184        <div class="modal__footer">
185            <button type="button" class="btn btn--primary" onclick="Modal.close('modalInfoReg'); showTab('login')">OK</button>
186        </div>
187    </div>
188</div>
189
190<script src="/assets/js/api.js?v=1.20.1776955658"></script>
vendor: 1 bytes, line 190
190
191<script src="/assets/js/app.js?v=1.20.1777025217"></script>
vendor: 1 bytes, line 191
191
192<script>
193function showTab(key){
194    document.querySelectorAll('.tab').forEach(el => {
195        el.classList.toggle('is-active', el.getAttribute('data-tab') === key);
196    });
197    document.getElementById('tab-login').classList.toggle('hidden', key !== 'login');
198    document.getElementById('tab-reg').classList.toggle('hidden', key !== 'reg');
199}
200
201function togglePw(inputId, el) {
202    const i = document.getElementById(inputId);
203    if (i.type === 'password') { i.type = 'text'; el.innerHTML = '&#128274;'; }
204    else { i.type = 'password'; el.innerHTML = '&#128065;'; }
205}
206
207async function doLogin(ev){
208    ev.preventDefault();
209    const f = ev.target;
210    const fd = new FormData(f);
211    fd.append('action', 'login');
212    try {
213        await API.post('/api/aziende/auth.php', fd);
214        window.location.href = '/dashboard-aziende.php';
215    } catch(e) {
216        Toast.error(e.message);
217    }
218    return false;
219}
220
221async function doRegister(ev){
222    ev.preventDefault();
223    const f = ev.target;
224    const fd = new FormData(f);
225    if (fd.get('password') !== fd.get('password_conferma')) {
226        Toast.error('Le password inserite sono differenti. Verificare.');
227        return false;
228    }
229    fd.append('action', 'register');
230    try {
231        await API.post('/api/aziende/auth.php', fd);
232        f.reset();
233        Modal.open('modalInfoReg');
234    } catch(e) {
235        Toast.error(e.message);
236    }
237    return false;
238}
239</script>
239
240
241</body>
242</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.