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
|
- |
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],
}
);
}