Files
hamkadr/src/JobsMedical.Web/Pages/Index.cshtml
T
soroush.asadi 753a14286f
CI/CD / CI · dotnet build (push) Successful in 4m17s
CI/CD / Deploy · hamkadr (push) Successful in 4m30s
Mobile hero search: compact magnify button + dropdown under the input
- Submit button is now a 44x44 magnify icon inside the search pill on mobile instead of a full-width stacked button (desktop keeps the جستجو text).
- Anchor the typeahead dropdown to the search pill so results appear directly under the input rather than below the popular-search chips; full pill width.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 07:39:23 +03:30

161 lines
7.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@page
@model IndexModel
@{
ViewData["Title"] = null; // use default site title for the home page (best for SEO)
ViewData["Description"] = "همکادر؛ سریع‌ترین راه برای کادر درمان (پزشک، پرستار، ماما، تکنسین) جهت یافتن شیفت و موقعیت استخدامی در بیمارستان‌ها و کلینیک‌های تهران. به‌جای گشتن در کانال‌های تلگرام و بله، همه فرصت‌ها یک‌جا.";
}
<section class="hero">
<div class="container">
<h1>شیفت و شغل بعدی‌ات را در چند ثانیه پیدا کن</h1>
<p>
دیگر لازم نیست ده‌ها کانال تلگرام، بله و آگهی دیوار را زیر و رو کنی.
همه‌ی شیفت‌ها و فرصت‌های استخدامی کادر درمان تهران، دسته‌بندی‌شده بر اساس
مرکز درمانی، محل و تقویم هفتگی — یک‌جا.
</p>
<form class="hero-search" method="get" action="/Search" role="search" data-suggest>
<div class="hero-search-pill">
<span class="hs-ico">🔎</span>
<input type="search" name="Q" autocomplete="off"
placeholder="جستجو: پرستار، mmt، دندان‌پزشک…" />
<button type="submit" class="btn btn-accent btn-lg hs-submit" aria-label="جستجو">
<span class="hs-submit-txt">جستجو</span>
<span class="hs-submit-ico" aria-hidden="true">🔎</span>
</button>
</div>
<div class="hero-chips">
<span class="hc-label">جستجوهای پرطرفدار:</span>
<a href="/Search?Q=%D9%BE%D8%B1%D8%B3%D8%AA%D8%A7%D8%B1">پرستار</a>
<a href="/Search?Q=%D9%BE%D8%B2%D8%B4%DA%A9">پزشک</a>
<a href="/Search?Q=%D8%B4%DB%8C%D9%81%D8%AA%20%D8%B4%D8%A8">شیفت شب</a>
<a href="/Search?Q=%D8%A2%D9%85%D8%A7%D8%AF%D9%87%20%D8%A8%D9%87%20%DA%A9%D8%A7%D8%B1">آماده به کار</a>
</div>
</form>
<div class="stat-pills">
<div class="stat-pill"><span class="n">@JalaliDate.ToPersianDigits(Model.OpenShiftCount.ToString())</span><span class="l">شیفت باز</span></div>
<div class="stat-pill"><span class="n">@JalaliDate.ToPersianDigits(Model.FacilityCount.ToString())</span><span class="l">مرکز درمانی</span></div>
<div class="stat-pill"><span class="n">@JalaliDate.ToPersianDigits(Model.CityCount.ToString())</span><span class="l">شهر فعال</span></div>
</div>
</div>
</section>
@if (Model.Recommendations.Count > 0)
{
<section class="section" style="padding-bottom:0;">
<div class="container">
@if (Model.HasPersonalization)
{
<div class="rec-banner">
<div>
<h2 style="margin:0 0 4px;">✨ پیشنهادهای ویژه شما</h2>
<span style="opacity:.9; font-size:14px;">بر اساس علاقه‌مندی‌ها و فعالیت شما انتخاب شده‌اند</span>
</div>
<a class="btn btn-outline" asp-page="/Preferences/Index">ویرایش علاقه‌مندی‌ها</a>
</div>
}
else
{
<div class="rec-banner">
<div>
<h2 style="margin:0 0 4px;">پیشنهادها را شخصی‌سازی کن</h2>
<span style="opacity:.9; font-size:14px;">نقش، شهر و نوع شیفت دلخواهت را بگو تا بهترین فرصت‌ها را برایت پیدا کنیم</span>
</div>
<a class="btn btn-outline" asp-page="/Preferences/Index">تنظیم علاقه‌مندی‌ها</a>
</div>
}
<div class="grid grid-3">
@foreach (var rec in Model.Recommendations)
{
<partial name="_RecommendationCard" model="rec" />
}
</div>
</div>
</section>
}
<section class="section">
<div class="container">
<div class="section-head">
<h2>جدیدترین شیفت‌ها</h2>
<a asp-page="/Shifts/Index">مشاهده همه ←</a>
</div>
@if (Model.LatestShifts.Count == 0)
{
<div class="empty-state">فعلاً شیفت بازی ثبت نشده است.</div>
}
else
{
<div class="grid grid-3">
@foreach (var s in Model.LatestShifts)
{
<partial name="_ShiftCard" model="s" />
}
</div>
}
</div>
</section>
@if (Model.LatestJobs.Count > 0)
{
<section class="section" style="padding-top:0;">
<div class="container">
<div class="section-head">
<h2>فرصت‌های استخدامی</h2>
<a asp-page="/Jobs/Index">مشاهده همه ←</a>
</div>
<div class="grid grid-3">
@foreach (var j in Model.LatestJobs)
{
<partial name="_JobCard" model="j" />
}
</div>
</div>
</section>
}
@if (Model.LatestTalent.Count > 0)
{
<section class="section" style="padding-top:0;">
<div class="container">
<div class="section-head">
<h2>کادر درمان آماده به کار</h2>
<a asp-page="/Talent/Index">مشاهده همه ←</a>
</div>
<div class="grid grid-3">
@foreach (var t in Model.LatestTalent)
{
<partial name="_TalentCard" model="t" />
}
</div>
</div>
</section>
}
<section class="section" style="background: var(--surface); border-top: 1px solid var(--line);">
<div class="container">
<div class="section-head"><h2>چطور کار می‌کند؟</h2></div>
<div class="grid grid-3">
<div class="card card-pad">
<h3 style="margin-top:0;">۱. جستجو کن</h3>
<p class="muted">بر اساس شهر، بیمارستان، تاریخ و نوع شیفت، موقعیت مناسب خودت را فیلتر کن.</p>
</div>
<div class="card card-pad">
<h3 style="margin-top:0;">۲. تقویم را ببین</h3>
<p class="muted">شیفت‌های خالی هر مرکز را در یک نمای هفتگی شمسی مشاهده کن.</p>
</div>
<div class="card card-pad">
<h3 style="margin-top:0;">۳. اعلام تمایل کن</h3>
<p class="muted">روی شیفت دلخواه «اعلام تمایل» بزن تا مرکز درمانی با تو تماس بگیرد.</p>
</div>
</div>
</div>
</section>
@section Head {
@{ var bu = $"{ViewContext.HttpContext.Request.Scheme}://{ViewContext.HttpContext.Request.Host}"; }
@Html.Raw("<script type=\"application/ld+json\">" + JobsMedical.Web.Services.SeoJsonLd.Organization(bu) + "</script>")
@Html.Raw("<script type=\"application/ld+json\">" + JobsMedical.Web.Services.SeoJsonLd.WebSite(bu) + "</script>")
}