diff --git a/Oqtane.Client/Modules/Admin/Roles/Add.razor b/Oqtane.Client/Modules/Admin/Roles/Add.razor
index 2ade1692..80552c4c 100644
--- a/Oqtane.Client/Modules/Admin/Roles/Add.razor
+++ b/Oqtane.Client/Modules/Admin/Roles/Add.razor
@@ -12,7 +12,7 @@
-
+
|
@@ -20,7 +20,7 @@
-
+
|
diff --git a/Oqtane.Client/Modules/Admin/Roles/Edit.razor b/Oqtane.Client/Modules/Admin/Roles/Edit.razor
index cde5ef5b..9126fd57 100644
--- a/Oqtane.Client/Modules/Admin/Roles/Edit.razor
+++ b/Oqtane.Client/Modules/Admin/Roles/Edit.razor
@@ -12,7 +12,7 @@
-
+
|
@@ -20,7 +20,7 @@
-
+
|
diff --git a/Oqtane.Server/Infrastructure/DatabaseManager.cs b/Oqtane.Server/Infrastructure/DatabaseManager.cs
index 0729761d..44fdbcb1 100644
--- a/Oqtane.Server/Infrastructure/DatabaseManager.cs
+++ b/Oqtane.Server/Infrastructure/DatabaseManager.cs
@@ -516,6 +516,12 @@ namespace Oqtane.Infrastructure
}
if (string.IsNullOrEmpty(result.Message) && moduleDefinition.Version != versions[versions.Length - 1])
{
+ // get module definition from database to retain user customizable property values
+ var moduledef = db.ModuleDefinition.AsNoTracking().FirstOrDefault(item => item.ModuleDefinitionId == moduleDefinition.ModuleDefinitionId);
+ moduleDefinition.Name = moduledef.Name;
+ moduleDefinition.Description = moduledef.Description;
+ moduleDefinition.Categories = moduledef.Categories;
+ // update version
moduleDefinition.Version = versions[versions.Length - 1];
db.Entry(moduleDefinition).State = EntityState.Modified;
db.SaveChanges();
diff --git a/Oqtane.Server/Repository/Interfaces/IModuleDefinitionRepository.cs b/Oqtane.Server/Repository/Interfaces/IModuleDefinitionRepository.cs
index 48de4c8a..81b31b50 100644
--- a/Oqtane.Server/Repository/Interfaces/IModuleDefinitionRepository.cs
+++ b/Oqtane.Server/Repository/Interfaces/IModuleDefinitionRepository.cs
@@ -6,8 +6,9 @@ namespace Oqtane.Repository
public interface IModuleDefinitionRepository
{
IEnumerable GetModuleDefinitions();
- IEnumerable GetModuleDefinitions(int sideId);
- ModuleDefinition GetModuleDefinition(int moduleDefinitionId, int sideId);
+ IEnumerable GetModuleDefinitions(int siteId);
+ ModuleDefinition GetModuleDefinition(int moduleDefinitionId, int siteId);
+ ModuleDefinition GetModuleDefinition(int moduleDefinitionId, bool tracking);
void UpdateModuleDefinition(ModuleDefinition moduleDefinition);
void DeleteModuleDefinition(int moduleDefinitionId);
}
diff --git a/Oqtane.Server/Repository/ModuleDefinitionRepository.cs b/Oqtane.Server/Repository/ModuleDefinitionRepository.cs
index 33ae7cd5..5ec1fbb4 100644
--- a/Oqtane.Server/Repository/ModuleDefinitionRepository.cs
+++ b/Oqtane.Server/Repository/ModuleDefinitionRepository.cs
@@ -42,6 +42,24 @@ namespace Oqtane.Repository
return moduledefinitions.Find(item => item.ModuleDefinitionId == moduleDefinitionId);
}
+ public ModuleDefinition GetModuleDefinition(int moduleDefinitionId, bool tracking)
+ {
+ ModuleDefinition moduledefinition;
+ if (tracking)
+ {
+ moduledefinition = _db.ModuleDefinition.Find(moduleDefinitionId);
+ }
+ else
+ {
+ moduledefinition = _db.ModuleDefinition.AsNoTracking().FirstOrDefault(item => item.ModuleDefinitionId == moduleDefinitionId);
+ }
+ if (moduledefinition != null)
+ {
+ moduledefinition.Permissions = _permissions.GetPermissionString(EntityNames.ModuleDefinition, moduledefinition.ModuleDefinitionId);
+ }
+ return moduledefinition;
+ }
+
public void UpdateModuleDefinition(ModuleDefinition moduleDefinition)
{
_db.Entry(moduleDefinition).State = EntityState.Modified;
@@ -133,30 +151,15 @@ namespace Oqtane.Repository
moduledef = new ModuleDefinition { ModuleDefinitionName = moduledefinition.ModuleDefinitionName };
_db.ModuleDefinition.Add(moduledef);
_db.SaveChanges();
+ moduledefinition.Version = "";
}
else
{
- // existing module definition
- if (!string.IsNullOrEmpty(moduledef.Name))
- {
- moduledefinition.Name = moduledef.Name;
- }
-
- if (!string.IsNullOrEmpty(moduledef.Description))
- {
- moduledefinition.Description = moduledef.Description;
- }
-
- if (!string.IsNullOrEmpty(moduledef.Categories))
- {
- moduledefinition.Categories = moduledef.Categories;
- }
-
- if (!string.IsNullOrEmpty(moduledef.Version))
- {
- moduledefinition.Version = moduledef.Version;
- }
-
+ // override user customizable property values
+ moduledefinition.Name = (!string.IsNullOrEmpty(moduledef.Name)) ? moduledef.Name : moduledefinition.Name;
+ moduledefinition.Description = (!string.IsNullOrEmpty(moduledef.Description)) ? moduledef.Description : moduledefinition.Description;
+ moduledefinition.Categories = (!string.IsNullOrEmpty(moduledef.Categories)) ? moduledef.Categories : moduledefinition.Categories;
+ moduledefinition.Version = (!string.IsNullOrEmpty(moduledef.Version)) ? moduledef.Version : moduledefinition.Version;
// remove module definition from list as it is already synced
moduledefs.Remove(moduledef);
}
@@ -236,7 +239,6 @@ namespace Oqtane.Repository
// set internal properties
moduledefinition.ModuleDefinitionName = qualifiedModuleType;
- moduledefinition.Version = ""; // will be populated from database
moduledefinition.ControlTypeTemplate = modulecontroltype.Namespace + "." + Constants.ActionToken + ", " + modulecontroltype.Assembly.GetName().Name;
moduledefinition.AssemblyName = assembly.GetName().Name;
if (string.IsNullOrEmpty(moduledefinition.PackageName))