initial commit

This commit is contained in:
2026-07-21 09:47:16 +07:00
commit 3973d98bc4
289 changed files with 41430 additions and 0 deletions
+25
View File
@@ -0,0 +1,25 @@
@model ErrorViewModel
@{
ViewData["Title"] = "Error";
}
<h1 class="text-danger">Error.</h1>
<h2 class="text-danger">An error occurred while processing your request.</h2>
@if (Model.ShowRequestId)
{
<p>
<strong>Request ID:</strong> <code>@Model.RequestId</code>
</p>
}
<h3>Development Mode</h3>
<p>
Swapping to <strong>Development</strong> environment will display more detailed information about the error that occurred.
</p>
<p>
<strong>The Development environment shouldn't be enabled for deployed applications.</strong>
It can result in displaying sensitive information from exceptions to end users.
For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>
and restarting the app.
</p>
+38
View File
@@ -0,0 +1,38 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>@ViewData["Title"] - Indotalent</title>
<script src="https://cdn.tailwindcss.com"></script>
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.13.0/dist/cdn.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.7/dist/chart.umd.min.js"></script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;450;500;600;700;800&display=swap" rel="stylesheet">
@await RenderSectionAsync("Styles", required: false)
</head>
<body class="bg-gray-50 text-gray-800 antialiased">
@{
var sidebarVariant = (ViewData["SidebarVariant"] as string) ?? "1";
}
@if (ViewData["SidebarVariant"] is string)
{
<div x-data="{ side: true, isMobile: false }" x-init="isMobile = window.innerWidth <= 768; if(isMobile){ side = false } window.addEventListener('resize', function(){ isMobile = window.innerWidth <= 768; if(isMobile){ side = false } else { side = true } })">
<div x-show="side && isMobile" x-on:click="side = false" class="fixed inset-0 bg-black/60 z-40 md:hidden"></div>
@await Html.PartialAsync("_Sidebar" + sidebarVariant)
<main id="main" x-bind:class="{ 'shift': side }">
@await Html.PartialAsync("_Topbar" + sidebarVariant)
@RenderBody()
</main>
</div>
}
else
{
@RenderBody()
}
<script src="~/js/script.js" asp-append-version="true"></script>
@await RenderSectionAsync("Scripts", required: false)
</body>
</html>
+48
View File
@@ -0,0 +1,48 @@
/* Please see documentation at https://learn.microsoft.com/aspnet/core/client-side/bundling-and-minification
for details on configuring this project to bundle and minify static web assets. */
a.navbar-brand {
white-space: normal;
text-align: center;
word-break: break-all;
}
a {
color: #0077cc;
}
.btn-primary {
color: #fff;
background-color: #1b6ec2;
border-color: #1861ac;
}
.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
color: #fff;
background-color: #1b6ec2;
border-color: #1861ac;
}
.border-top {
border-top: 1px solid #e5e5e5;
}
.border-bottom {
border-bottom: 1px solid #e5e5e5;
}
.box-shadow {
box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
}
button.accept-policy {
font-size: 1rem;
line-height: inherit;
}
.footer {
position: absolute;
bottom: 0;
width: 100%;
white-space: nowrap;
line-height: 60px;
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+16
View File
@@ -0,0 +1,16 @@
<header class="sticky top-0 z-30 h-16 px-4 md:px-6 flex items-center justify-between" style="background:#f1f5f9;">
<div class="flex items-center gap-4">
<button x-on:click="side = !side" class="p-2 rounded-lg hover:bg-gray-100 transition"><svg class="w-5 h-5 text-gray-600" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/></svg></button>
</div>
<div class="flex items-center gap-3">
<button class="relative p-2 rounded-lg hover:bg-gray-100 transition">
<svg class="w-5 h-5 text-gray-500" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"/></svg>
<span class="absolute -top-0.5 -right-0.5 w-4 h-4 rounded-full bg-blue-500 text-white text-[10px] flex items-center justify-center font-bold">3</span>
</button>
<div class="flex items-center gap-2 pl-3 ml-1 border-l border-gray-200">
<div class="w-8 h-8 rounded-full flex items-center justify-center text-white font-bold text-xs" style="background: #3b82f6;">JD</div>
<div class="hidden sm:block text-sm leading-tight"><p class="font-semibold text-gray-800">John Doe</p><p class="text-gray-400 text-xs">Sales Admin</p></div>
</div>
</div>
</header>
+16
View File
@@ -0,0 +1,16 @@
<header class="sticky top-0 z-30 bg-white border-b border-gray-200 h-16 px-4 md:px-6 flex items-center justify-between">
<div class="flex items-center gap-4">
<button x-on:click="side = !side" class="p-2 rounded-lg hover:bg-gray-100 transition"><svg class="w-5 h-5 text-gray-600" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/></svg></button>
</div>
<div class="flex items-center gap-3">
<button class="relative p-2 rounded-lg hover:bg-gray-100 transition">
<svg class="w-5 h-5 text-gray-500" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"/></svg>
<span class="absolute -top-0.5 -right-0.5 w-4 h-4 rounded-full bg-blue-500 text-white text-[10px] flex items-center justify-center font-bold">3</span>
</button>
<div class="flex items-center gap-2 pl-3 ml-1 border-l border-gray-200">
<div class="w-8 h-8 rounded-full flex items-center justify-center text-white font-bold text-xs" style="background: #3b82f6;">CF</div>
<div class="hidden sm:block text-sm leading-tight"><p class="font-semibold text-gray-800">John Doe</p><p class="text-gray-400 text-xs">Sales Admin</p></div>
</div>
</div>
</header>
+16
View File
@@ -0,0 +1,16 @@
<header class="sticky top-0 z-30 bg-white border-b border-gray-200 h-16 px-4 md:px-6 flex items-center justify-between">
<div class="flex items-center gap-4">
<button x-on:click="side = !side" class="p-2 rounded-lg hover:bg-gray-100 transition"><svg class="w-5 h-5 text-gray-600" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/></svg></button>
</div>
<div class="flex items-center gap-3">
<button class="relative p-2 rounded-lg hover:bg-gray-100 transition">
<svg class="w-5 h-5 text-gray-500" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"/></svg>
<span class="absolute -top-0.5 -right-0.5 w-4 h-4 rounded-full bg-indigo-500 text-white text-[10px] flex items-center justify-center font-bold">3</span>
</button>
<div class="flex items-center gap-2 pl-3 ml-1 border-l border-gray-200">
<div class="w-8 h-8 rounded-full flex items-center justify-center text-white font-bold text-xs" style="background: linear-gradient(135deg, #6366f1, #4f46e5);">JD</div>
<div class="hidden sm:block text-sm leading-tight"><p class="font-semibold text-gray-800">John Doe</p><p class="text-gray-400 text-xs">Sales Admin</p></div>
</div>
</div>
</header>
+16
View File
@@ -0,0 +1,16 @@
<header class="sticky top-0 z-30 h-16 px-4 md:px-6 flex items-center justify-between" style="background:#f1f5f9;">
<div class="flex items-center gap-4">
<button x-on:click="side = !side" class="p-2 rounded-lg hover:bg-gray-100 transition"><svg class="w-5 h-5 text-gray-600" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/></svg></button>
</div>
<div class="flex items-center gap-3">
<button class="relative p-2 rounded-lg hover:bg-gray-100 transition">
<svg class="w-5 h-5 text-gray-500" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"/></svg>
<span class="absolute -top-0.5 -right-0.5 w-4 h-4 rounded-full bg-indigo-500 text-white text-[10px] flex items-center justify-center font-bold">3</span>
</button>
<div class="flex items-center gap-2 pl-3 ml-1">
<div class="w-8 h-8 rounded-full flex items-center justify-center text-white font-bold text-xs" style="background: linear-gradient(135deg, #6366f1, #4f46e5);">JD</div>
<div class="hidden sm:block text-sm leading-tight"><p class="font-semibold text-gray-800">John Doe</p><p class="text-gray-400 text-xs">Sales Admin</p></div>
</div>
</div>
</header>
+16
View File
@@ -0,0 +1,16 @@
<header class="sticky top-0 z-30 bg-white border-b border-gray-200 h-16 px-4 md:px-6 flex items-center justify-between">
<div class="flex items-center gap-4">
<button x-on:click="side = !side" class="p-2 rounded-lg hover:bg-gray-100 transition"><svg class="w-5 h-5 text-gray-600" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/></svg></button>
</div>
<div class="flex items-center gap-3">
<button class="relative p-2 rounded-lg hover:bg-gray-100 transition">
<svg class="w-5 h-5 text-gray-500" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"/></svg>
<span class="absolute -top-0.5 -right-0.5 w-4 h-4 rounded-full bg-blue-500 text-white text-[10px] flex items-center justify-center font-bold">3</span>
</button>
<div class="flex items-center gap-2 pl-3 ml-1 border-l border-gray-200">
<div class="w-8 h-8 rounded-full flex items-center justify-center text-white font-bold text-xs" style="background: #3b82f6;">JD</div>
<div class="hidden sm:block text-sm leading-tight"><p class="font-semibold text-gray-800">John Doe</p><p class="text-gray-400 text-xs">Sales Admin</p></div>
</div>
</div>
</header>