diff --git a/Oqtane.Client/Modules/Admin/Languages/Index.razor b/Oqtane.Client/Modules/Admin/Languages/Index.razor index cb097355..bafe7e9b 100644 --- a/Oqtane.Client/Modules/Admin/Languages/Index.razor +++ b/Oqtane.Client/Modules/Admin/Languages/Index.razor @@ -47,7 +47,7 @@ else protected override async Task OnParametersSetAsync() { - _languages = await LanguageService.GetLanguagesAsync(PageState.Site.SiteId, Constants.PackageId); + _languages = await LanguageService.GetLanguagesAsync(PageState.Site.SiteId, Constants.ClientId); var cultures = await LocalizationService.GetCulturesAsync(); var culture = cultures.First(c => c.Name.Equals(Constants.DefaultCulture)); @@ -78,7 +78,7 @@ else private bool UpgradeAvailable(string code, string version) { var upgradeavailable = false; - if (_packages != null) + if (_packages != null && version != null) { var package = _packages.Where(item => item.PackageId == (Constants.PackageId + "." + code)).FirstOrDefault(); if (package != null) diff --git a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor index c0f8c951..b425b9bb 100644 --- a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor +++ b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor @@ -102,46 +102,43 @@ @SharedLocalizer["Cancel"] - @if (_languages != null) + @if (_languages != null && _languages.Count > 0) { - @if (_languages.Count > 0) - { - -
- @SharedLocalizer["Name"] - @Localizer["Code"] - @Localizer["Version"] -   -
- - @context.Name - @context.Code - @context.Version - - @if (context.IsDefault) + +
+ @SharedLocalizer["Name"] + @Localizer["Code"] + @Localizer["Version"] +   +
+ + @context.Name + @context.Code + @context.Version + + @if (context.IsDefault) + { + + } + else + { + if (UpgradeAvailable(_packagename + "." + context.Code, context.Version)) { - + } - else - { - if (UpgradeAvailable(_packagename + "." + context.Code, context.Version)) - { - - } - } - - -
- - } - else - { -
-
- @Localizer["Search.NoResults"] -
-
- } + } + +
+
+ + } + else + { +
+
+ @Localizer["Search.NoResults"] +
+
}
@@ -237,17 +234,20 @@ _modifiedby = moduleDefinition.ModifiedBy; _modifiedon = moduleDefinition.ModifiedOn; - _packages = await PackageService.GetPackagesAsync("translation", "", "", _packagename); - _languages = await LanguageService.GetLanguagesAsync(-1, _packagename); - foreach (var package in _packages) + if (!string.IsNullOrEmpty(_packagename)) { - var code = package.PackageId.Split('.').Last(); - if (!_languages.Any(item => item.Code == code)) + _packages = await PackageService.GetPackagesAsync("translation", "", "", _packagename); + _languages = await LanguageService.GetLanguagesAsync(-1, _packagename); + foreach (var package in _packages) { - _languages.Add(new Language { Code = code, Name = CultureInfo.GetCultureInfo(code).DisplayName, Version = package.Version, IsDefault = true }); + var code = package.PackageId.Split('.').Last(); + if (!_languages.Any(item => item.Code == code)) + { + _languages.Add(new Language { Code = code, Name = CultureInfo.GetCultureInfo(code).DisplayName, Version = package.Version, IsDefault = true }); + } } + _languages = _languages.OrderBy(item => item.Name).ToList(); } - _languages = _languages.OrderBy(item => item.Name).ToList(); } } catch (Exception ex) diff --git a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Index.razor b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Index.razor index 3cfbcb7e..dcde0c2c 100644 --- a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Index.razor +++ b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Index.razor @@ -50,7 +50,7 @@ else - @if (context.AssemblyName != "Oqtane.Client") + @if (context.AssemblyName != Constants.ClientId) { } @@ -58,7 +58,7 @@ else @context.Name @context.Version - @if(context.AssemblyName == "Oqtane.Client" || PageState.Modules.Where(m => m.ModuleDefinition?.ModuleDefinitionId == context.ModuleDefinitionId).FirstOrDefault() != null) + @if (context.AssemblyName == Constants.ClientId || PageState.Modules.Where(m => m.ModuleDefinition?.ModuleDefinitionId == context.ModuleDefinitionId).FirstOrDefault() != null) { @SharedLocalizer["Yes"] } diff --git a/Oqtane.Client/Modules/Admin/Themes/Index.razor b/Oqtane.Client/Modules/Admin/Themes/Index.razor index 90213b9e..e613f553 100644 --- a/Oqtane.Client/Modules/Admin/Themes/Index.razor +++ b/Oqtane.Client/Modules/Admin/Themes/Index.razor @@ -29,7 +29,7 @@ else - @if (context.AssemblyName != "Oqtane.Client") + @if (context.AssemblyName != Constants.ClientId) { } diff --git a/Oqtane.Server/Controllers/LanguageController.cs b/Oqtane.Server/Controllers/LanguageController.cs index dc63eda8..0a9a9cc8 100644 --- a/Oqtane.Server/Controllers/LanguageController.cs +++ b/Oqtane.Server/Controllers/LanguageController.cs @@ -42,10 +42,13 @@ namespace Oqtane.Controllers { if (!string.IsNullOrEmpty(packagename)) { - foreach (var file in Directory.EnumerateFiles(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), $"{packagename}.*{Constants.SatelliteAssemblyExtension}", SearchOption.AllDirectories)) + foreach (var file in Directory.EnumerateFiles(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), $"{packagename}*{Constants.SatelliteAssemblyExtension}", SearchOption.AllDirectories)) { var code = Path.GetFileName(Path.GetDirectoryName(file)); - languages.Add(new Language { Code = code, Name = CultureInfo.GetCultureInfo(code).DisplayName, Version = FileVersionInfo.GetVersionInfo(file).FileVersion, IsDefault = false }); + if (!languages.Any(item => item.Code == code)) + { + languages.Add(new Language { Code = code, Name = CultureInfo.GetCultureInfo(code).DisplayName, Version = FileVersionInfo.GetVersionInfo(file).FileVersion, IsDefault = false }); + } } } } @@ -54,7 +57,7 @@ namespace Oqtane.Controllers languages = _languages.GetLanguages(SiteId).ToList(); if (!string.IsNullOrEmpty(packagename)) { - foreach (var file in Directory.EnumerateFiles(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), $"{packagename}.*{Constants.SatelliteAssemblyExtension}", SearchOption.AllDirectories)) + foreach (var file in Directory.EnumerateFiles(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), $"{packagename}*{Constants.SatelliteAssemblyExtension}", SearchOption.AllDirectories)) { var code = Path.GetFileName(Path.GetDirectoryName(file)); if (languages.Any(item => item.Code == code)) diff --git a/Oqtane.Server/Controllers/ThemeController.cs b/Oqtane.Server/Controllers/ThemeController.cs index 132b7a78..690db812 100644 --- a/Oqtane.Server/Controllers/ThemeController.cs +++ b/Oqtane.Server/Controllers/ThemeController.cs @@ -56,7 +56,7 @@ namespace Oqtane.Controllers { List themes = _themes.GetThemes().ToList(); Theme theme = themes.Where(item => item.ThemeName == themename).FirstOrDefault(); - if (theme != null && Utilities.GetAssemblyName(theme.ThemeName) != "Oqtane.Client") + if (theme != null && Utilities.GetAssemblyName(theme.ThemeName) != Constants.ClientId) { // remove theme assets if (_installationManager.UninstallPackage(theme.PackageName)) diff --git a/Oqtane.Server/Infrastructure/LocalizationManager.cs b/Oqtane.Server/Infrastructure/LocalizationManager.cs index 7faf27ca..8eec7195 100644 --- a/Oqtane.Server/Infrastructure/LocalizationManager.cs +++ b/Oqtane.Server/Infrastructure/LocalizationManager.cs @@ -40,7 +40,7 @@ namespace Oqtane.Infrastructure public string[] GetInstalledCultures() { var cultures = new List(); - foreach (var file in Directory.EnumerateFiles(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), $"Oqtane.Client{Constants.SatelliteAssemblyExtension}", SearchOption.AllDirectories)) + foreach (var file in Directory.EnumerateFiles(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), $"{Constants.ClientId}{Constants.SatelliteAssemblyExtension}", SearchOption.AllDirectories)) { cultures.Add(Path.GetFileName(Path.GetDirectoryName(file))); } diff --git a/Oqtane.Shared/Extensions/AssemblyExtensions.cs b/Oqtane.Shared/Extensions/AssemblyExtensions.cs index d2b667ea..7ebd9c68 100644 --- a/Oqtane.Shared/Extensions/AssemblyExtensions.cs +++ b/Oqtane.Shared/Extensions/AssemblyExtensions.cs @@ -79,7 +79,7 @@ namespace System.Reflection { return appDomain.GetOqtaneAssemblies() .Where(a => a.GetTypes().Any() || a.GetTypes().Any() || a.GetTypes().Any()) - .Where(a => Utilities.GetFullTypeName(a.GetName().Name) != "Oqtane.Client"); + .Where(a => Utilities.GetFullTypeName(a.GetName().Name) != Constants.ClientId); } /// diff --git a/Oqtane.Shared/Shared/Constants.cs b/Oqtane.Shared/Shared/Constants.cs index 1fd1a591..ffb0dcc9 100644 --- a/Oqtane.Shared/Shared/Constants.cs +++ b/Oqtane.Shared/Shared/Constants.cs @@ -7,6 +7,7 @@ namespace Oqtane.Shared public static readonly string Version = "3.2.0"; public const string ReleaseVersions = "1.0.0,1.0.1,1.0.2,1.0.3,1.0.4,2.0.0,2.0.1,2.0.2,2.1.0,2.2.0,2.3.0,2.3.1,3.0.0,3.0.1,3.0.2,3.0.3,3.1.0,3.1.1,3.1.2,3.1.3,3.1.4,3.2.0"; public const string PackageId = "Oqtane.Framework"; + public const string ClientId = "Oqtane.Client"; public const string UpdaterPackageId = "Oqtane.Updater"; public const string PackageRegistryUrl = "https://www.oqtane.net";