docs: #327 collecting modifications to verses VersePosition information

This commit is contained in:
Hamid Reza Mohammadi 2022-06-20 20:25:06 +04:30
parent 01631ab4ed
commit 9c181ef636
2 changed files with 35 additions and 6 deletions

View File

@ -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
</tr>
<tr>
<td>
<select id="versepostion-@($"{verse.VOrder}")" name="versepostion-@($"{verse.VOrder}")" disabled>
<select id="versepostion-@($"{verse.VOrder}")" name="versepostion-@($"{verse.VOrder}")">
@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
<option value="@verseposition.VersePosition">@verseposition.Text</option>
}
}
</select>
@if (Model.MyLastEdit != null && Model.MyLastEdit.VerseOrderText != null && Model.MyLastEdit.VerseOrderText.Where(v => v.VORder == verse.VOrder).Any())
{
<input type="hidden" id="versepostion-original-@($"{verse.VOrder}")" name="versepostion-original-@($"{verse.VOrder}")" value="@Model.MyLastEdit.VerseOrderText.Where(v => v.VORder == verse.VOrder).First().VersePosition" />
}
else
{
<input type="hidden" id="versepostion-original-@($"{verse.VOrder}")" name="versepostion-original-@($"{verse.VOrder}")" value="@verse.VersePosition" />
}
</td>
</tr>

View File

@ -218,12 +218,28 @@ namespace GanjooRazor.Areas.User.Pages
return new BadRequestObjectResult("لطفا از گنجور خارج و مجددا به آن وارد شوید.");
}
public async Task<IActionResult> OnPostSendPoemCorrectionsAsync(int poemid, string[] verseOrderText, int[] verseOrderMarkedForDelete, string rhythm, string rhythm2, string note)
public async Task<IActionResult> 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<string>(await pageUrlResponse.Content.ReadAsStringAsync());
return new BadRequestObjectResult(FatalError);
}
var pageUrl = JsonConvert.DeserializeObject<string>(await pageUrlResponse.Content.ReadAsStringAsync());
var pageQuery = await secureClient.GetAsync($"{APIRoot.Url}/api/ganjoor/page?url={pageUrl}");
if (!pageQuery.IsSuccessStatusCode)
{
FatalError = JsonConvert.DeserializeObject<string>(await pageQuery.Content.ReadAsStringAsync());
return new BadRequestObjectResult(FatalError);
}
var pageInformation = JObject.Parse(await pageQuery.Content.ReadAsStringAsync()).ToObject<GanjoorPageCompleteViewModel>();
string title = null;
List<GanjoorVerseVOrderText> vOrderTexts = new List<GanjoorVerseVOrderText>();
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],
}
);
}