diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/en.json b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/en.json index 6fa4e626ff..4444e1bfd6 100644 --- a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/en.json +++ b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/en.json @@ -18,6 +18,8 @@ "Description:Abp.Mailing.Smtp.Password": "The password for the user name associated with the credentials.", "Description:Abp.Mailing.Smtp.Domain": "The domain or computer name that verifies the credentials.", "Description:Abp.Mailing.Smtp.EnableSsl": "Whether the SmtpClient uses Secure Sockets Layer (SSL) to encrypt the connection.", - "Description:Abp.Mailing.Smtp.UseDefaultCredentials": "Whether the DefaultCredentials are sent with requests." + "Description:Abp.Mailing.Smtp.UseDefaultCredentials": "Whether the DefaultCredentials are sent with requests.", + "TextTemplate:StandardEmailTemplates.Layout": "Default email layout template", + "TextTemplate:StandardEmailTemplates.Message": "Simple message template for emails" } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Templates/Layout/en.tpl b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Templates/Layout.tpl similarity index 100% rename from framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Templates/Layout/en.tpl rename to framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Templates/Layout.tpl diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Templates/Message/en.tpl b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Templates/Message.tpl similarity index 100% rename from framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Templates/Message/en.tpl rename to framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Templates/Message.tpl diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Templates/DefaultEmailTemplateProvider.cs b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Templates/StandardEmailTemplateDefinitionProvider.cs similarity index 56% rename from framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Templates/DefaultEmailTemplateProvider.cs rename to framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Templates/StandardEmailTemplateDefinitionProvider.cs index 385e0ef178..8c20d8dd78 100644 --- a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Templates/DefaultEmailTemplateProvider.cs +++ b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Templates/StandardEmailTemplateDefinitionProvider.cs @@ -1,25 +1,27 @@ -using Volo.Abp.TextTemplating; +using Volo.Abp.Emailing.Localization; +using Volo.Abp.Localization; +using Volo.Abp.TextTemplating; namespace Volo.Abp.Emailing.Templates { - public class DefaultEmailTemplateProvider : TemplateDefinitionProvider + public class StandardEmailTemplateDefinitionProvider : TemplateDefinitionProvider { public override void Define(ITemplateDefinitionContext context) { context.Add( new TemplateDefinition( StandardEmailTemplates.Layout, - defaultCultureName: "en", + displayName: LocalizableString.Create("TextTemplate:StandardEmailTemplates.Layout"), isLayout: true - ).WithVirtualFilePath("/Volo/Abp/Emailing/Templates/Layout") + ).WithVirtualFilePath("/Volo/Abp/Emailing/Templates/Layout.tpl", true) ); context.Add( new TemplateDefinition( StandardEmailTemplates.Message, - defaultCultureName: "en", + displayName: LocalizableString.Create("TextTemplate:StandardEmailTemplates.Message"), layout: StandardEmailTemplates.Layout - ).WithVirtualFilePath("/Volo/Abp/Emailing/Templates/Message") + ).WithVirtualFilePath("/Volo/Abp/Emailing/Templates/Message.tpl", true) ); } } diff --git a/framework/src/Volo.Abp.TextTemplating/Volo/Abp/TextTemplating/TemplateDefinitionExtensions.cs b/framework/src/Volo.Abp.TextTemplating/Volo/Abp/TextTemplating/TemplateDefinitionExtensions.cs index 0d17e9969c..b050d6d8c1 100644 --- a/framework/src/Volo.Abp.TextTemplating/Volo/Abp/TextTemplating/TemplateDefinitionExtensions.cs +++ b/framework/src/Volo.Abp.TextTemplating/Volo/Abp/TextTemplating/TemplateDefinitionExtensions.cs @@ -8,10 +8,13 @@ namespace Volo.Abp.TextTemplating { public static TemplateDefinition WithVirtualFilePath( [NotNull] this TemplateDefinition templateDefinition, - [NotNull] string virtualPath) + [NotNull] string virtualPath, + bool isInlineLocalized) { Check.NotNull(templateDefinition, nameof(templateDefinition)); + templateDefinition.IsInlineLocalized = isInlineLocalized; + return templateDefinition.WithProperty( VirtualFileTemplateContentContributor.VirtualPathPropertyName, virtualPath diff --git a/framework/src/Volo.Abp.TextTemplating/Volo/Abp/TextTemplating/TemplateDefinitionManager.cs b/framework/src/Volo.Abp.TextTemplating/Volo/Abp/TextTemplating/TemplateDefinitionManager.cs index 11081f6dff..28909330fe 100644 --- a/framework/src/Volo.Abp.TextTemplating/Volo/Abp/TextTemplating/TemplateDefinitionManager.cs +++ b/framework/src/Volo.Abp.TextTemplating/Volo/Abp/TextTemplating/TemplateDefinitionManager.cs @@ -5,7 +5,6 @@ using System.Linq; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Volo.Abp.DependencyInjection; -using Volo.Abp.VirtualFileSystem; namespace Volo.Abp.TextTemplating { @@ -79,38 +78,9 @@ namespace Volo.Abp.TextTemplating { provider.PostDefine(context); } - - SetIsInlineLocalized( - templates, - scope.ServiceProvider - ); } return templates; } - - protected virtual void SetIsInlineLocalized( - Dictionary templates, - IServiceProvider serviceProvider) - { - var virtualFileProvider = serviceProvider.GetRequiredService(); - - foreach (var templateDefinition in templates.Values) - { - var virtualPath = templateDefinition.GetVirtualFilePathOrNull(); - if (virtualPath == null) - { - continue; - } - - var fileInfo = virtualFileProvider.GetFileInfo(virtualPath); - if (!fileInfo.Exists) - { - throw new AbpException("Could not find a file/folder at the location: " + virtualPath); - } - - templateDefinition.IsInlineLocalized = !fileInfo.IsDirectory; - } - } } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/TestTemplateDefinitionProvider.cs b/framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/TestTemplateDefinitionProvider.cs index 05df1378b2..af6386e9f7 100644 --- a/framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/TestTemplateDefinitionProvider.cs +++ b/framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/TestTemplateDefinitionProvider.cs @@ -10,7 +10,7 @@ namespace Volo.Abp.TextTemplating new TemplateDefinition( TestTemplates.WelcomeEmail, defaultCultureName: "en" - ).WithVirtualFilePath("/SampleTemplates/WelcomeEmail") + ).WithVirtualFilePath("/SampleTemplates/WelcomeEmail", false) ); context.Add( @@ -18,14 +18,14 @@ namespace Volo.Abp.TextTemplating TestTemplates.ForgotPasswordEmail, localizationResource: typeof(TestLocalizationSource), layout: TestTemplates.TestTemplateLayout1 - ).WithVirtualFilePath("/SampleTemplates/ForgotPasswordEmail.tpl") + ).WithVirtualFilePath("/SampleTemplates/ForgotPasswordEmail.tpl", true) ); context.Add( new TemplateDefinition( TestTemplates.TestTemplateLayout1, isLayout: true - ).WithVirtualFilePath("/SampleTemplates/TestTemplateLayout1.tpl") + ).WithVirtualFilePath("/SampleTemplates/TestTemplateLayout1.tpl", true) ); } }