move mail templates into core

This commit is contained in:
2020-11-13 12:24:07 +01:00
parent 07b87cec66
commit 019aa96a0e
23 changed files with 542 additions and 3 deletions
@@ -0,0 +1,51 @@
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using zero.Core.Api;
using zero.Core;
using zero.Core.Entities;
using zero.Web.Controllers;
using zero.Web.Models;
namespace zero.Commerce.Backoffice
{
public class MailTemplatesController : BackofficeController
{
IMailTemplatesApi Api;
public MailTemplatesController(IMailTemplatesApi api)
{
Api = api;
}
public EditModel<IMailTemplate> GetEmpty([FromServices] IMailTemplate blueprint) => Edit(blueprint);
public async Task<EditModel<IMailTemplate>> GetById([FromQuery] string id) => Edit(await Api.GetById(id));
public async Task<ListResult<IMailTemplate>> GetAll([FromQuery] ListQuery<IMailTemplate> query) => await Api.GetByQuery(query);
public async Task<IEnumerable<SelectModel>> GetForPicker() => (await Api.GetAll()).Select(x => new SelectModel()
{
Id = x.Id,
Name = x.Name,
IsActive = x.IsActive,
IsShared = x.AppId == Constants.Database.SharedAppId
});
public async Task<IList<PreviewModel>> GetPreviews([FromQuery] List<string> ids) => Previews(await Api.GetByIds(ids.ToArray()), item => new PreviewModel()
{
Id = item.Id,
Icon = "fth-mail",
Name = item.Name
});
public async Task<EntityResult<IMailTemplate>> Save([FromBody] IMailTemplate model) => await Api.Save(model);
public async Task<EntityResult<IMailTemplate>> Delete([FromQuery] string id) => await Api.Delete(id);
}
}
+1
View File
@@ -17,6 +17,7 @@ namespace zero.Web.Defaults
Items.Add(new Permission(Permissions.Settings.Languages, "@settings.system.languages.name", "@settings.system.languages.text", PermissionValueType.CRUD));
Items.Add(new Permission(Permissions.Settings.Countries, "@settings.system.countries.name", "@settings.system.countries.text", PermissionValueType.CRUD));
Items.Add(new Permission(Permissions.Settings.Translations, "@settings.system.translations.name", "@settings.system.translations.text", PermissionValueType.CRUD));
Items.Add(new Permission(Permissions.Settings.Mails, "@settings.system.mails.name", "@settings.system.mails.text", PermissionValueType.CRUD));
Items.Add(new Permission(Permissions.Settings.Logging, "@settings.system.logs.name", "@settings.system.logs.text", PermissionValueType.CRUD));
Items.Add(new Permission(Permissions.Settings.Plugins, "@settings.plugins.installed.name", "@settings.plugins.installed.text_default", PermissionValueType.CRUD));
Items.Add(new Permission(Permissions.Settings.CreatePlugin, "@settings.plugins.create.name", "@settings.plugins.create.text", PermissionValueType.CRUD));
+1
View File
@@ -15,6 +15,7 @@ namespace zero.Web.Defaults
AddInternal(Constants.Settings.Languages, "@settings.system.languages.name", "@settings.system.languages.text", "fth-globe");
AddInternal(Constants.Settings.Countries, "@settings.system.countries.name", "@settings.system.countries.text", "fth-map-pin");
AddInternal(Constants.Settings.Translations, "@settings.system.translations.name", "@settings.system.translations.text", "fth-type");
AddInternal(Constants.Settings.Mails, "@settings.system.mails.name", "@settings.system.mails.text", "fth-mail");
//AddInternal(Constants.Settings.Logging, "@settings.system.logs.name", "@settings.system.logs.text", "fth-file-text");
}
}
@@ -60,6 +60,7 @@ namespace zero.Web.Defaults
services.AddTransient<IValidator<IApplication>, ApplicationValidator>();
services.AddTransient<IValidator<ICountry>, CountryValidator>();
services.AddTransient<IValidator<IMailTemplate>, MailTemplateValidator>();
services.AddTransient<IValidator<ILanguage>, LanguageValidator>();
services.AddTransient<IValidator<ITranslation>, TranslationValidator>();
services.AddTransient<IValidator<IPage>, PageValidator>();
@@ -76,6 +77,7 @@ namespace zero.Web.Defaults
services.AddTransient<IPagesApi, PagesApi>();
services.AddTransient<IPageTreeApi, PageTreeApi>();
services.AddTransient<IPreviewApi, PreviewApi>();
services.AddTransient<IMailTemplatesApi, MailTemplatesApi>();
services.AddTransient<ISetupApi, SetupApi>();
services.AddTransient<ISectionsApi, SectionsApi>();
@@ -249,6 +249,10 @@
"name": "Countries",
"text": "Manage list of countries"
},
"mails": {
"name": "Mails",
"text": "Edit mail templates"
},
"logs": {
"name": "Logging",
"text": "Debug und view logs"
@@ -543,6 +547,33 @@
"child_count_x": "{count} items"
},
"mailTemplate": {
"name": "Mail template",
"list": "Mail templates",
"emailBox": "Email settings",
"tabs": {
"sender": "Sender",
"recipient": "Recipient"
},
"fields": {
"key": "Key",
"key_text": "Used to query for the template in code",
"subject": "Subject",
"body": "Body",
"body_text": "Additional body which is rendered into the mail template",
"senderEmail": "Sender email",
"senderEmail_text": "Leave empty to use application email",
"senderName": "Sender name",
"senderName_text": "Leave empty to use application name",
"recipientEmail": "Recipient email",
"recipientEmail_text": "Only used for mails which do not have a dynamic recipient (e.g. reports)",
"cc": "Send copy to (CC)",
"cc_text": "Comma-separated list of e-mails",
"bcc": "Send invisible copy to (BCC)",
"bcc_text": "Comma-separated list of e-mails"
}
},
"space": {
"list": "Spaces",
"name": "Space"
+1
View File
@@ -174,6 +174,7 @@ namespace zero.Web
settings.Add("logging", Constants.Settings.Logging);
settings.Add("languages", Constants.Settings.Languages);
settings.Add("translations", Constants.Settings.Translations);
settings.Add("mails", Constants.Settings.Mails);
settings.Add("updates", Constants.Settings.Updates);
settings.Add("users", Constants.Settings.Users);