Browse Source

CmsKit: Global resources cont.

pull/11705/head
Yunus Emre Kalkan 4 years ago
parent
commit
0ed856b862
  1. 2115
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20220224094624_Added_GlobalResources.Designer.cs
  2. 81
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20220224094624_Added_GlobalResources.cs
  3. 65
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs
  4. 2
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/appsettings.json
  5. 6
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/GlobalResourceUpdateDto.cs
  6. 8
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/GlobalResourcesDto.cs
  7. 13
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/IGlobalResourceAdminAppService.cs
  8. 5
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissions.cs
  9. 39
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/GlobalResources/GlobalResourceAdminAppService.cs
  10. 7
      modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/ClientProxies/GlobalResourcesAdminClientProxy.cs
  11. 39
      modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/GlobalResources/GlobalResourceAdminController.cs
  12. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs
  13. 8
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Menus/CmsKitAdminMenuContributor.cs
  14. 5
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Menus/CmsKitAdminMenus.cs
  15. 40
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/GlobalResources/Index.cshtml
  16. 30
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/GlobalResources/Index.cshtml.cs
  17. 13
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/GlobalResources/index.js
  18. 4
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/GlobalResources/GlobalResourceManager.cs

2115
modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20220224094624_Added_GlobalResources.Designer.cs

File diff suppressed because it is too large

81
modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/20220224094624_Added_GlobalResources.cs

@ -0,0 +1,81 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Volo.CmsKit.Migrations
{
public partial class Added_GlobalResources : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<string>(
name: "TenantName",
table: "AbpAuditLogs",
type: "nvarchar(64)",
maxLength: 64,
nullable: true,
oldClrType: typeof(string),
oldType: "nvarchar(max)",
oldNullable: true);
migrationBuilder.AddColumn<string>(
name: "ImpersonatorTenantName",
table: "AbpAuditLogs",
type: "nvarchar(64)",
maxLength: 64,
nullable: true);
migrationBuilder.AddColumn<string>(
name: "ImpersonatorUserName",
table: "AbpAuditLogs",
type: "nvarchar(256)",
maxLength: 256,
nullable: true);
migrationBuilder.CreateTable(
name: "CmsGlobalResources",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
Name = table.Column<string>(type: "nvarchar(128)", maxLength: 128, nullable: false),
Value = table.Column<string>(type: "nvarchar(max)", maxLength: 2147483647, nullable: false),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
ExtraProperties = table.Column<string>(type: "nvarchar(max)", nullable: true),
ConcurrencyStamp = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_CmsGlobalResources", x => x.Id);
});
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "CmsGlobalResources");
migrationBuilder.DropColumn(
name: "ImpersonatorTenantName",
table: "AbpAuditLogs");
migrationBuilder.DropColumn(
name: "ImpersonatorUserName",
table: "AbpAuditLogs");
migrationBuilder.AlterColumn<string>(
name: "TenantName",
table: "AbpAuditLogs",
type: "nvarchar(max)",
nullable: true,
oldClrType: typeof(string),
oldType: "nvarchar(64)",
oldMaxLength: 64,
oldNullable: true);
}
}
}

65
modules/cms-kit/host/Volo.CmsKit.Web.Unified/Migrations/UnifiedDbContextModelSnapshot.cs

@ -98,16 +98,28 @@ namespace Volo.CmsKit.Migrations
.HasColumnType("uniqueidentifier")
.HasColumnName("ImpersonatorTenantId");
b.Property<string>("ImpersonatorTenantName")
.HasMaxLength(64)
.HasColumnType("nvarchar(64)")
.HasColumnName("ImpersonatorTenantName");
b.Property<Guid?>("ImpersonatorUserId")
.HasColumnType("uniqueidentifier")
.HasColumnName("ImpersonatorUserId");
b.Property<string>("ImpersonatorUserName")
.HasMaxLength(256)
.HasColumnType("nvarchar(256)")
.HasColumnName("ImpersonatorUserName");
b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier")
.HasColumnName("TenantId");
b.Property<string>("TenantName")
.HasColumnType("nvarchar(max)");
.HasMaxLength(64)
.HasColumnType("nvarchar(64)")
.HasColumnName("TenantName");
b.Property<string>("Url")
.HasMaxLength(256)
@ -1402,6 +1414,57 @@ namespace Volo.CmsKit.Migrations
b.ToTable("CmsComments", (string)null);
});
modelBuilder.Entity("Volo.CmsKit.GlobalResources.GlobalResource", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<string>("ConcurrencyStamp")
.IsConcurrencyToken()
.HasMaxLength(40)
.HasColumnType("nvarchar(40)")
.HasColumnName("ConcurrencyStamp");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime2")
.HasColumnName("CreationTime");
b.Property<Guid?>("CreatorId")
.HasColumnType("uniqueidentifier")
.HasColumnName("CreatorId");
b.Property<string>("ExtraProperties")
.HasColumnType("nvarchar(max)")
.HasColumnName("ExtraProperties");
b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime2")
.HasColumnName("LastModificationTime");
b.Property<Guid?>("LastModifierId")
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(128)
.HasColumnType("nvarchar(128)");
b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier")
.HasColumnName("TenantId");
b.Property<string>("Value")
.IsRequired()
.HasMaxLength(2147483647)
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("CmsGlobalResources", (string)null);
});
modelBuilder.Entity("Volo.CmsKit.MediaDescriptors.MediaDescriptor", b =>
{
b.Property<Guid>("Id")

2
modules/cms-kit/host/Volo.CmsKit.Web.Unified/appsettings.json

@ -1,5 +1,5 @@
{
"ConnectionStrings": {
"Default": "Server=(localdb)\\.\\MSSQLLocalDB;Database=CmsKit_Unified;Trusted_Connection=True"
"Default": "Server=localhost;Database=CmsKit_Unified;Trusted_Connection=True"
}
}

6
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/GlobalResourceUpdateDto.cs

@ -0,0 +1,6 @@
namespace Volo.CmsKit.Admin.GlobalResources;
public class GlobalResourceUpdateDto
{
public string Value { get; set; }
}

8
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/GlobalResourcesDto.cs

@ -0,0 +1,8 @@
namespace Volo.CmsKit.Admin.GlobalResources;
public class GlobalResourcesDto
{
public string StyleContent { get; set; }
public string ScriptContent { get; set; }
}

13
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/IGlobalResourceAdminAppService.cs

@ -0,0 +1,13 @@
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
namespace Volo.CmsKit.Admin.GlobalResources;
public interface IGlobalResourceAdminAppService : IApplicationService
{
Task<GlobalResourcesDto> GetAsync();
Task SetGlobalStyleAsync(GlobalResourceUpdateDto input);
Task SetGlobalScriptAsync(GlobalResourceUpdateDto input);
}

5
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissions.cs

@ -60,4 +60,9 @@ public class CmsKitAdminPermissions
public const string Update = Default + ".Update";
public const string Delete = Default + ".Delete";
}
public static class GlobalResources
{
public const string Default = GroupName + ".Menus";
}
}

39
modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/GlobalResources/GlobalResourceAdminAppService.cs

@ -0,0 +1,39 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Volo.Abp.Application.Services;
using Volo.Abp.GlobalFeatures;
using Volo.CmsKit.GlobalFeatures;
using Volo.CmsKit.GlobalResources;
using Volo.CmsKit.Permissions;
namespace Volo.CmsKit.Admin.GlobalResources;
[RequiresGlobalFeature(typeof(GlobalResourcesFeature))]
[Authorize(CmsKitAdminPermissions.GlobalResources.Default)]
public class GlobalResourceAdminAppService : ApplicationService, IGlobalResourceAdminAppService
{
public GlobalResourceManager GlobalResourceManager { get; }
public GlobalResourceAdminAppService(GlobalResourceManager globalResourceManager)
{
GlobalResourceManager = globalResourceManager;
}
public async Task<GlobalResourcesDto> GetAsync()
{
return new GlobalResourcesDto {
StyleContent = (await GlobalResourceManager.GetGlobalStyleAsync()).Value,
ScriptContent = (await GlobalResourceManager.GetGlobalScriptAsync()).Value
};
}
public async Task SetGlobalStyleAsync(GlobalResourceUpdateDto input)
{
await GlobalResourceManager.SetGlobalStyleAsync(input.Value);
}
public async Task SetGlobalScriptAsync(GlobalResourceUpdateDto input)
{
await GlobalResourceManager.SetGlobalScriptAsync(input.Value);
}
}

7
modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/ClientProxies/GlobalResourcesAdminClientProxy.cs

@ -0,0 +1,7 @@
// This file is part of GlobalResourcesAdminClientProxy, you can customize it here
// ReSharper disable once CheckNamespace
namespace Volo.CmsKit.Admin.Menus.ClientProxies;
public partial class GlobalResourcesAdminClientProxy
{
}

39
modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/GlobalResources/GlobalResourceAdminController.cs

@ -0,0 +1,39 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp;
using Volo.Abp.GlobalFeatures;
using Volo.CmsKit.GlobalFeatures;
using Volo.CmsKit.Permissions;
namespace Volo.CmsKit.Admin.GlobalResources;
[RequiresGlobalFeature(typeof(GlobalResourcesFeature))]
[RemoteService(Name = CmsKitAdminRemoteServiceConsts.RemoteServiceName)]
[Area(CmsKitAdminRemoteServiceConsts.ModuleName)]
[Authorize(CmsKitAdminPermissions.Menus.Default)]
[Route("api/cms-kit-admin/global-resources")]
public class GlobalResourceAdminController: CmsKitAdminController, IGlobalResourceAdminAppService
{
private readonly IGlobalResourceAdminAppService _globalResourceAdminAppService;
public GlobalResourceAdminController(IGlobalResourceAdminAppService globalResourceAdminAppService)
{
_globalResourceAdminAppService = globalResourceAdminAppService;
}
public Task<GlobalResourcesDto> GetAsync()
{
return _globalResourceAdminAppService.GetAsync();
}
public Task SetGlobalStyleAsync(GlobalResourceUpdateDto input)
{
return _globalResourceAdminAppService.SetGlobalStyleAsync(input);
}
public Task SetGlobalScriptAsync(GlobalResourceUpdateDto input)
{
return _globalResourceAdminAppService.SetGlobalScriptAsync(input);
}
}

2
modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs

@ -76,6 +76,7 @@ public class CmsKitAdminWebModule : AbpModule
options.Conventions.AuthorizePage("/CmsKit/Menus/MenuItems/CreateModal", CmsKitAdminPermissions.Menus.Create);
options.Conventions.AuthorizePage("/CmsKit/Menus/MenuItems/UpdateModal", CmsKitAdminPermissions.Menus.Update);
options.Conventions.AuthorizeFolder("/CmsKit/Menus/MenuItems", CmsKitAdminPermissions.Menus.Update);
options.Conventions.AuthorizeFolder("/CmsKit/GlobalResources", CmsKitAdminPermissions.GlobalResources.Default);
});
Configure<RazorPagesOptions>(options =>
@ -91,6 +92,7 @@ public class CmsKitAdminWebModule : AbpModule
options.Conventions.AddPageRoute("/CmsKit/Comments/Index", "/Cms/Comments");
options.Conventions.AddPageRoute("/CmsKit/Comments/Details", "/Cms/Comments/{Id}");
options.Conventions.AddPageRoute("/CmsKit/Menus/MenuItems/Index", "/Cms/Menus/Items");
options.Conventions.AddPageRoute("/CmsKit/GlobalResources/Index", "/Cms/GlobalResources");
});
Configure<AbpPageToolbarOptions>(options =>

8
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Menus/CmsKitAdminMenuContributor.cs

@ -79,6 +79,14 @@ public class CmsKitAdminMenuContributor : IMenuContributor
.RequireGlobalFeatures(typeof(MenuFeature))
.RequirePermissions(CmsKitAdminPermissions.Menus.Default));
cmsMenus.Add(new ApplicationMenuItem(
CmsKitAdminMenus.GlobalResources.GlobalResourcesMenu,
l["GlobalResources"],
"/Cms/GlobalResources",
"fa fa-memo")
.RequireGlobalFeatures(typeof(GlobalResourcesFeature))
.RequirePermissions(CmsKitAdminPermissions.GlobalResources.Default));
if (cmsMenus.Any())
{
var cmsMenu = context.Menu.FindMenuItem(CmsKitAdminMenus.GroupName);

5
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Menus/CmsKitAdminMenus.cs

@ -33,4 +33,9 @@ public class CmsKitAdminMenus
{
public const string MenusMenu = GroupName + ".Menus";
}
public static class GlobalResources
{
public const string GlobalResourcesMenu = GroupName + ".GlobalResources";
}
}

40
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/GlobalResources/Index.cshtml

@ -0,0 +1,40 @@
@page
@using Microsoft.AspNetCore.Mvc.Localization
@using Volo.Abp.AspNetCore.Mvc.UI.Layout
@using Volo.CmsKit.Admin.Web.Pages.CmsKit.GlobalResources
@using Volo.CmsKit.Admin.Web.Menus
@using Volo.CmsKit.Localization
@inject IPageLayout PageLayout
@inject IHtmlLocalizer<CmsKitResource> L
@model IndexModel
@{
PageLayout.Content.Title = L["GlobalResources"].Value;
PageLayout.Content.BreadCrumb.Add(L["Menu:CMS"].Value);
PageLayout.Content.MenuItemName = CmsKitAdminMenus.GlobalResources.GlobalResourcesMenu;
}
@section scripts {
<abp-script-bundle>
<abp-script src="/Pages/CmsKit/GlobalResources/index.js"/>
</abp-script-bundle>
}
<abp-card>
<abp-card-body>
<abp-tabs>
<abp-tab title="@L["Script"].Value">
<abp-input asp-for="ScriptContent" suppress-label="true"></abp-input>
</abp-tab>
<abp-tab title="@L["Style"].Value">
<abp-input asp-for="StyleContent" suppress-label="true"></abp-input>
</abp-tab>
</abp-tabs>
</abp-card-body>
<abp-card-footer>
<abp-button button-type="Primary" id="SaveResourcesButton" class="float-end">@L["SaveChanges"]</abp-button>
</abp-card-footer>
</abp-card>

30
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/GlobalResources/Index.cshtml.cs

@ -0,0 +1,30 @@
using System;
using System.Threading.Tasks;
using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form;
using Volo.CmsKit.Admin.GlobalResources;
namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.GlobalResources;
public class IndexModel : CmsKitAdminPageModel
{
private readonly IGlobalResourceAdminAppService _globalResourceAdminAppService;
[TextArea(Rows = 30)]
public string ScriptContent { get; set; }
[TextArea(Rows = 30)]
public string StyleContent { get; set; }
public IndexModel(IGlobalResourceAdminAppService globalResourceAdminAppService)
{
_globalResourceAdminAppService = globalResourceAdminAppService;
}
public async Task OnGetAsync()
{
var resources = await _globalResourceAdminAppService.GetAsync();
ScriptContent = resources.ScriptContent;
StyleContent = resources.StyleContent;
}
}

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

@ -0,0 +1,13 @@
$(function (){
var l = abp.localization.getResource("CmsKit");
var service = volo.cmsKit.admin.globalResources.globalResourceAdmin;
$('#SaveResourcesButton').on('click','',function(){
service.setGlobalStyle($('#StyleContent').val()).then(function () {
service.setGlobalScript($('#ScriptContent').val()).then(function () {
abp.message.success(l("SavedSuccessfully"));
});
});
});
});

4
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/GlobalResources/GlobalResourceManager.cs

@ -22,12 +22,12 @@ public class GlobalResourceManager : DomainService
return await SetGlobalResourceAsync(GlobalResourceConsts.GlobalScriptName, value);
}
public virtual async Task<GlobalResource> GetGlobalStyleAsync(string value)
public virtual async Task<GlobalResource> GetGlobalStyleAsync()
{
return await GetOrCreateResourceAsync(GlobalResourceConsts.GlobalStyleName);
}
public virtual async Task<GlobalResource> GetGlobalScriptAsync(string value)
public virtual async Task<GlobalResource> GetGlobalScriptAsync()
{
return await GetOrCreateResourceAsync(GlobalResourceConsts.GlobalScriptName);
}

Loading…
Cancel
Save