docs: #319 saving breakpoints for sections
This commit is contained in:
parent
b939a8bfd6
commit
7c700fabf6
@ -15,9 +15,22 @@
|
||||
else
|
||||
{
|
||||
<script>
|
||||
function saveSectionCorrection(id) {
|
||||
function saveSectionCorrection(id, verseCount) {
|
||||
|
||||
if ($('#rhythm-old').text() == $('#rhythm-new').val()) {
|
||||
var breakFromVIndices = [];
|
||||
for (var i = 0; i <= verseCount; i++) {
|
||||
var checkVIndex = '#break-from-' + i.toString();
|
||||
if ($(checkVIndex).is(":checked")) {
|
||||
breakFromVIndices.push(i);
|
||||
}
|
||||
}
|
||||
|
||||
if(breakFromVIndices.length > 4){
|
||||
alert('حداکثر از ۴ محل میتوانید قطعه را بشکنید.');
|
||||
return;
|
||||
}
|
||||
|
||||
if (breakFromVIndices.length == 0 && $('#rhythm-old').text() == $('#rhythm-new').val()) {
|
||||
alert('شما هیچ تغییری در متن ندادهاید!');
|
||||
return;
|
||||
}
|
||||
@ -39,6 +52,7 @@ else
|
||||
data: {
|
||||
sectionId: id,
|
||||
rhythm: rhythm_new,
|
||||
breakFromVIndices: breakFromVIndices,
|
||||
note: $('#note').val()
|
||||
|
||||
},
|
||||
@ -167,7 +181,26 @@ else
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
<input type="checkbox" name="break-from-@Model.Verses[v].CoupletIndex" id="break-from-@Model.Verses[v].CoupletIndex" />
|
||||
@if(Model.MyLastEdit != null
|
||||
&&
|
||||
(
|
||||
Model.MyLastEdit.BreakFromVerse1VOrder == Model.Verses[v].VOrder
|
||||
||
|
||||
Model.MyLastEdit.BreakFromVerse2VOrder == Model.Verses[v].VOrder
|
||||
||
|
||||
Model.MyLastEdit.BreakFromVerse3VOrder == Model.Verses[v].VOrder
|
||||
||
|
||||
Model.MyLastEdit.BreakFromVerse4VOrder == Model.Verses[v].VOrder
|
||||
)
|
||||
)
|
||||
{
|
||||
<input type="checkbox" name="break-from-@v" id="break-from-@v" checked />
|
||||
}
|
||||
else
|
||||
{
|
||||
<input type="checkbox" name="break-from-@v" id="break-from-@v" />
|
||||
}
|
||||
|
||||
@Model.Verses[v].Text
|
||||
</td>
|
||||
</tr>
|
||||
@ -203,7 +236,7 @@ else
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<a role="button" id="savecorrections" style="cursor:pointer;width:100%;color:white;background-color:green;display:block" onclick="saveSectionCorrection(@Model.PoemSection.Id)">ذخیره</a>
|
||||
<a role="button" id="savecorrections" style="cursor:pointer;width:100%;color:white;background-color:green;display:block" onclick="saveSectionCorrection(@Model.PoemSection.Id, @Model.Verses.Count)">ذخیره</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
@ -10,7 +10,6 @@ using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using RMuseum.Models.Ganjoor;
|
||||
using RMuseum.Models.Ganjoor.ViewModels;
|
||||
using RMuseum.Services.Implementation;
|
||||
|
||||
namespace GanjooRazor.Areas.User.Pages
|
||||
{
|
||||
@ -146,17 +145,78 @@ namespace GanjooRazor.Areas.User.Pages
|
||||
return Page();
|
||||
}
|
||||
|
||||
public async Task<IActionResult> OnPostSendSectionCorrectionsAsync(int sectionId, string rhythm, string note)
|
||||
public async Task<IActionResult> OnPostSendSectionCorrectionsAsync(int sectionId, string rhythm, int[] breakFromVIndices, string note)
|
||||
{
|
||||
using (HttpClient secureClient = new HttpClient())
|
||||
{
|
||||
if (await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response))
|
||||
{
|
||||
|
||||
|
||||
|
||||
int? breakFromVerse1VOrder = null;
|
||||
int? breakFromVerse2VOrder = null;
|
||||
int? breakFromVerse3VOrder = null;
|
||||
int? breakFromVerse4VOrder = null;
|
||||
|
||||
if(breakFromVIndices.Length > 0)
|
||||
{
|
||||
var sectionResponse = await secureClient.GetAsync($"{APIRoot.Url}/api/ganjoor/section/{sectionId}");
|
||||
if (!sectionResponse.IsSuccessStatusCode)
|
||||
{
|
||||
FatalError = JsonConvert.DeserializeObject<string>(await sectionResponse.Content.ReadAsStringAsync());
|
||||
return Page();
|
||||
}
|
||||
PoemSection = JsonConvert.DeserializeObject<GanjoorPoemSection>(await sectionResponse.Content.ReadAsStringAsync());
|
||||
|
||||
var pageUrlResponse = await secureClient.GetAsync($"{APIRoot.Url}/api/ganjoor/pageurl?id={PoemSection.PoemId}");
|
||||
if (!pageUrlResponse.IsSuccessStatusCode)
|
||||
{
|
||||
FatalError = JsonConvert.DeserializeObject<string>(await pageUrlResponse.Content.ReadAsStringAsync());
|
||||
return Page();
|
||||
}
|
||||
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 Page();
|
||||
}
|
||||
PageInformation = JObject.Parse(await pageQuery.Content.ReadAsStringAsync()).ToObject<GanjoorPageCompleteViewModel>();
|
||||
|
||||
Verses = _FilterSectionVerses(PoemSection, PageInformation.Poem.Verses);
|
||||
|
||||
|
||||
|
||||
breakFromVerse1VOrder = Verses[breakFromVIndices[0]].VOrder;
|
||||
|
||||
if (breakFromVIndices.Length > 1)
|
||||
{
|
||||
breakFromVerse2VOrder = Verses[breakFromVIndices[1]].VOrder;
|
||||
}
|
||||
|
||||
if (breakFromVIndices.Length > 2)
|
||||
{
|
||||
breakFromVerse3VOrder = Verses[breakFromVIndices[2]].VOrder;
|
||||
}
|
||||
|
||||
if (breakFromVIndices.Length > 3)
|
||||
{
|
||||
breakFromVerse4VOrder = Verses[breakFromVIndices[3]].VOrder;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
GanjoorPoemSectionCorrectionViewModel correction = new GanjoorPoemSectionCorrectionViewModel()
|
||||
{
|
||||
SectionId = sectionId,
|
||||
Rhythm = rhythm,
|
||||
BreakFromVerse1VOrder = breakFromVerse1VOrder,
|
||||
BreakFromVerse2VOrder = breakFromVerse2VOrder,
|
||||
BreakFromVerse3VOrder = breakFromVerse3VOrder,
|
||||
BreakFromVerse4VOrder = breakFromVerse4VOrder,
|
||||
Note = note
|
||||
};
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user