From f9d7c48d886578edc1bfdc8b6ff3768ba3a12392 Mon Sep 17 00:00:00 2001 From: "soroush.asadi" Date: Mon, 8 Jun 2026 08:49:27 +0330 Subject: [PATCH] Admin settings: give each ingestion source its own card The sources panel (Telegram/Bale/Divar/Medjobs/Websites/Proxy) ran together as one flat list. Each is now wrapped in a bordered .source-box with an icon + hint, so it's clear where one source's settings end and the next begins. Co-Authored-By: Claude Opus 4.8 --- .../Pages/Admin/Settings.cshtml | 105 ++++++++++-------- src/JobsMedical.Web/wwwroot/css/site.css | 5 + 2 files changed, 64 insertions(+), 46 deletions(-) diff --git a/src/JobsMedical.Web/Pages/Admin/Settings.cshtml b/src/JobsMedical.Web/Pages/Admin/Settings.cshtml index 8486b89..f4637d6 100644 --- a/src/JobsMedical.Web/Pages/Admin/Settings.cshtml +++ b/src/JobsMedical.Web/Pages/Admin/Settings.cshtml @@ -96,60 +96,73 @@ - -
- - - +

هر منبع را جداگانه روشن/خاموش و تنظیم کن.

+ +
+ +
+ + + +
- -
- +
+ +
+ +
- -
-
-
-
- - - -
- +
+ +
+
+
+
+
- -
- - - +
+ +
+ +
-
-

پروکسی (Xray/V2Ray)

-
- - -

یک کلاینت Xray/V2Ray کانفیگ vmess/vless/trojan تو را به یک پروکسی محلی تبدیل می‌کند (socks5:// یا socks4:// یا http://). هر منبع جداگانه با تیکِ «از پروکسی استفاده شود» تعیین می‌کند که از این پروکسی عبور کند یا نه.

- -

از طریق پروکسی به یک سایت فیلترشده وصل می‌شود؛ موفقیت یعنی تونل برقرار است. (ابتدا آدرس را ذخیره کن.)

+
+ +
+ + + +
+
+ +
+

🛡️ پروکسی (Xray/V2Ray)

+
+ + +

یک کلاینت Xray/V2Ray کانفیگ vmess/vless/trojan تو را به یک پروکسی محلی تبدیل می‌کند (socks5:// یا socks4:// یا http://). هر منبع جداگانه با تیکِ «از پروکسی استفاده شود» تعیین می‌کند که از این پروکسی عبور کند یا نه.

+ +

از طریق پروکسی به یک سایت فیلترشده وصل می‌شود؛ موفقیت یعنی تونل برقرار است. (ابتدا آدرس را ذخیره کن.)

+
diff --git a/src/JobsMedical.Web/wwwroot/css/site.css b/src/JobsMedical.Web/wwwroot/css/site.css index 0eaa71b..dd54e76 100644 --- a/src/JobsMedical.Web/wwwroot/css/site.css +++ b/src/JobsMedical.Web/wwwroot/css/site.css @@ -376,6 +376,11 @@ label { font-size: 13px; } @keyframes fadeIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } } .settings-panel h3:first-child { margin-top: 0; } +/* Each ingestion source gets its own card so the settings don't run together. */ +.source-box { border: 1px solid var(--line); border-radius: 14px; padding: 14px; margin: 12px 0; background: var(--surface); } +.source-box .toggle-row { background: var(--bg); margin-bottom: 10px; } +.source-box .filter-group:last-child { margin-bottom: 0; } + /* Toggle rows — give each boolean field a clean, card-like row. */ .toggle-row { display: flex; align-items: flex-start; gap: 10px; font-weight: 700;