editor improvements
This commit is contained in:
parent
5f4f6e9131
commit
9176c62cfe
@ -1808,8 +1808,13 @@ else
|
|||||||
|
|
||||||
@foreach (var verse in Model.PageInformation.Poem.Verses)
|
@foreach (var verse in Model.PageInformation.Poem.Verses)
|
||||||
{
|
{
|
||||||
|
var verseCoupletNumber = Model.GetVerseCoupletNumber(verse);
|
||||||
<div class="up-verse-row" id="tr-@verse.VOrder">
|
<div class="up-verse-row" id="tr-@verse.VOrder">
|
||||||
<p><span class="up-verse-number">@Model.GetVerseCoupletNumber(verse).ToPersianNumbers()</span><span class="up-hint">ترتیب مصرع یا خط از ابتدا: @verse.VOrder.ToPersianNumbers()</span></p>
|
<p>
|
||||||
|
<span class="up-verse-number">@verseCoupletNumber.ToPersianNumbers()</span>
|
||||||
|
<span class="up-verse-progress" title="@verseCoupletNumber.ToPersianNumbers() از @Model.TotalCoupletsCount.ToPersianNumbers()"><span class="up-verse-progress-fill" style="width:@(Model.GetCoupletProgressPercent(verseCoupletNumber))%"></span></span>
|
||||||
|
<span class="up-hint">ترتیب مصرع یا خط از ابتدا: @verse.VOrder.ToPersianNumbers()</span>
|
||||||
|
</p>
|
||||||
|
|
||||||
<div class="up-field">
|
<div class="up-field">
|
||||||
<label for="id-@($"{verse.VOrder}")"><span class="up-field-icon" aria-hidden="true">📝</span> ویراستهٔ من</label>
|
<label for="id-@($"{verse.VOrder}")"><span class="up-field-icon" aria-hidden="true">📝</span> ویراستهٔ من</label>
|
||||||
@ -1941,7 +1946,7 @@ else
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="up-btn-group">
|
<div class="up-btn-group">
|
||||||
<a role="button" href="#savecorrections" class="up-btn up-btn--sm up-btn--ghost">⬇ رفتن به ذخیره</a>
|
<a role="button" href="#savecorrections" class="up-btn up-btn--sm up-btn--ghost up-btn--block">⬇ رفتن به ذخیره</a>
|
||||||
@if (Model.ShowAdminOps && verse.VOrder > 1 && verse.VersePosition != RMuseum.Models.Ganjoor.VersePosition.Left)
|
@if (Model.ShowAdminOps && verse.VOrder > 1 && verse.VersePosition != RMuseum.Models.Ganjoor.VersePosition.Left)
|
||||||
{
|
{
|
||||||
<a role="button" id="breakpoem-@verse.VOrder" class="up-btn up-btn--sm up-btn--danger" onclick="breakPoem(@Model.PageInformation.Poem.Id, @verse.VOrder, '@verse.Text')">✂️ شکستن از اینجا</a>
|
<a role="button" id="breakpoem-@verse.VOrder" class="up-btn up-btn--sm up-btn--danger" onclick="breakPoem(@Model.PageInformation.Poem.Id, @verse.VOrder, '@verse.Text')">✂️ شکستن از اینجا</a>
|
||||||
@ -2219,7 +2224,7 @@ else
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a role="button" href="#savecorrections" class="up-btn up-btn--sm up-btn--ghost">⬇ رفتن به ذخیره</a>
|
<a role="button" href="#savecorrections" class="up-btn up-btn--sm up-btn--ghost up-btn--block">⬇ رفتن به ذخیره</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="up-card">
|
<div class="up-card">
|
||||||
@ -2233,7 +2238,12 @@ else
|
|||||||
|| Model.PageInformation.Poem.Verses[verseIndex].VersePosition == RMuseum.Models.Ganjoor.VersePosition.Paragraph
|
|| Model.PageInformation.Poem.Verses[verseIndex].VersePosition == RMuseum.Models.Ganjoor.VersePosition.Paragraph
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
var summaryCoupletNumber = Model.GetVerseCoupletNumber(Model.PageInformation.Poem.Verses[verseIndex]);
|
||||||
<div class="up-verse-row">
|
<div class="up-verse-row">
|
||||||
|
<p>
|
||||||
|
<span class="up-verse-number">@summaryCoupletNumber.ToPersianNumbers()</span>
|
||||||
|
<span class="up-verse-progress" title="@summaryCoupletNumber.ToPersianNumbers() از @Model.TotalCoupletsCount.ToPersianNumbers()"><span class="up-verse-progress-fill" style="width:@(Model.GetCoupletProgressPercent(summaryCoupletNumber))%"></span></span>
|
||||||
|
</p>
|
||||||
<div class="up-field">
|
<div class="up-field">
|
||||||
<label>متن</label>
|
<label>متن</label>
|
||||||
@if (Model.PageInformation.Poem.Verses[verseIndex].VersePosition == RMuseum.Models.Ganjoor.VersePosition.Paragraph)
|
@if (Model.PageInformation.Poem.Verses[verseIndex].VersePosition == RMuseum.Models.Ganjoor.VersePosition.Paragraph)
|
||||||
@ -2308,7 +2318,7 @@ else
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a role="button" href="#savecorrections" class="up-btn up-btn--sm up-btn--ghost">⬇ رفتن به ذخیره</a>
|
<a role="button" href="#savecorrections" class="up-btn up-btn--sm up-btn--ghost up-btn--block">⬇ رفتن به ذخیره</a>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -88,6 +88,27 @@ namespace GanjooRazor.Areas.User.Pages
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// total number of couplets/lines in the poem (same counting rules as GetVerseCoupletNumber,
|
||||||
|
/// just run all the way through) - used to render the small read-progress bar next to the
|
||||||
|
/// couplet number in the verse-editing and couplet-summary ("خلاصه و معنی") sections.
|
||||||
|
/// </summary>
|
||||||
|
public int TotalCoupletsCount =>
|
||||||
|
PageInformation?.Poem?.Verses == null || PageInformation.Poem.Verses.Length == 0
|
||||||
|
? 0
|
||||||
|
: GetVerseCoupletNumber(PageInformation.Poem.Verses[PageInformation.Poem.Verses.Length - 1]);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 0-100 fill percentage for the read-progress bar, for a given couplet number (1-based, as
|
||||||
|
/// returned by GetVerseCoupletNumber)
|
||||||
|
/// </summary>
|
||||||
|
public int GetCoupletProgressPercent(int coupletNumber)
|
||||||
|
{
|
||||||
|
if (TotalCoupletsCount <= 0 || coupletNumber <= 0)
|
||||||
|
return 0;
|
||||||
|
return Math.Min(100, coupletNumber * 100 / TotalCoupletsCount);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public PoemRelatedImage TextSourceImage { get; set; }
|
public PoemRelatedImage TextSourceImage { get; set; }
|
||||||
|
|
||||||
|
|||||||
@ -800,6 +800,26 @@ body.up-modal-open {
|
|||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* small read-progress indicator shown beside the couplet number - how far through the whole
|
||||||
|
poem this couplet is, not a form control */
|
||||||
|
.up-verse-progress {
|
||||||
|
display: inline-block;
|
||||||
|
width: 44px;
|
||||||
|
height: 5px;
|
||||||
|
border-radius: 999px;
|
||||||
|
background: var(--up-border);
|
||||||
|
overflow: hidden;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-inline-end: var(--up-space-2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.up-verse-progress-fill {
|
||||||
|
display: block;
|
||||||
|
height: 100%;
|
||||||
|
background: var(--up-primary);
|
||||||
|
border-radius: 999px;
|
||||||
|
}
|
||||||
|
|
||||||
.up-form-actions {
|
.up-form-actions {
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: var(--up-space-2);
|
gap: var(--up-space-2);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user