#458 unlink links

This commit is contained in:
Hamid Reza Mohammadi 2025-01-16 18:26:27 +03:30
parent d831843279
commit 8ff63db78e
32 changed files with 107 additions and 49 deletions

View File

@ -14,7 +14,7 @@
<meta name="robots" content="noindex, nofollow" />
<title>پیشنهاد اضافه شدن مصرع‌های جا افتاده</title>
<script src="/lib/jquery/dist/jquery.min.js"></script>
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
<style>
label {
width: 100px;

View File

@ -15,7 +15,7 @@
گنجور » نمایش خوانش
</title>
<link href="~/dist/skin/pink.flag/css/jplayer.pink.flag.min.css" rel="stylesheet" type="text/css" />
<link href="~/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="~/css/p8.css?version=78" rel="stylesheet" type="text/css" />
<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>
@ -150,7 +150,7 @@
</p>
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/js/bk.js?version=65"></script>
<script src="~/js/bk.js?version=66"></script>
<script src="~/js/jplayersupport.js"></script>
<script src="~/js/vaabd.js?version=10"></script>
<script src="~/dist/jplayer/jquery.jplayer.min.js"></script>

View File

@ -12,11 +12,11 @@
@ViewData["Title"]
</title>
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
<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=65"></script>
<script src="/js/bk.js?version=66"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -12,7 +12,7 @@
<meta name="robots" content="noindex, nofollow" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
<link href="/css/spotify.css" rel="stylesheet" type="text/css" />
<script src="/lib/jquery/dist/jquery.min.js"></script>

View File

@ -14,7 +14,7 @@
@ViewData["Title"]
</title>
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
<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" />

View File

@ -12,11 +12,11 @@
@ViewData["Title"]
</title>
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
<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=65"></script>
<script src="/js/bk.js?version=66"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -11,7 +11,7 @@
<meta name="robots" content="noindex, nofollow" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
<link href="/css/spotify.css" rel="stylesheet" type="text/css" />
<script src="/lib/jquery/dist/jquery.min.js"></script>
<script src="~/js/golha.js"></script>

View File

@ -14,11 +14,11 @@
@ViewData["Title"]
</title>
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
<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=65"></script>
<script src="/js/bk.js?version=66"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -12,11 +12,11 @@
<title>
@Html.Raw(ViewData["Title"])
</title>
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css">
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css">
<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=65"></script>
<script src="/js/bk.js?version=66"></script>
<script src="/js/jquery.mark.min.js"></script>
<script>
var cookieValue = getCookie("playerScrollLock");

View File

@ -11,6 +11,7 @@ using RMuseum.Models.Ganjoor;
using RMuseum.Models.Ganjoor.ViewModels;
using RMuseum.Models.GanjoorAudio;
using RMuseum.Models.GanjoorAudio.ViewModels;
using RMuseum.Models.PDFLibrary;
using RMuseum.Services.Implementation;
using System;
using System.Collections.Generic;
@ -1283,6 +1284,31 @@ namespace GanjooRazor.Pages
}
}
public async Task<ActionResult> OnDeleteRelatedImageLinkAsync(PoemRelatedImageType relatedImageType, Guid linkId)
{
using (HttpClient secureClient = new HttpClient())
{
if (await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response))
{
HttpResponseMessage response = await secureClient.DeleteAsync(
relatedImageType == PoemRelatedImageType.MuseumLink ?
$"{APIRoot.Url}/api/artifacts/ganjoor?linkId={linkId}"
:
$"{APIRoot.Url}/api/artifacts/pinterest?linkId={linkId}"
);
if (!response.IsSuccessStatusCode)
{
return new BadRequestObjectResult(JsonConvert.DeserializeObject<string>(await response.Content.ReadAsStringAsync()));
}
return new OkObjectResult(true);
}
else
{
return new BadRequestObjectResult("لطفاً از گنجور خارج و مجددا به آن وارد شوید.");
}
}
}
public async Task<ActionResult> OnGetCategoryRecitationsAsync(int catId)
{
var catTop1RecitationsQuery = await _httpClient.GetAsync($"{APIRoot.Url}/api/audio/cattop1/{catId}?includePoemText=false");

View File

@ -13,7 +13,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="robots" content="noindex, nofollow" />
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
</head>
<body class="bk-background">
<div id="hdr">

View File

@ -12,7 +12,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="سخنوران و نویسندگان گنجور روی نقشهٔ جغرافیایی" />
<meta charset="utf-8" />
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="/css/leaflet.css" />
<style>
.leaflet-container {
@ -23,7 +23,7 @@
font-family: 'Vazir'
}
</style>
<script src="/js/bk.js?version=65"></script>
<script src="/js/bk.js?version=66"></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

@ -11,11 +11,11 @@
<title>
@Html.Raw(ViewData["Title"])
</title>
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
<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=65"></script>
<script src="/js/bk.js?version=66"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -12,7 +12,7 @@
<meta name="robots" content="noindex, nofollow" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
<link href="/css/spotify.css" rel="stylesheet" type="text/css" />
<script src="/lib/jquery/dist/jquery.min.js"></script>

View File

@ -12,11 +12,11 @@
<title>
@Html.Raw(ViewData["Title"])
</title>
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
<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=65"></script>
<script src="/js/bk.js?version=66"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -12,7 +12,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="robots" content="noindex, nofollow" />
<title>اطلاعات رتبه‌بندی خوانش‌های شعر</title>
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
</head>
<body>

View File

@ -11,7 +11,7 @@
<meta name="robots" content="noindex, nofollow" />
<title>درخواست حذف حاشیه</title>
<script src="/lib/jquery/dist/jquery.min.js"></script>
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
<style>
label {
width: 100px;

View File

@ -13,7 +13,7 @@
<meta name="robots" content="noindex, nofollow" />
<title>گنجور » گزارش خطا در خوانش</title>
<script src="/lib/jquery/dist/jquery.min.js"></script>
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
<link href="~/dist/skin/pink.flag/css/jplayer.pink.flag.min.css" rel="stylesheet" type="text/css" />
<style>
label {
@ -238,7 +238,7 @@
<script src="~/js/bk.js?version=65"></script>
<script src="~/js/bk.js?version=66"></script>
<script src="~/js/jplayersupport.js"></script>
<script src="~/js/vaabd.js?version=10"></script>
<script src="~/dist/jplayer/jquery.jplayer.min.js"></script>

View File

@ -11,7 +11,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="robots" content="noindex, nofollow" />
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
</head>
<body class="bk-background">
<div id="hdr">

View File

@ -17,11 +17,11 @@
@ViewData["Title"]
</title>
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
<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=65"></script>
<script src="/js/bk.js?version=66"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -10,7 +10,7 @@
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
<link rel="stylesheet" href="~/css/site.css" />
<link href="/dist/skin/blue.monday/css/jplayer.blue.monday.min.css" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
<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>
@ -35,7 +35,7 @@
});
</script>
<script src="/js/bk.js?version=65"></script>
<script src="/js/bk.js?version=66"></script>
<script>
function editBanner(bannerId) {
var url = '?handler=Edit';

View File

@ -9,7 +9,7 @@
</title>
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
<link rel="stylesheet" href="~/css/site.css" />
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
<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>
@ -32,7 +32,7 @@
});
</script>
<script src="/lib/diff.js"></script>
<script src="/js/bk.js?version=65"></script>
<script src="/js/bk.js?version=66"></script>
<script>
function compareCorrectionBlocks(originalElemenyId, editedElementId, resultElementId) {
var a = document.getElementById(originalElemenyId);

View File

@ -12,7 +12,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="robots" content="noindex, nofollow" />
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
</head>
<body class="bk-background">
<div id="hdr">

View File

@ -13,11 +13,11 @@
@ViewData["Title"]
</title>
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
<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=65"></script>
<script src="/js/bk.js?version=66"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -12,7 +12,7 @@
<meta name="robots" content="noindex, nofollow" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
<link href="/css/spotify.css" rel="stylesheet" type="text/css" />
<script src="/lib/jquery/dist/jquery.min.js"></script>

View File

@ -14,11 +14,11 @@
@ViewData["Title"]
</title>
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
<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=65"></script>
<script src="/js/bk.js?version=66"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -14,7 +14,7 @@
گنجور » برگردان‌ها و نویس‌های شعر
</title>
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<link href="~/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="~/css/p8.css?version=78" rel="stylesheet" type="text/css" />
<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" />
</head>

View File

@ -656,6 +656,10 @@
</div>
</div>
</a>
@if (Model.CanEdit)
{
<a onclick="deleteRelatedImage(@((int)image.PoemRelatedImageType), '@image.Id', '@image.AltText')" class="pagebutton comments-link">حذف این ارتباط<i class="notranslate info-buttons delete-icon"></i></a>
}
</div>
</div>
@ -669,6 +673,10 @@
<img src="@Html.Raw(image.ThumbnailImageUrl)" alt="@image.AltText" loading="lazy" class="related-image">
</a>
<div class="related-image-is-text-source"><a target="_blank" href="@Html.Raw(image.TargetPageUrl)">@image.AltText.ToPersianNumbers()</a></div>
@if (Model.CanEdit)
{
<a onclick="deleteRelatedImage(@((int)image.PoemRelatedImageType), '@image.Id', '@image.AltText')" class="pagebutton comments-link">حذف این ارتباط<i class="notranslate info-buttons delete-icon"></i></a>
}
</div>
}
</div>

View File

@ -14,7 +14,7 @@
@ViewData["Title"]
</title>
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
<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" />

View File

@ -15,7 +15,7 @@
@ViewData["Title"]
</title>
<link href="/css/p8.css?version=77" rel="stylesheet" type="text/css" />
<link href="/css/p8.css?version=78" rel="stylesheet" type="text/css" />
<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" />

View File

@ -423,7 +423,7 @@ function switchBookmark(poemId, coupletIndex, divSuffix) {
type: "GET",
url: '?Handler=PoemBookmarks&poemId=' + String(poemId),
error: function (err) {
console.log(err);
alert(err);
},
success: function (bookmarks) {
for (var i = 0; i < bookmarks.length; i++) {
@ -511,7 +511,7 @@ function checkIfBookmarked(poemId) {
type: "GET",
url: '?Handler=PoemBookmarks&poemId=' + String(poemId),
error: function (err) {
console.log(err);
alert(err);
},
success: function (bookmarks) {
var isBookmarked = false;
@ -595,7 +595,7 @@ async function webSharePoem() {
try {
await navigator.share({ title, text, url });
} catch (error) {
console.log('Error sharing: ' + error);
alert('Error sharing: ' + error);
}
}
@ -645,7 +645,7 @@ async function webShareCouplet(coupletIndex) {
await navigator.share({ title, text, url });
} catch (error) {
alert('از همرسانی روی مرورگر جاری شما پشتیبانی نمی‌شود.')
console.log('Error sharing: ' + error);
alert('Error sharing: ' + error);
}
}
@ -1031,7 +1031,7 @@ function MarkUserUpvotedRecitations(poemId) {
type: "GET",
url: '?Handler=UserUpvotedRecitations&poemId=' + String(poemId),
error: function (err) {
console.log(err);
alert(err);
},
success: function (result) {
for (var i = 0; i < result.length; i++) {
@ -1078,7 +1078,7 @@ function AddToMyHistory(poemId) {
type: "POST",
url: '?Handler=AddToMyHistory&poemId=' + String(poemId),
error: function (err) {
console.log(err);
alert(err);
},
});
}, 1);
@ -1090,7 +1090,7 @@ function CheckIfHasNotificationsForHomePage() {
type: "GET",
url: '?Handler=CheckIfHasNotifications',
error: function (err) {
console.log(err);
alert(err);
},
success: function (result) {
if (result != '') {
@ -1549,6 +1549,28 @@ function markAsTextOriginal(bookId, categoryId, bookName, catName) {
});
}
function deleteRelatedImage(relatedImageType, linkId, altText) {
if (!confirm('آیا از قطع ارتباط ' + altText + ' با این بخش اطمینان دارید؟'))
return;
var url = '?handler=RelatedImageLink';
$.ajax({
type: "DELETE",
url: url,
data: {
relatedImageType: relatedImageType,
linkId: linkId
},
error: function (err) {
alert(err);
},
success: function () {
alert('انجام شد.');
location.reload();
},
});
}
function reloadWordCounts(catId, poetId, remStopWords) {
var divParent = document.getElementById('wordcounts-placeholder');
divParent.innerHTML = '<div id="wordcounts-placeholder"><div>';

View File

@ -3069,6 +3069,7 @@ namespace RMuseum.Services.Implementation
.Where(l => l.Id == id)
.SingleAsync();
_context.Remove(link);
await _context.SaveChangesAsync();
return new RServiceResult<bool>(true);
}
catch (Exception exp)
@ -3477,6 +3478,7 @@ namespace RMuseum.Services.Implementation
.Where(l => l.Id == id)
.SingleAsync();
_context.Remove(link);
await _context.SaveChangesAsync();
return new RServiceResult<bool>(true);
}
catch (Exception exp)