diff --git a/GanjooRazor/Areas/Admin/Pages/ReviewQuoteds.cshtml b/GanjooRazor/Areas/Admin/Pages/ReviewQuoteds.cshtml index 0e375a0e..adf2ea14 100644 --- a/GanjooRazor/Areas/Admin/Pages/ReviewQuoteds.cshtml +++ b/GanjooRazor/Areas/Admin/Pages/ReviewQuoteds.cshtml @@ -44,7 +44,7 @@ else - + @@ -67,7 +67,7 @@ else - + diff --git a/GanjooRazor/Areas/Admin/Pages/ReviewQuoteds.cshtml.cs b/GanjooRazor/Areas/Admin/Pages/ReviewQuoteds.cshtml.cs index 6ccde410..5a681a11 100644 --- a/GanjooRazor/Areas/Admin/Pages/ReviewQuoteds.cshtml.cs +++ b/GanjooRazor/Areas/Admin/Pages/ReviewQuoteds.cshtml.cs @@ -67,11 +67,6 @@ namespace GanjooRazor.Areas.Admin.Pages { case VersePosition.Comment: incompleteCouplet = false; - if (!string.IsNullOrEmpty(coupletText)) - { - couplets.Add(new Tuple(coupetIndex, coupletText)); - coupletText = ""; - } break; case VersePosition.Paragraph: case VersePosition.Single: diff --git a/GanjooRazor/Areas/User/Pages/SuggestQuoted.cshtml b/GanjooRazor/Areas/User/Pages/SuggestQuoted.cshtml index 8a9b7e4f..c8ed89a4 100644 --- a/GanjooRazor/Areas/User/Pages/SuggestQuoted.cshtml +++ b/GanjooRazor/Areas/User/Pages/SuggestQuoted.cshtml @@ -23,13 +23,67 @@ document.getElementById('finalize-select2').style.display = 'block'; } + function getCouplets(verses) { + let coupetIndex = -1; + let coupletText = ""; + let coupletIndices = []; + let coupletTexts = []; + let verseIndex = 0; + let incompleteCouplet = false; + + while (verseIndex < verses.length) { + switch (verses[verseIndex].versePosition) { + case 5: // Comment + incompleteCouplet = false; + break; + case -1: // Paragraph + case 4: // Single + incompleteCouplet = false; + if (coupletText) { + coupletIndices.push(coupetIndex); + coupletTexts.push(coupletText); + coupletText = ""; + } + coupetIndex++; + coupletIndices.push(coupetIndex); + coupletTexts.push(verses[verseIndex].text); + break; + case 0: // Right + case 2: // CenteredVerse1 + incompleteCouplet = false; + if (coupletText) { + coupletIndices.push(coupetIndex); + coupletTexts.push(coupletText); + } + coupetIndex++; + coupletText = verses[verseIndex].text; + break; + case 1: // Left + case 3: // CenteredVerse2 + incompleteCouplet = true; + coupletText += ` - ${verses[verseIndex].text}`; + break; + } + verseIndex++; + } + + if (incompleteCouplet && coupletText) { + coupletIndices.push(coupetIndex); + coupletTexts.push(coupletText); + } + + return { coupletIndices, coupletTexts }; + } + + + function finalizeSelectPage() { document.getElementById('loading-selection').style.display = 'block'; document.getElementById('finalize-select2').style.display = 'none'; document.getElementById('display-frame').style.display = 'block'; document.getElementById('select-poem').style.display = 'none'; document.getElementById('finalize-select').style.display = 'none'; - + const currentUrl = document.getElementById('select-poem').contentWindow.location.href; @@ -55,20 +109,9 @@ document.getElementById('GanjoorQuotedPoem_CachedRelatedPoemFullTitle').value = json.poem.fullTitle; document.getElementById('GanjoorQuotedPoem_CachedRelatedPoemFullUrl').value = json.poem.fullUrl; - var coupletIndices = []; - var coupletTexts = []; - - for (var i = 0; i < json.poem.verses.length; i++) { - var verse = json.poem.verses[i]; - if (coupletIndices.indexOf(verse.coupletIndex) != -1) { - coupletTexts[coupletIndices.indexOf(verse.coupletIndex)] += ' - '; - coupletTexts[coupletIndices.indexOf(verse.coupletIndex)] += verse.text; - } - else { - coupletIndices.push(verse.coupletIndex); - coupletTexts.push(verse.text); - } - } + const result = getCouplets(json.poem.verses); + var coupletIndices = result.coupletIndices; + var coupletTexts = result.coupletTexts; var x = document.getElementById("GanjoorQuotedPoem_RelatedCoupletIndex"); x.length = 0; @@ -84,7 +127,7 @@ }).catch((error) => { document.getElementById('loading-selection').style.display = 'none'; - alert('صفحه‌ای که انتخاب کرده‌اید حاوی یک شعر نیست. جزئیات بیشتر: ' + error); + alert('در انتخاب صفحه خطایی رخ داد. جزئیات بیشتر: ' + error); selectGanjoorPage(); }); @@ -105,7 +148,7 @@ از فهرست زیر بیتی را که نقل قول در آن رخ داده مشخص کنید.

- +
@@ -114,7 +157,7 @@ - + @@ -179,7 +222,7 @@ - + @if (Model.GanjoorQuotedPoem.RelatedPoemId != null) { @@ -219,11 +262,11 @@ @@ -299,7 +342,7 @@ شاعر: - + @@ -382,7 +424,7 @@ - +
بیت مرجع از شعر: @@ -130,7 +130,14 @@ else @if (Model.GanjoorQuotedPoem.RelatedCoupletIndex != null && Model.GanjoorQuotedPoem.RelatedCoupletIndex != -1) { -

@($"{(Model.RelatedCouplets[(int)Model.GanjoorQuotedPoem.RelatedCoupletIndex].Item1 + 1).ToPersianNumbers()} - {Model.RelatedCouplets[(int)Model.GanjoorQuotedPoem.RelatedCoupletIndex].Item2}")

+ if (Model.GanjoorQuotedPoem.RelatedCoupletIndex < Model.RelatedCouplets.Length) + { +

@($"{(Model.RelatedCouplets[(int)Model.GanjoorQuotedPoem.RelatedCoupletIndex].Item1 + 1).ToPersianNumbers()} - {Model.RelatedCouplets[(int)Model.GanjoorQuotedPoem.RelatedCoupletIndex].Item2}")

+ } + else{ +

خطا

+ } + }
-
-

- اگر شعر را از طریق دکمهٔ «گزینش شعر مرتبط» انتخاب کرده‌اید کادر زیر را خالی بگذارید. -

-
+
+

+ اگر شعر را از طریق دکمهٔ «گزینش شعر مرتبط» انتخاب کرده‌اید کادر زیر را خالی بگذارید. +

+
@@ -329,7 +372,6 @@
-

diff --git a/GanjooRazor/Areas/User/Pages/SuggestQuoted.cshtml.cs b/GanjooRazor/Areas/User/Pages/SuggestQuoted.cshtml.cs index 51b43cd8..5f3c6336 100644 --- a/GanjooRazor/Areas/User/Pages/SuggestQuoted.cshtml.cs +++ b/GanjooRazor/Areas/User/Pages/SuggestQuoted.cshtml.cs @@ -60,11 +60,6 @@ namespace GanjooRazor.Areas.User.Pages { case VersePosition.Comment: incompleteCouplet = false; - if (!string.IsNullOrEmpty(coupletText)) - { - couplets.Add(new Tuple(coupetIndex, coupletText)); - coupletText = ""; - } break; case VersePosition.Paragraph: case VersePosition.Single: @@ -249,6 +244,21 @@ namespace GanjooRazor.Areas.User.Pages RelatedCouplets = GetCouplets(RelatedPoem.Verses); } + int cIndex = -1; + foreach (var verse in RelatedPoem.Verses) + { + if (verse.VersePosition != VersePosition.Left && verse.VersePosition != VersePosition.CenteredVerse2 && verse.VersePosition != VersePosition.Comment) + cIndex++; + if (verse.VersePosition != VersePosition.Comment) + { + verse.CoupletIndex = cIndex; + } + else + { + verse.CoupletIndex = null; + } + } + if (GanjoorQuotedPoem.RelatedCoupletIndex != null) { GanjoorQuotedPoem.RelatedCoupletVerse1 = RelatedPoem.Verses.Where(v => v.CoupletIndex == GanjoorQuotedPoem.RelatedCoupletIndex).Count() < 1 ? "" : RelatedPoem.Verses.Where(v => v.CoupletIndex == GanjoorQuotedPoem.RelatedCoupletIndex).ToArray()[0].Text;