Added AdminPages to admin dashboard and navigation + created 2.0 todo list
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
namespace HopFrame.Web.Admin.Attributes.Classes;
|
||||
|
||||
[AttributeUsage(AttributeTargets.Class)]
|
||||
public class AdminUrlAttribute(string url) : Attribute {
|
||||
public string Url { get; set; } = url;
|
||||
}
|
||||
@@ -7,6 +7,7 @@ public interface IAdminPageGenerator<TModel> {
|
||||
|
||||
IAdminPageGenerator<TModel> Title(string title);
|
||||
IAdminPageGenerator<TModel> Description(string description);
|
||||
IAdminPageGenerator<TModel> Url(string url);
|
||||
|
||||
IAdminPageGenerator<TModel> ViewPermission(string permission);
|
||||
IAdminPageGenerator<TModel> CreatePermission(string permission);
|
||||
|
||||
@@ -73,6 +73,11 @@ internal class AdminContextGenerator : IAdminContextGenerator {
|
||||
generator.Description(attribute?.Description);
|
||||
}
|
||||
|
||||
if (attributes.Any(a => a is AdminUrlAttribute)) {
|
||||
var attribute = attributes.Single(a => a is AdminUrlAttribute) as AdminUrlAttribute;
|
||||
generator.Url(attribute?.Url);
|
||||
}
|
||||
|
||||
if (attributes.Any(a => a is AdminPermissionsAttribute)) {
|
||||
var attribute = attributes.Single(a => a is AdminPermissionsAttribute) as AdminPermissionsAttribute;
|
||||
generator.CreatePermission(attribute?.Permissions.Create);
|
||||
|
||||
@@ -39,6 +39,7 @@ internal sealed class AdminPageGenerator<TModel> : IAdminPageGenerator<TModel>,
|
||||
|
||||
public IAdminPageGenerator<TModel> Title(string title) {
|
||||
_page.Title = title;
|
||||
_page.Url ??= title.ToLower();
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -47,6 +48,11 @@ internal sealed class AdminPageGenerator<TModel> : IAdminPageGenerator<TModel>,
|
||||
return this;
|
||||
}
|
||||
|
||||
public IAdminPageGenerator<TModel> Url(string url) {
|
||||
_page.Url = url;
|
||||
return this;
|
||||
}
|
||||
|
||||
public IAdminPageGenerator<TModel> ViewPermission(string permission) {
|
||||
_page.Permissions.View = permission;
|
||||
return this;
|
||||
|
||||
@@ -8,6 +8,7 @@ public sealed class AdminPage<TModel> : AdminPage;
|
||||
public class AdminPage {
|
||||
public string Title { get; set; }
|
||||
public string Description { get; set; }
|
||||
public string Url { get; set; }
|
||||
public AdminPagePermissions Permissions { get; set; }
|
||||
public IList<AdminPageProperty> Properties { get; set; }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user