All checks were successful
Deploy Site / deploy (push) Successful in 37s
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
98 lines
2.8 KiB
JavaScript
98 lines
2.8 KiB
JavaScript
/**
|
|
* 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 = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/></svg>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
|
|
});
|
|
}
|
|
}
|
|
|
|
})();
|