divan/GanjooRazor/Areas/User/Pages/SuggestPersonRelationEdit.cshtml
Hamid Reza Mohammadi 433cffa5ae people tags #387
2026-10-02 08:06:26 +03:30

114 lines
7.0 KiB
Plaintext

@page
@model GanjooRazor.Areas.User.Pages.SuggestPersonRelationEditModel
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@using RMuseum.Models.Ganjoor
@{
Layout = "_UserPanelLayout";
bool isAffiliation = Model.Kind == PersonRelationSuggestionKind.Affiliation;
ViewData["Title"] = isAffiliation ? "پیشنهاد ویرایش وابستگی" : "پیشنهاد ویرایش نسبت خویشاوندی";
await GanjooRazor.Utils.GanjoorSessionChecker.ApplyPermissionsToViewData(Request, Response, ViewData);
string formAction = isAffiliation
? $"/User/SuggestPersonRelationEdit?affiliationId={Model.Affiliation.Id}&Handler=SuggestEdit"
: $"/User/SuggestPersonRelationEdit?relationId={Model.Relation.Id}&Handler=SuggestEdit";
}
@if (!string.IsNullOrEmpty(Model.LastError))
{
<div class="up-alert up-alert--danger">@Model.LastError</div>
}
else
{
<div class="up-page-header">
<h1>
@(isAffiliation ? "پیشنهاد ویرایش وابستگی:" : "پیشنهاد ویرایش نسبت:")
<a href="javascript:void(0)" onclick="PersonWindow.open(@Model.Person1Id)">@Model.Person1Name</a>
و
<a href="javascript:void(0)" onclick="PersonWindow.open(@Model.Person2Id)">@Model.Person2Name</a>
</h1>
</div>
<p class="up-hint">
این پیشنهاد مستقیماً اعمال نمی‌شود؛ پس از بررسی و تأیید توسط مدیران اعمال خواهد شد.
</p>
@if (!string.IsNullOrEmpty(Model.LastResult))
{
<p>@Html.Raw(Model.LastResult)</p>
}
<div class="up-card">
<form method="post" action="@formAction">
@Html.AntiForgeryToken()
<input type="hidden" asp-for="Suggestion.ExistingRelationId" />
<input type="hidden" asp-for="Suggestion.ExistingAffiliationId" />
<input type="hidden" asp-for="Suggestion.Person1Id" />
<input type="hidden" asp-for="Suggestion.Person2Id" />
<table>
<tr>
<td>نوع درخواست:</td>
<td>
<label><input type="radio" name="Action" value="Modify" checked="checked" /> @(isAffiliation ? "ویرایش این وابستگی" : "ویرایش این نسبت")</label>
&nbsp;
<label><input type="radio" name="Action" value="Remove" /> @(isAffiliation ? "حذف این وابستگی (اشتباه ثبت شده است)" : "حذف این نسبت (اشتباه ثبت شده است)")</label>
</td>
</tr>
@if (isAffiliation)
{
<tr>
<td>نوع وابستگی:</td>
<td>
<select asp-for="Suggestion.SuggestedAffiliationType">
<option value="@((int)PersonAffiliationType.Minister)">وزیر/کارگزار (طرف اول، زیردست است)</option>
<option value="@((int)PersonAffiliationType.Advisor)">مشاور (طرف اول، مشاور طرف دوم است)</option>
<option value="@((int)PersonAffiliationType.Courtier)">درباری/همراه (طرف اول، همراه طرف دوم است)</option>
<option value="@((int)PersonAffiliationType.Servant)">خدمتگزار (طرف اول، خدمتگزار طرف دوم است)</option>
<option value="@((int)PersonAffiliationType.Patron)">حامی (طرف اول، حامی طرف دوم است)</option>
<option value="@((int)PersonAffiliationType.Successor)">جانشین (طرف اول، جانشین طرف دوم است)</option>
<option value="@((int)PersonAffiliationType.Panegyrized)">مدح‌گو (طرف اول، طرف دوم را مدح کرده است)</option>
<option value="@((int)PersonAffiliationType.Satirized)">هجوگو (طرف اول، طرف دوم را هجو کرده است)</option>
<option value="@((int)PersonAffiliationType.Ally)">متحد/هم‌پیمان</option>
<option value="@((int)PersonAffiliationType.Rival)">رقیب/دشمن</option>
<option value="@((int)PersonAffiliationType.Companion)">همراه/همدم</option>
<option value="@((int)PersonAffiliationType.Other)">نوع دیگر (در یادداشت توضیح دهید)</option>
</select>
<p class="up-hint"><small>جهت وابستگی (کدام طرف زیردست/حامی/... است) قابل تغییر نیست؛ در صورت اشتباه بودن جهت، این وابستگی را حذف و یکی تازه پیشنهاد کنید.</small></p>
</td>
</tr>
}
else
{
<tr>
<td>نوع نسبت:</td>
<td>
<select asp-for="Suggestion.SuggestedRelationType">
<option value="@((int)PersonRelationType.Parent)">پدر/مادر و فرزند (طرف اول، پدر/مادر است)</option>
<option value="@((int)PersonRelationType.Sibling)">خواهر/برادر</option>
<option value="@((int)PersonRelationType.Spouse)">همسر</option>
<option value="@((int)PersonRelationType.Ancestor)">نیا و نواده (طرف اول، نیاست)</option>
</select>
</td>
</tr>
<tr>
<td>
درجه (فقط برای نیا/نواده):
<p class="up-hint"><small>مثلاً برای پدربزرگ/مادربزرگ عدد ۲ را وارد کنید. اگر نمی‌دانید خالی بگذارید.</small></p>
</td>
<td><input asp-for="Suggestion.SuggestedDegreeHint" /></td>
</tr>
}
<tr>
<td>یادداشت (مستندسازی):</td>
<td><textarea asp-for="Suggestion.SuggestedNote" rows="3" cols="60"></textarea></td>
</tr>
<tr>
<td>یادداشت برای مدیر بررسی‌کننده:</td>
<td><textarea asp-for="Suggestion.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>
}