Browse Source

Added SetAsHomePage main functionality

pull/13635/head
malik masis 4 years ago
parent
commit
384fdab06e
  1. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/IPageAdminAppService.cs
  2. 11
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs
  3. 8
      modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Pages/PageAdminController.cs
  4. 11
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/index.js
  5. 8
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/wwwroot/client-proxies/cms-kit-admin-proxy.js
  6. 2
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/IPageRepository.cs
  7. 10
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/PageManager.cs
  8. 5
      modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Pages/EfCorePageRepository.cs
  9. 5
      modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Pages/MongoPageRepository.cs

3
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/IPageAdminAppService.cs

@ -1,11 +1,10 @@
using System;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp.Content;
namespace Volo.CmsKit.Admin.Pages;
public interface IPageAdminAppService : ICrudAppService<PageDto, PageDto, Guid, GetPagesInputDto, CreatePageInputDto, UpdatePageInputDto>
{
Task SetAsHomePageAsync(Guid id);
}

11
modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs

@ -1,12 +1,10 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using AutoMapper;
using Microsoft.AspNetCore.Authorization;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Data;
using Volo.Abp.GlobalFeatures;
using Volo.CmsKit.Admin.Menus;
using Volo.CmsKit.GlobalFeatures;
using Volo.CmsKit.Pages;
using Volo.CmsKit.Permissions;
@ -85,4 +83,13 @@ public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppServi
{
await PageRepository.DeleteAsync(id);
}
public virtual async Task SetAsHomePageAsync(Guid id)
{
await PageManager.SetHomePageAsFalseAsync(true);
var page = await PageRepository.GetAsync(id);
page.IsHomePage = true;
await PageRepository.UpdateAsync(page);
}
}

8
modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Pages/PageAdminController.cs

@ -5,7 +5,6 @@ using Microsoft.AspNetCore.Mvc;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
using Volo.Abp.GlobalFeatures;
using Volo.CmsKit.Admin.Menus;
using Volo.CmsKit.GlobalFeatures;
using Volo.CmsKit.Permissions;
@ -60,4 +59,11 @@ public class PageAdminController : CmsKitAdminController, IPageAdminAppService
{
return PageAdminAppService.DeleteAsync(id);
}
[HttpGet]
[Route("setashomepage/{id}")]
public virtual Task SetAsHomePageAsync(Guid id)
{
return PageAdminAppService.SetAsHomePageAsync(id);
}
}

11
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/index.js

@ -46,6 +46,17 @@ $(function (){
abp.notify.success(l('SuccessfullyDeleted'));
});
}
},
{
text: l('SetAsHomePage'),
visible: abp.auth.isGranted('CmsKit.Pages.Delete'),
action: function (data) {
pagesService
.setAsHomePage(data.record.id)
.then(function () {
abp.notify.success(l('SetAsHomePage'));
});
}
}
]
}

8
modules/cms-kit/src/Volo.CmsKit.Admin.Web/wwwroot/client-proxies/cms-kit-admin-proxy.js

@ -136,6 +136,14 @@
}, ajaxParams));
};
volo.cmsKit.admin.pages.pageAdmin.setAsHomePage = function(id, ajaxParams) {
return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/pages/setashomepage/' + id + '',
type: 'GET',
dataType: null
}, ajaxParams));
};
})();
// controller volo.cmsKit.admin.menus.menuItemAdmin

2
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/IPageRepository.cs

@ -22,4 +22,6 @@ public interface IPageRepository : IBasicRepository<Page, Guid>
Task<Page> FindBySlugAsync(string slug, CancellationToken cancellationToken = default);
Task<bool> ExistsAsync(string slug, CancellationToken cancellationToken = default);
Task<Page> FindByIsHomePageAsync(bool isHomePage, CancellationToken cancellationToken = default);
}

10
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/PageManager.cs

@ -45,6 +45,16 @@ public class PageManager : DomainService
}
}
public virtual async Task SetHomePageAsFalseAsync(bool isHomePage)
{
var page = await PageRepository.FindByIsHomePageAsync(isHomePage);
if (page is not null)
{
page.IsHomePage = false;
await PageRepository.UpdateAsync(page);
}
}
protected virtual async Task CheckPageSlugAsync(string slug)
{
if (await PageRepository.ExistsAsync(slug))

5
modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Pages/EfCorePageRepository.cs

@ -63,4 +63,9 @@ public class EfCorePageRepository : EfCoreRepository<ICmsKitDbContext, Page, Gui
Check.NotNullOrEmpty(slug, nameof(slug));
return await (await GetDbSetAsync()).AnyAsync(x => x.Slug == slug, GetCancellationToken(cancellationToken));
}
public virtual Task<Page> FindByIsHomePageAsync(bool isHomePage, CancellationToken cancellationToken = default)
{
return FindAsync(x => x.IsHomePage == isHomePage, cancellationToken: GetCancellationToken(cancellationToken));
}
}

5
modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Pages/MongoPageRepository.cs

@ -71,4 +71,9 @@ public class MongoPageRepository : MongoDbRepository<ICmsKitMongoDbContext, Page
return await (await GetMongoQueryableAsync(cancellationToken)).AnyAsync(x => x.Slug == slug,
GetCancellationToken(cancellationToken));
}
public virtual Task<Page> FindByIsHomePageAsync(bool isHomePage, CancellationToken cancellationToken = default)
{
return FindAsync(x => x.IsHomePage == isHomePage, cancellationToken: GetCancellationToken(cancellationToken));
}
}

Loading…
Cancel
Save