This commit is contained in:
2025-12-07 15:58:07 +07:00
parent 75a641ab40
commit 942aeafb60
2211 changed files with 178727 additions and 89 deletions

View File

@@ -17,12 +17,12 @@
</div>
</div>
<div class="bg-base-200 rounded-box flex items-center p-2">
<span class="iconify lucide--circle-dollar-sign size-5"></span>
<i data-lucide="circle-dollar-sign" class="size-5"></i>
</div>
</div>
<div class="flex items-center gap-3 mt-2">
<div class="badge badge-soft badge-success badge-sm gap-0.5 px-1 font-medium">
<span class="iconify lucide--arrow-up size-3.5"></span>
<i data-lucide="arrow-up" class="size-3.5"></i>
10.8%
</div>
<p class="text-base-content/60 text-sm">
@@ -46,12 +46,12 @@
</div>
</div>
<div class="bg-base-200 rounded-box flex items-center p-2">
<span class="iconify lucide--package size-5"></span>
<i data-lucide="package" class="size-5"></i>
</div>
</div>
<div class="flex items-center gap-3 mt-2">
<div class="badge badge-soft badge-success badge-sm gap-0.5 px-1 font-medium">
<span class="iconify lucide--arrow-up size-3.5"></span>
<i data-lucide="arrow-up" class="size-3.5"></i>
5.4%
</div>
<p class="text-base-content/60 text-sm">
@@ -74,12 +74,12 @@
</div>
</div>
<div class="bg-base-200 rounded-box flex items-center p-2">
<span class="iconify lucide--users size-5"></span>
<i data-lucide="users" class="size-5"></i>
</div>
</div>
<div class="flex items-center gap-3 mt-2">
<div class="badge badge-soft badge-error badge-sm gap-0.5 px-1 font-medium">
<span class="iconify lucide--arrow-down size-3.5"></span>
<i data-lucide="arrow-down" class="size-3.5"></i>
-6.8%
</div>
<p class="text-base-content/60 text-sm">
@@ -102,12 +102,12 @@
</div>
</div>
<div class="bg-base-200 rounded-box flex items-center p-2">
<span class="iconify lucide--eraser size-5"></span>
<i data-lucide="eraser" class="size-5"></i>
</div>
</div>
<div class="flex items-center gap-3 mt-2">
<div class="badge badge-soft badge-success badge-sm gap-0.5 px-1 font-medium">
<span class="iconify lucide--arrow-up size-3.5"></span>
<i data-lucide="arrow-up" class="size-3.5"></i>
8.5%
</div>
<p class="text-base-content/60 text-sm">
@@ -179,7 +179,7 @@
$148
</p>
<div class="text-success mt-0.5 inline-flex items-center gap-1">
<span class="iconify lucide--arrow-up size-3"></span>
<i data-lucide="arrow-up" class="size-3"></i>
<p class="text-xs">4.78%</p>
</div>
</div>
@@ -189,7 +189,7 @@
427
</p>
<div class="text-success mt-0.5 inline-flex items-center gap-1">
<span class="iconify lucide--arrow-up size-3"></span>
<i data-lucide="arrow-up" class="size-3"></i>
<p class="text-xs">3.15%</p>
</div>
</div>
@@ -207,19 +207,21 @@
<div class="mt-3">
<!-- Start: Lịch sử chỉnh sửa -->
<div aria-label="Card" class="card bg-base-100 shadow">
<div class="card-body p-0">
<div class="flex items-center gap-3 px-5 pt-5">
<span class="iconify lucide--shopping-bag size-4.5"></span>
<span class="font-medium">Lịch sử chỉnh sửa</span>
<button class="btn btn-outline btn-sm ms-auto btn-view">
<div class="card-body p-5">
<div class="flex items-center justify-between gap-3">
<div class="flex items-center gap-2">
<i data-lucide="shopping-bag" class="size-4.5"></i>
<span class="font-medium">Lịch sử chỉnh sửa</span>
</div>
<button class="btn btn-outline btn-sm btn-view px-2">
Xem danh sách
<span class="iconify lucide--plus-circle size-3.5"></span>
<i data-lucide="plus-circle" class="size-3.5"></i>
</button>
</div>
<div class="mt-2 overflow-auto">
<table class="table *:text-nowrap">
<div class="mt-2 overflow-auto border-base-content/5 border rounded-box">
<table class="table table-md">
<thead>
<tr>
<tr class="bg-base-200 font-bold text-gray-900">
<td> STT </td>
<td> Người dùng </td>
<td> Nội dung </td>
@@ -234,7 +236,7 @@
<td> Chỉnh sửa trang chủ website laptoptcc </td>
<td> 24/11/2023 </td>
<td>
<a href="" class="btn btn-outline btn-view">Xem</a>
<a href="" class="btn btn-outline btn-view btn-sm">Xem</a>
</td>
</tr>
<tr>
@@ -243,7 +245,7 @@
<td> Chỉnh sửa trang chủ website laptoptcc </td>
<td> 24/11/2023 </td>
<td>
<a href="" class="btn btn-outline btn-view">Xem</a>
<a href="" class="btn btn-outline btn-view btn-sm">Xem</a>
</td>
</tr>
<tr>
@@ -252,7 +254,7 @@
<td> Chỉnh sửa trang chủ website laptoptcc </td>
<td> 24/11/2023 </td>
<td>
<a href="" class="btn btn-outline btn-view">Xem</a>
<a href="" class="btn btn-outline btn-view btn-sm">Xem</a>
</td>
</tr>
<tr>
@@ -261,7 +263,7 @@
<td> Chỉnh sửa trang chủ website laptoptcc </td>
<td> 24/11/2023 </td>
<td>
<a href="" class="btn btn-outline btn-view">Xem</a>
<a href="" class="btn btn-outline btn-view btn-sm">Xem</a>
</td>
</tr>
</tbody>
@@ -283,8 +285,8 @@
<div class="home-report-holder block overflow-x-auto rounded-box border border-base-content/5 bg-base-10"
id="js-report-most-viewed-products">
<table class="table">
<thead class="bg-base-200">
<table class="table table-sm">
<thead class="bg-base-200 text-black font-bold">
<td width="50">STT</td>
<td>Sản phẩm</td>
<td width="75">Lượt xem</td>
@@ -326,19 +328,19 @@
</div>
<div class="home-report-holder hidden" id="js-report-key-word">
<div class="flex flex-wrap gap-2">
<a href="" class="btn btn btn-dash btn-outline">Laptop, Máy Tính Xách Tay</a>
<a href="" class="btn btn btn-dash btn-outline">Laptop, Máy Tính Xách Tay</a>
<a href="" class="btn btn btn-dash btn-outline">Laptop, Máy Tính Xách Tay</a>
<a href="" class="btn btn btn-dash btn-outline">Laptop, Máy Tính Xách Tay</a>
<a href="" class="btn btn btn-dash btn-outline">Laptop, Máy Tính Xách Tay</a>
<a href="" class="btn btn btn-dash btn-outline">Laptop, Máy Tính Xách Tay</a>
<a href="" class="btn btn-dash btn-sm">Laptop, Máy Tính Xách Tay</a>
<a href="" class="btn btn-dash btn-sm">Laptop, Máy Tính Xách Tay</a>
<a href="" class="btn btn-dash btn-sm">Laptop, Máy Tính Xách Tay</a>
<a href="" class="btn btn-dash btn-sm">Laptop, Máy Tính Xách Tay</a>
<a href="" class="btn btn-dash btn-sm">Laptop, Máy Tính Xách Tay</a>
<a href="" class="btn btn-dash btn-sm">Laptop, Máy Tính Xách Tay</a>
</div>
</div>
<div class="home-report-holder hidden" id="js-report-article">
<table class="table">
<thead class="bg-base-200">
<table class="table table-sm">
<thead class="bg-base-200 text-black font-bold">
<td>STT</td>
<td>Bài viết</td>
<td>Lượt xem</td>
@@ -376,7 +378,7 @@
<div class="bg-white shadow p-3 mt-3 rounded-sm">
<div class="flex items-center justify-between">
<b class="font-medium">Ghi nhắc việc làm cá nhân</b>
<input type="date" value="2025-11-26" class="input w-[30%]" />
<input type="date" value="2025-11-26" class="input w-1/3" />
</div>
<form class="flex items-center justify-between mt-3">
<input type="text" placeholder="Nhập việc cần làm của bạn" class="input w-[78%]" />

View File

@@ -2,7 +2,7 @@
const initCustomerAcquisitionChart = () => {
const chartOptions = {
chart: {
height: 356,
height: 350,
sparkline: {
enabled: false,
},
@@ -59,7 +59,7 @@
const initRevenueStatisticsChart = () => {
const chartOptions = {
chart: {
height: 288,
height: 292,
type: "bar",
stacked: true,
background: "transparent",

View File

@@ -4,8 +4,11 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/simplebar/6.2.7/simplebar.css" />
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
<script src="{{'jquery.js' | asset_url }}"></script>
<script src="{{'global.js' | asset_url }}"></script>
<script src="https://unpkg.com/lucide@latest/dist/umd/lucide.min.js"></script>
<script>
lucide.createIcons();
</script>
{% if global.module == 'home' %}

View File

@@ -0,0 +1,5 @@
<style>
/* homepage_css.html */
@layer components {}
</style>

View File

@@ -0,0 +1,5 @@
{% if global.module == 'home' %}
{% include module_css/homepage %}
{% endif %}

View File

@@ -2,28 +2,28 @@
<div class="flex items-center justify-between px-6 py-3 bg-menu">
<div class="inline-flex items-center gap-5">
<a href="/">
<img src="{{ 'logo_new.png' | asset_url }}" class="h-5.5" />
<img src="{{ 'logo_new.png' | asset_url }}" class="h-[20px]" />
</a>
<button
class="btn btn-outline btn-sm btn-ghost border-base-300 text-base-content/70 hidden h-9 w-100 justify-start gap-2 !text-sm md:flex bg-white"
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"
onclick="document.getElementById('topbar-search-modal')?.showModal()">
<span class="iconify lucide--search size-4"></span>
<i data-lucide="search"></i>
<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()">
<span class="iconify lucide--search size-4"></span>
<i data-lucide="search"></i>
</button>
<dialog id="topbar-search-modal" class="modal p-0">
<div class="modal-box bg-transparent p-0 shadow-none">
<div class="bg-base-100 rounded-box">
<div class="input w-full border-0 !outline-none">
<span class="iconify lucide--search text-base-content/60 size-4.5"></span>
<i data-lucide="search" class="text-base-content/60 size-4.5"></i>
<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">
<span class="iconify lucide--x text-base-content/80 size-4"></span>
<i data-lucide="x" class="text-base-content/80 size-4"></i>
</button>
</form>
</div>
@@ -31,25 +31,25 @@
<div class="flex items-center gap-0.5">
<div
class="border-base-300 bg-base-200 flex size-5 items-center justify-center rounded-sm border shadow-xs">
<span class="iconify lucide--arrow-up size-3.5"></span>
<i data-lucide="arrow-up" class="size-3.5"></i>
</div>
<div
class="border-base-300 bg-base-200 flex size-5 items-center justify-center rounded-sm border shadow-xs">
<span class="iconify lucide--arrow-down size-3.5"></span>
<i data-lucide="arrow-down" class="size-3.5"></i>
</div>
<p class="text-base-content/80 ms-1 text-sm">Điều hướng</p>
</div>
<div class="flex items-center gap-0.5 max-sm:hidden">
<div
class="border-base-300 bg-base-200 flex size-5 items-center justify-center rounded-sm border shadow-xs">
<span class="iconify lucide--undo-2 size-3.5"></span>
<i data-lucide="undo-2" class="size-3.5"></i>
</div>
<p class="text-base-content/80 ms-1 text-sm">Quay lại</p>
</div>
<div class="flex items-center gap-0.5">
<div
class="border-base-300 bg-base-200 flex size-5 items-center justify-center rounded-sm border shadow-xs">
<span class="iconify lucide--corner-down-left size-3.5"></span>
<i data-lucide="corner-down-left" class="size-3.5"></i>
</div>
<p class="text-base-content/80 ms-1 text-sm">Mở</p>
</div>
@@ -233,11 +233,11 @@
<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">
<span class="iconify lucide--bell motion-preset-seesaw size-4.5"></span>
<i data-lucide="bell" class="motion-preset-seesaw size-4.5"></i>
<div class="status status-error status-sm absolute end-1 top-1"></div>
</div>
<div tabindex="0"
class="dropdown-content bg-base-100 rounded-box mt-1 w-84 shadow-md duration-1000 hover:shadow-lg">
class="dropdown-content bg-base-100 rounded-box mt-1 w-80 shadow-md duration-1000 hover:shadow-lg">
<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">
<p class="font-medium">Notification</p>
@@ -351,22 +351,22 @@
</div>
</div>
<div class="grow -space-y-0.5">
<p class="text-sm font-medium text-white">Denish N</p>
<p class="text-base-content/60 text-xs text-white">@withden</p>
<p class="text-sm font-medium text-white group-hover:text-black">Denish N</p>
<p class="text-base-content/60 text-xs text-white group-hover:text-black">@withden</p>
</div>
<span class="iconify lucide--chevrons-up-down text-base-content/60 size-4 text-white"></span>
<i data-lucide="chevrons-up-down" class="size-4 text-white group-hover:text-black"></i>
</div>
<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>
<a href="./pages/settings.html">
<span class="iconify lucide--user size-4"></span>
<i data-lucide="user" class="size-4"></i>
<span>Tài khoản</span>
</a>
</li>
<li>
<a href="/admin/system/settings">
<span class="iconify lucide--settings size-4"></span>
<i data-lucide="Settings" class="size-4"></i>
<span>Cài đặt hệ thống</span>
</a>
</li>
@@ -374,11 +374,11 @@
</div>
</div>
</div>
<div class="flex items-center justify-between px-3 gap-3 relative">
<div class="flex items-center justify-between gap-3 relative">
<ul class="menu menu-horizontal">
<li>
<div class="flex items-center gap-3">
<span class="iconify lucide--home tw-tsa"></span>
<i data-lucide="house" class="tw-sla menu-icon-color"></i>
<a href="/"><span class="grow">Home</span></a>
</div>
</li>
@@ -389,7 +389,7 @@
class="{%- for _item in _menu_children -%}{%- if _item.url == global.url -%} active {%- endif -%} {%- endfor -%}">
<div class="flex items-center gap-3">
{% if _menu_item.icon_class != '' %}
<span class="{{_menu_item.icon_class}}"></span>
<i data-lucide="{{_menu_item.icon_class}}" class="tw-sla menu-icon-color"></i>
{% endif %}
<span class="grow">{{ _menu_item.name }}</span>
</div>
@@ -403,7 +403,5 @@
{% endif %}
{% endfor %}
</ul>
</div>
</div>

View File

@@ -7,22 +7,12 @@
<title> Admin Hura Pc </title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script>
try {
const localStorageItem = localStorage.getItem("__NEXUS_CONFIG_v3.0__")
if (localStorageItem) {
const theme = JSON.parse(localStorageItem).theme
if (theme !== "system") {
document.documentElement.setAttribute("data-theme", theme)
}
}
} catch (err) {
console.log(err)
}
</script>
<!-- lib hura css -->
<link rel="stylesheet" href="{{ 'hura-lib.css' | asset_url }}" />
<!-- page-specific CSS -->
{% include module_css/index %}
<link rel="stylesheet" href="{{'style.css' | asset_url}}">
<link rel="stylesheet" href="{{'style_hura.css' | asset_url}}?{{ 'now' | date : '%Y-%m-%d.%H.%M.%S' }}">
</head>
<body>