From 9c181ef636b407c48ba0a538a97469ad15cfeeac Mon Sep 17 00:00:00 2001 From: Hamid Reza Mohammadi Date: Mon, 20 Jun 2022 20:25:06 +0430 Subject: [PATCH] docs: #327 collecting modifications to verses VersePosition information --- GanjooRazor/Areas/User/Pages/Editor.cshtml | 22 ++++++++++++++----- GanjooRazor/Areas/User/Pages/Editor.cshtml.cs | 19 +++++++++++++++- 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/GanjooRazor/Areas/User/Pages/Editor.cshtml b/GanjooRazor/Areas/User/Pages/Editor.cshtml index 8a7b21e4..1ce03f3b 100644 --- a/GanjooRazor/Areas/User/Pages/Editor.cshtml +++ b/GanjooRazor/Areas/User/Pages/Editor.cshtml @@ -18,11 +18,15 @@ function savePoemCorrections(id, verseCount) { var verseOrderText = []; var verseOrderMarkedForDelete = []; + var versePositions = []; for (var i = 0; i <= verseCount; i++) { var oldElementName = '#original-' + i.toString(); var newElementName = '#id-' + i.toString(); var checkVIndex = '#marked-for-delete-' + i.toString(); - if ($(newElementName).text() != $(oldElementName).text() || $(checkVIndex).is(":checked")) { + var oldVersePosition = '#versepostion-original-' + i.toString(); + var newVersePosition = '#versepostion-' + i.toString(); + versePositions.push($(newVersePosition).val()); + if ($(newElementName).text() != $(oldElementName).text() || $(checkVIndex).is(":checked") || $(newVersePosition).val() != $(oldVersePosition).val()) { verseOrderText.push(i.toString() + 'TextSeparator' + $(newElementName).text()); if($(checkVIndex).is(":checked")){ verseOrderMarkedForDelete.push(i); @@ -31,8 +35,6 @@ } - - if (verseOrderText.length == 0) { if ($('#rhythm-old').text() == $('#rhythm-new').val() && $('#rhythm-old2').text() == $('#rhythm-new2').val()) { alert('شما هیچ تغییری در متن نداده‌اید!'); @@ -62,6 +64,7 @@ poemid: id, verseOrderText: verseOrderText, verseOrderMarkedForDelete: verseOrderMarkedForDelete, + versePositions: versePositions, rhythm: rhythm_new, rhythm2: rhythm_new2, note: $('#note').val() @@ -437,7 +440,8 @@ else - @if (Model.MyLastEdit != null && Model.MyLastEdit.VerseOrderText != null && Model.MyLastEdit.VerseOrderText.Where(v => v.VORder == verse.VOrder).Any()) { @foreach (var verseposition in RMuseum.Models.Ganjoor.VersePositionHelper.VersePositions) @@ -462,8 +466,16 @@ else } } - + @if (Model.MyLastEdit != null && Model.MyLastEdit.VerseOrderText != null && Model.MyLastEdit.VerseOrderText.Where(v => v.VORder == verse.VOrder).Any()) + { + + } + else + { + + } + diff --git a/GanjooRazor/Areas/User/Pages/Editor.cshtml.cs b/GanjooRazor/Areas/User/Pages/Editor.cshtml.cs index 5394d286..e41b09b6 100644 --- a/GanjooRazor/Areas/User/Pages/Editor.cshtml.cs +++ b/GanjooRazor/Areas/User/Pages/Editor.cshtml.cs @@ -218,12 +218,28 @@ namespace GanjooRazor.Areas.User.Pages return new BadRequestObjectResult("لطفا از گنجور خارج و مجددا به آن وارد شوید."); } - public async Task OnPostSendPoemCorrectionsAsync(int poemid, string[] verseOrderText, int[] verseOrderMarkedForDelete, string rhythm, string rhythm2, string note) + public async Task OnPostSendPoemCorrectionsAsync(int poemid, string[] verseOrderText, int[] verseOrderMarkedForDelete, VersePosition[] versePositions, string rhythm, string rhythm2, string note) { using (HttpClient secureClient = new HttpClient()) { if (await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response)) { + var pageUrlResponse = await secureClient.GetAsync($"{APIRoot.Url}/api/ganjoor/pageurl?id={poemid}"); + if (!pageUrlResponse.IsSuccessStatusCode) + { + FatalError = JsonConvert.DeserializeObject(await pageUrlResponse.Content.ReadAsStringAsync()); + return new BadRequestObjectResult(FatalError); + } + var pageUrl = JsonConvert.DeserializeObject(await pageUrlResponse.Content.ReadAsStringAsync()); + + var pageQuery = await secureClient.GetAsync($"{APIRoot.Url}/api/ganjoor/page?url={pageUrl}"); + if (!pageQuery.IsSuccessStatusCode) + { + FatalError = JsonConvert.DeserializeObject(await pageQuery.Content.ReadAsStringAsync()); + return new BadRequestObjectResult(FatalError); + } + var pageInformation = JObject.Parse(await pageQuery.Content.ReadAsStringAsync()).ToObject(); + string title = null; List vOrderTexts = new List(); foreach (string v in verseOrderText) @@ -241,6 +257,7 @@ namespace GanjooRazor.Areas.User.Pages VORder = vOrder, Text = vParts[1].Replace("ۀ", "هٔ").Replace("ك", "ک"), MarkForDelete = verseOrderMarkedForDelete.Any(v => v == vOrder), + VersePosition = pageInformation.Poem.Verses.Single(v => v.VOrder == vOrder).VersePosition == versePositions[vOrder - 1] ? null : versePositions[vOrder - 1], } ); }