From aaf2a175258a1eb3f6b96f40c69d67036cc46531 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 15 Jul 2020 12:38:41 +0300 Subject: [PATCH] Created CmsKit common web and initial reaction icon system --- modules/cms-kit/Volo.CmsKit.sln | 7 +++ .../CmsKitWebUnifiedModule.cs | 4 +- .../Pages/Index.cshtml | 3 +- ...inWebModule.cs => CmsKitAdminWebModule.cs} | 16 +++--- .../Pages/AdminPageModel.cs | 2 +- .../Volo.CmsKit.Admin.Web.csproj | 5 +- .../CmsKitCommonWebModule.cs | 29 ++++++++++ .../Volo.CmsKit.Common.Web/CmsKitOptions.cs | 16 ++++++ .../Volo.CmsKit.Common.Web/FodyWeavers.xml | 3 ++ .../Volo.CmsKit.Common.Web/FodyWeavers.xsd | 30 +++++++++++ .../Icons/LocalizableIconDictionary.cs | 36 +++++++++++++ .../Reactions/ReactionIconDictionary.cs | 20 +++++++ .../Volo.CmsKit.Common.Web.csproj | 33 ++++++++++++ .../wwwroot/cms-kit/icons/smile.png | Bin 0 -> 3064 bytes .../wwwroot/cms-kit/icons/thumbsup.png | Bin 0 -> 2936 bytes .../Volo/CmsKit/Localization/CmsKit/en.json | 2 +- .../CmsKit/Reactions/StandardReactions.cs | 8 +++ .../Volo/CmsKit/CmsKitDomainModule.cs | 12 ++++- .../Reactions/LocalizableIconDictionary.cs | 9 ---- .../CmsKit/Reactions/ReactionDefinition.cs | 11 +--- .../Reactions/ReactionDefinitionDictionary.cs | 8 ++- .../CmsKitPublicApplicationContractsModule.cs | 4 +- ...msKitPublicPermissionDefinitionProvider.cs | 9 ++-- .../Permissions/CmsKitPublicPermissions.cs | 4 +- .../Reactions/GetAvailableReactionsDto.cs | 9 ++++ .../Reactions/IReactionPublicAppService.cs | 13 +++++ .../Volo/CmsKit/Reactions/ReactionDto.cs | 13 +++++ .../Reactions/ReactionPublicAppService.cs | 22 ++++++++ .../CmsKitPublicWebModule.cs | 8 +-- .../Menus/CmsKitPublicMenuContributor.cs | 2 +- .../Menus/CmsKitPublicMenus.cs | 2 +- .../Pages/CmsKit/Index.cshtml | 9 ---- .../Pages/CmsKit/Index.cshtml.cs | 9 ---- .../CmsKit/Shared/Components/Default.cshtml | 6 +++ .../ReactionSelectionViewComponent.cs | 51 +++++++++++++++--- .../Components/ReactionSelectionViewModel.cs | 9 +++- .../Shared/Components/ReactionViewModel.cs | 16 ++++++ .../Pages/PublicPageModel.cs | 2 +- .../PublicWebAutoMapperProfile.cs | 2 +- .../Volo.CmsKit.Public.Web.csproj | 6 +-- 40 files changed, 366 insertions(+), 84 deletions(-) rename modules/cms-kit/src/Volo.CmsKit.Admin.Web/{AdminWebModule.cs => CmsKitAdminWebModule.cs} (78%) create mode 100644 modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs create mode 100644 modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitOptions.cs create mode 100644 modules/cms-kit/src/Volo.CmsKit.Common.Web/FodyWeavers.xml create mode 100644 modules/cms-kit/src/Volo.CmsKit.Common.Web/FodyWeavers.xsd create mode 100644 modules/cms-kit/src/Volo.CmsKit.Common.Web/Icons/LocalizableIconDictionary.cs create mode 100644 modules/cms-kit/src/Volo.CmsKit.Common.Web/Reactions/ReactionIconDictionary.cs create mode 100644 modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj create mode 100644 modules/cms-kit/src/Volo.CmsKit.Common.Web/wwwroot/cms-kit/icons/smile.png create mode 100644 modules/cms-kit/src/Volo.CmsKit.Common.Web/wwwroot/cms-kit/icons/thumbsup.png create mode 100644 modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Reactions/StandardReactions.cs delete mode 100644 modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/LocalizableIconDictionary.cs rename modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/{Public => }/CmsKitPublicApplicationContractsModule.cs (91%) rename modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/{Public => }/Permissions/CmsKitPublicPermissionDefinitionProvider.cs (70%) rename modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/{Public => }/Permissions/CmsKitPublicPermissions.cs (87%) create mode 100644 modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Reactions/GetAvailableReactionsDto.cs create mode 100644 modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Reactions/IReactionPublicAppService.cs create mode 100644 modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Reactions/ReactionDto.cs create mode 100644 modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Reactions/ReactionPublicAppService.cs delete mode 100644 modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Index.cshtml delete mode 100644 modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Index.cshtml.cs create mode 100644 modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionViewModel.cs diff --git a/modules/cms-kit/Volo.CmsKit.sln b/modules/cms-kit/Volo.CmsKit.sln index 9874845fd1..e5fc80fceb 100644 --- a/modules/cms-kit/Volo.CmsKit.sln +++ b/modules/cms-kit/Volo.CmsKit.sln @@ -77,6 +77,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.CmsKit.Public.HttpApi. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.CmsKit.Public.Web", "src\Volo.CmsKit.Public.Web\Volo.CmsKit.Public.Web.csproj", "{BE2572ED-F505-435D-9A90-30DBC6C2DC1D}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.CmsKit.Common.Web", "src\Volo.CmsKit.Common.Web\Volo.CmsKit.Common.Web.csproj", "{4B2C2431-7351-41F0-B5E1-F8A9859FA838}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -203,6 +205,10 @@ Global {BE2572ED-F505-435D-9A90-30DBC6C2DC1D}.Debug|Any CPU.Build.0 = Debug|Any CPU {BE2572ED-F505-435D-9A90-30DBC6C2DC1D}.Release|Any CPU.ActiveCfg = Release|Any CPU {BE2572ED-F505-435D-9A90-30DBC6C2DC1D}.Release|Any CPU.Build.0 = Release|Any CPU + {4B2C2431-7351-41F0-B5E1-F8A9859FA838}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4B2C2431-7351-41F0-B5E1-F8A9859FA838}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4B2C2431-7351-41F0-B5E1-F8A9859FA838}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4B2C2431-7351-41F0-B5E1-F8A9859FA838}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -242,6 +248,7 @@ Global {37C03B72-5FD8-4B67-8090-8A20CD8095A6} = {3C74B8E8-CB34-49C8-B02A-05E959601FEE} {E790C2C6-39AC-4068-AA7D-309DC9AA1437} = {3C74B8E8-CB34-49C8-B02A-05E959601FEE} {BE2572ED-F505-435D-9A90-30DBC6C2DC1D} = {3C74B8E8-CB34-49C8-B02A-05E959601FEE} + {4B2C2431-7351-41F0-B5E1-F8A9859FA838} = {DDE20914-DD1B-4C7B-86FF-F21E6B5DF1D1} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4324B3B4-B60B-4E3C-91D8-59576B4E26DD} diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/CmsKitWebUnifiedModule.cs b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/CmsKitWebUnifiedModule.cs index cfa94589fe..69377a1416 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/CmsKitWebUnifiedModule.cs +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/CmsKitWebUnifiedModule.cs @@ -35,7 +35,6 @@ using Volo.Abp.TenantManagement.Web; using Volo.Abp.Threading; using Volo.Abp.VirtualFileSystem; using Volo.CmsKit.Public; -using Volo.CmsKit.Public.Web; namespace Volo.CmsKit { @@ -82,6 +81,9 @@ namespace Volo.CmsKit { options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}Volo.CmsKit.Domain.Shared", Path.DirectorySeparatorChar))); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}Volo.CmsKit.Domain", Path.DirectorySeparatorChar))); + + options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}Volo.CmsKit.Public.Web", Path.DirectorySeparatorChar))); + options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}Volo.CmsKit.Application.Contracts", Path.DirectorySeparatorChar))); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}Volo.CmsKit.Application", Path.DirectorySeparatorChar))); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}Volo.CmsKit.Web", Path.DirectorySeparatorChar))); diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Pages/Index.cshtml b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Pages/Index.cshtml index c504c5b668..f657733499 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Pages/Index.cshtml +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Pages/Index.cshtml @@ -6,6 +6,7 @@ @model IndexModel @inject IStringLocalizer Localizer

CMS Kit DEMO

+

Reactions

+ @await Component.InvokeAsync(typeof(ReactionSelectionViewComponent)) -@* *@ diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/AdminWebModule.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs similarity index 78% rename from modules/cms-kit/src/Volo.CmsKit.Admin.Web/AdminWebModule.cs rename to modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs index 3ba99fc617..45d2d2e24f 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/AdminWebModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs @@ -2,32 +2,32 @@ using Microsoft.Extensions.DependencyInjection; using Volo.CmsKit.Admin.Web.Menus; using Volo.Abp.AspNetCore.Mvc.Localization; -using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; using Volo.Abp.AutoMapper; using Volo.Abp.Modularity; using Volo.Abp.UI.Navigation; using Volo.Abp.VirtualFileSystem; using Volo.CmsKit.Localization; +using Volo.CmsKit.Web; namespace Volo.CmsKit.Admin.Web { [DependsOn( typeof(AdminHttpApiModule), - typeof(AbpAspNetCoreMvcUiThemeSharedModule), + typeof(CmsKitCommonWebModule), typeof(AbpAutoMapperModule) )] - public class AdminWebModule : AbpModule + public class CmsKitAdminWebModule : AbpModule { public override void PreConfigureServices(ServiceConfigurationContext context) { context.Services.PreConfigure(options => { - options.AddAssemblyResource(typeof(CmsKitResource), typeof(AdminWebModule).Assembly); + options.AddAssemblyResource(typeof(CmsKitResource), typeof(CmsKitAdminWebModule).Assembly); }); PreConfigure(mvcBuilder => { - mvcBuilder.AddApplicationPartIfNotExists(typeof(AdminWebModule).Assembly); + mvcBuilder.AddApplicationPartIfNotExists(typeof(CmsKitAdminWebModule).Assembly); }); } @@ -40,13 +40,13 @@ namespace Volo.CmsKit.Admin.Web Configure(options => { - options.FileSets.AddEmbedded(); + options.FileSets.AddEmbedded(); }); - context.Services.AddAutoMapperObjectMapper(); + context.Services.AddAutoMapperObjectMapper(); Configure(options => { - options.AddMaps(validate: true); + options.AddMaps(validate: true); }); Configure(options => diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/AdminPageModel.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/AdminPageModel.cs index 3143ff64e8..c086daefbd 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/AdminPageModel.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/AdminPageModel.cs @@ -10,7 +10,7 @@ namespace Volo.CmsKit.Admin.Web.Pages protected AdminPageModel() { LocalizationResourceType = typeof(CmsKitResource); - ObjectMapperContext = typeof(AdminWebModule); + ObjectMapperContext = typeof(CmsKitAdminWebModule); } } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj index 82dc3e4544..13a7dedc7f 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj @@ -14,10 +14,7 @@ - - - - + diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs new file mode 100644 index 0000000000..b59ac9b711 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs @@ -0,0 +1,29 @@ +using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; +using Volo.Abp.Modularity; +using Volo.Abp.VirtualFileSystem; +using Volo.CmsKit.Reactions; +using Volo.CmsKit.Web.Icons; + +namespace Volo.CmsKit.Web +{ + [DependsOn( + typeof(AbpAspNetCoreMvcUiThemeSharedModule), + typeof(CmsKitDomainSharedModule) + )] + public class CmsKitCommonWebModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.ReactionIcons[StandardReactions.Smile] = new LocalizableIconDictionary("/cms-kit/icons/smile.png"); + options.ReactionIcons[StandardReactions.ThumbsUp] = new LocalizableIconDictionary("/cms-kit/icons/thumbsup.png"); + }); + + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitOptions.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitOptions.cs new file mode 100644 index 0000000000..b04ae26fb6 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitOptions.cs @@ -0,0 +1,16 @@ +using JetBrains.Annotations; +using Volo.CmsKit.Web.Reactions; + +namespace Volo.CmsKit.Web +{ + public class CmsKitUiOptions + { + [NotNull] + public ReactionIconDictionary ReactionIcons { get; } + + public CmsKitUiOptions() + { + ReactionIcons = new ReactionIconDictionary(); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/FodyWeavers.xml b/modules/cms-kit/src/Volo.CmsKit.Common.Web/FodyWeavers.xml new file mode 100644 index 0000000000..00e1d9a1c1 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/FodyWeavers.xsd b/modules/cms-kit/src/Volo.CmsKit.Common.Web/FodyWeavers.xsd new file mode 100644 index 0000000000..3f3946e282 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/FodyWeavers.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Icons/LocalizableIconDictionary.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Icons/LocalizableIconDictionary.cs new file mode 100644 index 0000000000..881c751eab --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Icons/LocalizableIconDictionary.cs @@ -0,0 +1,36 @@ +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using System.Globalization; +using Volo.Abp; + +namespace Volo.CmsKit.Web.Icons +{ + public class LocalizableIconDictionary : Dictionary + { + [NotNull] + public string Default + { + get => _default; + set => _default = Check.NotNullOrWhiteSpace(value, nameof(value)); + } + private string _default; + + public LocalizableIconDictionary([NotNull] string defaultIcon) + { + Default = defaultIcon; + } + + public string GetLocalizedIconOrDefault(string cultureName = null) + { + cultureName ??= CultureInfo.CurrentUICulture.Name; + + var localizedIcon = this.GetOrDefault(cultureName); + if (localizedIcon != null) + { + return localizedIcon; + } + + return Default; + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Reactions/ReactionIconDictionary.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Reactions/ReactionIconDictionary.cs new file mode 100644 index 0000000000..038302b25a --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Reactions/ReactionIconDictionary.cs @@ -0,0 +1,20 @@ +using System.Collections.Generic; +using Volo.Abp; +using Volo.CmsKit.Web.Icons; + +namespace Volo.CmsKit.Web.Reactions +{ + public class ReactionIconDictionary : Dictionary + { + public string GetLocalizedIcon(string name, string cultureName = null) + { + var icon = this.GetOrDefault(name); + if (icon == null) + { + throw new AbpException($"No icon defined for the reaction with name '{name}'"); + } + + return icon.GetLocalizedIconOrDefault(cultureName); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj new file mode 100644 index 0000000000..8dfbbad063 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj @@ -0,0 +1,33 @@ + + + + + + + netcoreapp3.1 + $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; + true + Library + Volo.CmsKit.Web + true + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/wwwroot/cms-kit/icons/smile.png b/modules/cms-kit/src/Volo.CmsKit.Common.Web/wwwroot/cms-kit/icons/smile.png new file mode 100644 index 0000000000000000000000000000000000000000..a297be1fa3d399cf9acbddbeba595f24eee2f2bc GIT binary patch literal 3064 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 icj+?U;847Ux9~rI0WPOBC)F(g0000(options => + { + options.Reactions.AddOrReplace(StandardReactions.Smile); + options.Reactions.AddOrReplace(StandardReactions.ThumbsUp); + }); + } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/LocalizableIconDictionary.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/LocalizableIconDictionary.cs deleted file mode 100644 index b4e3461da8..0000000000 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/LocalizableIconDictionary.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System.Collections.Generic; - -namespace Volo.CmsKit.Reactions -{ - public class LocalizableIconDictionary : Dictionary - { - public string Default { get; set; } - } -} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/ReactionDefinition.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/ReactionDefinition.cs index a734fdafe7..01d96617ea 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/ReactionDefinition.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/ReactionDefinition.cs @@ -12,21 +12,12 @@ namespace Volo.CmsKit.Reactions [CanBeNull] public ILocalizableString DisplayName { get; set; } - [NotNull] - public LocalizableIconDictionary Icons { get; } - public ReactionDefinition( [NotNull] string name, - [NotNull] string defaultIcon, [CanBeNull] ILocalizableString displayName = null) { Name = Check.NotNullOrWhiteSpace(name, nameof(name)); DisplayName = displayName; - - Icons = new LocalizableIconDictionary - { - Default = Check.NotNullOrWhiteSpace(defaultIcon, nameof(defaultIcon)) - }; } } -} \ No newline at end of file +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/ReactionDefinitionDictionary.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/ReactionDefinitionDictionary.cs index a42b246011..1159abd38b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/ReactionDefinitionDictionary.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/ReactionDefinitionDictionary.cs @@ -1,9 +1,13 @@ using System.Collections.Generic; +using Volo.Abp.Localization; namespace Volo.CmsKit.Reactions { public class ReactionDefinitionDictionary : Dictionary { - + public void AddOrReplace(string name, ILocalizableString displayName = null) + { + this[name] = new ReactionDefinition(name, displayName); + } } -} \ No newline at end of file +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/CmsKitPublicApplicationContractsModule.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/CmsKitPublicApplicationContractsModule.cs similarity index 91% rename from modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/CmsKitPublicApplicationContractsModule.cs rename to modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/CmsKitPublicApplicationContractsModule.cs index a1bc5b4eee..887c8e5e36 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/CmsKitPublicApplicationContractsModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/CmsKitPublicApplicationContractsModule.cs @@ -1,8 +1,8 @@ using Volo.Abp.Application; -using Volo.Abp.Modularity; using Volo.Abp.Authorization; +using Volo.Abp.Modularity; -namespace Volo.CmsKit.Public +namespace Volo.CmsKit { [DependsOn( typeof(CmsKitDomainSharedModule), diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Permissions/CmsKitPublicPermissionDefinitionProvider.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Permissions/CmsKitPublicPermissionDefinitionProvider.cs similarity index 70% rename from modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Permissions/CmsKitPublicPermissionDefinitionProvider.cs rename to modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Permissions/CmsKitPublicPermissionDefinitionProvider.cs index 25c764f8ba..f52d398766 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Permissions/CmsKitPublicPermissionDefinitionProvider.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Permissions/CmsKitPublicPermissionDefinitionProvider.cs @@ -2,13 +2,16 @@ using Volo.Abp.Localization; using Volo.CmsKit.Localization; -namespace Volo.CmsKit.Public.Permissions +namespace Volo.CmsKit.Permissions { public class CmsKitPublicPermissionDefinitionProvider : PermissionDefinitionProvider { public override void Define(IPermissionDefinitionContext context) { - var myGroup = context.AddGroup(CmsKitPublicPermissions.GroupName, L("Permission:CmsKit.Public")); + var myGroup = context.AddGroup( + CmsKitPublicPermissions.GroupName, + L("Permission:CmsKit.Public") + ); } private static LocalizableString L(string name) @@ -16,4 +19,4 @@ namespace Volo.CmsKit.Public.Permissions return LocalizableString.Create(name); } } -} \ No newline at end of file +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Permissions/CmsKitPublicPermissions.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Permissions/CmsKitPublicPermissions.cs similarity index 87% rename from modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Permissions/CmsKitPublicPermissions.cs rename to modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Permissions/CmsKitPublicPermissions.cs index 67d5504b92..4a2991c71e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Permissions/CmsKitPublicPermissions.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Permissions/CmsKitPublicPermissions.cs @@ -1,6 +1,6 @@ using Volo.Abp.Reflection; -namespace Volo.CmsKit.Public.Permissions +namespace Volo.CmsKit.Permissions { public class CmsKitPublicPermissions { @@ -11,4 +11,4 @@ namespace Volo.CmsKit.Public.Permissions return ReflectionHelper.GetPublicConstantsRecursively(typeof(CmsKitPublicPermissions)); } } -} \ No newline at end of file +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Reactions/GetAvailableReactionsDto.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Reactions/GetAvailableReactionsDto.cs new file mode 100644 index 0000000000..357ce06e14 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Reactions/GetAvailableReactionsDto.cs @@ -0,0 +1,9 @@ +namespace Volo.CmsKit.Reactions +{ + public class GetAvailableReactionsDto + { + public string EntityType { get; set; } + + public string EntityId { get; set; } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Reactions/IReactionPublicAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Reactions/IReactionPublicAppService.cs new file mode 100644 index 0000000000..532b2f883e --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Reactions/IReactionPublicAppService.cs @@ -0,0 +1,13 @@ +using System.Threading.Tasks; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Application.Services; + +namespace Volo.CmsKit.Reactions +{ + public interface IReactionPublicAppService : IApplicationService + { + Task> GetAvailableReactions( + GetAvailableReactionsDto getAvailableReactionsDto + ); + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Reactions/ReactionDto.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Reactions/ReactionDto.cs new file mode 100644 index 0000000000..b66c7ce6f1 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Reactions/ReactionDto.cs @@ -0,0 +1,13 @@ +using JetBrains.Annotations; + +namespace Volo.CmsKit.Reactions +{ + public class ReactionDto + { + [NotNull] + public string Name { get; set; } + + [CanBeNull] + public string DisplayName { get; set; } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Reactions/ReactionPublicAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Reactions/ReactionPublicAppService.cs new file mode 100644 index 0000000000..397e129324 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Reactions/ReactionPublicAppService.cs @@ -0,0 +1,22 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Application.Services; + +namespace Volo.CmsKit.Reactions +{ + public class ReactionPublicAppService : ApplicationService, IReactionPublicAppService + { + public Task> GetAvailableReactions( + GetAvailableReactionsDto getAvailableReactionsDto) + { + return Task.FromResult( + new ListResultDto(new List() + { + new ReactionDto {Name = StandardReactions.ThumbsUp}, + new ReactionDto {Name = StandardReactions.Smile, DisplayName = "Smile :)"} + }) + ); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs index 88a7cabe2f..7bf00dea5e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs @@ -1,19 +1,19 @@ using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.Extensions.DependencyInjection; -using Volo.CmsKit.Public.Web.Menus; using Volo.Abp.AspNetCore.Mvc.Localization; -using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; using Volo.Abp.AutoMapper; using Volo.Abp.Modularity; using Volo.Abp.UI.Navigation; using Volo.Abp.VirtualFileSystem; using Volo.CmsKit.Localization; +using Volo.CmsKit.Public; +using Volo.CmsKit.Web.Menus; -namespace Volo.CmsKit.Public.Web +namespace Volo.CmsKit.Web { [DependsOn( typeof(CmsKitPublicHttpApiModule), - typeof(AbpAspNetCoreMvcUiThemeSharedModule), + typeof(CmsKitCommonWebModule), typeof(AbpAutoMapperModule) )] public class CmsKitPublicWebModule : AbpModule diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Menus/CmsKitPublicMenuContributor.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Menus/CmsKitPublicMenuContributor.cs index 34093ed39c..7bda87f1cc 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Menus/CmsKitPublicMenuContributor.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Menus/CmsKitPublicMenuContributor.cs @@ -1,7 +1,7 @@ using System.Threading.Tasks; using Volo.Abp.UI.Navigation; -namespace Volo.CmsKit.Public.Web.Menus +namespace Volo.CmsKit.Web.Menus { public class CmsKitPublicMenuContributor : IMenuContributor { diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Menus/CmsKitPublicMenus.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Menus/CmsKitPublicMenus.cs index 5b8e026122..00aab7da14 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Menus/CmsKitPublicMenus.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Menus/CmsKitPublicMenus.cs @@ -1,4 +1,4 @@ -namespace Volo.CmsKit.Public.Web.Menus +namespace Volo.CmsKit.Web.Menus { public class CmsKitPublicMenus { diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Index.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Index.cshtml deleted file mode 100644 index b09a38fd87..0000000000 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Index.cshtml +++ /dev/null @@ -1,9 +0,0 @@ -@page -@using Microsoft.Extensions.Localization -@using Volo.CmsKit.Localization -@model Volo.CmsKit.Public.Web.Pages.Public.IndexModel -@inject IStringLocalizer L -@{ -} -

Public

-

@L["SamplePageMessage"]

diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Index.cshtml.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Index.cshtml.cs deleted file mode 100644 index 2c16293ae7..0000000000 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Index.cshtml.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace Volo.CmsKit.Public.Web.Pages.Public -{ - public class IndexModel : PublicPageModel - { - public void OnGet() - { - } - } -} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Default.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Default.cshtml index 8f2ccffb60..7f703d2517 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Default.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Default.cshtml @@ -1,2 +1,8 @@ @model Volo.CmsKit.Web.Pages.CmsKit.Shared.Components.ReactionSelectionViewModel

TEST!

+

EntityType: @Model.EntityType

+

EntityId: @Model.EntityId

+@foreach (var reaction in Model.Reactions) +{ + +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelectionViewComponent.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelectionViewComponent.cs index 324388d92c..5497ea9ba5 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelectionViewComponent.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelectionViewComponent.cs @@ -1,17 +1,56 @@ -using System.Threading.Tasks; +using System.Collections.Generic; +using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Options; using Volo.Abp.AspNetCore.Mvc; +using Volo.CmsKit.Reactions; namespace Volo.CmsKit.Web.Pages.CmsKit.Shared.Components { public class ReactionSelectionViewComponent : AbpViewComponent { - public virtual async Task InvokeAsync(string entityType = null, string entityId = null) + protected IReactionPublicAppService ReactionPublicAppService { get; } + protected CmsKitUiOptions Options { get; } + + public ReactionSelectionViewComponent( + IReactionPublicAppService reactionPublicAppService, + IOptions options) + { + ReactionPublicAppService = reactionPublicAppService; + Options = options.Value; + } + + public virtual async Task InvokeAsync( + string entityType = null, + string entityId = null) { - return View( - "~/Pages/CmsKit/Shared/Components/Default.cshtml", - new ReactionSelectionViewModel() - ); + var result = await ReactionPublicAppService.GetAvailableReactions( + new GetAvailableReactionsDto + { + EntityType = entityType, + EntityId = entityId + } + ); + + var viewModel = new ReactionSelectionViewModel + { + EntityType = entityType, + EntityId = entityId, + Reactions = new List() + }; + + foreach (var reactionDto in result.Items) + { + viewModel.Reactions.Add( + new ReactionViewModel + { + Name = reactionDto.Name, + DisplayName = reactionDto.DisplayName, + Icon = Options.ReactionIcons.GetLocalizedIcon(reactionDto.Name) + }); + } + + return View("~/Pages/CmsKit/Shared/Components/Default.cshtml", viewModel); } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelectionViewModel.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelectionViewModel.cs index 2fd308b771..5448952e1c 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelectionViewModel.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelectionViewModel.cs @@ -1,7 +1,14 @@ -namespace Volo.CmsKit.Web.Pages.CmsKit.Shared.Components +using System.Collections.Generic; +using Volo.CmsKit.Reactions; + +namespace Volo.CmsKit.Web.Pages.CmsKit.Shared.Components { public class ReactionSelectionViewModel { + public string EntityType { get; set; } + + public string EntityId { get; set; } + public List Reactions { get; set; } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionViewModel.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionViewModel.cs new file mode 100644 index 0000000000..e64e4e2b77 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionViewModel.cs @@ -0,0 +1,16 @@ +using JetBrains.Annotations; + +namespace Volo.CmsKit.Web.Pages.CmsKit.Shared.Components +{ + public class ReactionViewModel + { + [NotNull] + public string Name { get; set; } + + [CanBeNull] + public string DisplayName { get; set; } + + [NotNull] + public string Icon { get; set; } + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/PublicPageModel.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/PublicPageModel.cs index 0ea29457e9..af143d5a8f 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/PublicPageModel.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/PublicPageModel.cs @@ -1,7 +1,7 @@ using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; using Volo.CmsKit.Localization; -namespace Volo.CmsKit.Public.Web.Pages +namespace Volo.CmsKit.Web.Pages { /* Inherit your PageModel classes from this class. */ diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/PublicWebAutoMapperProfile.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/PublicWebAutoMapperProfile.cs index 35bf9f709e..50effadabd 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/PublicWebAutoMapperProfile.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/PublicWebAutoMapperProfile.cs @@ -1,6 +1,6 @@ using AutoMapper; -namespace Volo.CmsKit.Public.Web +namespace Volo.CmsKit.Web { public class PublicWebAutoMapperProfile : Profile { diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj index 2f00804b8c..e0a79d98aa 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj @@ -14,10 +14,10 @@ - + @@ -30,10 +30,6 @@ - - true - PreserveNewest -