2025-11-21 16:34:19 +07:00
|
|
|
<div role="navigation" aria-label="Navbar" class="" id="layout-topbar">
|
|
|
|
|
<div class="flex items-center justify-between px-6 py-3 bg-menu">
|
|
|
|
|
<div class="inline-flex items-center gap-5">
|
|
|
|
|
<a href="/">
|
2025-12-07 15:58:07 +07:00
|
|
|
<img src="{{ 'logo_new.png' | asset_url }}" class="h-[20px]" />
|
2025-11-21 16:34:19 +07:00
|
|
|
</a>
|
|
|
|
|
<button
|
2025-12-07 15:58:07 +07:00
|
|
|
class="btn btn-outline btn-sm btn-ghost border-base-300 text-base-content/70 hidden h-9 w-96 justify-start gap-2 px-2 !text-sm md:flex bg-white"
|
2025-11-21 16:34:19 +07:00
|
|
|
onclick="document.getElementById('topbar-search-modal')?.showModal()">
|
2025-12-07 15:58:07 +07:00
|
|
|
<i data-lucide="search"></i>
|
2025-11-21 16:34:19 +07:00
|
|
|
<span>Tìm Kiếm</span>
|
|
|
|
|
</button>
|
|
|
|
|
<button
|
|
|
|
|
class="btn btn-outline btn-sm btn-square btn-ghost border-base-300 text-base-content/70 flex size-9 md:hidden"
|
|
|
|
|
aria-label="Search" onclick="document.getElementById('topbar-search-modal')?.showModal()">
|
2025-12-07 15:58:07 +07:00
|
|
|
<i data-lucide="search"></i>
|
2025-11-21 16:34:19 +07:00
|
|
|
</button>
|
|
|
|
|
<dialog id="topbar-search-modal" class="modal p-0">
|
2025-12-12 11:01:29 +07:00
|
|
|
<div class="modal-box bg-transparent p-0 shadow-none max-w-xl">
|
2025-11-21 16:34:19 +07:00
|
|
|
<div class="bg-base-100 rounded-box">
|
2025-12-12 11:01:29 +07:00
|
|
|
<div class="input w-full border-0 !outline-none pl-0">
|
|
|
|
|
<select name="search-category" id="search-category"
|
|
|
|
|
class="select !outline-none border-0 border-r-1 border-base-300 font-bold">
|
|
|
|
|
<option value="">Chọn nội dung tìm</option>
|
|
|
|
|
<option value="">Bán hàng</option>
|
|
|
|
|
<option value="">Sản phẩm</option>
|
|
|
|
|
<option value="">Khách hàng</option>
|
|
|
|
|
</select>
|
|
|
|
|
<i data-lucide="search" class="text-base-content/60 size-8"></i>
|
2025-11-21 16:34:19 +07:00
|
|
|
<input type="search" class="grow" placeholder="Tìm kiếm" aria-label="Search" />
|
|
|
|
|
<form method="dialog">
|
|
|
|
|
<button class="btn btn-xs btn-circle btn-ghost" aria-label="Close">
|
2025-12-07 15:58:07 +07:00
|
|
|
<i data-lucide="x" class="text-base-content/80 size-4"></i>
|
2025-11-21 16:34:19 +07:00
|
|
|
</button>
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="bg-base-100 rounded-box mt-4">
|
|
|
|
|
<div class="px-5 py-3">
|
2025-12-12 11:01:29 +07:00
|
|
|
<p class="text-base-content/80 text-sm font-medium">Từ khóa tìm kiếm gần đây...</p>
|
2025-11-21 16:34:19 +07:00
|
|
|
<div class="mt-2 flex flex-wrap gap-1.5">
|
|
|
|
|
<div
|
|
|
|
|
class="border-base-300 hover:bg-base-200 rounded-box cursor-pointer border px-2.5 py-1 text-sm/none">
|
2025-12-12 11:01:29 +07:00
|
|
|
Đơn hàng
|
2025-11-21 16:34:19 +07:00
|
|
|
</div>
|
|
|
|
|
<div
|
|
|
|
|
class="border-base-300 hover:bg-base-200 rounded-box cursor-pointer border px-2.5 py-1 text-sm/none">
|
2025-12-12 11:01:29 +07:00
|
|
|
Sản phẩm
|
2025-11-21 16:34:19 +07:00
|
|
|
</div>
|
|
|
|
|
<div
|
|
|
|
|
class="border-base-300 hover:bg-base-200 rounded-box cursor-pointer border px-2.5 py-1 text-sm/none">
|
2025-12-12 11:01:29 +07:00
|
|
|
Bài viết
|
2025-11-21 16:34:19 +07:00
|
|
|
</div>
|
|
|
|
|
<div
|
|
|
|
|
class="border-base-300 hover:bg-base-200 rounded-box flex cursor-pointer items-center gap-1 border border-dashed px-2.5 py-1 text-sm/none">
|
2025-12-12 11:01:29 +07:00
|
|
|
Khách hàng
|
2025-11-21 16:34:19 +07:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<hr class="border-base-300 h-px border-dashed" />
|
|
|
|
|
|
|
|
|
|
<ul class="menu w-full pt-1">
|
2025-12-12 11:01:29 +07:00
|
|
|
<li class="menu-title">Tác vụ nhanh</li>
|
2025-11-21 16:34:19 +07:00
|
|
|
<li>
|
2025-12-12 11:01:29 +07:00
|
|
|
<a href="/admin/order" class="group">
|
|
|
|
|
<i data-lucide="store" class="size-3"></i>
|
|
|
|
|
<p class="grow text-sm">Danh sách đơn hàng</p>
|
|
|
|
|
</a>
|
2025-11-21 16:34:19 +07:00
|
|
|
</li>
|
|
|
|
|
<li>
|
2025-12-12 11:01:29 +07:00
|
|
|
<a href="/admin/product" class="group">
|
|
|
|
|
<i data-lucide="package" class="size-3"></i>
|
|
|
|
|
<p class="grow text-sm">Danh sách sản phẩm</p>
|
|
|
|
|
</a>
|
2025-11-21 16:34:19 +07:00
|
|
|
</li>
|
|
|
|
|
<li>
|
2025-12-12 11:01:29 +07:00
|
|
|
<a href="/admin/customer" class="group">
|
|
|
|
|
<i data-lucide="user" class="size-3"></i>
|
|
|
|
|
<p class="grow text-sm">Danh sách khách hàng</p>
|
|
|
|
|
</a>
|
2025-11-21 16:34:19 +07:00
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<form method="dialog" class="modal-backdrop">
|
|
|
|
|
<button>close</button>
|
|
|
|
|
</form>
|
|
|
|
|
</dialog>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="inline-flex items-center gap-0.5">
|
|
|
|
|
|
|
|
|
|
<div class="dropdown dropdown-bottom sm:dropdown-end dropdown-center">
|
|
|
|
|
<div tabindex="0" role="button" class="btn btn-circle btn-sm relative" aria-label="Notifications">
|
2025-12-07 15:58:07 +07:00
|
|
|
<i data-lucide="bell" class="motion-preset-seesaw size-4.5"></i>
|
2025-11-21 16:34:19 +07:00
|
|
|
<div class="status status-error status-sm absolute end-1 top-1"></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div tabindex="0"
|
2025-12-07 15:58:07 +07:00
|
|
|
class="dropdown-content bg-base-100 rounded-box mt-1 w-80 shadow-md duration-1000 hover:shadow-lg">
|
2025-11-21 16:34:19 +07:00
|
|
|
<div class="bg-base-200/30 rounded-t-box border-base-200 border-b ps-4 pe-2 pt-3">
|
|
|
|
|
<div class="flex items-center justify-between">
|
2025-12-12 11:01:29 +07:00
|
|
|
<p class="font-medium">Thông báo</p>
|
2025-11-21 16:34:19 +07:00
|
|
|
<button class="btn btn-xs btn-circle btn-ghost" aria-label="Close"
|
|
|
|
|
onclick="document.activeElement.blur()">
|
2025-12-12 11:01:29 +07:00
|
|
|
<span data-lucide="x" class="size-4"></span>
|
2025-11-21 16:34:19 +07:00
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="-ms-2 mt-2 -mb-px flex items-center justify-between">
|
|
|
|
|
<div role="tablist" class="tabs tabs-sm tabs-border">
|
|
|
|
|
<div role="tab" class="tab tab-active gap-2 px-3 font-medium">
|
2025-12-12 11:01:29 +07:00
|
|
|
<span>Tất cả</span>
|
2025-11-21 16:34:19 +07:00
|
|
|
<div class="badge badge-sm">4</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="hover:bg-base-200/20 relative flex items-start gap-3 p-4 transition-all">
|
|
|
|
|
<div class="avatar avatar-online size-12">
|
|
|
|
|
<img src="../../assets/images//avatars/2.png"
|
|
|
|
|
class="from-primary/80 to-primary/60 mask mask-squircle bg-linear-to-b px-1 pt-1"
|
|
|
|
|
alt="" />
|
|
|
|
|
</div>
|
|
|
|
|
<div class="grow">
|
|
|
|
|
<p class="text-sm leading-tight">Lena submitted a draft for review.</p>
|
|
|
|
|
<p class="text-base-content/60 text-xs">15 min ago</p>
|
|
|
|
|
<div class="mt-2 flex items-center gap-2">
|
|
|
|
|
<button class="btn btn-sm btn-primary">Approve</button>
|
|
|
|
|
<button class="btn btn-sm btn-outline border-base-300">Decline</button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="status status-primary absolute end-4 top-4 size-1.5"></div>
|
|
|
|
|
</div>
|
|
|
|
|
<hr class="border-base-300 border-dashed" />
|
|
|
|
|
<div class="hover:bg-base-200/20 flex items-start gap-3 p-4 transition-all">
|
|
|
|
|
<div class="avatar avatar-offline size-12">
|
|
|
|
|
<img src="/images/avatars/4.png"
|
|
|
|
|
class="from-secondary/80 to-secondary/60 mask mask-squircle bg-linear-to-b px-1 pt-1"
|
|
|
|
|
alt="" />
|
|
|
|
|
</div>
|
|
|
|
|
<div class="grow">
|
|
|
|
|
<p class="text-sm leading-tight">Kai mentioned you in a project.</p>
|
|
|
|
|
<p class="text-base-content/60 text-xs">22 min ago</p>
|
|
|
|
|
<div
|
|
|
|
|
class="from-base-200 via-base-200/80 rounded-box mt-2 flex items-center justify-between gap-2 bg-linear-to-r to-transparent py-1 ps-2.5">
|
|
|
|
|
<p class="text-sm">Check model inputs?</p>
|
|
|
|
|
<button class="btn btn-xs btn-ghost text-xs">
|
|
|
|
|
<span class="iconify lucide--reply size-3.5"></span>
|
|
|
|
|
Reply
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<hr class="border-base-300 border-dashed" />
|
|
|
|
|
<div class="hover:bg-base-200/20 flex items-start gap-3 p-4 transition-all">
|
|
|
|
|
<div class="avatar size-12">
|
|
|
|
|
<img src="/images/avatars/5.png"
|
|
|
|
|
class="mask mask-squircle bg-linear-to-b from-orange-500/80 to-orange-500/60 px-1 pt-1"
|
|
|
|
|
alt="" />
|
|
|
|
|
</div>
|
|
|
|
|
<div class="grow">
|
|
|
|
|
<p class="text-sm leading-tight">Your latest results are ready</p>
|
|
|
|
|
<div
|
|
|
|
|
class="border-base-200 rounded-box mt-2 flex items-center justify-between gap-2 border px-2.5 py-1.5">
|
|
|
|
|
<p class="text-sm">
|
|
|
|
|
Forecast Report
|
|
|
|
|
<span class="text-base-content/60 text-xs">(12 MB)</span>
|
|
|
|
|
</p>
|
|
|
|
|
<button class="btn btn-xs btn-square btn-ghost text-xs">
|
|
|
|
|
<span class="iconify lucide--arrow-down-to-line size-4"></span>
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
<div
|
|
|
|
|
class="border-base-200 rounded-box mt-2 flex items-center justify-between gap-2 border px-2.5 py-1.5">
|
|
|
|
|
<p class="text-sm">
|
|
|
|
|
Generated Summary
|
|
|
|
|
<span class="text-base-content/60 text-xs">(354 KB)</span>
|
|
|
|
|
</p>
|
|
|
|
|
<button class="btn btn-xs btn-square btn-ghost text-xs">
|
|
|
|
|
<span class="iconify lucide--arrow-down-to-line size-4"></span>
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<hr class="border-base-200" />
|
|
|
|
|
<div class="flex items-center justify-between px-2 py-2">
|
2025-12-12 11:01:29 +07:00
|
|
|
<button class="btn btn-sm btn-soft btn-primary"
|
|
|
|
|
onclick="document.getElementById('topbar-notifications')?.showModal()">Xem tất cả</button>
|
2025-11-21 16:34:19 +07:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2025-12-12 11:01:29 +07:00
|
|
|
<!-- hiển thị popup thông báo -->
|
|
|
|
|
<dialog id="topbar-notifications" class="modal p-0">
|
|
|
|
|
<div class="modal-box bg-transparent p-0 shadow-none max-w-xl">
|
|
|
|
|
<div class="bg-base-100 rounded-box p-3">
|
|
|
|
|
<div class="flex items-center justify-between">
|
|
|
|
|
<p class="font-medium">Thông báo</p>
|
|
|
|
|
<form method="dialog">
|
|
|
|
|
<button class="btn btn-xs btn-circle btn-ghost" aria-label="Close">
|
|
|
|
|
<i data-lucide="x" class="text-base-content/80 size-4"></i>
|
|
|
|
|
</button>
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="-ms-2 mt-2 -mb-px flex items-center justify-between">
|
|
|
|
|
<div role="tablist" class="tabs tabs-sm tabs-border">
|
|
|
|
|
<div role="tab" class="tab tab-active gap-2 px-3 font-medium">
|
|
|
|
|
<span>Tất cả</span>
|
|
|
|
|
<div class="badge badge-sm">8</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div role="tab" class="tab gap-2 px-3 font-medium">
|
|
|
|
|
<span>Đã đọc</span>
|
|
|
|
|
<div class="badge badge-sm">4</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div role="tab" class="tab gap-2 px-3 font-medium">
|
|
|
|
|
<span>Chưa đọc</span>
|
|
|
|
|
<div class="badge badge-sm">4</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="overflow-auto max-h-[450px]">
|
|
|
|
|
<div class="hover:bg-base-200/20 relative flex items-start gap-3 p-4 transition-all">
|
|
|
|
|
<div class="avatar avatar-online size-12">
|
|
|
|
|
<img src="../../assets/images//avatars/2.png"
|
|
|
|
|
class="from-primary/80 to-primary/60 mask mask-squircle bg-linear-to-b px-1 pt-1"
|
|
|
|
|
alt="" />
|
|
|
|
|
</div>
|
|
|
|
|
<div class="grow">
|
|
|
|
|
<p class="text-sm leading-tight">Lena submitted a draft for review.</p>
|
|
|
|
|
<p class="text-base-content/60 text-xs">15 min ago</p>
|
|
|
|
|
<div class="mt-2 flex items-center gap-2">
|
|
|
|
|
<button class="btn btn-sm btn-primary">Approve</button>
|
|
|
|
|
<button class="btn btn-sm btn-outline border-base-300">Decline</button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="status status-primary absolute end-4 top-4 size-1.5"></div>
|
|
|
|
|
</div>
|
|
|
|
|
<hr class="border-base-300 border-dashed" />
|
|
|
|
|
<div class="hover:bg-base-200/20 flex items-start gap-3 p-4 transition-all">
|
|
|
|
|
<div class="avatar avatar-offline size-12">
|
|
|
|
|
<img src="/images/avatars/4.png"
|
|
|
|
|
class="from-secondary/80 to-secondary/60 mask mask-squircle bg-linear-to-b px-1 pt-1"
|
|
|
|
|
alt="" />
|
|
|
|
|
</div>
|
|
|
|
|
<div class="grow">
|
|
|
|
|
<p class="text-sm leading-tight">Kai mentioned you in a project.</p>
|
|
|
|
|
<p class="text-base-content/60 text-xs">22 min ago</p>
|
|
|
|
|
<div
|
|
|
|
|
class="from-base-200 via-base-200/80 rounded-box mt-2 flex items-center justify-between gap-2 bg-linear-to-r to-transparent py-1 ps-2.5">
|
|
|
|
|
<p class="text-sm">Check model inputs?</p>
|
|
|
|
|
<button class="btn btn-xs btn-ghost text-xs">
|
|
|
|
|
<span class="iconify lucide--reply size-3.5"></span>
|
|
|
|
|
Reply
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<hr class="border-base-300 border-dashed" />
|
|
|
|
|
<div class="hover:bg-base-200/20 flex items-start gap-3 p-4 transition-all">
|
|
|
|
|
<div class="avatar size-12">
|
|
|
|
|
<img src="/images/avatars/5.png"
|
|
|
|
|
class="mask mask-squircle bg-linear-to-b from-orange-500/80 to-orange-500/60 px-1 pt-1"
|
|
|
|
|
alt="" />
|
|
|
|
|
</div>
|
|
|
|
|
<div class="grow">
|
|
|
|
|
<p class="text-sm leading-tight">Your latest results are ready</p>
|
|
|
|
|
<div
|
|
|
|
|
class="border-base-200 rounded-box mt-2 flex items-center justify-between gap-2 border px-2.5 py-1.5">
|
|
|
|
|
<p class="text-sm">
|
|
|
|
|
Forecast Report
|
|
|
|
|
<span class="text-base-content/60 text-xs">(12 MB)</span>
|
|
|
|
|
</p>
|
|
|
|
|
<button class="btn btn-xs btn-square btn-ghost text-xs">
|
|
|
|
|
<span class="iconify lucide--arrow-down-to-line size-4"></span>
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
<div
|
|
|
|
|
class="border-base-200 rounded-box mt-2 flex items-center justify-between gap-2 border px-2.5 py-1.5">
|
|
|
|
|
<p class="text-sm">
|
|
|
|
|
Generated Summary
|
|
|
|
|
<span class="text-base-content/60 text-xs">(354 KB)</span>
|
|
|
|
|
</p>
|
|
|
|
|
<button class="btn btn-xs btn-square btn-ghost text-xs">
|
|
|
|
|
<span class="iconify lucide--arrow-down-to-line size-4"></span>
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<form method="dialog" class="modal-backdrop">
|
|
|
|
|
<button>close</button>
|
|
|
|
|
</form>
|
|
|
|
|
</dialog>
|
|
|
|
|
|
|
|
|
|
<!-- tài khoản người dùng -->
|
2025-11-27 12:55:33 +07:00
|
|
|
<div class="dropdown dropdown-bottom dropdown-end w-full">
|
|
|
|
|
<div tabindex="0" role="button"
|
|
|
|
|
class="hover:bg-base-300 rounded-box mx-2 mt-0 flex cursor-pointer items-center gap-2.5 transition-all group">
|
|
|
|
|
<div class="avatar">
|
|
|
|
|
<div class="bg-base-200 mask mask-squircle w-8">
|
|
|
|
|
<img src="../../assets/images/avatars/1.png" alt="Avatar" />
|
2025-11-21 16:34:19 +07:00
|
|
|
</div>
|
|
|
|
|
</div>
|
2025-11-27 12:55:33 +07:00
|
|
|
<div class="grow -space-y-0.5">
|
2025-12-12 11:01:29 +07:00
|
|
|
<p class="text-sm font-medium text-white group-hover:text-black">Admin</p>
|
|
|
|
|
<p class="text-base-content/60 text-xs text-white group-hover:text-black">@hura</p>
|
2025-11-27 12:55:33 +07:00
|
|
|
</div>
|
2025-11-21 16:34:19 +07:00
|
|
|
</div>
|
2025-11-27 12:55:33 +07:00
|
|
|
<ul role="menu" tabindex="0"
|
|
|
|
|
class="dropdown-content menu bg-base-100 rounded-box shadow-base-content/4 mb-1 w-48 p-1 shadow-[0px_-10px_40px_0px]">
|
|
|
|
|
<li>
|
2025-12-12 11:01:29 +07:00
|
|
|
<a href="">
|
2025-12-07 15:58:07 +07:00
|
|
|
<i data-lucide="user" class="size-4"></i>
|
2025-12-12 11:01:29 +07:00
|
|
|
<span>Hồ sơ cá nhân</span>
|
2025-11-27 12:55:33 +07:00
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
2025-12-12 11:01:29 +07:00
|
|
|
<a href="">
|
|
|
|
|
<i data-lucide="settings" class="size-4"></i>
|
|
|
|
|
<span>Cài đặt tài khoản</span>
|
2025-11-27 12:55:33 +07:00
|
|
|
</a>
|
|
|
|
|
</li>
|
2025-12-12 11:01:29 +07:00
|
|
|
<li>
|
|
|
|
|
<a href="/logout.php">
|
2025-12-12 16:29:06 +07:00
|
|
|
<i data-lucide="log-out" class="size-4"></i>
|
2025-12-12 11:01:29 +07:00
|
|
|
<span>Đăng xuất</span>
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- cài đặt hệ thống -->
|
|
|
|
|
<div class="dropdown dropdown-bottom dropdown-end w-full">
|
|
|
|
|
<div tabindex="0" role="button" class="btn btn-sm relative" aria-label="settings">
|
|
|
|
|
<i data-lucide="settings" class="motion-preset-seesaw size-4.5"></i>
|
|
|
|
|
<span>Cài đặt</span>
|
|
|
|
|
</div>
|
|
|
|
|
<ul role="setting" tabindex="0"
|
|
|
|
|
class="dropdown-content menu bg-base-100 rounded-box shadow-base-content/4 mb-1 w-48 p-1 shadow-[0px_-10px_40px_0px]">
|
|
|
|
|
<div class="max-h-[400px] overflow-auto">
|
|
|
|
|
{% for _menu_item in global.main_menu %}
|
|
|
|
|
{% assign _menu_children = _menu_item.menu %}
|
|
|
|
|
{% if _menu_item.id == 'system' %}
|
|
|
|
|
{% for _item in _menu_children | limit: 10 %}
|
|
|
|
|
<li>
|
|
|
|
|
<a href="{{ _item.url }}">
|
|
|
|
|
<span>{{ _item.name }}</span>
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
{% endfor %}
|
|
|
|
|
{% endif %}
|
|
|
|
|
{% endfor %}
|
|
|
|
|
</div>
|
2025-11-27 12:55:33 +07:00
|
|
|
</ul>
|
2025-11-21 16:34:19 +07:00
|
|
|
</div>
|
2025-12-12 11:01:29 +07:00
|
|
|
|
2025-11-21 16:34:19 +07:00
|
|
|
</div>
|
|
|
|
|
</div>
|
2025-12-07 15:58:07 +07:00
|
|
|
<div class="flex items-center justify-between gap-3 relative">
|
2025-11-21 16:34:19 +07:00
|
|
|
<ul class="menu menu-horizontal">
|
2025-11-24 12:37:49 +07:00
|
|
|
<li>
|
2025-12-11 13:30:40 +07:00
|
|
|
<a href="/" class="flex items-center gap-3">
|
|
|
|
|
<i data-lucide="house" class="size-4.5 menu-icon-color"></i>
|
|
|
|
|
<span class="grow">Home</span>
|
|
|
|
|
</a>
|
2025-11-24 12:37:49 +07:00
|
|
|
</li>
|
|
|
|
|
{% for _menu_item in global.main_menu %}
|
|
|
|
|
{% assign _menu_children = _menu_item.menu %}
|
2025-11-27 12:55:33 +07:00
|
|
|
{% if _menu_item.id != 'system' %}
|
2025-11-21 19:06:27 +07:00
|
|
|
<li
|
2025-11-28 09:32:05 +07:00
|
|
|
class="{%- for _item in _menu_children -%}{%- if _item.url == global.url -%} active {%- endif -%} {%- endfor -%}">
|
2025-11-21 16:34:19 +07:00
|
|
|
<div class="flex items-center gap-3">
|
2025-11-24 12:37:49 +07:00
|
|
|
{% if _menu_item.icon_class != '' %}
|
2025-12-11 13:30:40 +07:00
|
|
|
<i data-lucide="{{_menu_item.icon_class}}" class="size-4.5 menu-icon-color"></i>
|
2025-11-21 16:34:19 +07:00
|
|
|
{% endif %}
|
2025-11-24 12:37:49 +07:00
|
|
|
<span class="grow">{{ _menu_item.name }}</span>
|
2025-11-21 16:34:19 +07:00
|
|
|
</div>
|
|
|
|
|
<ul class="p-2 submenu">
|
2025-11-24 12:37:49 +07:00
|
|
|
{% for _item in _menu_children %}
|
2025-11-21 19:06:27 +07:00
|
|
|
<li class="{% if _item.url == global.url %} active {% endif %}"><a href="{{ _item.url }}"
|
|
|
|
|
style="white-space: nowrap">{{ _item.name }}</a></li>
|
2025-11-21 16:34:19 +07:00
|
|
|
{% endfor %}
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
2025-11-27 12:55:33 +07:00
|
|
|
{% endif %}
|
2025-11-21 16:34:19 +07:00
|
|
|
{% endfor %}
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
2025-11-27 12:55:33 +07:00
|
|
|
</div>
|