diff --git a/Oqtane.Client/Modules/Admin/Modules/Settings.razor b/Oqtane.Client/Modules/Admin/Modules/Settings.razor
index eec6c6e2..3d981593 100644
--- a/Oqtane.Client/Modules/Admin/Modules/Settings.razor
+++ b/Oqtane.Client/Modules/Admin/Modules/Settings.razor
@@ -24,7 +24,7 @@
|
|
|
+
+
+
+ |
+
+
+ |
+
@@ -187,6 +201,7 @@
@code {
private Dictionary _themes;
private Dictionary _panelayouts;
+ private Dictionary _containers = new Dictionary();
private List _themeList;
private List _pageList;
private string _name;
@@ -202,6 +217,7 @@
private string _mode = "view";
private string _themetype = "-";
private string _layouttype = "-";
+ private string _containertype = "-";
private string _icon = string.Empty;
private string _permissions = string.Empty;
private PermissionGrid _permissionGrid;
@@ -216,11 +232,9 @@
_pageList = PageState.Pages;
_children = PageState.Pages.Where(item => item.ParentId == null).ToList();
- _themetype = PageState.Site.DefaultThemeType;
- _layouttype = PageState.Site.DefaultLayoutType;
-
_themes = ThemeService.GetThemeTypes(_themeList);
_panelayouts = ThemeService.GetPaneLayoutTypes(_themeList, _themetype);
+ _containers = ThemeService.GetContainerTypes(_themeList);
_permissions = string.Empty;
}
@@ -351,16 +365,20 @@
page.Url = _url;
page.EditMode = (_mode == "edit" ? true : false);
page.ThemeType = (_themetype != "-") ? _themetype : string.Empty;
- page.LayoutType = (_layouttype != "-") ? _layouttype : string.Empty;
- if (page.ThemeType == PageState.Site.DefaultThemeType)
+ if (!string.IsNullOrEmpty(page.ThemeType) && page.ThemeType == PageState.Site.DefaultThemeType)
{
page.ThemeType = string.Empty;
}
-
- if (page.LayoutType == PageState.Site.DefaultLayoutType)
+ page.LayoutType = (_layouttype != "-") ? _layouttype : string.Empty;
+ if (!string.IsNullOrEmpty(page.LayoutType) && page.LayoutType == PageState.Site.DefaultLayoutType)
{
page.LayoutType = string.Empty;
}
+ page.DefaultContainerType = (_containertype != "-") ? _containertype : string.Empty;
+ if (!string.IsNullOrEmpty(page.DefaultContainerType) && page.DefaultContainerType == PageState.Site.DefaultContainerType)
+ {
+ page.DefaultContainerType = string.Empty;
+ }
page.Icon = (_icon == null ? string.Empty : _icon);
page.Permissions = _permissionGrid.GetPermissions();
page.IsPersonalizable = (_ispersonalizable == null ? false : Boolean.Parse(_ispersonalizable));
diff --git a/Oqtane.Client/Modules/Admin/Pages/Edit.razor b/Oqtane.Client/Modules/Admin/Pages/Edit.razor
index 8132696d..b25f6b2e 100644
--- a/Oqtane.Client/Modules/Admin/Pages/Edit.razor
+++ b/Oqtane.Client/Modules/Admin/Pages/Edit.razor
@@ -112,7 +112,7 @@
|
|
|
+
+
+
+ |
+
+
+ |
+
@@ -200,6 +214,7 @@
@code {
private Dictionary _themes;
private Dictionary _panelayouts;
+ private Dictionary _containers = new Dictionary();
private List _themeList;
private List _pageList;
private int _pageId;
@@ -217,6 +232,7 @@
private string _mode;
private string _themetype = "-";
private string _layouttype = "-";
+ private string _containertype = "-";
private string _icon;
private string _permissions;
private string _createdby;
@@ -241,6 +257,7 @@
_children = PageState.Pages.Where(item => item.ParentId == null).ToList();
_themes = ThemeService.GetThemeTypes(_themeList);
+ _containers = ThemeService.GetContainerTypes(_themeList);
_pageId = Int32.Parse(PageState.QueryString["id"]);
var page = PageState.Pages.FirstOrDefault(item => item.PageId == _pageId);
@@ -270,16 +287,21 @@
_ispersonalizable = page.IsPersonalizable.ToString();
_mode = (page.EditMode) ? "edit" : "view";
_themetype = page.ThemeType;
- _panelayouts = ThemeService.GetPaneLayoutTypes(_themeList, _themetype);
- _layouttype = page.LayoutType;
if (_themetype == PageState.Site.DefaultThemeType)
{
_themetype = "-";
}
+ _panelayouts = ThemeService.GetPaneLayoutTypes(_themeList, _themetype);
+ _layouttype = page.LayoutType;
if (_layouttype == PageState.Site.DefaultLayoutType)
{
_layouttype = "-";
}
+ _containertype = page.DefaultContainerType;
+ if (string.IsNullOrEmpty(_containertype))
+ {
+ _containertype = "-";
+ }
_icon = page.Icon;
_permissions = page.Permissions;
_createdby = page.CreatedBy;
@@ -426,15 +448,20 @@
page.Url = _url;
page.EditMode = (_mode == "edit");
page.ThemeType = (_themetype != "-") ? _themetype : string.Empty;
- page.LayoutType = (_layouttype != "-") ? _layouttype : string.Empty;
- if (page.ThemeType == PageState.Site.DefaultThemeType)
+ if (!string.IsNullOrEmpty(page.ThemeType) && page.ThemeType == PageState.Site.DefaultThemeType)
{
page.ThemeType = string.Empty;
}
- if (page.LayoutType == PageState.Site.DefaultLayoutType)
+ page.LayoutType = (_layouttype != "-") ? _layouttype : string.Empty;
+ if (!string.IsNullOrEmpty(page.LayoutType) && page.LayoutType == PageState.Site.DefaultLayoutType)
{
page.LayoutType = string.Empty;
}
+ page.DefaultContainerType = (_containertype != "-") ? _containertype : string.Empty;
+ if (!string.IsNullOrEmpty(page.DefaultContainerType) && page.DefaultContainerType == PageState.Site.DefaultContainerType)
+ {
+ page.DefaultContainerType = string.Empty;
+ }
page.Icon = _icon ?? string.Empty;
page.Permissions = _permissionGrid.GetPermissions();
page.IsPersonalizable = (_ispersonalizable != null && Boolean.Parse(_ispersonalizable));
diff --git a/Oqtane.Client/UI/SiteRouter.razor b/Oqtane.Client/UI/SiteRouter.razor
index ac7b692e..488c43bf 100644
--- a/Oqtane.Client/UI/SiteRouter.razor
+++ b/Oqtane.Client/UI/SiteRouter.razor
@@ -260,7 +260,7 @@
if (PageState == null || reload >= Reload.Page)
{
modules = await ModuleService.GetModulesAsync(site.SiteId);
- modules = ProcessModules(modules, page.PageId, _pagestate.ModuleId, _pagestate.Action, page.Panes, site.DefaultContainerType);
+ modules = ProcessModules(modules, page.PageId, _pagestate.ModuleId, _pagestate.Action, page.Panes, (!string.IsNullOrEmpty(page.DefaultContainerType)) ? page.DefaultContainerType : site.DefaultContainerType);
}
else
{
diff --git a/Oqtane.Server/Controllers/PageController.cs b/Oqtane.Server/Controllers/PageController.cs
index 915fccdc..6797796a 100644
--- a/Oqtane.Server/Controllers/PageController.cs
+++ b/Oqtane.Server/Controllers/PageController.cs
@@ -166,6 +166,7 @@ namespace Oqtane.Controllers
page.EditMode = false;
page.ThemeType = parent.ThemeType;
page.LayoutType = parent.LayoutType;
+ page.DefaultContainerType = parent.DefaultContainerType;
page.Icon = parent.Icon;
page.Permissions = new List {
new Permission(PermissionNames.View, userid, true),
diff --git a/Oqtane.Server/Oqtane.Server.csproj b/Oqtane.Server/Oqtane.Server.csproj
index b298fc75..88064ed9 100644
--- a/Oqtane.Server/Oqtane.Server.csproj
+++ b/Oqtane.Server/Oqtane.Server.csproj
@@ -19,12 +19,14 @@
+
+
diff --git a/Oqtane.Server/Repository/SiteRepository.cs b/Oqtane.Server/Repository/SiteRepository.cs
index d7c8a1e5..ae179abe 100644
--- a/Oqtane.Server/Repository/SiteRepository.cs
+++ b/Oqtane.Server/Repository/SiteRepository.cs
@@ -757,6 +757,7 @@ namespace Oqtane.Repository
EditMode = pagetemplate.EditMode,
ThemeType = "",
LayoutType = "",
+ DefaultContainerType = "",
Icon = pagetemplate.Icon,
Permissions = pagetemplate.PagePermissions,
IsPersonalizable = pagetemplate.IsPersonalizable,
diff --git a/Oqtane.Server/Scripts/Tenant.0.9.1.sql b/Oqtane.Server/Scripts/Tenant.0.9.1.sql
index 94728128..55825ada 100644
--- a/Oqtane.Server/Scripts/Tenant.0.9.1.sql
+++ b/Oqtane.Server/Scripts/Tenant.0.9.1.sql
@@ -1,6 +1,6 @@
/*
-migration script
+Version 0.9.1 migration script
*/
diff --git a/Oqtane.Server/Scripts/Tenant.0.9.2.sql b/Oqtane.Server/Scripts/Tenant.0.9.2.sql
new file mode 100644
index 00000000..11330770
--- /dev/null
+++ b/Oqtane.Server/Scripts/Tenant.0.9.2.sql
@@ -0,0 +1,18 @@
+/*
+
+Version 0.9.2 migration script
+
+*/
+
+ALTER TABLE [dbo].[Role]
+ALTER COLUMN [Description] VARCHAR (256) NOT NULL
+GO
+
+ALTER TABLE [dbo].[Page] ADD
+ [DefaultContainerType] [nvarchar](200) NULL
+GO
+
+UPDATE [dbo].[Page]
+SET [DefaultContainerType] = ''
+GO
+
diff --git a/Oqtane.Shared/Models/Page.cs b/Oqtane.Shared/Models/Page.cs
index f1268875..2d3f3624 100644
--- a/Oqtane.Shared/Models/Page.cs
+++ b/Oqtane.Shared/Models/Page.cs
@@ -15,6 +15,7 @@ namespace Oqtane.Models
public string Url { get; set; }
public string ThemeType { get; set; }
public string LayoutType { get; set; }
+ public string DefaultContainerType { get; set; }
public string Icon { get; set; }
public bool IsNavigation { get; set; }
public bool EditMode { get; set; }
|