560 lines
25 KiB
HTML
560 lines
25 KiB
HTML
{% comment %} {% load static i18n %}
|
|
<!DOCTYPE html>
|
|
<html lang="{% if request.LANGUAGE_CODE %}{{ request.LANGUAGE_CODE }}{% else %}en{% endif %}">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>{% block title %}NorahUniversity ATS{% endblock %}</title>
|
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
|
|
<script type="module" src="https://cdn.jsdelivr.net/gh/starfederation/datastar@1.0.0-RC.5/bundles/datastar.js"></script>
|
|
{% comment %} <script src="https://unpkg.com/htmx.org@2.0.3/dist/htmx.min.js"></script> {% endcomment %}
|
|
{% comment %} <meta name="csrf-token" content="{{ csrf_token }}"> {% endcomment %}
|
|
|
|
<!-- FilePond CSS -->
|
|
{% comment %} <link href="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet">
|
|
<link href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css" rel="stylesheet">
|
|
<link rel="stylesheet" href="{% static 'css/style.css' %}">
|
|
{% block extra_css %}{% endblock %}
|
|
</head>
|
|
<body> {% endcomment %}
|
|
{% comment %} <header class="header">
|
|
<div class="container">
|
|
<div class="d-flex justify-content-between align-items-center py-3">
|
|
<div class="logo h4 mb-0">NorahUniversity ATS</div>
|
|
<div class="user-info d-flex align-items-center gap-3">
|
|
{% if user.is_authenticated %}
|
|
<span class="text-muted">{{ user.username }}</span>
|
|
<a href="{% url 'account_logout' %}" class="btn btn-outline-secondary btn-sm">
|
|
<span class="d-flex align-items-center gap-1">
|
|
{% include "icons/logout.html" %}
|
|
Logout
|
|
</span>
|
|
</a>
|
|
{% else %}
|
|
<a href="{% url 'account_login' %}" class="btn btn-primary btn-sm">{% trans "Login" %}</a>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</header> {% endcomment %}
|
|
{% comment %}
|
|
<nav class="navbar navbar-expand-lg navbar-light border-bottom">
|
|
<div class="container">
|
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
|
|
<span class="navbar-toggler-icon"></span>
|
|
</button>
|
|
<div class="collapse navbar-collapse" id="navbarNav">
|
|
<ul class="navbar-nav me-auto">
|
|
<li class="nav-item">
|
|
<a class="nav-link {% if request.resolver_match.url_name == 'dashboard' %}active{% endif %}" href="{% url 'dashboard' %}">
|
|
<span class="d-flex align-items-center gap-2">
|
|
{% include "icons/dashboard.html" %}
|
|
Dashboard
|
|
</span>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link {% if request.resolver_match.url_name == 'job_list' %}active{% endif %}" href="{% url 'job_list' %}">
|
|
<span class="d-flex align-items-center gap-2">
|
|
{% include "icons/jobs.html" %}
|
|
Jobs
|
|
</span>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link {% if request.resolver_match.url_name == 'candidate_list' %}active{% endif %}" href="{% url 'candidate_list' %}">
|
|
<span class="d-flex align-items-center gap-2">
|
|
{% include "icons/users.html" %}
|
|
Candidates
|
|
</span>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link {% if request.resolver_match.url_name == 'training_list' %}active{% endif %}" href="{% url 'training_list' %}">
|
|
<span class="d-flex align-items-center gap-2">
|
|
<svg class="heroicon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
<path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
|
</svg>
|
|
Training
|
|
</span>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link {% if request.resolver_match.url_name == 'list_meetings' %}active{% endif %}" href="{% url 'list_meetings' %}">
|
|
<span class="d-flex align-items-center gap-2">
|
|
{% include "icons/meeting.html" %}
|
|
Meetings
|
|
</span>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</nav> {% endcomment %}
|
|
|
|
{% comment %} <main class="container my-4">
|
|
{% if messages %}
|
|
<div class="messages">
|
|
{% for message in messages %}
|
|
<div class="alert alert-{{ message.tags }} alert-dismissible fade show" role="alert">
|
|
{{ message }}
|
|
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% block content %}
|
|
{% endblock %}
|
|
</main> {% endcomment %}
|
|
|
|
<!-- Delete Modal -->
|
|
{% comment %} {% include 'includes/delete_modal.html' %} {% endcomment %}
|
|
|
|
{% comment %} <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
|
|
|
|
<script>
|
|
const csrfToken = "{{ csrf_token }}";
|
|
const staticUrl = "{% static '' %}";
|
|
</script>
|
|
|
|
<!-- JavaScript Libraries -->
|
|
<script src="https://unpkg.com/petite-vue" defer init></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/sortablejs@1.15.0/Sortable.min.js"></script>
|
|
<script src="https://unpkg.com/filepond/dist/filepond.js"></script>
|
|
<script src="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.js"></script>
|
|
<script src="https://unpkg.com/filepond-plugin-file-validate-type/dist/filepond-plugin-file-validate-type.js"></script>
|
|
<script src="https://unpkg.com/filepond-plugin-file-validate-size/dist/filepond-plugin-file-validate-size.js"></script>
|
|
|
|
|
|
<script src="{% static 'js/modal_handlers.js' %}"></script>
|
|
|
|
<script>
|
|
// Initialize tooltips
|
|
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
|
|
var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
|
|
return new bootstrap.Tooltip(tooltipTriggerEl)
|
|
});
|
|
</script>
|
|
|
|
{% block extra_js %}{% endblock %} {% endcomment %}
|
|
|
|
|
|
{% load static %}
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta name="description" content="King Abdullah Academic University Hospital - Applicant Tracking System">
|
|
<title>{% block title %}University ATS{% endblock %}</title>
|
|
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css">
|
|
<link href="https://unpkg.com/filepond/dist/filepond.css" rel="stylesheet">
|
|
<link href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css" rel="stylesheet">
|
|
<link rel="stylesheet" href="{% static 'css/style.css' %}">
|
|
|
|
<style>
|
|
:root {
|
|
--kaauh-teal: #00636e;
|
|
--kaauh-teal-dark: #004a53;
|
|
--kaauh-light-bg: #f9fbfd;
|
|
--kaauh-border: #eaeff3;
|
|
}
|
|
|
|
/* === Top Bar === */
|
|
.top-bar {
|
|
background-color: white;
|
|
border-bottom: 1px solid var(--kaauh-border);
|
|
font-size: 0.825rem;
|
|
padding: 0.4rem 0;
|
|
}
|
|
.top-bar a { text-decoration: none; }
|
|
.top-bar .social-icons i {
|
|
color: var(--kaauh-teal);
|
|
transition: color 0.2s;
|
|
}
|
|
.top-bar .social-icons i:hover {
|
|
color: var(--kaauh-teal-dark);
|
|
}
|
|
.top-bar .contact-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.35rem;
|
|
padding: 0.25rem 0.5rem;
|
|
}
|
|
.top-bar .logo-container img {
|
|
height: 50px;
|
|
object-fit: contain;
|
|
}
|
|
@media (max-width: 767.98px) {
|
|
.top-bar .logo-container {
|
|
order: -1;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
.top-bar .contact-info {
|
|
justify-content: center;
|
|
}
|
|
}
|
|
|
|
/* === Navbar === */
|
|
.navbar-brand {
|
|
font-weight: 700;
|
|
letter-spacing: -0.5px;
|
|
font-size: 1.35rem;
|
|
}
|
|
.navbar-dark {
|
|
background-color: var(--kaauh-teal) !important;
|
|
box-shadow: 0 2px 6px rgba(0,0,0,0.12);
|
|
}
|
|
.nav-link {
|
|
font-weight: 500;
|
|
transition: all 0.2s ease;
|
|
}
|
|
.nav-link:hover,
|
|
.nav-link.active {
|
|
color: white !important;
|
|
background: rgba(255,255,255,0.12) !important;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
/* Dropdown */
|
|
.dropdown-menu {
|
|
border: none;
|
|
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
|
|
border-radius: 6px;
|
|
padding: 0.5rem 0;
|
|
min-width: 200px;
|
|
}
|
|
.dropdown-item {
|
|
padding: 0.5rem 1.25rem;
|
|
}
|
|
.dropdown-item:hover {
|
|
background-color: rgba(0, 99, 110, 0.08);
|
|
}
|
|
|
|
@media (min-width: 992px) {
|
|
/* This hover effect is what overrides the click for desktop */
|
|
/* For the profile dropdown, we generally want the click behavior,
|
|
so let's make sure it doesn't have the desktop hover override.
|
|
The current CSS applies to all .dropdown:hover, which is fine,
|
|
but we should rely on Bootstrap's JS for this one. */
|
|
/* Removed unnecessary desktop hover override for this specific context
|
|
or ensured it works by click */
|
|
|
|
.dropdown:hover > .dropdown-menu {
|
|
display: block;
|
|
margin-top: 0;
|
|
}
|
|
.dropdown-menu {
|
|
display: block !important;
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
transform: translateY(8px);
|
|
transition: opacity 0.25s, transform 0.25s;
|
|
}
|
|
.dropdown:hover .dropdown-menu {
|
|
opacity: 1;
|
|
visibility: visible;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
/* === Job Table === */
|
|
.job-table-wrapper {
|
|
background: white;
|
|
border-radius: 10px;
|
|
overflow: hidden;
|
|
box-shadow: 0 4px 16px rgba(0,0,0,0.06);
|
|
margin-bottom: 2rem;
|
|
}
|
|
.job-table thead th {
|
|
background: var(--kaauh-teal);
|
|
color: white;
|
|
font-weight: 600;
|
|
padding: 1rem;
|
|
text-align: center;
|
|
}
|
|
.job-table td {
|
|
padding: 1rem;
|
|
vertical-align: middle;
|
|
text-align: center;
|
|
}
|
|
.job-table tr:hover td {
|
|
background-color: rgba(0, 99, 110, 0.03);
|
|
}
|
|
.btn-apply {
|
|
background: var(--kaauh-teal);
|
|
border: none;
|
|
color: white;
|
|
padding: 0.45rem 1rem;
|
|
font-weight: 600;
|
|
border-radius: 6px;
|
|
transition: all 0.2s;
|
|
}
|
|
.btn-apply:hover {
|
|
background: var(--kaauh-teal-dark);
|
|
transform: translateY(-1px);
|
|
box-shadow: 0 2px 6px rgba(0,0,0,0.15);
|
|
}
|
|
|
|
/* === Footer & Alerts === */
|
|
.footer {
|
|
background: var(--kaauh-light-bg);
|
|
padding: 2rem 0;
|
|
border-top: 1px solid var(--kaauh-border);
|
|
font-size: 0.95rem;
|
|
color: #555;
|
|
}
|
|
.alert {
|
|
border: none;
|
|
border-radius: 8px;
|
|
box-shadow: 0 2px 6px rgba(0,0,0,0.05);
|
|
}
|
|
main.container {
|
|
min-height: calc(100vh - 220px);
|
|
padding: 2rem 0;
|
|
}
|
|
|
|
/* === Profile Avatar === */
|
|
.profile-avatar {
|
|
width: 38px;
|
|
height: 38px;
|
|
border-radius: 50%;
|
|
background: white;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
color: white;
|
|
font-weight: bold;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
/* Ensures the dropdown-toggle style is minimal for the avatar */
|
|
.navbar-nav .dropdown-toggle.p-0::after {
|
|
display: none;
|
|
}
|
|
</style>
|
|
{% block customCSS %}{% endblock %}
|
|
</head>
|
|
<body class="d-flex flex-column min-vh-100">
|
|
|
|
<div class="top-bar">
|
|
<div class="container d-flex flex-wrap justify-content-between align-items-center gap-2">
|
|
<div class="d-flex align-items-center gap-3 social-icons">
|
|
<span class="text-muted d-none d-sm-inline">Follow Us:</span>
|
|
<a href="#" aria-label="Facebook"><i class="fab fa-facebook-f"></i></a>
|
|
<a href="#" aria-label="Twitter"><i class="fab fa-twitter"></i></a>
|
|
<a href="#" aria-label="Instagram"><i class="fab fa-instagram"></i></a>
|
|
</div>
|
|
|
|
<div class="contact-info d-flex flex-wrap justify-content-center gap-2">
|
|
<div class="contact-item">
|
|
<i class="fas fa-envelope text-primary"></i>
|
|
<span class="d-none d-sm-inline">info@kaauh.edu.sa</span>
|
|
</div>
|
|
<div class="contact-item">
|
|
<i class="fas fa-phone text-primary"></i>
|
|
<span class="d-none d-sm-inline">+966 11 820 0000</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="logo-container d-flex gap-2">
|
|
<img src="{% static 'image/vision.svg' %}" alt="Saudi Vision 2030" loading="lazy">
|
|
<img src="{% static 'image/hospital_logo_3.png' %}" alt="King Abdullah Academic University Hospital" loading="lazy">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<nav class="navbar navbar-expand-lg navbar-dark sticky-top">
|
|
<div class="container d-flex align-items-center">
|
|
<a class="navbar-brand text-white" href="#">
|
|
<i class="fas fa-hospital me-1"></i> KAAUH ATS
|
|
</a>
|
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
|
|
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
|
|
<span class="navbar-toggler-icon"></span>
|
|
</button>
|
|
|
|
<div class="collapse navbar-collapse" id="navbarNav">
|
|
<ul class="navbar-nav me-auto">
|
|
<li class="nav-item">
|
|
<a class="nav-link {% if request.resolver_match.url_name == 'dashboard' %}active{% endif %}" href="{% url 'dashboard' %}">
|
|
<span class="d-flex align-items-center gap-2">
|
|
{% include "icons/dashboard.html" %}
|
|
Dashboard
|
|
</span>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link {% if request.resolver_match.url_name == 'job_list' %}active{% endif %}" href="{% url 'job_list' %}">
|
|
<span class="d-flex align-items-center gap-2">
|
|
{% include "icons/jobs.html" %}
|
|
Jobs
|
|
</span>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link {% if request.resolver_match.url_name == 'candidate_list' %}active{% endif %}" href="{% url 'candidate_list' %}">
|
|
<span class="d-flex align-items-center gap-2">
|
|
{% include "icons/users.html" %}
|
|
Candidates
|
|
</span>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link {% if request.resolver_match.url_name == 'training_list' %}active{% endif %}" href="{% url 'training_list' %}">
|
|
<span class="d-flex align-items-center gap-2">
|
|
<svg class="heroicon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
<path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
|
|
</svg>
|
|
Training
|
|
</span>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link {% if request.resolver_match.url_name == 'list_meetings' %}active{% endif %}" href="{% url 'list_meetings' %}">
|
|
<span class="d-flex align-items-center gap-2">
|
|
{% include "icons/meeting.html" %}
|
|
Meetings
|
|
</span>
|
|
</a>
|
|
</li>
|
|
|
|
<li class="nav-item dropdown">
|
|
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown">Meeting & Schedule</a>
|
|
<ul class="dropdown-menu">
|
|
<li><a class="dropdown-item" href="#"><i class="fas fa-calendar me-2"></i> Meetings</a></li>
|
|
<li><a class="dropdown-item" href="#"><i class="fas fa-clock me-2"></i> Schedule</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item dropdown">
|
|
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown">Jobs</a>
|
|
<ul class="dropdown-menu">
|
|
<li><a class="dropdown-item" href="#"><i class="fas fa-briefcase me-2"></i> Active Jobs</a></li>
|
|
<li><a class="dropdown-item" href="#"><i class="fas fa-file-alt me-2"></i> Draft Jobs</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="#"><i class="fas fa-list me-1"></i> Job List</a>
|
|
</li>
|
|
<li class="nav-item dropdown">
|
|
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown">Candidates</a>
|
|
<ul class="dropdown-menu">
|
|
<li><a class="dropdown-item" href="#"><i class="fas fa-users me-2"></i> All Candidates</a></li>
|
|
<li><a class="dropdown-item" href="#"><i class="fas fa-user-plus me-2"></i> New Candidates</a></li>
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="#">
|
|
<i class="fas fa-plus-circle me-1"></i> Create Job
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
|
|
{% if not request.session.linkedin_authenticated %}
|
|
<ul class="navbar-nav ms-auto ms-lg-0">
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="{% url 'linkedin_login' %}">
|
|
<i class="fab fa-linkedin me-1"></i> Connect LinkedIn
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
{% else %}
|
|
<ul class="navbar-nav ms-auto ms-lg-0">
|
|
<li class="nav-item d-none d-lg-block">
|
|
<span class="nav-link text-success">
|
|
<i class="fab fa-linkedin me-1"></i> LinkedIn Connected
|
|
</span>
|
|
</li>
|
|
</ul>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<ul class="navbar-nav ms-2 ms-lg-3">
|
|
<li class="nav-item dropdown">
|
|
<a class="nav-link p-0 dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
|
<div class="profile-avatar">
|
|
{{ user.username|first|upper }}
|
|
</div>
|
|
</a>
|
|
<ul class="dropdown-menu dropdown-menu-end py-2 shadow" style="min-width: 220px;">
|
|
<li class="px-3 py-2">
|
|
<div class="d-flex align-items-center">
|
|
<div class="me-3">
|
|
<div class="profile-avatar" style="width: 40px; height: 40px;">
|
|
{{ user.username|first|upper }}
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="fw-semibold">{{ user.get_full_name|default:user.username }}</div>
|
|
<div class="text-muted small">{{ user.email|truncatechars:24 }}</div>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<li><hr class="dropdown-divider my-1"></li>
|
|
<li><a class="dropdown-item py-2" href="#"><i class="fas fa-user-circle me-2 text-primary"></i> My Profile</a></li>
|
|
<li><a class="dropdown-item py-2" href="#"><i class="fas fa-cog me-2 text-primary"></i> Settings</a></li>
|
|
<li><a class="dropdown-item py-2" href="#"><i class="fas fa-history me-2 text-primary"></i> Activity Log</a></li>
|
|
<li><a class="dropdown-item py-2" href="#"><i class="fas fa-question-circle me-2 text-primary"></i> Help & Support</a></li>
|
|
<li><hr class="dropdown-divider my-1"></li>
|
|
<li>
|
|
<form method="post" action="#" class="d-inline">
|
|
{% csrf_token %}
|
|
<button type="submit" class="dropdown-item py-2 text-danger">
|
|
<i class="fas fa-sign-out-alt me-2"></i> Sign Out
|
|
</button>
|
|
</form>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</nav>
|
|
|
|
<main class="container flex-grow-1">
|
|
{% if messages %}
|
|
{% for message in messages %}
|
|
<div class="alert alert-{{ message.tags }} alert-dismissible fade show" role="alert">
|
|
{{ message }}
|
|
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
|
</div>
|
|
{% endfor %}
|
|
{% endif %}
|
|
|
|
{% block content %}
|
|
|
|
{% endblock %}
|
|
</main>
|
|
<!-- Delete Modal -->
|
|
{% include 'includes/delete_modal.html' %}
|
|
<footer class="footer mt-auto">
|
|
<div class="container text-center">
|
|
<p class="mb-0">
|
|
© {% now "Y" %} King Abdullah Academic University Hospital (KAAUH).<br>
|
|
<small>All rights reserved.</small>
|
|
</p>
|
|
</div>
|
|
</footer>
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
|
|
<script>
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
const navbarCollapse = document.getElementById('navbarNav');
|
|
const navLinks = navbarCollapse.querySelectorAll('.nav-link:not(.dropdown-toggle)');
|
|
navLinks.forEach(link => {
|
|
link.addEventListener('click', () => {
|
|
const bsCollapse = bootstrap.Collapse.getInstance(navbarCollapse);
|
|
if (bsCollapse && navbarCollapse.classList.contains('show')) {
|
|
bsCollapse.hide();
|
|
}
|
|
});
|
|
});
|
|
});
|
|
</script>
|
|
|
|
{% block customJS %}{% endblock %}
|
|
</body>
|
|
</html> |