Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled
Handler new: /var/www/html/api/inject-products.py - Mass injection doctrine 60 sur /var/www/html/products/ subfolder - 104 pages HTML traitees en 1 pass - GOLD backup systematique: vault-gold/opus/products-NAME.html.doctrine195-TS.bak - chattr +i/-i atomic handling - Includes mobile fix responsive bot-widget (doctrine 194 pattern) Resultats: - OK=104 ALREADY=0 ERR=0 TOTAL=104 (100 percent success) - Health checks HTTP 200 sur consulting/leadforge/academy/arsenal/bizplan Coverage GLOBAL maintenant: - Root: 322/325 = 99.1 percent (2 exclusions legitimes wevia/monitor) - Products: 104/104 = 100 percent COMPLETE - TOTAL: 426 pages UX doctrine 60 Cumul session Opus: - 45 tags (44+1) - 35 doctrines vault (146-195) - 426 pages UX doctrine 60 (was 323, +104) - NR 153/153 invariant 53 phases Handler inject-products.py battle-tested - reusable pour autres subdirs. ZERO regression. ZERO ecrasement.
240 lines
8.5 KiB
HTML
240 lines
8.5 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="fr">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Commande Confirmée — Huawei Cloud | WEVAL</title>
|
|
<style>
|
|
* {margin:0;padding:0;box-sizing:border-box}
|
|
body {
|
|
font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
|
|
background:linear-gradient(135deg,#0a0d14 0%,#151923 100%);
|
|
color:#e2e8f0;
|
|
min-height:100vh;
|
|
display:flex;
|
|
align-items:center;
|
|
justify-content:center;
|
|
padding:2rem;
|
|
}
|
|
.success-container {
|
|
max-width:600px;
|
|
background:rgba(255,255,255,0.05);
|
|
border:1px solid rgba(255,255,255,0.1);
|
|
border-radius:20px;
|
|
padding:3rem;
|
|
text-align:center;
|
|
}
|
|
.success-icon {
|
|
width:80px;
|
|
height:80px;
|
|
background:#22c55e;
|
|
border-radius:50%;
|
|
margin:0 auto 2rem;
|
|
display:flex;
|
|
align-items:center;
|
|
justify-content:center;
|
|
font-size:3rem;
|
|
animation:scaleIn 0.5s ease;
|
|
}
|
|
@keyframes scaleIn {
|
|
from {transform:scale(0);opacity:0}
|
|
to {transform:scale(1);opacity:1}
|
|
}
|
|
h1 {
|
|
font-size:2rem;
|
|
color:#fff;
|
|
margin-bottom:1rem;
|
|
}
|
|
.message {
|
|
color:#94a3b8;
|
|
line-height:1.7;
|
|
margin-bottom:2rem;
|
|
font-size:1.1rem;
|
|
}
|
|
.info-box {
|
|
background:rgba(34,197,94,0.1);
|
|
border:1px solid rgba(34,197,94,0.3);
|
|
border-radius:12px;
|
|
padding:1.5rem;
|
|
margin:2rem 0;
|
|
text-align:left;
|
|
}
|
|
.info-box h3 {
|
|
color:#22c55e;
|
|
font-size:1.1rem;
|
|
margin-bottom:1rem;
|
|
}
|
|
.info-item {
|
|
display:flex;
|
|
justify-content:space-between;
|
|
padding:0.5rem 0;
|
|
border-bottom:1px solid rgba(255,255,255,0.05);
|
|
}
|
|
.info-item:last-child {border:none}
|
|
.info-label {color:#94a3b8}
|
|
.info-value {color:#fff;font-weight:600}
|
|
.next-steps {
|
|
background:rgba(56,189,248,0.1);
|
|
border:1px solid rgba(56,189,248,0.3);
|
|
border-radius:12px;
|
|
padding:1.5rem;
|
|
margin:2rem 0;
|
|
text-align:left;
|
|
}
|
|
.next-steps h3 {
|
|
color:#38bdf8;
|
|
margin-bottom:1rem;
|
|
}
|
|
.next-steps ul {
|
|
list-style:none;
|
|
}
|
|
.next-steps li {
|
|
padding:0.5rem 0;
|
|
color:#cbd5e1;
|
|
display:flex;
|
|
align-items:center;
|
|
gap:0.5rem;
|
|
}
|
|
.next-steps li::before {
|
|
content:'✓';
|
|
color:#22c55e;
|
|
font-weight:700;
|
|
}
|
|
.btn-group {
|
|
display:flex;
|
|
gap:1rem;
|
|
margin-top:2rem;
|
|
flex-wrap:wrap;
|
|
justify-content:center;
|
|
}
|
|
.btn {
|
|
padding:1rem 2rem;
|
|
border-radius:10px;
|
|
font-weight:700;
|
|
text-decoration:none;
|
|
transition:all 0.3s;
|
|
display:inline-block;
|
|
}
|
|
.btn-primary {
|
|
background:linear-gradient(135deg,#e94560 0%,#c13349 100%);
|
|
color:white;
|
|
}
|
|
.btn-primary:hover {
|
|
transform:translateY(-2px);
|
|
box-shadow:0 10px 30px rgba(233,69,96,0.3);
|
|
}
|
|
.btn-secondary {
|
|
background:rgba(255,255,255,0.05);
|
|
color:#94a3b8;
|
|
border:1px solid rgba(255,255,255,0.1);
|
|
}
|
|
.btn-secondary:hover {
|
|
background:rgba(255,255,255,0.1);
|
|
color:#fff;
|
|
}
|
|
.contact-info {
|
|
margin-top:2rem;
|
|
padding-top:2rem;
|
|
border-top:1px solid rgba(255,255,255,0.1);
|
|
color:#64748b;
|
|
font-size:0.9rem;
|
|
}
|
|
.contact-info a {
|
|
color:#38bdf8;
|
|
text-decoration:none;
|
|
}
|
|
</style>
|
|
|
|
<!-- DOCTRINE-60-UX-ENRICH products-batch-doctrine195 -->
|
|
<style id="wtp-doctrine60-ux-premium">
|
|
:root {
|
|
--wtp-bg-start:#0a0f1c; --wtp-bg-end:#0f172a;
|
|
--wtp-surface:rgba(15,23,42,.85); --wtp-surface-hover:rgba(30,41,59,.9);
|
|
--wtp-border:rgba(99,102,241,.25); --wtp-border-hover:rgba(99,102,241,.5);
|
|
--wtp-text:#e2e8f0; --wtp-text-dim:#94a3b8; --wtp-text-bright:#f1f5f9;
|
|
--wtp-primary:#6366f1; --wtp-primary-hover:#7c7feb;
|
|
--wtp-accent:#8b5cf6; --wtp-success:#10b981; --wtp-warning:#f59e0b; --wtp-danger:#ef4444;
|
|
--wtp-radius:12px; --wtp-shadow:0 4px 24px rgba(99,102,241,.15); --wtp-shadow-lg:0 8px 48px rgba(99,102,241,.25);
|
|
--wtp-transition:all .2s cubic-bezier(.4,0,.2,1);
|
|
--wtp-font:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
|
|
--wtp-font-mono:'JetBrains Mono',monospace;
|
|
}
|
|
.wtp-card{background:var(--wtp-surface);border:1px solid var(--wtp-border);border-radius:var(--wtp-radius);padding:20px;transition:var(--wtp-transition)}
|
|
.wtp-card:hover{border-color:var(--wtp-border-hover);box-shadow:var(--wtp-shadow)}
|
|
.wtp-btn{background:linear-gradient(135deg,var(--wtp-primary),var(--wtp-accent));color:#fff;padding:10px 20px;border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:var(--wtp-transition)}
|
|
.wtp-btn:hover{transform:translateY(-1px);box-shadow:var(--wtp-shadow)}
|
|
.wtp-badge{display:inline-flex;align-items:center;padding:4px 10px;background:var(--wtp-surface);border:1px solid var(--wtp-border);border-radius:20px;font-size:12px;color:var(--wtp-text-dim)}
|
|
@media (max-width:768px){#weval-bot-widget{bottom:100px !important;right:16px !important;z-index:10001 !important}#weval-bot-btn{width:48px !important;height:48px !important}#weval-bot-btn svg{width:22px !important;height:22px !important}#footer_banner,.footer-banner,[class*="footer-bandeau"]{z-index:9990 !important}}
|
|
</style>
|
|
|
|
</head>
|
|
<body>
|
|
<div class="success-container">
|
|
<div class="success-icon">✓</div>
|
|
<h1>🎉 Commande Confirmée !</h1>
|
|
<p class="message">
|
|
Votre paiement a été traité avec succès. Notre équipe va procéder à la configuration
|
|
de votre infrastructure Huawei Cloud dans les plus brefs délais.
|
|
</p>
|
|
|
|
<div class="info-box">
|
|
<h3>📋 Informations de Commande</h3>
|
|
<div class="info-item">
|
|
<span class="info-label">Statut</span>
|
|
<span class="info-value" style="color:#22c55e">✓ Confirmé</span>
|
|
</div>
|
|
<div class="info-item">
|
|
<span class="info-label">Session ID</span>
|
|
<span class="info-value" id="session-id">Chargement...</span>
|
|
</div>
|
|
<div class="info-item">
|
|
<span class="info-label">Email de confirmation</span>
|
|
<span class="info-value">Envoyé</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="next-steps">
|
|
<h3>🚀 Prochaines Étapes</h3>
|
|
<ul>
|
|
<li>Vous allez recevoir un email de confirmation avec les détails de votre commande</li>
|
|
<li>Notre équipe technique prendra contact avec vous sous 24h</li>
|
|
<li>Configuration de votre infrastructure Huawei Cloud (2-5 jours ouvrés)</li>
|
|
<li>Formation et documentation d'accès</li>
|
|
<li>Support technique dédié 24/7 activé</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="btn-group">
|
|
<a href="/products/workspace.html" class="btn btn-primary">
|
|
🏠 Retour au Workspace
|
|
</a>
|
|
<a href="/products/cloud-providers.html" class="btn btn-secondary">
|
|
☁️ Autres Providers
|
|
</a>
|
|
</div>
|
|
|
|
<div class="contact-info">
|
|
<p><strong>Besoin d'aide ?</strong></p>
|
|
<p>
|
|
Email: <a href="mailto:support@weval-consulting.com">support@weval-consulting.com</a><br>
|
|
Téléphone: +212 5 22 XX XX XX<br>
|
|
Support 24/7 disponible
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
// Get session ID from URL
|
|
const urlParams = new URLSearchParams(window.location.search);
|
|
const sessionId = urlParams.get('session_id');
|
|
|
|
if (sessionId) {
|
|
document.getElementById('session-id').textContent = sessionId.substring(0, 20) + '...';
|
|
} else {
|
|
document.getElementById('session-id').textContent = 'N/A';
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|
|
|