9db4deafbc
- /Search: searches shifts, hiring openings, and applicants together via Postgres ILIKE (every term must match across role/city/facility/title/ description/tags/person). Results grouped per type. - Keyword highlighting (<mark>) extended to shift & job cards (was talent-only), so matches stand out everywhere. - Persistent header search box (.nav-search) → /Search; big hero box on the page itself. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
44 lines
2.0 KiB
Plaintext
44 lines
2.0 KiB
Plaintext
@model JobsMedical.Web.Models.Shift
|
|
@{
|
|
var (badgeClass, typeLabel) = Model.ShiftType switch
|
|
{
|
|
ShiftType.Day => ("badge-day", "صبح"),
|
|
ShiftType.Evening => ("badge-evening", "عصر"),
|
|
ShiftType.Night => ("badge-night", "شب"),
|
|
_ => ("badge-oncall", "آنکال"),
|
|
};
|
|
var q = ViewData["q"] as string;
|
|
}
|
|
<a class="card card-pad shift-card" asp-page="/Shifts/Details" asp-route-id="@Model.Id">
|
|
<div class="row" style="justify-content: space-between;">
|
|
<span class="facility">@JobsMedical.Web.Services.SearchHighlight.Mark(Model.Facility?.Name, q)</span>
|
|
<span class="badge @badgeClass">@typeLabel</span>
|
|
</div>
|
|
<div class="row">
|
|
@if (Model.Role is not null)
|
|
{
|
|
<span class="badge badge-type">@JobsMedical.Web.Services.SearchHighlight.Mark(Model.Role.Name, q)</span>
|
|
}
|
|
@if (Model.GenderRequirement != Gender.Any)
|
|
{
|
|
<span class="badge badge-gender">@JalaliDate.GenderLabel(Model.GenderRequirement)</span>
|
|
}
|
|
@if (Model.Facility?.IsVerified == true)
|
|
{
|
|
<span class="badge badge-verified">✓ تأیید شده</span>
|
|
}
|
|
</div>
|
|
<div class="row loc-row">📍 @Model.Facility?.City?.Name@(Model.Facility?.District is not null ? "، " + Model.Facility.District.Name : "")</div>
|
|
@if (Model.DistanceKm is double km)
|
|
{
|
|
<div class="row"><span class="badge badge-distance">📍 @JalaliDate.ToPersianDigits(km.ToString("0.#")) کیلومتر از شما</span></div>
|
|
}
|
|
<div class="row">📅 @JalaliDate.WeekDayName(Model.Date)، @JalaliDate.ToLongDate(Model.Date)</div>
|
|
<div class="row">🕐 @JalaliDate.Time(Model.StartTime) تا @JalaliDate.Time(Model.EndTime)</div>
|
|
<partial name="_HourBar" model="Model" />
|
|
<div class="foot">
|
|
<span class="pay">@JalaliDate.PayLabel(Model.PayType, Model.PayAmount, Model.SharePercent)</span>
|
|
<span class="btn btn-outline" style="padding: 6px 14px;">جزئیات</span>
|
|
</div>
|
|
</a>
|