HH/templates/layouts/public_base.html
2026-02-22 08:35:53 +03:00

221 lines
7.0 KiB
HTML

{% load i18n %}
{% get_current_language as LANGUAGE_CODE %}
{% get_available_languages as LANGUAGES %}
<!DOCTYPE html>
<html lang="{{ LANGUAGE_CODE }}" dir="{% if LANGUAGE_CODE == 'ar' %}rtl{% else %}ltr{% endif %}">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>{% block title %}{% trans "PX360 - Patient Experience Management" %}{% endblock %}</title>
<!-- TailwindCSS -->
<script src="https://cdn.tailwindcss.com"></script>
<!-- Lucide Icons -->
<script src="https://unpkg.com/lucide@latest"></script>
<!-- Google Fonts - Inter -->
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
<!-- SweetAlert2 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@11/dist/sweetalert2.min.css">
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<!-- Tailwind Config -->
<script>
tailwind.config = {
theme: {
extend: {
fontFamily: {
'inter': ['Inter', 'sans-serif'],
},
colors: {
'navy': '#005696',
'blue': '#007bbd',
'light': '#eef6fb',
'slate': '#64748b',
'success': '#10b981',
'warning': '#f59e0b',
'danger': '#ef4444',
'purple': '#8b5cf6'
}
}
}
}
</script>
<!-- Custom Styles -->
<style>
body {
font-family: 'Inter', sans-serif;
}
/* Background Pattern */
.public-bg {
background: linear-gradient(135deg, #005696 0%, #007bbd 50%, #00a8e8 100%);
min-height: 100vh;
position: relative;
overflow-x: hidden;
}
.public-bg::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-image:
radial-gradient(circle at 20% 50%, rgba(255,255,255,0.1) 0%, transparent 50%),
radial-gradient(circle at 80% 80%, rgba(255,255,255,0.1) 0%, transparent 50%);
pointer-events: none;
}
/* Glass morphism effect */
.glass-card {
background: rgba(255, 255, 255, 0.95);
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.2);
}
/* RTL Support */
[dir="rtl"] {
text-align: right;
}
[dir="rtl"] .ms-2 {
margin-left: 0;
margin-right: 0.5rem;
}
/* Form Input Styles */
.form-input {
transition: all 0.2s ease;
}
.form-input:focus {
transform: translateY(-1px);
}
/* Button hover effects */
.btn-hover {
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.btn-hover:hover {
transform: translateY(-2px);
box-shadow: 0 10px 20px rgba(0, 86, 150, 0.2);
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-track {
background: #f1f5f9;
}
::-webkit-scrollbar-thumb {
background: #cbd5e1;
border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
background: #94a3b8;
}
/* Animations */
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.animate-fade-in {
animation: fadeIn 0.5s ease-out forwards;
}
@keyframes slideUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.animate-slide-up {
animation: slideUp 0.4s ease-out forwards;
}
</style>
{% block extra_css %}{% endblock %}
</head>
<body class="public-bg">
<!-- Header -->
<header class="glass-card shadow-lg sticky top-0 z-50">
<div class="container mx-auto px-4 py-3">
<div class="flex items-center justify-between">
<div class="flex items-center gap-3">
{% load static %}
<div class="w-12 h-12 bg-white rounded-xl flex items-center justify-center shadow-md">
<img src="{% static 'img/hh-logo.png' %}" alt="HH Logo" class="h-8 w-auto object-contain">
</div>
<div>
<h1 class="text-xl font-bold text-navy">PX360</h1>
<p class="text-xs text-slate font-medium">{% trans "Patient Experience Management" %}</p>
</div>
</div>
<!-- Language Switcher -->
<div class="flex items-center gap-2">
{% for lang_code, lang_name in LANGUAGES %}
<a href="{% url 'core:set_language' %}?language={{ lang_code }}"
class="px-4 py-2 rounded-xl border-2 transition-all duration-200 font-semibold text-sm flex items-center gap-2
{% if LANGUAGE_CODE == lang_code %}
border-navy bg-navy text-white shadow-md
{% else %}
border-navy/30 text-navy hover:bg-navy hover:text-white hover:border-navy
{% endif %}">
<span class="text-lg">
{% if lang_code == 'en' %}🇬🇧{% elif lang_code == 'ar' %}🇸🇦{% endif %}
</span>
<span>{{ lang_name }}</span>
</a>
{% endfor %}
</div>
</div>
</div>
</header>
<!-- Main Content -->
<main class="container mx-auto px-4 py-8">
{% block content %}{% endblock %}
</main>
<!-- Footer -->
<footer class="glass-card mt-12 py-6">
<div class="container mx-auto px-4 text-center">
<p class="text-slate text-sm">
&copy; {% now "Y" %} <span class="font-semibold text-navy">Al Hammadi Hospital</span> - PX360. {% trans "All rights reserved." %}
</p>
<p class="text-slate text-xs mt-2">
{% trans "Your feedback helps us improve our services" %}
</p>
</div>
</footer>
{% block extra_js %}{% endblock %}
</body>
</html>