- AddEnvironmentVariables() where appsettings.json is read directly - JWT ValidIssuer follows RSecurityBackend:ApplicationName (was hard-coded Ganjoor) - deploy/entrypoint.sh: copy settings RSecurityBackend reads only from appsettings.json - Dockerfile: pin SDK 10.0.302 (newer Razor rejects some upstream views) - lang=ur-PK; ganjoor.net own-site links -> relative; api.ganjoor.net -> APIRoot; search.xml - DIVAN.md: first admin password is Test!123 (upstream doc is wrong) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
147 lines
6.9 KiB
Plaintext
147 lines
6.9 KiB
Plaintext
@page
|
|
@using DNTPersianUtils.Core
|
|
@model GanjooRazor.Areas.Admin.Pages.ReviewQuotedsModel
|
|
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
|
|
@{
|
|
Layout = "_AdminLayout";
|
|
ViewData["Title"] = "بازبینی مشقشعرهای پیشنهادی";
|
|
}
|
|
<div class="up-page-header">
|
|
<h1>@ViewData["Title"]</h1>
|
|
</div>
|
|
|
|
@if (!string.IsNullOrEmpty(Model.FatalError))
|
|
{
|
|
<div class="up-alert up-alert--danger">@Model.FatalError</div>
|
|
}
|
|
else if (Model.GanjoorQuotedPoem == null)
|
|
{
|
|
<partial name="_EmptyState" model="@("پیشنهادی وجود ندارد.")" />
|
|
}
|
|
else
|
|
{
|
|
<div class="up-card">
|
|
<p class="up-hint">تعداد کل: @Model.TotalCount</p>
|
|
<div class="up-field">
|
|
<label>پیشنهاد دهنده</label>
|
|
<div class="up-field-static"><a href="/user/edits/?allusers=1&userid=@Model.GanjoorQuotedPoem.SuggestedById" target="_blank">@Model.SuggestedBy.NickName</a></div>
|
|
</div>
|
|
|
|
<form method="post" class="up-form">
|
|
@Html.AntiForgeryToken()
|
|
<input type="hidden" asp-for="ModerationModel.Id" />
|
|
<div class="up-field">
|
|
<label asp-for="ModerationModel.Approved">تأیید میشود؟</label>
|
|
<input asp-for="ModerationModel.Approved" />
|
|
</div>
|
|
<div class="up-field">
|
|
<label asp-for="ModerationModel.ReviewNote">یادداشت بررسی</label>
|
|
<textarea asp-for="ModerationModel.ReviewNote" rows="4"></textarea>
|
|
</div>
|
|
<div class="up-form-actions">
|
|
<button type="submit" class="up-btn up-btn--success">بررسی</button>
|
|
<a href="/Admin/ReviewQuoteds?skip=@(Model.Skip + 1)" role="button" class="up-btn up-btn--ghost">بعدی</a>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
|
|
<div class="up-card">
|
|
<h2 class="up-card__title">بیت مرجع از <a href="/?p=@Model.GanjoorQuotedPoem.PoemId">شعر</a></h2>
|
|
|
|
@if (Model.GanjoorQuotedPoem.CoupletIndex != null && Model.GanjoorQuotedPoem.CoupletIndex != -1)
|
|
{
|
|
<p>@($"{(Model.Couplets[(int)Model.GanjoorQuotedPoem.CoupletIndex].Item1 + 1).ToPersianNumbers()} - {Model.Couplets[(int)Model.GanjoorQuotedPoem.CoupletIndex].Item2}")</p>
|
|
}
|
|
|
|
<div class="up-field">
|
|
<label>مصرع اول مهم است</label>
|
|
<input type="checkbox" disabled @(Model.GanjoorQuotedPoem.CoupletVerse1ShouldBeEmphasized ? "checked=\"checked\"" : "") />
|
|
</div>
|
|
<div class="up-field">
|
|
<label>مصرع دوم مهم است</label>
|
|
<input type="checkbox" disabled @(Model.GanjoorQuotedPoem.CoupletVerse2ShouldBeEmphasized ? "checked=\"checked\"" : "") />
|
|
</div>
|
|
<div class="up-field">
|
|
<label>شاعر مرجع</label>
|
|
<div class="up-field-static">@Model.GanjoorQuotedPoem.PoetId</div>
|
|
</div>
|
|
|
|
@if (Model.GanjoorQuotedPoem.RelatedPoemId != null)
|
|
{
|
|
<p><a href="/?p=@Model.GanjoorQuotedPoem.RelatedPoemId" class="up-btn up-btn--ghost up-btn--sm">مشاهدهٔ شعر مرتبط</a></p>
|
|
}
|
|
|
|
<div class="up-field">
|
|
<label>بیت مرتبط</label>
|
|
@if (Model.GanjoorQuotedPoem.RelatedCoupletIndex != null && Model.GanjoorQuotedPoem.RelatedCoupletIndex != -1)
|
|
{
|
|
if (Model.GanjoorQuotedPoem.RelatedCoupletIndex < Model.RelatedCouplets.Length)
|
|
{
|
|
<p>@($"{(Model.RelatedCouplets[(int)Model.GanjoorQuotedPoem.RelatedCoupletIndex].Item1 + 1).ToPersianNumbers()} - {Model.RelatedCouplets[(int)Model.GanjoorQuotedPoem.RelatedCoupletIndex].Item2}")</p>
|
|
}
|
|
else
|
|
{
|
|
<p class="red-color">خطا</p>
|
|
}
|
|
}
|
|
</div>
|
|
|
|
<div class="up-field">
|
|
<label>مصرع اول مرتبط (خارج از دیوان)</label>
|
|
<div class="up-field-static">@Model.GanjoorQuotedPoem.RelatedCoupletVerse1</div>
|
|
</div>
|
|
<div class="up-field">
|
|
<label>مصرع اول مهم است</label>
|
|
<input type="checkbox" disabled @(Model.GanjoorQuotedPoem.RelatedCoupletVerse1ShouldBeEmphasized ? "checked=\"checked\"" : "") />
|
|
</div>
|
|
<div class="up-field">
|
|
<label>مصرع دوم مرتبط (خارج از دیوان)</label>
|
|
<div class="up-field-static">@Model.GanjoorQuotedPoem.RelatedCoupletVerse2</div>
|
|
</div>
|
|
<div class="up-field">
|
|
<label>مصرع دوم مهم است</label>
|
|
<input type="checkbox" disabled @(Model.GanjoorQuotedPoem.RelatedCoupletVerse2ShouldBeEmphasized ? "checked=\"checked\"" : "") />
|
|
</div>
|
|
<div class="up-field">
|
|
<label>ترتیب</label>
|
|
<div class="up-field-static">@Model.GanjoorQuotedPoem.SortOrder</div>
|
|
</div>
|
|
<div class="up-field">
|
|
<label>این شعر قدیمیتر از شعر مرتبط است</label>
|
|
<input type="checkbox" disabled @(Model.GanjoorQuotedPoem.IsPriorToRelated ? "checked=\"checked\"" : "") />
|
|
</div>
|
|
<div class="up-field">
|
|
<label>منتسب به هر دو شاعر</label>
|
|
<input type="checkbox" disabled @(Model.GanjoorQuotedPoem.ClaimedByBothPoets ? "checked=\"checked\"" : "") />
|
|
</div>
|
|
<div class="up-field">
|
|
<label>شاعر</label>
|
|
<div class="up-field-static">@Model.GanjoorQuotedPoem.RelatedPoetId - @Model.GanjoorQuotedPoem.CachedRelatedPoemPoetName</div>
|
|
</div>
|
|
<div class="up-field">
|
|
<label>سالمرگ شاعر</label>
|
|
<div class="up-field-static">@Model.GanjoorQuotedPoem.CachedRelatedPoemPoetDeathYearInLHijri</div>
|
|
</div>
|
|
<div class="up-field up-field--ltr">
|
|
<label>نشانی صفحهٔ شاعر</label>
|
|
<div class="up-field-static"><a href="@Model.GanjoorQuotedPoem.CachedRelatedPoemPoetUrl">@Model.GanjoorQuotedPoem.CachedRelatedPoemPoetUrl</a></div>
|
|
</div>
|
|
<div class="up-field">
|
|
<label>تصویر شاعر</label>
|
|
<img src="@($"{GanjooRazor.APIRoot.InternetUrl}{Model.GanjoorQuotedPoem.CachedRelatedPoemPoetImage}")" style="max-width:200px;" />
|
|
</div>
|
|
<div class="up-field">
|
|
<label>عنوان شعر</label>
|
|
<div class="up-field-static">@Model.GanjoorQuotedPoem.CachedRelatedPoemFullTitle</div>
|
|
</div>
|
|
<div class="up-field up-field--ltr">
|
|
<label>نشانی شعر</label>
|
|
<div class="up-field-static"><a href="@Model.GanjoorQuotedPoem.CachedRelatedPoemFullUrl">@Model.GanjoorQuotedPoem.CachedRelatedPoemFullUrl</a></div>
|
|
</div>
|
|
<div class="up-field">
|
|
<label>یادداشت</label>
|
|
<div class="up-field-static">@Model.GanjoorQuotedPoem.Note</div>
|
|
</div>
|
|
</div>
|
|
}
|