SA-SAJCOAI / utils /components /improved_header.py
EGYADMIN's picture
Upload 75 files
fb20480 verified
"""
مكون ترويسة الصفحة المحسن
"""
import streamlit as st
from datetime import datetime
import config
def render_header():
"""
عرض ترويسة الصفحة المحسنة
"""
# إنشاء مكون الترويسة باستخدام HTML
header_html = """
<div class="header-container">
<div class="header-logo-title">
<img src="./static/images/logo.png" class="header-logo" alt="شعار النظام">
<div class="header-title">
<h1>نظام تحليل العقود والمناقصات</h1>
<p>الحلول الشاملة للتسعير والتحليل بالذكاء الاصطناعي</p>
</div>
</div>
<div class="header-info">
<button class="theme-toggle" id="theme-toggle" onclick="toggleTheme()">
<span id="theme-icon">🌙</span>
</button>
<div class="date-box">
<div class="date-day">{day}</div>
<div class="date-info">
<div class="date-month">{month}</div>
<div class="date-year">{year}</div>
</div>
</div>
</div>
</div>
<script>
function toggleTheme() {{
const body = document.body;
const icon = document.getElementById('theme-icon');
if (body.classList.contains('dark-theme')) {{
body.classList.remove('dark-theme');
icon.innerText = '🌙';
localStorage.setItem('theme', 'light');
}} else {{
body.classList.add('dark-theme');
icon.innerText = '☀️';
localStorage.setItem('theme', 'dark');
}}
}}
// تطبيق السمة المحفوظة عند تحميل الصفحة
document.addEventListener('DOMContentLoaded', () => {{
const savedTheme = localStorage.getItem('theme');
const icon = document.getElementById('theme-icon');
if (savedTheme === 'dark') {{
document.body.classList.add('dark-theme');
icon.innerText = '☀️';
}}
}});
</script>
"""
# الحصول على معلومات التاريخ الحالي
today = datetime.now()
day = today.day
month_names = [
"يناير", "فبراير", "مارس", "إبريل", "مايو", "يونيو",
"يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"
]
month = month_names[today.month - 1]
year = today.year
# استبدال القيم في قالب HTML
header_html = header_html.format(day=day, month=month, year=year)
# عرض الترويسة
st.markdown(header_html, unsafe_allow_html=True)
# إضافة شريط التنقل الرئيسي
if 'is_authenticated' in st.session_state and st.session_state.is_authenticated:
render_navigation_menu()
# إضافة خط فاصل
st.markdown("<hr>", unsafe_allow_html=True)
def render_navigation_menu():
"""
عرض قائمة التنقل الرئيسية المحسنة
"""
# إنشاء قائمة التنقل المختصرة
menu_items = [
{"icon": "🏠", "label": "الرئيسية", "url": "/?page=home", "active": True},
{"icon": "📊", "label": "لوحة المعلومات", "url": "/?page=dashboard", "active": False},
{"icon": "📑", "label": "المناقصات", "url": "/?page=tenders", "active": False},
{"icon": "📋", "label": "المشاريع", "url": "/?page=projects", "active": False},
{"icon": "⚙️", "label": "الإعدادات", "url": "/?page=settings", "active": False},
{"icon": "❓", "label": "المساعدة", "url": "/?page=help", "active": False}
]
# تحديد الصفحة النشطة
current_page = st.query_params.get("page", "home")
for item in menu_items:
if item["url"].endswith(current_page):
item["active"] = True
else:
item["active"] = False
# إنشاء قائمة HTML
menu_html = """
<div class="nav-menu">
<ul>
"""
for item in menu_items:
active_class = "active" if item["active"] else ""
menu_html += f"""
<li>
<a href="{item['url']}" class="{active_class}">
<span class="nav-icon">{item['icon']}</span>
<span class="nav-label">{item['label']}</span>
</a>
</li>
"""
menu_html += """
</ul>
</div>
"""
# عرض قائمة التنقل
st.markdown(menu_html, unsafe_allow_html=True)