diff --git a/Oqtane.Client/Modules/Admin/Jobs/Index.razor b/Oqtane.Client/Modules/Admin/Jobs/Index.razor index ecc195e4..3553d973 100644 --- a/Oqtane.Client/Modules/Admin/Jobs/Index.razor +++ b/Oqtane.Client/Modules/Admin/Jobs/Index.razor @@ -56,6 +56,10 @@ else protected override async Task OnParametersSetAsync() { _jobs = await JobService.GetJobsAsync(); + if (_jobs.Count == 0) + { + AddModuleMessage(string.Format(Localizer["Message.NoJobs"], NavigateUrl("admin/system")), MessageType.Warning); + } } private string DisplayStatus(bool isEnabled, bool isExecuting) diff --git a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor index aa1da441..6b9f493d 100644 --- a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor +++ b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor @@ -43,7 +43,13 @@ -
+
+ +
+ +
+
+
@@ -95,11 +101,12 @@ private bool validated = false; private int _moduleDefinitionId; private string _name; - private string _version; - private string _categories; + private string _description = ""; + private string _categories; private string _moduledefinitionname = ""; - private string _description = ""; - private string _owner = ""; + private string _version; + private string _packagename = ""; + private string _owner = ""; private string _url = ""; private string _contact = ""; private string _license = ""; @@ -125,11 +132,12 @@ if (moduleDefinition != null) { _name = moduleDefinition.Name; - _version = moduleDefinition.Version; + _description = moduleDefinition.Description; _categories = moduleDefinition.Categories; _moduledefinitionname = moduleDefinition.ModuleDefinitionName; - _description = moduleDefinition.Description; - _owner = moduleDefinition.Owner; + _version = moduleDefinition.Version; + _packagename = moduleDefinition.PackageName; + _owner = moduleDefinition.Owner; _url = moduleDefinition.Url; _contact = moduleDefinition.Contact; _license = moduleDefinition.License; diff --git a/Oqtane.Client/Modules/Admin/Themes/View.razor b/Oqtane.Client/Modules/Admin/Themes/View.razor index 30cac439..db38748b 100644 --- a/Oqtane.Client/Modules/Admin/Themes/View.razor +++ b/Oqtane.Client/Modules/Admin/Themes/View.razor @@ -25,7 +25,13 @@
-
+
+ +
+ +
+
+
@@ -53,28 +59,30 @@ @SharedLocalizer["Cancel"] @code { - private string _themeName = ""; - private string _name; - private string _version; - private string _owner = ""; - private string _url = ""; - private string _contact = ""; - private string _license = ""; + private string _themeName = ""; + private string _name; + private string _version; + private string _packagename; + private string _owner = ""; + private string _url = ""; + private string _contact = ""; + private string _license = ""; - public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Host; + public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Host; - protected override async Task OnInitializedAsync() - { - try - { - _themeName = WebUtility.UrlDecode(PageState.QueryString["name"]); - var themes = await ThemeService.GetThemesAsync(); - var theme = themes.FirstOrDefault(item => item.ThemeName == _themeName); - if (theme != null) - { - _name = theme.Name; - _version = theme.Version; - _owner = theme.Owner; + protected override async Task OnInitializedAsync() + { + try + { + _themeName = WebUtility.UrlDecode(PageState.QueryString["name"]); + var themes = await ThemeService.GetThemesAsync(); + var theme = themes.FirstOrDefault(item => item.ThemeName == _themeName); + if (theme != null) + { + _name = theme.Name; + _version = theme.Version; + _packagename = theme.PackageName; + _owner = theme.Owner; _url = theme.Url; _contact = theme.Contact; _license = theme.License; diff --git a/Oqtane.Client/Resources/Modules/Admin/Jobs/Index.resx b/Oqtane.Client/Resources/Modules/Admin/Jobs/Index.resx index db97ddc3..3a55912b 100644 --- a/Oqtane.Client/Resources/Modules/Admin/Jobs/Index.resx +++ b/Oqtane.Client/Resources/Modules/Admin/Jobs/Index.resx @@ -192,4 +192,7 @@ Execute Once + + Please Note That After An Initial Installation You Must <a href={0}>Restart</a> The Application In Order To Activate The Default Scheduled Jobs. + \ No newline at end of file diff --git a/Oqtane.Client/Resources/Modules/Admin/ModuleDefinitions/Edit.resx b/Oqtane.Client/Resources/Modules/Admin/ModuleDefinitions/Edit.resx index 73e0a543..8150f4eb 100644 --- a/Oqtane.Client/Resources/Modules/Admin/ModuleDefinitions/Edit.resx +++ b/Oqtane.Client/Resources/Modules/Admin/ModuleDefinitions/Edit.resx @@ -195,4 +195,10 @@ Information + + The unique name of the package from which this module was installed + + + Package Name: + \ No newline at end of file diff --git a/Oqtane.Client/Resources/Modules/Admin/Themes/View.resx b/Oqtane.Client/Resources/Modules/Admin/Themes/View.resx index f8540759..f950588f 100644 --- a/Oqtane.Client/Resources/Modules/Admin/Themes/View.resx +++ b/Oqtane.Client/Resources/Modules/Admin/Themes/View.resx @@ -162,4 +162,10 @@ The license of the theme + + The unique name of the package from which this module was installed + + + Package Name: + \ No newline at end of file diff --git a/Oqtane.Server/Infrastructure/UpgradeManager.cs b/Oqtane.Server/Infrastructure/UpgradeManager.cs index 2074dd0e..cdefb7c7 100644 --- a/Oqtane.Server/Infrastructure/UpgradeManager.cs +++ b/Oqtane.Server/Infrastructure/UpgradeManager.cs @@ -1,7 +1,5 @@ using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; -using Newtonsoft.Json; using Oqtane.Extensions; using Oqtane.Models; using Oqtane.Repository; @@ -53,6 +51,9 @@ namespace Oqtane.Infrastructure case "3.1.3": Upgrade_3_1_3(tenant, scope); break; + case "3.1.4": + Upgrade_3_1_4(tenant, scope); + break; } } } @@ -195,5 +196,47 @@ namespace Oqtane.Infrastructure } } + private void Upgrade_3_1_4(Tenant tenant, IServiceScope scope) + { + var pageTemplates = new List(); + + pageTemplates.Add(new PageTemplate + { + Name = "Not Found", + Parent = "", + Path = "404", + Icon = Icons.X, + IsNavigation = false, + IsPersonalizable = false, + PagePermissions = new List + { + new Permission(PermissionNames.View, RoleNames.Everyone, true), + new Permission(PermissionNames.View, RoleNames.Admin, true), + new Permission(PermissionNames.Edit, RoleNames.Admin, true) + }.EncodePermissions(), + PageTemplateModules = new List + { + new PageTemplateModule { ModuleDefinitionName = "Oqtane.Modules.HtmlText, Oqtane.Client", Title = "Not Found", Pane = PaneNames.Admin, + ModulePermissions = new List { + new Permission(PermissionNames.View, RoleNames.Everyone, true), + new Permission(PermissionNames.View, RoleNames.Admin, true), + new Permission(PermissionNames.Edit, RoleNames.Admin, true) + }.EncodePermissions(), + Content = "

The page you requested does not exist.

" + } + } + }); + + var pages = scope.ServiceProvider.GetRequiredService(); + + var sites = scope.ServiceProvider.GetRequiredService(); + foreach (Site site in sites.GetSites().ToList()) + { + if (!pages.GetPages(site.SiteId).ToList().Where(item => item.Path == "404").Any()) + { + sites.CreatePages(site, pageTemplates); + } + } + } } }