#416 delete approved mistakes

This commit is contained in:
Hamid Reza Mohammadi 2023-12-12 16:58:33 +03:30
parent eb0612764a
commit 6323e70cb0
18 changed files with 74 additions and 18 deletions

View File

@ -150,7 +150,7 @@
</p>
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/js/bk.js?version=45"></script>
<script src="~/js/bk.js?version=46"></script>
<script src="~/js/jplayersupport.js"></script>
<script src="~/js/vaabd.js?version=6"></script>
<script src="~/dist/jplayer/jquery.jplayer.min.js"></script>

View File

@ -16,7 +16,7 @@
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link rel="search" type="application/opensearchdescription+xml" title="گنجور" href="https://ganjoor.net/search.xml" />
<script src="/lib/jquery/dist/jquery.min.js"></script>
<script src="/js/bk.js?version=45"></script>
<script src="/js/bk.js?version=46"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -16,7 +16,7 @@
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link rel="search" type="application/opensearchdescription+xml" title="گنجور" href="https://ganjoor.net/search.xml" />
<script src="/lib/jquery/dist/jquery.min.js"></script>
<script src="/js/bk.js?version=45"></script>
<script src="/js/bk.js?version=46"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -18,7 +18,7 @@
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link rel="search" type="application/opensearchdescription+xml" title="گنجور" href="https://ganjoor.net/search.xml" />
<script src="/lib/jquery/dist/jquery.min.js"></script>
<script src="/js/bk.js?version=45"></script>
<script src="/js/bk.js?version=46"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -16,7 +16,7 @@
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon">
<link rel="search" type="application/opensearchdescription+xml" title="گنجور" href="https://ganjoor.net/search.xml">
<script src="/lib/jquery/dist/jquery.min.js"></script>
<script src="/js/bk.js?version=45"></script>
<script src="/js/bk.js?version=46"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -94,7 +94,7 @@ namespace GanjooRazor.Pages
};
}
public _AudioPlayerPartialModel GetRecitationsModel(PublicRecitationViewModel[] recitations, bool minimumControls, RecitationType recitationType)
public _AudioPlayerPartialModel GetRecitationsModel(PublicRecitationViewModel[] recitations, bool minimumControls, RecitationType recitationType, bool isAdmin)
{
return new _AudioPlayerPartialModel()
{
@ -103,6 +103,7 @@ namespace GanjooRazor.Pages
ShowAllRecitaions = minimumControls ? true : ShowAllRecitaions,
CategoryMode = minimumControls,
RecitationType = recitationType,
IsAdmin = isAdmin,
};
}
@ -1107,5 +1108,26 @@ namespace GanjooRazor.Pages
}
return new JsonResult(true);
}
public async Task<IActionResult> OnDeleteMistakeAsync(int id)
{
using (HttpClient secureClient = new HttpClient())
{
if (await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response))
{
var response = await secureClient.DeleteAsync($"{APIRoot.Url}/api/audio/errors/approved/{id}");
if (response.StatusCode != HttpStatusCode.OK)
{
return new BadRequestObjectResult(JsonConvert.DeserializeObject<string>(await response.Content.ReadAsStringAsync()));
}
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
}
}
return new JsonResult(true);
}
}
}

View File

@ -23,7 +23,7 @@
font-family: 'Vazir'
}
</style>
<script src="/js/bk.js?version=45"></script>
<script src="/js/bk.js?version=46"></script>
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="~/js/leaflet.js"></script>
<script src="~/js/leaflet-providers.js"></script>

View File

@ -15,7 +15,7 @@
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link rel="search" type="application/opensearchdescription+xml" title="گنجور" href="https://ganjoor.net/search.xml" />
<script src="/lib/jquery/dist/jquery.min.js"></script>
<script src="/js/bk.js?version=45"></script>
<script src="/js/bk.js?version=46"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -238,7 +238,7 @@
<script src="~/js/bk.js?version=45"></script>
<script src="~/js/bk.js?version=46"></script>
<script src="~/js/jplayersupport.js"></script>
<script src="~/js/vaabd.js?version=6"></script>
<script src="~/dist/jplayer/jquery.jplayer.min.js"></script>

View File

@ -21,7 +21,7 @@
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link rel="search" type="application/opensearchdescription+xml" title="گنجور" href="https://ganjoor.net/search.xml" />
<script src="/lib/jquery/dist/jquery.min.js"></script>
<script src="/js/bk.js?version=45"></script>
<script src="/js/bk.js?version=46"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -35,7 +35,7 @@
});
</script>
<script src="/js/bk.js?version=45"></script>
<script src="/js/bk.js?version=46"></script>
<script>
function editBanner(bannerId) {
var url = '?handler=Edit';

View File

@ -32,7 +32,7 @@
});
</script>
<script src="/lib/diff.js"></script>
<script src="/js/bk.js?version=45"></script>
<script src="/js/bk.js?version=46"></script>
<script>
function compareCorrectionBlocks(originalElemenyId, editedElementId, resultElementId) {
var a = document.getElementById(originalElemenyId);

View File

@ -17,7 +17,7 @@
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link rel="search" type="application/opensearchdescription+xml" title="گنجور" href="https://ganjoor.net/search.xml" />
<script src="/lib/jquery/dist/jquery.min.js"></script>
<script src="/js/bk.js?version=45"></script>
<script src="/js/bk.js?version=46"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -18,7 +18,7 @@
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link rel="search" type="application/opensearchdescription+xml" title="گنجور" href="https://ganjoor.net/search.xml" />
<script src="/lib/jquery/dist/jquery.min.js"></script>
<script src="/js/bk.js?version=45"></script>
<script src="/js/bk.js?version=46"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -58,7 +58,7 @@
</div>
@foreach (var mistake in recitaion.Mistakes)
{
<div class="recitaion-mistake">
<div class="recitaion-mistake" id="mistake-@mistake.Id">
<p>
@if (mistake.CoupletIndex != -1)
{
@ -66,6 +66,10 @@
}
@Html.Raw(mistake.Mistake.Replace("\r\n", "<br>"))
</p>
@if(Model.IsAdmin)
{
<a role="button" onclick="deleteMistake(@mistake.Id)" class="w3tooltip"><i class="pageicons">delete</i><span class="w3tooltiptext">حذف خطا</span></a>
}
</div>
}
</div>

View File

@ -1,12 +1,19 @@
using Microsoft.AspNetCore.Mvc.RazorPages;
using GanjooRazor.Utils;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Newtonsoft.Json;
using RMuseum.Models.GanjoorAudio;
using RMuseum.Models.GanjoorAudio.ViewModels;
using System.Net.Http;
using System.Net;
using System.Threading.Tasks;
namespace GanjooRazor.Pages
{
public class _AudioPlayerPartialModel : PageModel
{
public bool LoggedIn { get; set; }
public bool IsAdmin { get; set; }
public PublicRecitationViewModel[] Recitations { get; set; }
public bool ShowAllRecitaions { get; set; }
public bool CategoryMode { get; set; }
@ -41,5 +48,7 @@ namespace GanjooRazor.Pages
{
return ShowAllRecitaions || (recitationIndex < 5) ? "audio-player" : "hidden-recitation";
}
}
}

View File

@ -599,7 +599,7 @@
@(Model.GanjoorPage.Poem.Recitations.Where(a => a.RecitationType == RMuseum.Models.GanjoorAudio.RecitationType.Normal).Count() > 1 ? "خوانش‌ها" : "خوانش") <a role="button" class="w3tooltip cursor-pointer" onclick="switch_section('recitations-section', 'recitations-collapse-button')"><i class="info-buttons expand_circle_down" id="recitations-collapse-button"></i><span class="w3tooltiptext">جمع شود / باز شود</span></a>
</div>
<div id="recitations-section">
<partial name="_AudioPlayerPartial" model=@Model.GetRecitationsModel(Model.GanjoorPage.Poem.Recitations, false, RMuseum.Models.GanjoorAudio.RecitationType.Normal) />
<partial name="_AudioPlayerPartial" model=@Model.GetRecitationsModel(Model.GanjoorPage.Poem.Recitations, false, RMuseum.Models.GanjoorAudio.RecitationType.Normal, Model.CanEdit) />
</div>
</div>
}
@ -611,7 +611,7 @@
@(Model.GanjoorPage.Poem.Recitations.Where(a => a.RecitationType == RMuseum.Models.GanjoorAudio.RecitationType.Commentary).Count() > 1 ? "شرح‌‌های صوتی" : "شرح صوتی") <a role="button" class="w3tooltip cursor-pointer" onclick="switch_section('commentaries-section', 'commentaries-collapse-button')"><i class="info-buttons expand_circle_down" id="commentaries-collapse-button"></i><span class="w3tooltiptext">جمع شود / باز شود</span></a>
</div>
<div id="commentaries-section">
<partial name="_AudioPlayerPartial" model=@Model.GetRecitationsModel(Model.GanjoorPage.Poem.Recitations, false, RMuseum.Models.GanjoorAudio.RecitationType.Commentary) />
<partial name="_AudioPlayerPartial" model=@Model.GetRecitationsModel(Model.GanjoorPage.Poem.Recitations, false, RMuseum.Models.GanjoorAudio.RecitationType.Commentary, Model.CanEdit) />
</div>
</div>
}

View File

@ -754,6 +754,27 @@ function deleteMyComment(commentId, coupletIndex) {
},
});
}
function deleteMistake(mistakeId) {
if (!confirm('آیا از حذف این اشکال اطمینان دارید؟'))
return;
var url = '?handler=Mistake';
$.ajax({
type: "DELETE",
url: url,
data: {
id: mistakeId
},
success: function () {
var commentBlockId = '#mistake-' + mistakeId;
if ($(commentBlockId) != null) {
$(commentBlockId).remove();
}
},
});
}
function editMyComment(commentId, coupletIndex) {