diff --git a/Oqtane.Client/Modules/Admin/Pages/Add.razor b/Oqtane.Client/Modules/Admin/Pages/Add.razor index 7ceb31cc..8c07b2bc 100644 --- a/Oqtane.Client/Modules/Admin/Pages/Add.razor +++ b/Oqtane.Client/Modules/Admin/Pages/Add.razor @@ -8,6 +8,8 @@ @inject IPageService PageService @inject IThemeService ThemeService +@message + @@ -53,8 +55,8 @@ @@ -117,6 +119,8 @@ @code { public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Admin; } } + string message = ""; + Dictionary themes = new Dictionary(); Dictionary panelayouts = new Dictionary(); @@ -133,44 +137,59 @@ protected override void OnInitialized() { - themes = ThemeService.GetThemeTypes(PageState.Themes); - panelayouts = ThemeService.GetPaneLayoutTypes(PageState.Themes); + try + { + themes = ThemeService.GetThemeTypes(PageState.Themes); + panelayouts = ThemeService.GetPaneLayoutTypes(PageState.Themes); + } + catch (Exception ex) + { + message = ex.Message; + } } private async Task SavePage() { - Page p = new Page(); - p.SiteId = PageState.Page.SiteId; - if (string.IsNullOrEmpty(parentid)) + try { - p.ParentId = null; + Page page = new Page(); + page.SiteId = PageState.Page.SiteId; + if (string.IsNullOrEmpty(parentid)) + { + page.ParentId = null; + } + else + { + page.ParentId = Int32.Parse(parentid); + } + page.Name = name; + page.Path = path; + page.Order = (order == null ? 1 : Int32.Parse(order)); + page.IsNavigation = (isnavigation == null ? true : Boolean.Parse(isnavigation)); + page.ThemeType = themetype; + page.LayoutType = (layouttype == null ? "" : layouttype); + page.Icon = (icon == null ? "" : icon); + Type type; + if (!string.IsNullOrEmpty(layouttype)) + { + type = Type.GetType(layouttype); + } + else + { + type = Type.GetType(themetype); + } + System.Reflection.PropertyInfo property = type.GetProperty("Panes"); + page.Panes = (string)property.GetValue(Activator.CreateInstance(type), null); + page.ViewPermissions = viewpermissions; + page.EditPermissions = editpermissions; + await PageService.AddPageAsync(page); + + PageState.Reload = Constants.ReloadSite; + UriHelper.NavigateTo(NavigateUrl(path)); } - else + catch (Exception ex) { - p.ParentId = Int32.Parse(parentid); + message = ex.Message; } - p.Name = name; - p.Path = path; - p.Order = (order == null ? 1 : Int32.Parse(order)); - p.IsNavigation = (isnavigation == null ? true : Boolean.Parse(isnavigation)); - p.ThemeType = themetype; - p.LayoutType = (layouttype == null ? "" : layouttype); - p.Icon = (icon == null ? "" : icon); - Type type; - if (!string.IsNullOrEmpty(layouttype)) - { - type = Type.GetType(layouttype); - } - else - { - type = Type.GetType(themetype); - } - System.Reflection.PropertyInfo property = type.GetProperty("Panes"); - p.Panes = (string)property.GetValue(Activator.CreateInstance(type), null); - p.ViewPermissions = viewpermissions; - p.EditPermissions = editpermissions; - await PageService.AddPageAsync(p); - PageState.Reload = Constants.ReloadSite; - UriHelper.NavigateTo(NavigateUrl(path)); } } diff --git a/Oqtane.Client/Modules/Admin/Pages/Delete.razor b/Oqtane.Client/Modules/Admin/Pages/Delete.razor index ad6efa47..85703eb7 100644 --- a/Oqtane.Client/Modules/Admin/Pages/Delete.razor +++ b/Oqtane.Client/Modules/Admin/Pages/Delete.razor @@ -3,11 +3,14 @@ @using Oqtane.Services @using Oqtane.Modules @using Oqtane.Shared +@using Oqtane.Client.Modules.Controls @inherits ModuleBase @inject IUriHelper UriHelper @inject IPageService PageService @inject IThemeService ThemeService +@message +
@@ -32,9 +34,9 @@
@@ -63,7 +66,7 @@
@@ -53,8 +56,8 @@
- @foreach (KeyValuePair item in themes) { @@ -77,7 +80,7 @@ - @foreach (KeyValuePair panelayout in panelayouts) { @@ -113,10 +116,14 @@
Cancel +

+ @code { public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Admin; } } + string message = ""; + Dictionary themes = new Dictionary(); Dictionary panelayouts = new Dictionary(); @@ -131,33 +138,55 @@ string icon; string viewpermissions; string editpermissions; + string createdby; + DateTime createdon; + string modifiedby; + DateTime modifiedon; protected override void OnInitialized() { - themes = ThemeService.GetThemeTypes(PageState.Themes); - panelayouts = ThemeService.GetPaneLayoutTypes(PageState.Themes); - - PageId = Int32.Parse(PageState.QueryString["id"]); - Page p = PageState.Pages.Where(item => item.PageId == PageId).FirstOrDefault(); - if (p != null) + try { - name = p.Name; - path = p.Path; + themes = ThemeService.GetThemeTypes(PageState.Themes); + panelayouts = ThemeService.GetPaneLayoutTypes(PageState.Themes); - order = p.Order.ToString(); - isnavigation = p.IsNavigation.ToString(); - themetype = p.ThemeType; - layouttype = p.LayoutType; - icon = p.Icon; - viewpermissions = p.ViewPermissions; - editpermissions = p.EditPermissions; + PageId = Int32.Parse(PageState.QueryString["id"]); + Page page = PageState.Pages.Where(item => item.PageId == PageId).FirstOrDefault(); + if (page != null) + { + name = page.Name; + path = page.Path; + + order = page.Order.ToString(); + isnavigation = page.IsNavigation.ToString(); + themetype = page.ThemeType; + layouttype = page.LayoutType; + icon = page.Icon; + viewpermissions = page.ViewPermissions; + editpermissions = page.EditPermissions; + createdby = page.CreatedBy; + createdon = page.CreatedOn; + modifiedby = page.ModifiedBy; + modifiedon = page.ModifiedOn; + } + } + catch (Exception ex) + { + message = ex.Message; } } private async Task DeletePage() { - await PageService.DeletePageAsync(Int32.Parse(PageState.QueryString["id"])); - PageState.Reload = Constants.ReloadSite; - UriHelper.NavigateTo(NavigateUrl()); + try + { + await PageService.DeletePageAsync(Int32.Parse(PageState.QueryString["id"])); + PageState.Reload = Constants.ReloadSite; + UriHelper.NavigateTo(NavigateUrl()); + } + catch (Exception ex) + { + message = ex.Message; + } } } diff --git a/Oqtane.Client/Modules/Admin/Pages/Edit.razor b/Oqtane.Client/Modules/Admin/Pages/Edit.razor index 568cfad0..88163633 100644 --- a/Oqtane.Client/Modules/Admin/Pages/Edit.razor +++ b/Oqtane.Client/Modules/Admin/Pages/Edit.razor @@ -9,6 +9,8 @@ @inject IPageService PageService @inject IThemeService ThemeService +@message + @@ -54,8 +56,8 @@ @@ -114,10 +116,14 @@
@@ -33,9 +35,9 @@
Cancel +

+ @code { public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Admin; } } + string message = ""; + Dictionary themes = new Dictionary(); Dictionary panelayouts = new Dictionary(); @@ -132,69 +138,93 @@ string icon; string viewpermissions; string editpermissions; + string createdby; + DateTime createdon; + string modifiedby; + DateTime modifiedon; protected override void OnInitialized() { - themes = ThemeService.GetThemeTypes(PageState.Themes); - panelayouts = ThemeService.GetPaneLayoutTypes(PageState.Themes); - - PageId = Int32.Parse(PageState.QueryString["id"]); - Page p = PageState.Pages.Where(item => item.PageId == PageId).FirstOrDefault(); - if (p != null) + try { - name = p.Name; - path = p.Path; - if (p.ParentId == null) + themes = ThemeService.GetThemeTypes(PageState.Themes); + panelayouts = ThemeService.GetPaneLayoutTypes(PageState.Themes); + + PageId = Int32.Parse(PageState.QueryString["id"]); + Page page = PageState.Pages.Where(item => item.PageId == PageId).FirstOrDefault(); + if (page != null) { - parentid = ""; + name = page.Name; + path = page.Path; + if (page.ParentId == null) + { + parentid = ""; + } + else + { + parentid = page.ParentId.ToString(); + } + order = page.Order.ToString(); + isnavigation = page.IsNavigation.ToString(); + themetype = page.ThemeType; + layouttype = page.LayoutType; + icon = page.Icon; + viewpermissions = page.ViewPermissions; + editpermissions = page.EditPermissions; + createdby = page.CreatedBy; + createdon = page.CreatedOn; + modifiedby = page.ModifiedBy; + modifiedon = page.ModifiedOn; } - else - { - parentid = p.ParentId.ToString(); - } - order = p.Order.ToString(); - isnavigation = p.IsNavigation.ToString(); - themetype = p.ThemeType; - layouttype = p.LayoutType; - icon = p.Icon; - viewpermissions = p.ViewPermissions; - editpermissions = p.EditPermissions; + } + catch (Exception ex) + { + message = ex.Message; } } private async Task SavePage() { - Page p = PageState.Page; - p.PageId = Int32.Parse(PageState.QueryString["id"]); - if (string.IsNullOrEmpty(parentid)) + try { - p.ParentId = null; + Page page = PageState.Page; + page.PageId = Int32.Parse(PageState.QueryString["id"]); + if (string.IsNullOrEmpty(parentid)) + { + page.ParentId = null; + } + else + { + page.ParentId = Int32.Parse(parentid); + } + page.Name = name; + page.Path = path; + page.Order = (order == null ? 1 : Int32.Parse(order)); + page.IsNavigation = (isnavigation == null ? true : Boolean.Parse(isnavigation)); + page.ThemeType = themetype; + page.LayoutType = (layouttype == null ? "" : layouttype); + page.Icon = (icon == null ? "" : icon); + Type type; + if (!string.IsNullOrEmpty(layouttype)) + { + type = Type.GetType(layouttype); + } + else + { + type = Type.GetType(themetype); + } + System.Reflection.PropertyInfo property = type.GetProperty("Panes"); + page.Panes = (string)property.GetValue(Activator.CreateInstance(type), null); + page.ViewPermissions = viewpermissions; + page.EditPermissions = editpermissions; + await PageService.UpdatePageAsync(page); + + PageState.Reload = Constants.ReloadSite; + UriHelper.NavigateTo(NavigateUrl(path)); } - else + catch (Exception ex) { - p.ParentId = Int32.Parse(parentid); + message = ex.Message; } - p.Name = name; - p.Path = path; - p.Order = (order == null ? 1 : Int32.Parse(order)); - p.IsNavigation = (isnavigation == null ? true : Boolean.Parse(isnavigation)); - p.ThemeType = themetype; - p.LayoutType = (layouttype == null ? "" : layouttype); - p.Icon = (icon == null ? "" : icon); - Type type; - if (!string.IsNullOrEmpty(layouttype)) - { - type = Type.GetType(layouttype); - } - else - { - type = Type.GetType(themetype); - } - System.Reflection.PropertyInfo property = type.GetProperty("Panes"); - p.Panes = (string)property.GetValue(Activator.CreateInstance(type), null); - p.ViewPermissions = viewpermissions; - p.EditPermissions = editpermissions; - await PageService.UpdatePageAsync(p); - UriHelper.NavigateTo(NavigateUrl(path)); } } diff --git a/Oqtane.Client/Modules/Admin/Pages/Index.razor b/Oqtane.Client/Modules/Admin/Pages/Index.razor index e1c55bf9..f150ab34 100644 --- a/Oqtane.Client/Modules/Admin/Pages/Index.razor +++ b/Oqtane.Client/Modules/Admin/Pages/Index.razor @@ -3,7 +3,6 @@ @using Oqtane.Modules @using Oqtane.Client.Modules.Controls @inherits ModuleBase - @inject IPageService PageService @if (PageState.Pages == null) @@ -12,27 +11,28 @@ } else { + - + + - @foreach (var p in PageState.Pages) + @foreach (Page page in PageState.Pages) { - - - - + + + + } -
   Path Name
@p.Path@p.Name@(page.Path)@(page.Name)
- + } @code { diff --git a/Oqtane.Client/Modules/Controls/ActionLink.razor b/Oqtane.Client/Modules/Controls/ActionLink.razor index 72bd6f26..3dc6ae12 100644 --- a/Oqtane.Client/Modules/Controls/ActionLink.razor +++ b/Oqtane.Client/Modules/Controls/ActionLink.razor @@ -7,7 +7,7 @@ @if (authorized) { - @text + @text } @code { @@ -21,12 +21,16 @@ public string Parameters { get; set; } // optional [Parameter] - public string ButtonClass { get; set; } // optional + public string Class { get; set; } // optional + + [Parameter] + public string Style { get; set; } // optional string text = ""; string url = ""; string parameters = ""; - string buttonClass = "btn btn-primary"; + string classname = "btn btn-primary"; + string style = ""; bool authorized = false; protected override void OnInitialized() @@ -42,9 +46,14 @@ parameters = Parameters; } - if (!string.IsNullOrEmpty(ButtonClass)) + if (!string.IsNullOrEmpty(Class)) { - buttonClass = "btn " + ButtonClass; + classname = Class; + } + + if (!string.IsNullOrEmpty(Style)) + { + style = Style; } url = EditUrl(Action, parameters); diff --git a/Oqtane.Client/Modules/Controls/AuditInfo.razor b/Oqtane.Client/Modules/Controls/AuditInfo.razor new file mode 100644 index 00000000..d4358070 --- /dev/null +++ b/Oqtane.Client/Modules/Controls/AuditInfo.razor @@ -0,0 +1,55 @@ +@using Oqtane.Modules +@inherits ModuleBase + +@((MarkupString)@text) + +@code { + [Parameter] + public string CreatedBy { get; set; } + + [Parameter] + public DateTime CreatedOn { get; set; } + + [Parameter] + public string ModifiedBy { get; set; } + + [Parameter] + public DateTime ModifiedOn { get; set; } + + [Parameter] + public string Style { get; set; } + + string text = ""; + string style = ""; + + protected override void OnInitialized() + { + if (!String.IsNullOrEmpty(CreatedBy) || CreatedOn != null) + { + text += "

Created "; + if (!String.IsNullOrEmpty(CreatedBy)) + { + text += " by " + CreatedBy + ""; + } + if (CreatedOn != null) + { + text += " on " + CreatedOn.ToString("MMM dd yyyy HH:mm:ss") + ""; + } + text += "

"; + } + + if (!String.IsNullOrEmpty(ModifiedBy) || ModifiedOn != null) + { + text += "

Last modified "; + if (!String.IsNullOrEmpty(ModifiedBy)) + { + text += " by " + ModifiedBy + ""; + } + if (ModifiedOn != null) + { + text += " on " + ModifiedOn.ToString("MMM dd yyyy HH:mm:ss") + ""; + } + text += "

"; + } + } +}