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>
|
<Label For="name" HelpText="Name Of The Role" ResourceKey="Name">Name:</Label>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input id="name" class="form-control" @bind="@_name" required />
|
<input id="name" class="form-control" @bind="@_name" maxlength="256" required />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
<Label For="description" HelpText="A Short Description Of The Role Which Describes Its Purpose" ResourceKey="Description">Description:</Label>
|
<Label For="description" HelpText="A Short Description Of The Role Which Describes Its Purpose" ResourceKey="Description">Description:</Label>
|
||||||
</td>
|
</td>
|
||||||
<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>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
<Label For="name" HelpText="Name Of The Role" ResourceKey="Name">Name:</Label>
|
<Label For="name" HelpText="Name Of The Role" ResourceKey="Name">Name:</Label>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input id="name" class="form-control" @bind="@_name" required />
|
<input id="name" class="form-control" @bind="@_name" maxlength="256" required />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
<Label For="description" HelpText="A Short Description Of The Role Which Describes Its Purpose" ResourceKey="Description">Description:</Label>
|
<Label For="description" HelpText="A Short Description Of The Role Which Describes Its Purpose" ResourceKey="Description">Description:</Label>
|
||||||
</td>
|
</td>
|
||||||
<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>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -516,6 +516,12 @@ namespace Oqtane.Infrastructure
|
||||||
}
|
}
|
||||||
if (string.IsNullOrEmpty(result.Message) && moduleDefinition.Version != versions[versions.Length - 1])
|
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];
|
moduleDefinition.Version = versions[versions.Length - 1];
|
||||||
db.Entry(moduleDefinition).State = EntityState.Modified;
|
db.Entry(moduleDefinition).State = EntityState.Modified;
|
||||||
db.SaveChanges();
|
db.SaveChanges();
|
||||||
|
|
|
@ -6,8 +6,9 @@ namespace Oqtane.Repository
|
||||||
public interface IModuleDefinitionRepository
|
public interface IModuleDefinitionRepository
|
||||||
{
|
{
|
||||||
IEnumerable<ModuleDefinition> GetModuleDefinitions();
|
IEnumerable<ModuleDefinition> GetModuleDefinitions();
|
||||||
IEnumerable<ModuleDefinition> GetModuleDefinitions(int sideId);
|
IEnumerable<ModuleDefinition> GetModuleDefinitions(int siteId);
|
||||||
ModuleDefinition GetModuleDefinition(int moduleDefinitionId, int sideId);
|
ModuleDefinition GetModuleDefinition(int moduleDefinitionId, int siteId);
|
||||||
|
ModuleDefinition GetModuleDefinition(int moduleDefinitionId, bool tracking);
|
||||||
void UpdateModuleDefinition(ModuleDefinition moduleDefinition);
|
void UpdateModuleDefinition(ModuleDefinition moduleDefinition);
|
||||||
void DeleteModuleDefinition(int moduleDefinitionId);
|
void DeleteModuleDefinition(int moduleDefinitionId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,6 +42,24 @@ namespace Oqtane.Repository
|
||||||
return moduledefinitions.Find(item => item.ModuleDefinitionId == moduleDefinitionId);
|
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)
|
public void UpdateModuleDefinition(ModuleDefinition moduleDefinition)
|
||||||
{
|
{
|
||||||
_db.Entry(moduleDefinition).State = EntityState.Modified;
|
_db.Entry(moduleDefinition).State = EntityState.Modified;
|
||||||
|
@ -133,30 +151,15 @@ namespace Oqtane.Repository
|
||||||
moduledef = new ModuleDefinition { ModuleDefinitionName = moduledefinition.ModuleDefinitionName };
|
moduledef = new ModuleDefinition { ModuleDefinitionName = moduledefinition.ModuleDefinitionName };
|
||||||
_db.ModuleDefinition.Add(moduledef);
|
_db.ModuleDefinition.Add(moduledef);
|
||||||
_db.SaveChanges();
|
_db.SaveChanges();
|
||||||
|
moduledefinition.Version = "";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// existing module definition
|
// override user customizable property values
|
||||||
if (!string.IsNullOrEmpty(moduledef.Name))
|
moduledefinition.Name = (!string.IsNullOrEmpty(moduledef.Name)) ? moduledef.Name : moduledefinition.Name;
|
||||||
{
|
moduledefinition.Description = (!string.IsNullOrEmpty(moduledef.Description)) ? moduledef.Description : moduledefinition.Description;
|
||||||
moduledefinition.Name = moduledef.Name;
|
moduledefinition.Categories = (!string.IsNullOrEmpty(moduledef.Categories)) ? moduledef.Categories : moduledefinition.Categories;
|
||||||
}
|
moduledefinition.Version = (!string.IsNullOrEmpty(moduledef.Version)) ? moduledef.Version : moduledefinition.Version;
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
// remove module definition from list as it is already synced
|
// remove module definition from list as it is already synced
|
||||||
moduledefs.Remove(moduledef);
|
moduledefs.Remove(moduledef);
|
||||||
}
|
}
|
||||||
|
@ -236,7 +239,6 @@ namespace Oqtane.Repository
|
||||||
|
|
||||||
// set internal properties
|
// set internal properties
|
||||||
moduledefinition.ModuleDefinitionName = qualifiedModuleType;
|
moduledefinition.ModuleDefinitionName = qualifiedModuleType;
|
||||||
moduledefinition.Version = ""; // will be populated from database
|
|
||||||
moduledefinition.ControlTypeTemplate = modulecontroltype.Namespace + "." + Constants.ActionToken + ", " + modulecontroltype.Assembly.GetName().Name;
|
moduledefinition.ControlTypeTemplate = modulecontroltype.Namespace + "." + Constants.ActionToken + ", " + modulecontroltype.Assembly.GetName().Name;
|
||||||
moduledefinition.AssemblyName = assembly.GetName().Name;
|
moduledefinition.AssemblyName = assembly.GetName().Name;
|
||||||
if (string.IsNullOrEmpty(moduledefinition.PackageName))
|
if (string.IsNullOrEmpty(moduledefinition.PackageName))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user