sync: actualizar contenido desde staging - botón Login, favicon, estilos
All checks were successful
Deploy Site / deploy (push) Successful in 37s
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>
This commit is contained in:
parent
eef3370f76
commit
7d0ba87abb
|
|
@ -49,7 +49,7 @@ footer.page-footer {
|
||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
height: 70px !important;
|
height: 70px !important;
|
||||||
background: white !important;
|
background: white !important;
|
||||||
box-shadow: 0 2px 15px rgba(11, 30, 59, 0.1) !important;
|
box-shadow: none !important;
|
||||||
display: flex !important;
|
display: flex !important;
|
||||||
align-items: center !important;
|
align-items: center !important;
|
||||||
padding: 0 30px !important;
|
padding: 0 30px !important;
|
||||||
|
|
@ -59,8 +59,12 @@ footer.page-footer {
|
||||||
.sidebar-header {
|
.sidebar-header {
|
||||||
display: flex !important;
|
display: flex !important;
|
||||||
align-items: center !important;
|
align-items: center !important;
|
||||||
|
justify-content: space-between !important;
|
||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
height: 100% !important;
|
height: 100% !important;
|
||||||
|
border-bottom: none !important;
|
||||||
|
padding-bottom: 0 !important;
|
||||||
|
margin-bottom: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-header .logo-link {
|
.sidebar-header .logo-link {
|
||||||
|
|
@ -68,6 +72,12 @@ footer.page-footer {
|
||||||
align-items: center !important;
|
align-items: center !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Ocultar título DO CLOUD del header */
|
||||||
|
.sidebar-header h1,
|
||||||
|
.sidebar h1 {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
.sidebar-header .logo-link img {
|
.sidebar-header .logo-link img {
|
||||||
max-height: 45px !important;
|
max-height: 45px !important;
|
||||||
width: auto !important;
|
width: auto !important;
|
||||||
|
|
@ -229,3 +239,99 @@ div[align="center"]:last-of-type a {
|
||||||
[data-theme="dark"] th {
|
[data-theme="dark"] th {
|
||||||
background: var(--primary-gradient) !important;
|
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;
|
||||||
|
}
|
||||||
|
|
|
||||||
97
assets/custom.js
Normal file
97
assets/custom.js
Normal file
|
|
@ -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 = '<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
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
})();
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 4.4 KiB |
12
assets/favicon.svg
Normal file
12
assets/favicon.svg
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="g" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||||
|
<stop offset="0%" stop-color="#0A6CFF"/>
|
||||||
|
<stop offset="100%" stop-color="#1FD1C3"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<path d="M120 320c-66 0-120-44-120-104 0-54 42-98 96-102 20-48 68-82 124-82 76 0 140 58 146 132h10c44 0 80 34 80 78s-36 78-80 78H120z" fill="url(#g)"/>
|
||||||
|
<rect x="200" y="210" width="30" height="80" fill="#fff"/>
|
||||||
|
<rect x="240" y="180" width="30" height="110" fill="#fff"/>
|
||||||
|
<rect x="280" y="150" width="30" height="140" fill="#fff"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 610 B |
9
index.md
9
index.md
|
|
@ -1,15 +1,11 @@
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
# DOCLOUD
|
|
||||||
|
|
||||||
## Internet Cloud Services
|
## Internet Cloud Services
|
||||||
|
|
||||||
**Tu partner tecnológico en soluciones cloud**
|
**Tu partner tecnológico en soluciones cloud**
|
||||||
|
|
||||||
Infraestructura fiable, segura y escalable para impulsar tu negocio.
|
Infraestructura fiable, segura y escalable para impulsar tu negocio.
|
||||||
|
|
||||||
<a href="https://soporte.tecnico.com.es" style="display:inline-block;background:#0066cc;color:white;padding:12px 30px;text-decoration:none;border-radius:5px;font-weight:bold;margin:10px;">Contactar con Soporte</a>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -89,11 +85,6 @@ Equipo experto disponible para resolver cualquier incidencia.
|
||||||
|
|
||||||
¿Listo para llevar tu infraestructura al siguiente nivel?
|
¿Listo para llevar tu infraestructura al siguiente nivel?
|
||||||
|
|
||||||
<a href="https://soporte.tecnico.com.es" style="display:inline-block;background:#28a745;color:white;padding:15px 40px;text-decoration:none;border-radius:5px;font-weight:bold;font-size:18px;margin:20px;">Solicitar Información</a>
|
|
||||||
|
|
||||||
<a href="contacto.html" style="display:inline-block;background:#6c757d;color:white;padding:12px 30px;text-decoration:none;border-radius:5px;margin:10px;">Ver opciones de contacto</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -51,4 +51,6 @@ server {
|
||||||
add_header X-Frame-Options "SAMEORIGIN" always;
|
add_header X-Frame-Options "SAMEORIGIN" always;
|
||||||
add_header X-Content-Type-Options "nosniff" always;
|
add_header X-Content-Type-Options "nosniff" always;
|
||||||
add_header X-XSS-Protection "1; mode=block" 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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue