feat: add cards templete

This commit is contained in:
2026-06-24 10:47:54 +03:30
parent 60494946d6
commit b1c7bfdd06
124 changed files with 422 additions and 30 deletions
+9
View File
@@ -5,12 +5,21 @@
{{template "nav" .}}
<div class="wrap">
<h1>داشبورد</h1>
{{if .Saved}}<div class="saved">انجام شد ✓</div>{{end}}
<div class="stats">
<div class="stat">کاربران<b>{{.Users}}</b></div>
<div class="stat">خریدهای موفق<b>{{.Purchases}}</b></div>
<div class="stat">بازی‌های ثبت‌شده<b>{{.Games}}</b></div>
<div class="stat">مجموع سکه‌ی کاربران<b>{{.Coins}}</b></div>
<div class="stat">فصلِ رتبه‌بندی<b>{{.Season}}</b></div>
</div>
<h2>فصلِ رتبه‌بندی</h2>
<p style="color:#888">شروعِ فصلِ جدید، امتیازِ رتبه‌ی همه‌ی کاربران را صفر می‌کند.</p>
<form method="post" action="/admin/season/reset"
onsubmit="return confirm('فصلِ جدید؟ امتیازِ رتبه‌ی همه صفر می‌شود.');">
<button class="del">شروعِ فصلِ جدید (ریست رتبه‌ها)</button>
</form>
</div>
</body>
</html>
+14 -3
View File
@@ -65,8 +65,11 @@
</table>
<h2>اسکین کارت‌ها</h2>
<p style="color:#9aa;font-size:13px">
آپلودِ تصاویرِ هر اسکین: یک فایلِ <b>zip</b> شاملِ ۵۲ کارت با نامِ <code>AS.png</code>، <code>10H.png</code>، <code>KD.png</code> … و یک <code>back.jpg</code> (پشتِ کارت). نام‌ها بزرگ‌وکوچک مهم نیست.
</p>
<table>
<tr><th>شناسه</th><th>عنوان</th><th>قیمت (سکه)</th><th>ترتیب</th><th>فعال</th><th colspan="2"></th></tr>
<tr><th>شناسه</th><th>عنوان</th><th>قیمت (سکه)</th><th>ترتیب</th><th>فعال</th><th colspan="2"></th><th>تصاویر</th></tr>
{{range .Cards}}
<tr><form method="post" action="/admin/shop/card">
<td>{{.id}}<input type="hidden" name="id" value="{{.id}}"></td>
@@ -76,7 +79,12 @@
<td><input type="checkbox" name="enabled" {{if .enabled}}checked{{end}}></td>
<td><button>ذخیره</button></td>
<td><button formaction="/admin/shop/card/delete" formnovalidate class="del">حذف</button></td>
</form></tr>
</form>
<td><form method="post" action="/admin/shop/card/{{.id}}/upload" enctype="multipart/form-data" style="display:flex;gap:4px">
<input type="file" name="deck" accept=".zip" required>
<button>آپلود zip</button>
</form></td>
</tr>
{{end}}
<tr class="addrow"><form method="post" action="/admin/shop/card/add">
<td><input name="id" placeholder="شناسه" required></td>
@@ -143,8 +151,9 @@
</table>
<h2>انواع میز</h2>
<p style="color:#888">«امتیاز رتبه» اگر بزرگ‌تر از ۰ باشد، آن میز رتبه‌بندی است و به برنده امتیازِ رتبه می‌دهد.</p>
<table>
<tr><th>شناسه</th><th>عنوان</th><th>دست</th><th>ورودی</th><th>جایزه</th><th>XP</th><th>جام</th><th>ترتیب</th><th>فعال</th><th colspan="2"></th></tr>
<tr><th>شناسه</th><th>عنوان</th><th>دست</th><th>ورودی</th><th>جایزه</th><th>XP</th><th>جام</th><th>امتیاز رتبه</th><th>ترتیب</th><th>فعال</th><th colspan="2"></th></tr>
{{range .Tiers}}
<tr><form method="post" action="/admin/shop/tier">
<td>{{.id}}<input type="hidden" name="id" value="{{.id}}"></td>
@@ -154,6 +163,7 @@
<td><input name="prize" value="{{.prize}}"></td>
<td><input name="xp" value="{{.xp}}"></td>
<td><input name="trophy" value="{{.trophy}}"></td>
<td><input name="rank_reward" value="{{.rank_reward}}"></td>
<td><input name="sort" value="{{.sort}}"></td>
<td><input type="checkbox" name="enabled" {{if .enabled}}checked{{end}}></td>
<td><button>ذخیره</button></td>
@@ -168,6 +178,7 @@
<td><input name="prize" value="0"></td>
<td><input name="xp" value="0"></td>
<td><input name="trophy" value="0"></td>
<td><input name="rank_reward" value="0"></td>
<td><input name="sort" value="0"></td>
<td><input type="checkbox" name="enabled" checked></td>
<td colspan="2"><button>افزودن</button></td>