docs: #373 UI for reviewing language changes

This commit is contained in:
Hamid Reza Mohammadi 2023-04-02 10:17:55 +03:30
parent 675ef59424
commit 0fa0c81021
2 changed files with 127 additions and 47 deletions

View File

@ -676,54 +676,112 @@ else
</td>
</tr>
}
<tr>
<td>
<p class="red-color" id="verse-original-@verse.VORder">@verse.OriginalText</p>
</td>
<td>
<p class="green-color" id="verse-edited-@verse.VORder">@verse.Text</p>
</td>
</tr>
<tr>
<td colspan="2">
<p id="verse-compare-@verse.VORder">@verse.OriginalText</p>
<script>
$(document).ready(function() {
compareCorrectionBlocks('verse-original-@verse.VORder', 'verse-edited-@verse.VORder', 'verse-compare-@verse.VORder');
});
</script>
</td>
</tr>
<tr>
<td colspan="2">
@if (verse.Result == RMuseum.Models.Ganjoor.CorrectionReviewResult.NotChanged)
{
<input type="radio" id="verse@(verse.VORder)_review_result_Approved" name="verse@(verse.VORder)_review_result" class="radio-approved" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.Approved">
<label for="verse@(verse.VORder)_review_result_Approved">تأیید می‌شود</label>
<br>
<input type="radio" id="verse@(verse.VORder)_review_result_NotChanged" name="verse@(verse.VORder)_review_result" class="radio-notchanged" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.NotChanged" checked="checked">
}
else
{
<input type="radio" id="verse@(verse.VORder)_review_result_Approved" name="verse@(verse.VORder)_review_result" class="radio-approved" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.Approved" checked="checked">
<label for="verse@(verse.VORder)_review_result_Approved">تأیید می‌شود</label>
@if(verse.Text != null)
{
<tr>
<td>
<p class="red-color" id="verse-original-@verse.VORder">@verse.OriginalText</p>
</td>
<td>
<p class="green-color" id="verse-edited-@verse.VORder">@verse.Text</p>
</td>
</tr>
<tr>
<td colspan="2">
<p id="verse-compare-@verse.VORder">@verse.OriginalText</p>
<script>
$(document).ready(function () {
compareCorrectionBlocks('verse-original-@verse.VORder', 'verse-edited-@verse.VORder', 'verse-compare-@verse.VORder');
});
</script>
</td>
</tr>
<tr>
<td colspan="2">
@if (verse.Result == RMuseum.Models.Ganjoor.CorrectionReviewResult.NotChanged)
{
<input type="radio" id="verse@(verse.VORder)_review_result_Approved" name="verse@(verse.VORder)_review_result" class="radio-approved" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.Approved">
<label for="verse@(verse.VORder)_review_result_Approved">تأیید می‌شود</label>
<br>
<input type="radio" id="verse@(verse.VORder)_review_result_NotChanged" name="verse@(verse.VORder)_review_result" class="radio-notchanged" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.NotChanged">
}
<label for="verse@(verse.VORder)_review_result_NotChanged">تغییری نکرده</label><br>
<input type="radio" id="verse@(verse.VORder)_review_result_RejectedBecauseWrong" name="verse@(verse.VORder)_review_result" class="radio-notcorrect" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.RejectedBecauseWrong">
<label for="verse@(verse.VORder)_review_result_RejectedBecauseWrong">درست نیست</label><br>
<input type="radio" id="verse@(verse.VORder)_review_result_RejectedBecauseVariant" name="verse@(verse.VORder)_review_result" class="radio-variant" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.RejectedBecauseVariant">
<label for="verse@(verse.VORder)_review_result_RejectedBecauseVariant">مربوط به نسخهٔ دیگری است</label><br>
<input type="radio" id="verse@(verse.VORder)_review_result_RejectedBecauseUnnecessaryChange" name="verse@(verse.VORder)_review_result" class="radio-unnecessary" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.RejectedBecauseUnnecessaryChange">
<label for="verse@(verse.VORder)_review_result_RejectedBecauseUnnecessaryChange">تغییر سلیقه‌ای یا بی دلیل است</label><br>
<input type="radio" id="verse@(verse.VORder)_review_result_Rejected" name="verse@(verse.VORder)_review_result" class="radio-rejected" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.Rejected">
<label for="verse@(verse.VORder)_review_result_Rejected">به دلیل دیگری رد می‌شود</label><br>
<input type="text" id="verse@(verse.VORder)_review_note" name="verse@(verse.VORder)_review_note" value="" size="50" />
</td>
</tr>
<br>
<input type="radio" id="verse@(verse.VORder)_review_result_NotChanged" name="verse@(verse.VORder)_review_result" class="radio-notchanged" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.NotChanged" checked="checked">
}
else
{
<input type="radio" id="verse@(verse.VORder)_review_result_Approved" name="verse@(verse.VORder)_review_result" class="radio-approved" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.Approved" checked="checked">
<label for="verse@(verse.VORder)_review_result_Approved">تأیید می‌شود</label>
<br>
<input type="radio" id="verse@(verse.VORder)_review_result_NotChanged" name="verse@(verse.VORder)_review_result" class="radio-notchanged" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.NotChanged">
}
<label for="verse@(verse.VORder)_review_result_NotChanged">تغییری نکرده</label><br>
<input type="radio" id="verse@(verse.VORder)_review_result_RejectedBecauseWrong" name="verse@(verse.VORder)_review_result" class="radio-notcorrect" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.RejectedBecauseWrong">
<label for="verse@(verse.VORder)_review_result_RejectedBecauseWrong">درست نیست</label><br>
<input type="radio" id="verse@(verse.VORder)_review_result_RejectedBecauseVariant" name="verse@(verse.VORder)_review_result" class="radio-variant" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.RejectedBecauseVariant">
<label for="verse@(verse.VORder)_review_result_RejectedBecauseVariant">مربوط به نسخهٔ دیگری است</label><br>
<input type="radio" id="verse@(verse.VORder)_review_result_RejectedBecauseUnnecessaryChange" name="verse@(verse.VORder)_review_result" class="radio-unnecessary" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.RejectedBecauseUnnecessaryChange">
<label for="verse@(verse.VORder)_review_result_RejectedBecauseUnnecessaryChange">تغییر سلیقه‌ای یا بی دلیل است</label><br>
<input type="radio" id="verse@(verse.VORder)_review_result_Rejected" name="verse@(verse.VORder)_review_result" class="radio-rejected" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.Rejected">
<label for="verse@(verse.VORder)_review_result_Rejected">به دلیل دیگری رد می‌شود</label><br>
<input type="text" id="verse@(verse.VORder)_review_note" name="verse@(verse.VORder)_review_note" value="" size="50" />
</td>
</tr>
}
@if (verse.LanguageId != null)
{
<tr>
<td>متن مصرع جهت تغییر زبان:</td>
<td>@verse.OriginalText</td>
</tr>
<tr>
<td>
@if (verse.OriginalLanguageId == null)
{
<text>
زبان پیشین مصرع: <p class="red-color">فارسی</p>
</text>
}
else
{
<text>
زبان پیشین مصرع: <p class="red-color">@Model.Languages.Where(l => l.Id == verse.OriginalLanguageId).Single().Name</p>
</text>
}
</td>
<td>
زبان پیشنهادی مصرع: <p class="green-color">@Model.Languages.Where(l => l.Id == verse.LanguageId).Single().Name</p>
</td>
</tr>
<tr>
<td colspan="2">
@if (verse.LanguageReviewResult == RMuseum.Models.Ganjoor.CorrectionReviewResult.NotChanged)
{
<input type="radio" id="verse-language@(verse.VORder)_review_result_Approved" name="verse-language@(verse.VORder)_review_result" class="radio-approved" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.Approved">
<label for="verse-language@(verse.VORder)_review_result_Approved">تأیید می‌شود</label>
<br>
<input type="radio" id="verse-language@(verse.VORder)_review_result_NotChanged" name="verse-language@(verse.VORder)_review_result" class="radio-notchanged" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.NotChanged" checked="checked">
}
else
{
<input type="radio" id="verse-language@(verse.VORder)_review_result_Approved" name="verse-language@(verse.VORder)_review_result" class="radio-approved" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.Approved" checked="checked">
<label for="verse-language@(verse.VORder)_review_result_Approved">تأیید می‌شود</label>
<br>
<input type="radio" id="verse-language@(verse.VORder)_review_result_NotChanged" name="verse-language@(verse.VORder)_review_result" class="radio-notchanged" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.NotChanged">
}
<label for="verse-language@(verse.VORder)_review_result_NotChanged">تغییری نکرده</label><br>
<input type="radio" id="verse-language@(verse.VORder)_review_result_RejectedBecauseWrong" name="verse-language@(verse.VORder)_review_result" class="radio-notcorrect" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.RejectedBecauseWrong">
<label for="verse-language@(verse.VORder)_review_result_RejectedBecauseWrong">درست نیست</label><br>
<input type="radio" id="verse-language@(verse.VORder)_review_result_Rejected" name="verse-language@(verse.VORder)_review_result" class="radio-rejected" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.Rejected">
<label for="verse-language@(verse.VORder)_review_result_Rejected">به دلیل دیگری رد می‌شود</label><br>
<input type="radio" id="verse-language@(verse.VORder)_review_result_NotSuggectedByUser" name="verse-language@(verse.VORder)_review_result" class="radio-bug" value="@RMuseum.Models.Ganjoor.CorrectionReviewResult.NotSuggestedByUser">
<label for="verse-language@(verse.VORder)_review_result_NotSuggectedByUser">اشکال نرم‌افزار گنجور</label><br>
</td>
</tr>
}
@if(verse.CoupletSummary != null)
{

View File

@ -51,6 +51,20 @@ namespace GanjooRazor.Areas.Admin.Pages
public string RhymeLetters { get; set; }
public GanjoorLanguage[] Languages { get; set; }
private async Task ReadLanguagesAsync(HttpClient secureClient)
{
HttpResponseMessage response = await secureClient.GetAsync($"{APIRoot.Url}/api/translations/languages");
if (!response.IsSuccessStatusCode)
{
FatalError = JsonConvert.DeserializeObject<string>(await response.Content.ReadAsStringAsync());
return;
}
Languages = JsonConvert.DeserializeObject<GanjoorLanguage[]>(await response.Content.ReadAsStringAsync());
}
public async Task<IActionResult> OnGetAsync()
{
if (string.IsNullOrEmpty(Request.Cookies["Token"]))
@ -76,6 +90,10 @@ namespace GanjooRazor.Areas.Admin.Pages
{
TotalCount = JsonConvert.DeserializeObject<PaginationMetadata>(paginnationMetadata).totalCount;
}
await ReadLanguagesAsync(secureClient);
Correction = JsonConvert.DeserializeObject<GanjoorPoemCorrectionViewModel>(await nextResponse.Content.ReadAsStringAsync());
if(Correction != null)
{
@ -131,6 +149,9 @@ namespace GanjooRazor.Areas.Admin.Pages
if (!verse.NewVerse)
{
verse.OriginalText = v.Text;
verse.OriginalCoupletSummary = v.CoupletSummary;
verse.OriginalLanguageId = v.LanguageId;
verse.OriginalVersePosition = v.VersePosition;
verse.CoupletIndex = v.CoupletIndex;
if(string.IsNullOrEmpty(verse.Text))
{
@ -138,7 +159,6 @@ namespace GanjooRazor.Areas.Admin.Pages
}
if(!string.IsNullOrEmpty(verse.CoupletSummary))
{
verse.OriginalCoupletSummary = v.CoupletSummary;
if(verse.CoupletSummary == verse.OriginalCoupletSummary)
{
verse.SummaryReviewResult = CorrectionReviewResult.NotChanged;
@ -200,6 +220,8 @@ namespace GanjooRazor.Areas.Admin.Pages
return Page();
}
public async Task<IActionResult> OnPostSendCorrectionsModerationAsync(int correctionId,
string titleReviewResult, string summaryReviewResult, string rhythmReviewResult, string rhythm2ReviewResult, string rhymeReviewResult,
string titleReviewNote, string[] verseReviewResult,