divan/GanjooRazor/Areas/User/Pages/SuggestNewPersonRelation.cshtml
Hamid Reza Mohammadi 4f1f155266 people tags #387
2026-10-01 08:07:46 +03:30

139 lines
7.4 KiB
Plaintext

@page
@model GanjooRazor.Areas.User.Pages.SuggestNewPersonRelationModel
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@{
Layout = "_UserPanelLayout";
ViewData["Title"] = "پیشنهاد خویشاوند یا وابستگی جدید";
await GanjooRazor.Utils.GanjoorSessionChecker.ApplyPermissionsToViewData(Request, Response, ViewData);
}
@if (!string.IsNullOrEmpty(Model.LastError))
{
<div class="up-alert up-alert--danger">@Model.LastError</div>
}
else
{
<div class="up-page-header">
<h1>پیشنهاد خویشاوند یا وابستگی جدید برای: @Model.Person.Name</h1>
</div>
<p class="up-hint">
این پیشنهاد مستقیماً اعمال نمی‌شود؛ پس از بررسی و تأیید توسط مدیران، به تبارنامه/شبکهٔ وابستگی‌های
<a href="javascript:void(0)" onclick="PersonWindow.open(@Model.Person.Id)">@Model.Person.Name</a> افزوده خواهد شد.
</p>
@if (!string.IsNullOrEmpty(Model.LastResult))
{
<p>@Html.Raw(Model.LastResult)</p>
}
<div class="up-card">
<form method="post" action="/User/SuggestNewPersonRelation?personId=@Model.Person.Id&amp;Handler=Suggest">
@Html.AntiForgeryToken()
<table>
<tr>
<td>خویشاوند یا شخصیت دیگر:</td>
<td>
<select asp-for="OtherPersonId">
<option value="0">— انتخاب کنید —</option>
@foreach (var p in Model.OtherPeople)
{
<option value="@p.Id">@p.Name</option>
}
</select>
</td>
</tr>
<tr>
<td>نوع پیوند:</td>
<td>
<select id="RelationKindGroup" asp-for="RelationKindGroup">
<option value="family">نسبت خویشاوندی (پدر/مادر، فرزند، همسر، نیا/نواده...)</option>
<option value="affiliation">وابستگی غیرخویشاوندی (وزیر، مشاور، حامی، متحد، رقیب...)</option>
</select>
</td>
</tr>
</table>
<table id="family-relation-fields">
<tr>
<td>نسبت با @Model.Person.Name:</td>
<td>
<select asp-for="RelationKind">
<option value="Child">فرزند این شخصیت است</option>
<option value="Parent">پدر یا مادر این شخصیت است</option>
<option value="Sibling">خواهر یا برادر این شخصیت است</option>
<option value="Spouse">همسر این شخصیت است</option>
<option value="DistantAncestor">نیای دور این شخصیت است (بدون نسل مشخص)</option>
<option value="DistantDescendant">نوادهٔ دور این شخصیت است (بدون نسل مشخص)</option>
</select>
</td>
</tr>
<tr>
<td>
درجه (فقط برای نیا/نواده):
<p class="up-hint"><small>مثلاً برای پدربزرگ/مادربزرگ عدد ۲ را وارد کنید. اگر نمی‌دانید خالی بگذارید.</small></p>
</td>
<td><input asp-for="DegreeHint" /></td>
</tr>
</table>
<table id="affiliation-fields" style="display:none">
<tr>
<td>وابستگی با @Model.Person.Name:</td>
<td>
<select asp-for="AffiliationKind">
<option value="Minister_Other">او وزیر یا کارگزار این شخصیت بود</option>
<option value="Minister_Subject">این شخصیت وزیر یا کارگزار او بود</option>
<option value="Advisor_Other">او مشاور این شخصیت بود</option>
<option value="Advisor_Subject">این شخصیت مشاور او بود</option>
<option value="Courtier_Other">او از درباریان/همراهان این شخصیت بود</option>
<option value="Courtier_Subject">این شخصیت از درباریان/همراهان او بود</option>
<option value="Servant_Other">او خدمتگزار این شخصیت بود</option>
<option value="Servant_Subject">این شخصیت خدمتگزار او بود</option>
<option value="Patron_Other">او از این شخصیت حمایت می‌کرد (حامی او بود)</option>
<option value="Patron_Subject">این شخصیت از او حمایت می‌کرد (حامی او بود)</option>
<option value="Successor_Other">او جانشین این شخصیت شد (پس از او آمد)</option>
<option value="Successor_Subject">این شخصیت جانشین او شد (پس از او آمد)</option>
<option value="Ally">با او متحد/هم‌پیمان بود</option>
<option value="Rival">با او رقیب/دشمن بود</option>
<option value="Companion">با او همراه/همدم بود</option>
<option value="Other">نوع دیگر (در یادداشت توضیح دهید)</option>
</select>
</td>
</tr>
</table>
<table>
<tr>
<td>یادداشت (مستندسازی):</td>
<td><textarea asp-for="Note" rows="3" cols="60"></textarea></td>
</tr>
<tr>
<td>یادداشت برای مدیر بررسی‌کننده:</td>
<td><textarea asp-for="SuggestionNote" rows="3" cols="60"></textarea></td>
</tr>
</table>
<input type="submit" value="ثبت پیشنهاد" class="up-btn up-btn--success" />
<a role="button" href="javascript:void(0)" onclick="history.back()" class="up-btn up-btn--ghost">انصراف</a>
</form>
</div>
<script>
(function () {
var groupSelect = document.getElementById('RelationKindGroup');
var familyFields = document.getElementById('family-relation-fields');
var affiliationFields = document.getElementById('affiliation-fields');
function applyKindGroup() {
var isAffiliation = groupSelect.value === 'affiliation';
familyFields.style.display = isAffiliation ? 'none' : '';
affiliationFields.style.display = isAffiliation ? '' : 'none';
}
groupSelect.addEventListener('change', applyKindGroup);
applyKindGroup();
})();
</script>
}