f97f891d67
Full ASP.NET Core 10 Razor Pages app for آساد ابزار tool repair shop in Karaj, Iran (official DeWalt representative). Features: - Homepage, Services, DeWalt page, Shop (pagination + images) - 10 brand SEO pages (/brands/*) with rich Persian content + FAQ schema - Blog engine with admin management (/blog, /Admin/Blog) - Cart, Checkout, Contact (OpenStreetMap embed) - Admin panel: Products CRUD, Orders, Blog, Change Password - Jalali date formatting, product images, SiteData centralised contact - Docker + docker-compose with healthcheck - Gitea CI/CD via .gitea/workflows/ci-cd.yml (NuGet through Nexus mirror) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
60 lines
3.1 KiB
Plaintext
60 lines
3.1 KiB
Plaintext
<!DOCTYPE html>
|
|
<html lang="fa" dir="rtl">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>@ViewData["Title"] | پنل مدیریت آساد ابزار</title>
|
|
<script src="https://cdn.tailwindcss.com"></script>
|
|
<style>
|
|
@@font-face { font-family:"Vazirmatn"; src:url("https://cdn.jsdelivr.net/gh/rastikerdar/vazirmatn@@v33.003/fonts/webfonts/Vazirmatn-Regular.woff2") format("woff2"); font-weight:400; font-display:swap; }
|
|
@@font-face { font-family:"Vazirmatn"; src:url("https://cdn.jsdelivr.net/gh/rastikerdar/vazirmatn@@v33.003/fonts/webfonts/Vazirmatn-Bold.woff2") format("woff2"); font-weight:700; font-display:swap; }
|
|
*, body { font-family: "Vazirmatn", Tahoma, Arial, sans-serif !important; }
|
|
</style>
|
|
</head>
|
|
<body class="bg-gray-50 text-gray-800">
|
|
<div class="flex min-h-screen">
|
|
<!-- Sidebar -->
|
|
<aside class="fixed right-0 top-0 h-full w-56 bg-gray-900 text-white flex flex-col z-40">
|
|
<div class="p-5 border-b border-gray-800">
|
|
<div class="flex items-center gap-2">
|
|
<div class="bg-blue-600 rounded-lg p-1.5 text-sm">🔧</div>
|
|
<div>
|
|
<div class="font-bold text-sm">آساد ابزار</div>
|
|
<div class="text-xs text-gray-400">پنل مدیریت</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<nav class="flex-1 p-4 space-y-1">
|
|
<a href="/Admin" class="flex items-center gap-3 px-4 py-2.5 rounded-xl text-sm font-medium text-gray-300 hover:bg-gray-800 hover:text-white transition-colors">
|
|
📊 داشبورد
|
|
</a>
|
|
<a href="/Admin/Products" class="flex items-center gap-3 px-4 py-2.5 rounded-xl text-sm font-medium text-gray-300 hover:bg-gray-800 hover:text-white transition-colors">
|
|
📦 محصولات
|
|
</a>
|
|
<a href="/Admin/Orders" class="flex items-center gap-3 px-4 py-2.5 rounded-xl text-sm font-medium text-gray-300 hover:bg-gray-800 hover:text-white transition-colors">
|
|
🛍️ سفارشها
|
|
</a>
|
|
<a href="/Admin/Blog" class="flex items-center gap-3 px-4 py-2.5 rounded-xl text-sm font-medium text-gray-300 hover:bg-gray-800 hover:text-white transition-colors">
|
|
📝 بلاگ
|
|
</a>
|
|
<a href="/Admin/ChangePassword" class="flex items-center gap-3 px-4 py-2.5 rounded-xl text-sm font-medium text-gray-300 hover:bg-gray-800 hover:text-white transition-colors">
|
|
🔑 تغییر رمز عبور
|
|
</a>
|
|
</nav>
|
|
<div class="p-4 border-t border-gray-800">
|
|
<form method="post" action="/Admin/Logout">
|
|
@Html.AntiForgeryToken()
|
|
<button type="submit" class="text-sm text-red-400 hover:text-red-300 transition-colors">🚪 خروج</button>
|
|
</form>
|
|
</div>
|
|
</aside>
|
|
|
|
<!-- Main -->
|
|
<main class="flex-1 mr-56 overflow-auto">
|
|
@RenderBody()
|
|
</main>
|
|
</div>
|
|
@await RenderSectionAsync("Scripts", required: false)
|
|
</body>
|
|
</html>
|