PageSourceSearch

https://catalonialogistics.com/accounts/signup/

html catalonialogistics.com collected 2026-10-04 09:09:47 UTC 17,050 bytes, 581 lines download raw bytes

1
2
3
4
5
6  <!DOCTYPE html>
7  <html lang="ca" class="html">
8  <head>
9    <meta charset="utf-8"/>
10    <title>
11      Catalonia Logistics | 
12    </title>
13    <meta http-equiv="X-UA-Compatible" content="IE=edge">
14    <meta content="width=device-width, initial-scale=1" name="viewport"/>
15    <meta content="Timtul" name="author"/>
16
17
18    <meta name="robots" content="noindex, nofollow, noarchive, nosnippet">
19	<meta name="googlebot" content="noindex, nofollow, noarchive, nosnippet">
20
21  	
21<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
21
22    
22<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery-migrate/3.4.1/jquery-migrate.min.js" integrity="sha512-KgffulL3mxrOsDicgQWA11O6q6oKeWcV00VxgfJw4TcM8XRQT8Df9EsrYxDf7tpVpfl3qcYD96BpyPvA4d1FDQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
22
23
24    <link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet" type="text/css"/>
25    <link  href="//cdnjs.cloudflare.com/ajax/libs/fotorama/4.6.4/fotorama.css" rel="stylesheet">
vendor: 119 bytes, lines 25-28
25
26	<script src="https://www.google.com/recaptcha/api.js?onload=tt_recaptcha&render=explicit" async defer></script>
27
28    
28<link rel="stylesheet" href="/static/CACHE/css/c4e0c354ad38.css" type="text/css" />
29    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.11.2/css/bootstrap-select.min.css">
30    
30<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.4/js/bootstrap.min.js"></script>
30
31    
31<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.11.2/js/bootstrap-select.min.js"></script>
31
32    <link rel="shortcut icon" href="/favicon.ico"/>
33    
33<script type="text/javascript" src="/static/admin/js/i18n-periodpicker.js"></script>
33
34
35  
36            <!-- Google tag (gtag.js) -->
vendor: 65 bytes, lines 36-37
36
37<script async src="https://www.googletagmanager.com/gtag/js?id=
37G-WDVGHP0LKF
vendor: 13 bytes, line 37
37"></script>
38<script>
39  
vendor: 138 bytes, lines 39-43
39window.dataLayer = window.dataLayer || [];
40  function gtag(){dataLayer.push(arguments);}
41  gtag('js', new Date());
42
43  gtag('config', '
43G-WDVGHP0LKF
vendor: 5 bytes, line 43
43');
44</script>
44
45  
46
47  </head>
48      
49      <body style="margin-bottom:0px;padding-top:0px;" class="modal-base-body">
50          <div class="login-container">
51      
52
53
54<script type="text/javascript">
55
56    
57var tt_recaptcha = function() {
58     $( ".g-recaptcha-modal" ).each(function( index ) {
59           var key = $(this).attr("data-sitekey");
60		   var lang = "ca"
61		   if( lang == "pr") {
62                lang = "pt";
63		   }
64           recaptcha = grecaptcha.render(this, {
65             'sitekey' : key,
66             'hl': lang
67           });
68         });
69};
70    
71
72$( document ).ready(function() {
73  
74
75
76    
77
78
79    
80
81  var $dateInputs = $('#signup_form').find('.date-field');
82  var dt_format = 'D/MM/YYYY';
83
84  var $datetimeInputs = $('#signup_form').find('.datetime-field');
85  var dtime_format = 'D/MM/YYYY HH:mm';
86  var lang = $('html').attr('lang');
87
88  $.each($dateInputs, function(i, e){
89    var mindate = $(this).attr('min') != "" ? $(this).attr('min') : null;
90    var maxdate = $(this).attr('max') != "" ? $(this).attr('max') : null;
91
92    $(e).periodpicker({
93      minDate: mindate,
94      maxDate: maxdate,
95      norange: true,
96      cells: [1, 1],
97      withoutBottomPanel: true,
98	  yearsLine: true,
99      yearsPeriod: [1900, 2100],
100      title: false,
101      resizeButton: false,
102      fullsizeButton: false,
103      closeButton: false,
104      hideAfterSelect: true,
105      dayOfWeekStart: 1,
106      formatDate: dt_format,
107      i18n: i18langs,
108      lang:lang,
109    })
110  })
111
112  $.each($datetimeInputs, function(i, e){
113
114    $(e).periodpicker({
115      norange: true,
116      cells: [1, 1],
117      lang: lang,
118      title: false,
119      resizeButton: false,
120      fullsizeButton: false,
121      closeButton: false,
122      fullsizeOnDblClick: false,
123	  timepicker: true,
124      yearsPeriod: [1900, 2040],
125      i18n: i18langs,
126      clearButtonInButton: true,
127      formatDateTime: dtime_format,
128      timepickerOptions: {
129        hours: true,
130        minutes: true,
131        seconds: false,
132        ampm: true
133      },
134      onAfterHide: function(){}
135    })
136  })
137
138  $('.tt-selectpicker').selectpicker({
139    liveSearch: true,
140    liveSearchNormalize: true,
141    size: 'auto',
142    selectedTextFormat: 'count > 3',
143    noneSelectedText: 'Escull una opció',
144    noneResultsText: 'No hi ha resultats',
145    countSelectedText: '{0} Seleccionat(s)',
146    width: 'auto'
147  });
148
149
150  function validateDNIi18n(dni) {
151        var numero, letr, letra;
152        var expresion_regular_dni = /^[XYZ]?\d{5,8}[A-Z]$/;
153
154        dni = dni.toUpperCase();
155
156        if(expresion_regular_dni.test(dni) === true){
157            numero = dni.substr(0,dni.length-1);
158            numero = numero.replace('X', 0);
159            numero = numero.replace('Y', 1);
160            numero = numero.replace('Z', 2);
161            letr = dni.substr(dni.length-1, 1);
162            numero = numero % 23;
163            letra = 'TRWAGMYFPDXBNJZSQVHLCKET';
164            letra = letra.substring(numero, numero+1);
165            if (letra != letr) {
166                return false;
167            }else{
168                return true;
169            }
170        }else{
171            return false;
172        }
173    }
174
175    $("#id_custom_DNI").blur(function() {
176            var dni = $("#id_custom_DNI").val();
177            if(!validateDNIi18n(dni)) {
178               $("#signup-btn").attr("disabled", true);
179                $("#error-text").html("El DNI no es correcte. Si us plau, introdueix un DNI vàlid.");
180            } else {
181               $("#error-text").html("");
182               $("#signup-btn").attr("disabled", false);
183            }
184    });
185
186
187    
188
189});
190</script>
190
191
192
193<!--
194    <div>
195        <ul>
196        	
197        	<li><a href="/accounts/login/">Sign In</a></li>
198        	<li><a href="/accounts/signup/">Sign Up</a></li>
199        	
200      </ul>
201    </div>
202  -->
203    
204<h3>Registrar-se</h3>
205
206<p>Ja tens un compte? <a href="/accounts/login/">Inicia sessió</a>.</p>
207
208<form class="signup" id="signup_form" method="post" enctype="multipart/form-data" action="/accounts/signup/">
209  <input type='hidden' name='csrfmiddlewaretoken' value='iT5sVGCvwh72y2GXTxalgqMhKHZ2xtbDULBMLTs4tb3sL0xhD0lQs9cWSakm5M12' />
210  <p><label for="id_first_name">Nom:</label> <input autofocus="autofocus" id="id_first_name" name="first_name" placeholder="Nom" type="text" required /></p>
211<p><label for="id_last_name">Cognoms:</label> <input autofocus="autofocus" id="id_last_name" name="last_name" placeholder="Cognoms" type="text" /></p>
212<p><label for="id_email">Email:</label> <input id="id_email" name="email" placeholder="Adreça electrònica" type="email" required /></p>
213<p><label for="id_password1">Contrasenya:</label> <input id="id_password1" name="password1" placeholder="Contrasenya" type="password" required /></p>
214<p><label for="id_password2">Contrasenya (de nou):</label> <input id="id_password2" name="password2" placeholder="Contrasenya (de nou)" type="password" required /><input id="id_timestamp" name="timestamp" type="hidden" value="1791104986.84" /><input id="id_confirmation_key" maxlength="40" name="confirmation_key" type="hidden" /><input id="id_g-recaptcha-response" maxlength="4096" name="g-recaptcha-response" type="hidden" /></p>
215  
216
217  <h4 style="padding-top: 25px;border-top: 1px solid #d2d2d2;" class="form-title">Informació addicional</h4>
218  
219
220  
221
222   
223
224      
225       <div class="form-group custom-field">
226          <label class="control-label">Nombre del proyecto</label>
227           <div class="input-group field-type-string">
228              <input class="form-control" id="id_custom_NOM-DEL-PROJECTE" maxlength="" minlength="" name="custom_NOM-DEL-PROJECTE" placeholder="Nombre del proyecto del que quieres información" type="string" />
229              
230                <span class="input-group-addon"
231                
232                      title="Aquesta informació serà pública">
233                     <span class="fa fa-globe"></span>
234                  
235              </span>
236              
237            </div>
238       </div>
239  
240
241  
242
243   
244
245      
246       <div class="form-group custom-field">
247          <label class="control-label">Cargo en la empresa</label>
248           <div class="input-group field-type-string">
249              <input class="form-control" id="id_custom_CRREC" maxlength="" minlength="" name="custom_CRREC" placeholder="" type="string" />
250              
251                <span class="input-group-addon"
252                
253                      title="Aquesta informació serà pública">
254                     <span class="fa fa-globe"></span>
255                  
256              </span>
257              
258            </div>
259       </div>
260  
261
262  
263
264   
265
266      
267       <div class="form-group custom-field">
268          <label class="control-label">EMPRESA</label>
269           <div class="input-group field-type-string">
270              <input class="form-control" id="id_custom_EMPRESA" maxlength="" minlength="" name="custom_EMPRESA" placeholder="" type="string" />
271              
272                <span class="input-group-addon"
273                
274                      title="Aquesta informació serà privada i ningú la veurà">
275                     <span class="fa fa-lock"></span>
276                
277              </span>
278              
279            </div>
280       </div>
281  
282
283  
284
285   
286
287      
288       <div class="form-group custom-field">
289          <label class="control-label">Seguidor twitter @ccatlogist</label>
290           <div class="input-group field-type-boolean">
291              <input class="" data-required="0" id="id_custom_SEGUIDOR-TWITTER" name="custom_SEGUIDOR-TWITTER" type="checkbox" />
292              
293            </div>
294       </div>
295  
296
297  
298
299    
300   <p id="id_terms_p">
301    <label for="id_terms">
302        
303        
304He llegit i ACCEPTO el tractament de les meves dades personals d'acord amb la <a href="/politica-de-privacidad/" target="_blank">política de privacitat.</a>
305    </label>
306    <input id="id_terms" name="terms" type="checkbox" required="">
307   </p>
308    <p>
309         <div class="g-recaptcha-modal" data-sitekey="6LewnxoUAAAAAOG8yF9cFzVe0kKH9YLvDq75SdwU"
310              style="align-items: center;text-align: center;margin: auto;width: 305px;"></div>
311    </p>
312  
313  
314  <span id="error-text" style="color:red;display:block;">
315    &nbsp;
316  </span>
317  <button type="button" class="btn btn-danger" data-dismiss="modal" aria-hidden="true">Cancel·lar</button>
318  <button type="submit" id="signup-btn">Registrar-se &raquo;</button>
319
320    
321</form>
322
323
324
325
326
327
328
329
330
331    </div>
332  </body>
333</html>
334
335
336<script type="text/javascript">
337
338    try {
339        $(".page-noticies .widget-article-list .content")
340  .addClass("template-big-list-a")
341  .removeClass("template-big-list-b");
342
343$(document).ready(function () {
344  var scrollTop = 0;
345  $(window).scroll(function () {
346    scrollTop = $(window).scrollTop();
347    if (scrollTop >= 1) {
348      $(".region-header").addClass("scrolled-nav");
349    } else if (scrollTop < 1) {
350      $(".region-header").removeClass("scrolled-nav");
351    }
352  });
353});
354
355$(".navbar-default .navbar-nav > li").mouseenter(function () {
356  if ($(this).find("a").hasClass("dropdown-toggle")) {
357    $(this).addClass("open");
358  }
359
360  $(this).mouseleave(function () {
361    $(".navbar-default .navbar-nav > li").removeClass("open");
362  });
363});
364
365function removeEmptyMoreInfo() {
366  const moreInfos = document.querySelectorAll(".more-info");
367
368  moreInfos.forEach((el) => {
369    if (el.children.length > 0) return;
370    const text = (el.textContent || "").replace(/\u00A0/g, " ").trim();
371    if (text.length > 0) return;
372    el.remove();
373  });
374}
375removeEmptyMoreInfo();
376
377function shareApiBtn(btnSel = "share-btn", statusSel = ".share-response") {
378  const btn = document.querySelector(btnSel);
379  const statusContainer = document.querySelector(statusSel);
380
381  if (!btn) return;
382
383  const show = (msg, cls = "") => {
384    if (!statusContainer) return;
385    statusContainer.textContent = msg;
386    statusContainer.className = `hint ${cls}`.trim();
387  };
388
389  btn.addEventListener("click", async () => {
390    const title = btn.dataset.title || document.title || "Comparto este enlace";
391    const rawUrl = window.location.href;
392    const url = new URL(rawUrl, window.location.origin).href;
393    const baseTxt = btn.dataset.text || "";
394
395    const text = baseTxt ? `${baseTxt} ` : url;
396
397    const shareData = { title, text, url };
398
399    if (!navigator.share) {
400      await copyUrlFallback(url, show);
401      return;
402    }
403
404    try {
405      await navigator.share(shareData);
406    } catch (err) {
407      if (err && err.name !== "AbortError") {
408        show("No se pudo compartir. Copiando al portapapeles...", "err");
409        await copyUrlFallback(url, show);
410      }
411    }
412  });
413
414  async function copyUrlFallback(url, showFn) {
415    try {
416      if (navigator.clipboard?.writeText) {
417        await navigator.clipboard.writeText(url);
418        showFn("URL copiada al portapapeles ✅", "ok");
419        return;
420      }
421    } catch (_) {}
422
423    const ta = document.createElement("textarea");
424    ta.value = url;
425    ta.setAttribute("readonly", "");
426    ta.style.position = "fixed";
427    ta.style.left = "-9999px";
428    document.body.appendChild(ta);
429    ta.select();
430    try {
431      document.execCommand("copy");
432      showFn("URL copiada al portapapeles ✅", "ok");
433    } catch {
434      showFn("Copia fallida. Puedes copiar este enlace: " + url, "err");
435    } finally {
436      document.body.removeChild(ta);
437    }
438  }
439}
440
441function initShareNewsButtons(selector = ".share-news") {
442  const buttons = document.querySelectorAll(selector);
443
444  buttons.forEach((button) => {
445    // Evita registrar el evento más de una vez.
446    if (button.dataset.shareInitialized === "true") {
447      return;
448    }
449
450    button.dataset.shareInitialized = "true";
451
452    button.addEventListener("click", async () => {
453      const title =
454        button.dataset.title?.trim() ||
455        document.title ||
456        "Comparto este enlace";
457
458      const text = button.dataset.text?.trim() || "Comparto esta noticia:";
459
460      const url = resolveShareUrl(button.dataset.url);
461
462      const shareData = {
463        title,
464        text,
465        url,
466      };
467
468      if (typeof navigator.share !== "function") {
469        await copyUrlFallback(url, button);
470        return;
471      }
472
473      try {
474        await navigator.share(shareData);
475      } catch (error) {
476        // No mostramos ningún error cuando el usuario cierra
477        // voluntariamente el diálogo de compartir.
478        if (error?.name === "AbortError") {
479          return;
480        }
481
482        showShareStatus(
483          button,
484          "No se pudo compartir. Copiando al portapapeles...",
485          "err",
486        );
487
488        await copyUrlFallback(url, button);
489      }
490    });
491  });
492}
493
494function resolveShareUrl(rawUrl) {
495  const url = rawUrl?.trim() || window.location.href;
496
497  try {
498    return new URL(url, window.location.origin).href;
499  } catch {
500    return window.location.href;
501  }
502}
503
504async function copyUrlFallback(url, button) {
505  try {
506    if (navigator.clipboard?.writeText) {
507      await navigator.clipboard.writeText(url);
508
509      showShareStatus(button, "URL copiada al portapapeles", "ok");
510
511      return;
512    }
513  } catch {
514    
515  }
516
517  const textarea = document.createElement("textarea");
518
519  textarea.value = url;
520  textarea.setAttribute("readonly", "");
521  textarea.setAttribute("aria-hidden", "true");
522
523  Object.assign(textarea.style, {
524    position: "fixed",
525    left: "-9999px",
526    top: "0",
527  });
528
529  document.body.appendChild(textarea);
530
531  textarea.select();
532  textarea.setSelectionRange(0, textarea.value.length);
533
534  try {
535    const copied = document.execCommand("copy");
536
537    if (!copied) {
538      throw new Error("El navegador no pudo copiar el enlace");
539    }
540
541    showShareStatus(button, "URL copiada al portapapeles", "ok");
542  } catch {
543    showShareStatus(button, `No se pudo copiar el enlace: ${url}`, "err");
544  } finally {
545    textarea.remove();
546  }
547}
548
549function showShareStatus(button, message, className = "") {
550  let status = button.nextElementSibling;
551
552  if (!status?.classList.contains("share-response")) {
553    status = document.createElement("p");
554
555    status.className = "hint share-response";
556    status.setAttribute("aria-live", "polite");
557    status.setAttribute("role", "status");
558
559    button.insertAdjacentElement("afterend", status);
560  }
561
562  status.textContent = message;
563  status.className = `hint share-response ${className}`.trim();
564}
565
566const hasEventClass = [...document.body.classList]
567  .some(className => className.includes('event-'));
568  const hasEntryClass = [...document.body.classList]
569  .some(className => className.includes('entry-'));
570
571if (hasEntryClass || hasEventClass) {
572  shareApiBtn();
573}
574
575initShareNewsButtons();
576initShareNewsButtons(".share-event");
577    }
578    catch(err) {
579        console.log("[ERROR Custom JS]", err.message);
580    }
581</script>

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.