Fix issue where module definition version was not being loaded correctly on startup. Also user customizable module definition properties were being overwritten on upgrade.
This commit is contained in:
parent
17c0aec1fb
commit
bf6edceb36
|
@ -12,7 +12,7 @@
|
|||
<Label For="name" HelpText="Name Of The Role" ResourceKey="Name">Name:</Label>
|
||||
</td>
|
||||
<td>
|
||||
<input id="name" class="form-control" @bind="@_name" required />
|
||||
<input id="name" class="form-control" @bind="@_name" maxlength="256" required />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -20,7 +20,7 @@
|
|||
<Label For="description" HelpText="A Short Description Of The Role Which Describes Its Purpose" ResourceKey="Description">Description:</Label>
|
||||
</td>
|
||||
<td>
|
||||
<textarea id="description" class="form-control" @bind="@_description" rows="5" required></textarea>
|
||||
<textarea id="description" class="form-control" @bind="@_description" rows="5" maxlength="256" required></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<Label For="name" HelpText="Name Of The Role" ResourceKey="Name">Name:</Label>
|
||||
</td>
|
||||
<td>
|
||||
<input id="name" class="form-control" @bind="@_name" required />
|
||||
<input id="name" class="form-control" @bind="@_name" maxlength="256" required />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -20,7 +20,7 @@
|
|||
<Label For="description" HelpText="A Short Description Of The Role Which Describes Its Purpose" ResourceKey="Description">Description:</Label>
|
||||
</td>
|
||||
<td>
|
||||
<textarea id="description" class="form-control" @bind="@_description" rows="5" required></textarea>
|
||||
<textarea id="description" class="form-control" @bind="@_description" rows="5" maxlength="256" required></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -6,8 +6,9 @@ namespace Oqtane.Repository
|
|||
public interface IModuleDefinitionRepository
|
||||
{
|
||||
IEnumerable<ModuleDefinition> GetModuleDefinitions();
|
||||
IEnumerable<ModuleDefinition> GetModuleDefinitions(int sideId);
|
||||
ModuleDefinition GetModuleDefinition(int moduleDefinitionId, int sideId);
|
||||
IEnumerable<ModuleDefinition> GetModuleDefinitions(int siteId);
|
||||
ModuleDefinition GetModuleDefinition(int moduleDefinitionId, int siteId);
|
||||
ModuleDefinition GetModuleDefinition(int moduleDefinitionId, bool tracking);
|
||||
void UpdateModuleDefinition(ModuleDefinition moduleDefinition);
|
||||
void DeleteModuleDefinition(int moduleDefinitionId);
|
||||
}
|
||||
|
|
|
@ -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))
|
||||
|
|
Loading…
Reference in New Issue
Block a user