From 7d0ba87abbe31c72c89abdbf1a8baf8523a95944 Mon Sep 17 00:00:00 2001 From: Deploy Bot Date: Tue, 6 Jan 2026 11:58:52 +0000 Subject: [PATCH] =?UTF-8?q?sync:=20actualizar=20contenido=20desde=20stagin?= =?UTF-8?q?g=20-=20bot=C3=B3n=20Login,=20favicon,=20estilos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 馃 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- assets/custom.css | 108 ++++++++++++++++++++++++++++++++++++++++++++- assets/custom.js | 97 ++++++++++++++++++++++++++++++++++++++++ assets/favicon.png | Bin 1869 -> 4458 bytes assets/favicon.svg | 12 +++++ index.md | 9 ---- nginx.conf | 2 + 6 files changed, 218 insertions(+), 10 deletions(-) create mode 100644 assets/custom.js create mode 100644 assets/favicon.svg diff --git a/assets/custom.css b/assets/custom.css index 7ef1db3..9fbe9fd 100644 --- a/assets/custom.css +++ b/assets/custom.css @@ -49,7 +49,7 @@ footer.page-footer { width: 100% !important; height: 70px !important; background: white !important; - box-shadow: 0 2px 15px rgba(11, 30, 59, 0.1) !important; + box-shadow: none !important; display: flex !important; align-items: center !important; padding: 0 30px !important; @@ -59,8 +59,12 @@ footer.page-footer { .sidebar-header { display: flex !important; align-items: center !important; + justify-content: space-between !important; width: 100% !important; height: 100% !important; + border-bottom: none !important; + padding-bottom: 0 !important; + margin-bottom: 0 !important; } .sidebar-header .logo-link { @@ -68,6 +72,12 @@ footer.page-footer { align-items: center !important; } +/* Ocultar t铆tulo DO CLOUD del header */ +.sidebar-header h1, +.sidebar h1 { + display: none !important; +} + .sidebar-header .logo-link img { max-height: 45px !important; width: auto !important; @@ -229,3 +239,99 @@ div[align="center"]:last-of-type a { [data-theme="dark"] th { background: var(--primary-gradient) !important; } + +/* ============================================ + BOT脫N LOGIN EN HEADER + ============================================ */ +.header-login-btn { + display: inline-flex !important; + align-items: center; + gap: 10px; + background: var(--primary-gradient) !important; + color: white !important; + padding: 12px 28px !important; + border-radius: 8px; + font-weight: 700; + font-size: 15px; + text-decoration: none !important; + transition: all 0.3s ease; + box-shadow: 0 4px 15px rgba(10, 108, 255, 0.35); + border: none; + cursor: pointer; + letter-spacing: 0.3px; +} + +.header-login-btn:hover { + transform: translateY(-3px); + box-shadow: 0 6px 20px rgba(10, 108, 255, 0.5); + filter: brightness(1.1); + color: white !important; +} + +.header-login-btn:active { + transform: translateY(-1px); +} + +.header-login-btn svg { + width: 18px; + height: 18px; + fill: currentColor; +} + +/* ============================================ + BOT脫N FEEDBACK ZAMMAD (flotante) + ============================================ */ +#zammad-feedback-form { + position: fixed; + bottom: 20px; + right: 20px; + background: var(--primary-gradient); + color: white; + border: none; + padding: 12px 24px; + border-radius: 50px; + font-weight: 600; + font-size: 14px; + cursor: pointer; + box-shadow: 0 4px 20px rgba(10, 108, 255, 0.4); + transition: all 0.3s ease; + z-index: 999; + display: inline-flex; + align-items: center; + gap: 8px; +} + +#zammad-feedback-form:hover { + transform: translateY(-3px); + box-shadow: 0 6px 25px rgba(10, 108, 255, 0.5); +} + +#zammad-feedback-form::before { + content: '馃挰'; + font-size: 16px; +} + +/* Estilos para modal de Zammad */ +.zammad-form-modal { + font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important; +} + +.zammad-form-modal .zammad-form-modal-body { + border-radius: 12px !important; +} + +.zammad-form-modal input, +.zammad-form-modal textarea, +.zammad-form-modal select { + border-radius: 6px !important; + border: 1px solid var(--light-gray) !important; + padding: 10px 12px !important; +} + +.zammad-form-modal button[type="submit"] { + background: var(--primary-gradient) !important; + border: none !important; + border-radius: 6px !important; + padding: 12px 24px !important; + font-weight: 600 !important; +} diff --git a/assets/custom.js b/assets/custom.js new file mode 100644 index 0000000..d99bb14 --- /dev/null +++ b/assets/custom.js @@ -0,0 +1,97 @@ +/** + * 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 + }); + } + } + +})(); diff --git a/assets/favicon.png b/assets/favicon.png index 04156217431a0136595d737936ec29ec92c583f7..59113b135fb694fcd7816faef5f2780d3cf2dc8e 100644 GIT binary patch literal 4458 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 Hu0mjfAo+(% diff --git a/assets/favicon.svg b/assets/favicon.svg new file mode 100644 index 0000000..b00c433 --- /dev/null +++ b/assets/favicon.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/index.md b/index.md index b2dfb0f..e1dfed1 100644 --- a/index.md +++ b/index.md @@ -1,15 +1,11 @@
-# DOCLOUD - ## Internet Cloud Services **Tu partner tecnol贸gico en soluciones cloud** Infraestructura fiable, segura y escalable para impulsar tu negocio. -Contactar con Soporte -
--- @@ -89,11 +85,6 @@ Equipo experto disponible para resolver cualquier incidencia. 驴Listo para llevar tu infraestructura al siguiente nivel? -Solicitar Informaci贸n - -Ver opciones de contacto - - --- diff --git a/nginx.conf b/nginx.conf index 4ce4a4e..e096211 100644 --- a/nginx.conf +++ b/nginx.conf @@ -51,4 +51,6 @@ server { add_header X-Frame-Options "SAMEORIGIN" always; add_header X-Content-Type-Options "nosniff" always; add_header X-XSS-Protection "1; mode=block" always; + add_header Referrer-Policy "strict-origin-when-cross-origin" always; + add_header Permissions-Policy "geolocation=(), microphone=(), camera=()" always; }