docs: #327 collecting modifications to verses VersePosition information
This commit is contained in:
parent
01631ab4ed
commit
9c181ef636
@ -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>
|
||||
|
||||
@ -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],
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user