diff --git a/Oqtane.Client/Modules/Admin/Modules/Settings.razor b/Oqtane.Client/Modules/Admin/Modules/Settings.razor
index 9798c2f9..7f4f35f1 100644
--- a/Oqtane.Client/Modules/Admin/Modules/Settings.razor
+++ b/Oqtane.Client/Modules/Admin/Modules/Settings.razor
@@ -26,6 +26,17 @@
+
@@ -112,6 +123,7 @@
private List _containers = new List();
private string _module;
private string _title;
+ private string _pane;
private string _containerType;
private string _allPages = "false";
private string _permissionNames = "";
@@ -134,80 +146,82 @@
{
_module = ModuleState.ModuleDefinition.Name;
_title = ModuleState.Title;
+ _pane = ModuleState.Pane;
_containers = ThemeService.GetContainerControls(PageState.Site.Themes, PageState.Page.ThemeType);
- _containerType = ModuleState.ContainerType;
- _allPages = ModuleState.AllPages.ToString();
- _permissions = ModuleState.PermissionList;
- _pageId = ModuleState.PageId.ToString();
- createdby = ModuleState.CreatedBy;
- createdon = ModuleState.CreatedOn;
- modifiedby = ModuleState.ModifiedBy;
- modifiedon = ModuleState.ModifiedOn;
+ _containerType = ModuleState.ContainerType;
+ _allPages = ModuleState.AllPages.ToString();
+ _permissions = ModuleState.PermissionList;
+ _pageId = ModuleState.PageId.ToString();
+ createdby = ModuleState.CreatedBy;
+ createdon = ModuleState.CreatedOn;
+ modifiedby = ModuleState.ModifiedBy;
+ modifiedon = ModuleState.ModifiedOn;
- if (ModuleState.ModuleDefinition != null)
- {
- _permissionNames = ModuleState.ModuleDefinition?.PermissionNames;
+ if (ModuleState.ModuleDefinition != null)
+ {
+ _permissionNames = ModuleState.ModuleDefinition?.PermissionNames;
- if (!string.IsNullOrEmpty(ModuleState.ModuleDefinition.SettingsType))
- {
- // module settings type explicitly declared in IModule interface
- _moduleSettingsType = Type.GetType(ModuleState.ModuleDefinition.SettingsType);
- }
- else
- {
- // legacy support - module settings type determined by convention ( ie. existence of a "Settings.razor" component in module )
- _moduleSettingsType = Type.GetType(ModuleState.ModuleDefinition.ControlTypeTemplate.Replace(Constants.ActionToken, PageState.Action), false, true);
- }
- if (_moduleSettingsType != null)
- {
- var moduleobject = Activator.CreateInstance(_moduleSettingsType) as IModuleControl;
- if (!string.IsNullOrEmpty(moduleobject.Title))
- {
- _moduleSettingsTitle = moduleobject.Title;
- }
+ if (!string.IsNullOrEmpty(ModuleState.ModuleDefinition.SettingsType))
+ {
+ // module settings type explicitly declared in IModule interface
+ _moduleSettingsType = Type.GetType(ModuleState.ModuleDefinition.SettingsType);
+ }
+ else
+ {
+ // legacy support - module settings type determined by convention ( ie. existence of a "Settings.razor" component in module )
+ _moduleSettingsType = Type.GetType(ModuleState.ModuleDefinition.ControlTypeTemplate.Replace(Constants.ActionToken, PageState.Action), false, true);
+ }
+ if (_moduleSettingsType != null)
+ {
+ var moduleobject = Activator.CreateInstance(_moduleSettingsType) as IModuleControl;
+ if (!string.IsNullOrEmpty(moduleobject.Title))
+ {
+ _moduleSettingsTitle = moduleobject.Title;
+ }
- ModuleSettingsComponent = builder =>
- {
- builder.OpenComponent(0, _moduleSettingsType);
- builder.AddComponentReferenceCapture(1, inst => { _moduleSettings = Convert.ChangeType(inst, _moduleSettingsType); });
- builder.CloseComponent();
- };
- }
- }
- else
- {
- AddModuleMessage(string.Format(Localizer["Error.Module.Load"], ModuleState.ModuleDefinitionName), MessageType.Error);
- }
+ ModuleSettingsComponent = builder =>
+ {
+ builder.OpenComponent(0, _moduleSettingsType);
+ builder.AddComponentReferenceCapture(1, inst => { _moduleSettings = Convert.ChangeType(inst, _moduleSettingsType); });
+ builder.CloseComponent();
+ };
+ }
+ }
+ else
+ {
+ AddModuleMessage(string.Format(Localizer["Error.Module.Load"], ModuleState.ModuleDefinitionName), MessageType.Error);
+ }
var theme = PageState.Site.Themes.FirstOrDefault(item => item.Containers.Any(themecontrol => themecontrol.TypeName.Equals(_containerType)));
- if (theme != null && !string.IsNullOrEmpty(theme.ContainerSettingsType))
- {
- _containerSettingsType = Type.GetType(theme.ContainerSettingsType);
- if (_containerSettingsType != null)
- {
- ContainerSettingsComponent = builder =>
- {
- builder.OpenComponent(0, _containerSettingsType);
- builder.AddComponentReferenceCapture(1, inst => { _containerSettings = Convert.ChangeType(inst, _containerSettingsType); });
- builder.CloseComponent();
- };
- }
- }
- }
+ if (theme != null && !string.IsNullOrEmpty(theme.ContainerSettingsType))
+ {
+ _containerSettingsType = Type.GetType(theme.ContainerSettingsType);
+ if (_containerSettingsType != null)
+ {
+ ContainerSettingsComponent = builder =>
+ {
+ builder.OpenComponent(0, _containerSettingsType);
+ builder.AddComponentReferenceCapture(1, inst => { _containerSettings = Convert.ChangeType(inst, _containerSettingsType); });
+ builder.CloseComponent();
+ };
+ }
+ }
+ }
- private async Task SaveModule()
- {
- validated = true;
- var interop = new Interop(JSRuntime);
- if (await interop.FormValid(form))
- {
- if (!string.IsNullOrEmpty(_title))
- {
- var pagemodule = await PageModuleService.GetPageModuleAsync(ModuleState.PageModuleId);
- pagemodule.PageId = int.Parse(_pageId);
- pagemodule.Title = _title;
- pagemodule.ContainerType = (_containerType != "-") ? _containerType : string.Empty;
- if (!string.IsNullOrEmpty(pagemodule.ContainerType) && pagemodule.ContainerType == PageState.Page.DefaultContainerType)
+ private async Task SaveModule()
+ {
+ validated = true;
+ var interop = new Interop(JSRuntime);
+ if (await interop.FormValid(form))
+ {
+ if (!string.IsNullOrEmpty(_title))
+ {
+ var pagemodule = await PageModuleService.GetPageModuleAsync(ModuleState.PageModuleId);
+ pagemodule.PageId = int.Parse(_pageId);
+ pagemodule.Title = _title;
+ pagemodule.Pane = _pane;
+ pagemodule.ContainerType = (_containerType != "-") ? _containerType : string.Empty;
+ if (!string.IsNullOrEmpty(pagemodule.ContainerType) && pagemodule.ContainerType == PageState.Page.DefaultContainerType)
{
pagemodule.ContainerType = string.Empty;
}
diff --git a/Oqtane.Client/Resources/Modules/Admin/Modules/Settings.resx b/Oqtane.Client/Resources/Modules/Admin/Modules/Settings.resx
index cead365f..5b7849ec 100644
--- a/Oqtane.Client/Resources/Modules/Admin/Modules/Settings.resx
+++ b/Oqtane.Client/Resources/Modules/Admin/Modules/Settings.resx
@@ -159,4 +159,10 @@
Module Settings
+
+ The pane where the module will be displayed
+
+
+ Pane:
+
\ No newline at end of file