#186 displaying user last edit
This commit is contained in:
parent
18d84184e8
commit
61f41547e2
@ -13,72 +13,84 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
عنوان فعلی:
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p id="original-0">@Model.PageInformation.Poem.Title</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
عنوان ویراستهٔ من:
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="text" id="id-0" name="id-0" value="@Model.PageInformation.Poem.Title" size="100" oninput="editorcompare(0)" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
تغییرات:
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p id="compare-0">@Model.PageInformation.Poem.Title</p>
|
||||
</td>
|
||||
</tr>
|
||||
@foreach (var verse in Model.PageInformation.Poem.Verses)
|
||||
if (Model.MyLastEdit != null)
|
||||
{
|
||||
<table>
|
||||
<tr>
|
||||
<td colspan="2">ویرایشهای من</td>
|
||||
</tr>
|
||||
|
||||
@if (Model.MyLastEdit.Title != null)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
<p style="color:red">@Model.MyLastEdit.Title</p>
|
||||
</td>
|
||||
<td>
|
||||
<p style="color:green">@Model.MyLastEdit.OriginalTitle</p>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
@if (Model.MyLastEdit.Rhythm != null)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
<p style="color:red">@Model.MyLastEdit.Rhythm</p>
|
||||
</td>
|
||||
<td>
|
||||
<p style="color:green">@Model.MyLastEdit.OriginalRhythm</p>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
@if (Model.MyLastEdit.VerseOrderText != null)
|
||||
@foreach (var verse in Model.MyLastEdit.VerseOrderText)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
<p style="color:red">@verse.OriginalText</p>
|
||||
</td>
|
||||
<td>
|
||||
<p style="color:green">@verse.Text</p>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
@if (!string.IsNullOrEmpty(Model.MyLastEdit.Note))
|
||||
{
|
||||
<tr>
|
||||
<td>یادداشت:</td>
|
||||
<td>
|
||||
@Model.MyLastEdit.Note
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
|
||||
</table>
|
||||
}
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
بیت @Model.GetVerseCoupletNumber(verse).ToPersianNumbers()
|
||||
<p><strong>ویرایش متن:</strong></p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
مصرع @verse.VOrder.ToPersianNumbers()
|
||||
عنوان فعلی:
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
نوع: @Model.GetVersePosition(verse)
|
||||
<p id="original-0">@Model.PageInformation.Poem.Title</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
متن فعلی:
|
||||
عنوان ویراستهٔ من:
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p id="original-@($"{verse.VOrder}")">@verse.Text</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
ویراستهٔ من:
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="text" id="id-@($"{verse.VOrder}")" name="name-@($"{verse.VOrder}")" value="@verse.Text" size="100" oninput="editorcompare(@verse.VOrder)" />
|
||||
<input type="text" id="id-0" name="id-0" value="@Model.PageInformation.Poem.Title" size="100" oninput="editorcompare(0)" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -88,57 +100,104 @@ else
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p id="compare-@($"{verse.VOrder}")">@verse.Text</p>
|
||||
<p id="compare-0">@Model.PageInformation.Poem.Title</p>
|
||||
</td>
|
||||
</tr>
|
||||
@foreach (var verse in Model.PageInformation.Poem.Verses)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
بیت @Model.GetVerseCoupletNumber(verse).ToPersianNumbers()
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
مصرع @verse.VOrder.ToPersianNumbers()
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
نوع: @Model.GetVersePosition(verse)
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
متن فعلی:
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p id="original-@($"{verse.VOrder}")">@verse.Text</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
ویراستهٔ من:
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="text" id="id-@($"{verse.VOrder}")" name="name-@($"{verse.VOrder}")" value="@verse.Text" size="100" oninput="editorcompare(@verse.VOrder)" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
تغییرات:
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p id="compare-@($"{verse.VOrder}")">@verse.Text</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
}
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
وزن فعلی:
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p id="rhythm-old">@(Model.PageInformation.Poem.GanjoorMetre == null ? "" : Model.PageInformation.Poem.GanjoorMetre.Rhythm)</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
وزن ویراستهٔ من:
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="text" id="rhythm-new" name="rhythm-new" value="@(Model.PageInformation.Poem.GanjoorMetre == null ? "" : Model.PageInformation.Poem.GanjoorMetre.Rhythm)" size="100" list="rythms" />
|
||||
<datalist id="rythms">
|
||||
@if (Model.Rhythms != null)
|
||||
@foreach (var rhythm in Model.Rhythms)
|
||||
{
|
||||
<option value="@rhythm.Rhythm">@rhythm.Rhythm</option>
|
||||
}
|
||||
</datalist>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
توضیح این ویرایش:
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
}
|
||||
<tr>
|
||||
<td>
|
||||
<input type="text" id="note" name="note" value="" size="100" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
وزن فعلی:
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p id="rhythm-old">@(Model.PageInformation.Poem.GanjoorMetre == null ? "" : Model.PageInformation.Poem.GanjoorMetre.Rhythm)</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
وزن ویراستهٔ من:
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="text" id="rhythm-new" name="rhythm-new" value="@(Model.PageInformation.Poem.GanjoorMetre == null ? "" : Model.PageInformation.Poem.GanjoorMetre.Rhythm)" size="100" list="rythms" />
|
||||
<datalist id="rythms">
|
||||
@if (Model.Rhythms != null)
|
||||
@foreach (var rhythm in Model.Rhythms)
|
||||
{
|
||||
<option value="@rhythm.Rhythm">@rhythm.Rhythm</option>
|
||||
}
|
||||
</datalist>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
توضیح این ویرایش:
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<a role="button" style="cursor:pointer;width:100%;color:white;background-color:green;display:block" onclick="savePoemCorrections(@Model.PageInformation.Poem.Id, @Model.PageInformation.Poem.Verses.Length)">ذخیره</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<input type="text" id="note" name="note" value="" size="100" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<a role="button" style="cursor:pointer;width:100%;color:white;background-color:green;display:block" onclick="savePoemCorrections(@Model.PageInformation.Poem.Id, @Model.PageInformation.Poem.Verses.Length)">ذخیره</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</table>
|
||||
|
||||
}
|
||||
@ -15,6 +15,11 @@ namespace GanjooRazor.Areas.User.Pages
|
||||
[IgnoreAntiforgeryToken(Order = 1001)]
|
||||
public class EditorModel : PageModel
|
||||
{
|
||||
/// <summary>
|
||||
/// my last edit
|
||||
/// </summary>
|
||||
public GanjoorPoemCorrectionViewModel MyLastEdit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// page
|
||||
/// </summary>
|
||||
@ -84,19 +89,21 @@ namespace GanjooRazor.Areas.User.Pages
|
||||
{
|
||||
if (await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response))
|
||||
{
|
||||
var editResponse = await secureClient.GetAsync($"{APIRoot.Url}/api/ganjoor/poem/correction/last/{Request.Query["id"]}");
|
||||
editResponse.EnsureSuccessStatusCode();
|
||||
MyLastEdit = JsonConvert.DeserializeObject<GanjoorPoemCorrectionViewModel>(await editResponse.Content.ReadAsStringAsync());
|
||||
|
||||
|
||||
var rhythmResponse = await secureClient.GetAsync($"{APIRoot.Url}/api/ganjoor/rhythms");
|
||||
rhythmResponse.EnsureSuccessStatusCode();
|
||||
Rhythms = JsonConvert.DeserializeObject<GanjoorMetre[]>(await rhythmResponse.Content.ReadAsStringAsync());
|
||||
|
||||
var pageUrlResponse = await secureClient.GetAsync($"{APIRoot.Url}/api/ganjoor/pageurl?id={Request.Query["id"]}");
|
||||
|
||||
pageUrlResponse.EnsureSuccessStatusCode();
|
||||
|
||||
var pageUrl = JsonConvert.DeserializeObject<string>(await pageUrlResponse.Content.ReadAsStringAsync());
|
||||
|
||||
var pageQuery = await secureClient.GetAsync($"{APIRoot.Url}/api/ganjoor/page?url={pageUrl}");
|
||||
pageQuery.EnsureSuccessStatusCode();
|
||||
|
||||
PageInformation = JObject.Parse(await pageQuery.Content.ReadAsStringAsync()).ToObject<GanjoorPageCompleteViewModel>();
|
||||
}
|
||||
else
|
||||
|
||||
@ -236,7 +236,6 @@
|
||||
|
||||
},
|
||||
success: function () {
|
||||
alert('تصحیحات ارسال شد.');
|
||||
location.reload(true);
|
||||
},
|
||||
error: function (e) {
|
||||
|
||||
@ -791,7 +791,7 @@ namespace RMuseum.Controllers
|
||||
[HttpPost]
|
||||
[Route("poem/correction")]
|
||||
[Authorize]
|
||||
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(GanjoorPageCompleteViewModel))]
|
||||
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(GanjoorPoemCorrectionViewModel))]
|
||||
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
|
||||
[ProducesResponseType((int)HttpStatusCode.NotFound)]
|
||||
public async Task<IActionResult> SuggestPoemCorrection([FromBody] GanjoorPoemCorrectionViewModel correction)
|
||||
@ -816,7 +816,7 @@ namespace RMuseum.Controllers
|
||||
[HttpGet]
|
||||
[Route("poem/correction/last/{id}")]
|
||||
[Authorize]
|
||||
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(GanjoorPageCompleteViewModel))]
|
||||
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(GanjoorPoemCorrectionViewModel))]
|
||||
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
|
||||
[ProducesResponseType((int)HttpStatusCode.NotFound)]
|
||||
public async Task<IActionResult> GetLastUnreviewedUserCorrectionForPoem(int id)
|
||||
|
||||
@ -1339,7 +1339,7 @@ namespace RMuseum.Services.Implementation
|
||||
/// <returns></returns>
|
||||
public async Task<RServiceResult<GanjoorPoemCorrectionViewModel>> GetLastUnreviewedUserCorrectionForPoem(Guid userId, int poemId)
|
||||
{
|
||||
var dbCorrection = await _context.GanjoorPoemCorrections
|
||||
var dbCorrection = await _context.GanjoorPoemCorrections.AsNoTracking().Include(c => c.VerseOrderText)
|
||||
.Where(c => c.UserId == userId && c.PoemId == poemId && c.Result == CorrectionReviewResult.NotReviewed)
|
||||
.OrderByDescending(c => c.Id)
|
||||
.FirstOrDefaultAsync();
|
||||
@ -1353,7 +1353,7 @@ namespace RMuseum.Services.Implementation
|
||||
{
|
||||
PoemId = dbCorrection.PoemId,
|
||||
UserId = dbCorrection.UserId,
|
||||
VerseOrderText = dbCorrection.VerseOrderText.ToArray(),
|
||||
VerseOrderText = dbCorrection.VerseOrderText == null ? null : dbCorrection.VerseOrderText.ToArray(),
|
||||
Title = dbCorrection.Title,
|
||||
OriginalTitle = dbCorrection.OriginalTitle,
|
||||
Rhythm = dbCorrection.Rhythm,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user