diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/IBlogPostAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/IBlogPostAdminAppService.cs index 314b7a1def..23562020d4 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/IBlogPostAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/IBlogPostAdminAppService.cs @@ -1,4 +1,5 @@ using System; +using System.Threading.Tasks; using Volo.Abp.Application.Services; namespace Volo.CmsKit.Admin.Blogs; @@ -12,4 +13,5 @@ public interface IBlogPostAdminAppService CreateBlogPostDto, UpdateBlogPostDto> { + Task RemoveCoverImageAsync(Guid id); } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogPostAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogPostAdminAppService.cs index 83899199f0..d463f8dcb1 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogPostAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogPostAdminAppService.cs @@ -6,6 +6,7 @@ using Volo.Abp.Application.Dtos; using Volo.Abp.Data; using Volo.Abp.GlobalFeatures; using Volo.Abp.Users; +using Volo.CmsKit.Admin.MediaDescriptors; using Volo.CmsKit.Blogs; using Volo.CmsKit.GlobalFeatures; using Volo.CmsKit.Permissions; @@ -22,16 +23,20 @@ public class BlogPostAdminAppService : CmsKitAppServiceBase, IBlogPostAdminAppSe protected IBlogRepository BlogRepository { get; } protected ICmsUserLookupService UserLookupService { get; } + protected IMediaDescriptorAdminAppService MediaDescriptorAdminAppService { get; } + public BlogPostAdminAppService( BlogPostManager blogPostManager, IBlogPostRepository blogPostRepository, IBlogRepository blogRepository, - ICmsUserLookupService userLookupService) + ICmsUserLookupService userLookupService, + IMediaDescriptorAdminAppService mediaDescriptorAdminAppService) { BlogPostManager = blogPostManager; BlogPostRepository = blogPostRepository; BlogRepository = blogRepository; UserLookupService = userLookupService; + MediaDescriptorAdminAppService = mediaDescriptorAdminAppService; } [Authorize(CmsKitAdminPermissions.BlogPosts.Create)] @@ -109,4 +114,18 @@ public class BlogPostAdminAppService : CmsKitAppServiceBase, IBlogPostAdminAppSe { await BlogPostRepository.DeleteAsync(id); } -} + + [Authorize(CmsKitAdminPermissions.BlogPosts.Update)] + public virtual async Task RemoveCoverImageAsync(Guid id) + { + var blogPost = await BlogPostRepository.GetAsync(id); + if (blogPost?.CoverImageMediaId == null) + { + return; + } + + await MediaDescriptorAdminAppService.DeleteAsync(blogPost.CoverImageMediaId.Value); + + blogPost.CoverImageMediaId = null; + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/ClientProxies/BlogPostAdminClientProxy.Generated.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/ClientProxies/BlogPostAdminClientProxy.Generated.cs index 560ba4e2de..0f201fb469 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/ClientProxies/BlogPostAdminClientProxy.Generated.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/ClientProxies/BlogPostAdminClientProxy.Generated.cs @@ -55,4 +55,12 @@ public partial class BlogPostAdminClientProxy : ClientProxyBase
- @if (Model.ViewModel.CoverImageMediaId != null) - { - -
- } - - +
+ @if (Model.ViewModel.CoverImageMediaId != null) + { + +
+ +
+ } +
+ +
diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/update.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/update.js index 5902dc111b..65e9c89146 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/update.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/update.js @@ -10,6 +10,7 @@ $(function () { var $blogPostIdInput = $('#Id'); var $tagsInput = $('.tag-editor-form input[name=tags]'); var $fileInput = $('#BlogPostCoverImage'); + var $buttonRemoveCoverImage = $('#button-remove-cover-image'); var UPPY_FILE_ID = "uppy-upload-file"; @@ -152,7 +153,6 @@ $(function () { } } - // ----------------------------------- var fileUploadUri = "/api/cms-kit-admin/media/blogpost"; var fileUriPrefix = "/api/cms-kit/media/"; @@ -225,4 +225,20 @@ $(function () { } }); } + + $buttonRemoveCoverImage.on('click', function () { + abp.message.confirm( + l('RemoveCoverImageConfirmationMessage'), + function (isConfirmed) { + if (isConfirmed) { + volo.cmsKit.admin.blogs.blogPostAdmin + .removeCoverImage($blogPostIdInput.val()) + .then(function () { + $coverImage.val(null); + $('#CurrentCoverImageArea').remove(); + }); + } + } + ); + }); }); diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/wwwroot/client-proxies/cms-kit-admin-proxy.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/wwwroot/client-proxies/cms-kit-admin-proxy.js index 0a1424d92a..9bce6416a3 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/wwwroot/client-proxies/cms-kit-admin-proxy.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/wwwroot/client-proxies/cms-kit-admin-proxy.js @@ -391,6 +391,14 @@ }, ajaxParams)); }; + volo.cmsKit.admin.blogs.blogPostAdmin.removeCoverImage = function(id, ajaxParams) { + return abp.ajax($.extend(true, { + url: abp.appPath + 'api/cms-kit-admin/blogs/blog-posts/removeCoverImage/' + id + '', + type: 'DELETE', + dataType: null + }, ajaxParams)); + }; + })(); })(); diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json index 0dd826480d..8cbd7ef946 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json @@ -164,6 +164,7 @@ "GlobalResources": "Global Resources", "Script": "Script", "Style": "Style", - "SavedSuccessfully": "Saved successfully" + "SavedSuccessfully": "Saved successfully", + "RemoveCoverImageConfirmationMessage": "Are you sure to remove the cover image?" } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json index 95ef414c17..90b10f153c 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json @@ -163,6 +163,7 @@ "GlobalResources": "Global Kaynaklar", "Script": "Script", "Style": "Style", - "SavedSuccessfully": "Başarıyla kaydedildi" + "SavedSuccessfully": "Başarıyla kaydedildi", + "RemoveCoverImageConfirmationMessage": "Kapak resmini kaldırmak istediğinize emin misiniz?" } }