Merge pull request #1045 from hishamco/language-management
Add Languages Management
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Oqtane.Models;
|
||||
|
||||
@ -21,6 +21,8 @@ namespace Oqtane.Repository
|
||||
public virtual DbSet<Folder> Folder { get; set; }
|
||||
public virtual DbSet<File> File { get; set; }
|
||||
|
||||
public virtual DbSet<Language> Language { get; set; }
|
||||
|
||||
public TenantDBContext(ITenantResolver tenantResolver, IHttpContextAccessor accessor) : base(tenantResolver, accessor)
|
||||
{
|
||||
// DBContextBase handles multi-tenant database connections
|
||||
|
16
Oqtane.Server/Repository/Interfaces/ILanguageRepository.cs
Normal file
16
Oqtane.Server/Repository/Interfaces/ILanguageRepository.cs
Normal file
@ -0,0 +1,16 @@
|
||||
using System.Collections.Generic;
|
||||
using Oqtane.Models;
|
||||
|
||||
namespace Oqtane.Repository
|
||||
{
|
||||
public interface ILanguageRepository
|
||||
{
|
||||
IEnumerable<Language> GetLanguages(int siteId);
|
||||
|
||||
Language AddLanguage(Language language);
|
||||
|
||||
Language GetLanguage(int languageId);
|
||||
|
||||
void DeleteLanguage(int languageId);
|
||||
}
|
||||
}
|
41
Oqtane.Server/Repository/LanguageRepository.cs
Normal file
41
Oqtane.Server/Repository/LanguageRepository.cs
Normal file
@ -0,0 +1,41 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Oqtane.Models;
|
||||
|
||||
namespace Oqtane.Repository
|
||||
{
|
||||
public class LanguageRepository : ILanguageRepository
|
||||
{
|
||||
private TenantDBContext _db;
|
||||
|
||||
public LanguageRepository(TenantDBContext context)
|
||||
{
|
||||
_db = context;
|
||||
}
|
||||
|
||||
public IEnumerable<Language> GetLanguages(int siteId) => _db.Language.Where(l => l.SiteId == siteId);
|
||||
|
||||
public Language AddLanguage(Language language)
|
||||
{
|
||||
if (language.IsCurrent)
|
||||
{
|
||||
// Ensure all other languages are not set to current
|
||||
_db.Language.ToList().ForEach(l => l.IsCurrent = false);
|
||||
}
|
||||
|
||||
_db.Language.Add(language);
|
||||
_db.SaveChanges();
|
||||
|
||||
return language;
|
||||
}
|
||||
|
||||
public Language GetLanguage(int languageId) => _db.Language.Find(languageId);
|
||||
|
||||
public void DeleteLanguage(int languageId)
|
||||
{
|
||||
var language = _db.Language.Find(languageId);
|
||||
_db.Language.Remove(language);
|
||||
_db.SaveChanges();
|
||||
}
|
||||
}
|
||||
}
|
@ -502,6 +502,37 @@ namespace Oqtane.Repository
|
||||
}
|
||||
});
|
||||
pageTemplates.Add(new PageTemplate
|
||||
{
|
||||
Name = "Language Management",
|
||||
Parent = "Admin",
|
||||
Path = "admin/languages",
|
||||
Icon = Icons.Text,
|
||||
IsNavigation = false,
|
||||
IsPersonalizable = false,
|
||||
PagePermissions = new List<Permission>
|
||||
{
|
||||
new Permission(PermissionNames.View, RoleNames.Host, true),
|
||||
new Permission(PermissionNames.Edit, RoleNames.Host, true),
|
||||
new Permission(PermissionNames.View, RoleNames.Admin, true),
|
||||
new Permission(PermissionNames.Edit, RoleNames.Admin, true)
|
||||
}.EncodePermissions(),
|
||||
PageTemplateModules = new List<PageTemplateModule>
|
||||
{
|
||||
new PageTemplateModule
|
||||
{
|
||||
ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Languages.Index).ToModuleDefinitionName(), Title = "Language Management", Pane = "Content",
|
||||
ModulePermissions = new List<Permission>
|
||||
{
|
||||
new Permission(PermissionNames.View, RoleNames.Host, true),
|
||||
new Permission(PermissionNames.Edit, RoleNames.Host, true),
|
||||
new Permission(PermissionNames.View, RoleNames.Admin, true),
|
||||
new Permission(PermissionNames.Edit, RoleNames.Admin, true)
|
||||
}.EncodePermissions(),
|
||||
Content = ""
|
||||
}
|
||||
}
|
||||
});
|
||||
pageTemplates.Add(new PageTemplate
|
||||
{
|
||||
Name = "Scheduled Jobs", Parent = "Admin", Path = "admin/jobs", Icon = Icons.Timer, IsNavigation = false, IsPersonalizable = false,
|
||||
PagePermissions = new List<Permission>
|
||||
|
Reference in New Issue
Block a user