/** * DO CLOUD - Custom JavaScript * - Botón Login en header * - Integración Zammad Feedback Form (carga diferida) */ (function() { 'use strict'; // Esperar a que el DOM esté listo document.addEventListener('DOMContentLoaded', initCustomFeatures); function initCustomFeatures() { fixLogoLink(); addLoginButton(); // Cargar Zammad después de la carga inicial (mejora LCP) if ('requestIdleCallback' in window) { requestIdleCallback(loadZammadForm); } else { setTimeout(loadZammadForm, 2000); } } /** * Asegura que el logo siempre enlace al home */ function fixLogoLink() { var logoLink = document.querySelector('.logo-link'); if (logoLink) { logoLink.href = '/'; } } /** * Añade el botón de Login al header */ function addLoginButton() { var header = document.querySelector('.sidebar-header'); if (!header) return; var loginBtn = document.createElement('a'); loginBtn.href = 'https://icsmanager.docloud.es/ics1'; loginBtn.className = 'header-login-btn'; loginBtn.innerHTML = 'Login'; loginBtn.setAttribute('rel', 'noopener'); loginBtn.setAttribute('title', 'Acceder al panel de cliente'); header.appendChild(loginBtn); } /** * Carga jQuery y Zammad Form */ function loadZammadForm() { // Crear botón de feedback var feedbackBtn = document.createElement('button'); feedbackBtn.id = 'zammad-feedback-form'; feedbackBtn.textContent = 'Contactar'; document.body.appendChild(feedbackBtn); // Cargar jQuery si no existe if (typeof jQuery === 'undefined') { var jqueryScript = document.createElement('script'); jqueryScript.src = 'https://code.jquery.com/jquery-3.6.0.min.js'; jqueryScript.onload = loadZammadScript; document.head.appendChild(jqueryScript); } else { loadZammadScript(); } } /** * Carga el script de Zammad y inicializa el formulario */ function loadZammadScript() { var zammadScript = document.createElement('script'); zammadScript.id = 'zammad_form_script'; zammadScript.src = 'https://soporte.tecnico.com.es/assets/form/form.js'; zammadScript.onload = initZammadForm; document.head.appendChild(zammadScript); } /** * Inicializa el formulario de Zammad */ function initZammadForm() { if (typeof jQuery !== 'undefined' && jQuery.fn.ZammadForm) { jQuery('#zammad-feedback-form').ZammadForm({ messageTitle: 'Contacto con Soporte', messageSubmit: 'Enviar', messageThankYou: 'Gracias por su consulta (#%s). Nos pondremos en contacto con usted lo antes posible.', modal: true }); } } })();