public void ConfigureAdmin(IAdminBuilder adminBuilder) { //adminBuilder.RegisterGrid<Page, PageManagementAdminService>(builder => //{ // builder // .AddKeyField(r => r.Id) // .AddField(r => r.Name, option => option.DisplayName = "Name / Title") // .AddField(r => r.RecycleItemTypeString, option => option.DisplayName = "Item Type"); // builder.DisplayFieldAs(c => c.Name, LabelType.Icon, c => c.RecycleItemTypeIconClass); // builder.AddRowAction("Restore", "Restore", // (provider, item) => provider.GetService<PageManagementAdminService>().Restore(item)); // builder.HideEditButton(); //}); adminBuilder.RegisterTreeAndForm <PageViewModel, PageManagementAdminService>(builder => { builder.TreeBuilder.Title = "Page Management"; builder.FormBuilder.Title = "Page Detail"; builder.TreeBuilder.ConfigureTree(p => p.Id, p => p.Name, p => p.Parent, p => p.ChildPage, p => p.PageOrder); var formBuilder = builder.FormBuilder; var adminId = Guid.Parse("5308b86c-a2fc-4220-8ba2-47e7bec1938d"); var urlId = Guid.Parse("bfefa535-7af1-4ddc-82c0-c906c948367a"); var standardId = Guid.Parse("4c06dcfd-214f-45af-8404-ff84b412ab01"); formBuilder .AddFieldSet("General", fieldBuilder => { fieldBuilder .AddSelectField(p => p.PageType, null, option => option.DisplayName = "Page Type") .AddField(p => p.Name) .AddField(p => p.Title) .AddField(p => p.Description, option => { option.FieldType = FieldType.TextArea; option.IsRequired = false; }) .AddField(p => p.PageHeaderTags, option => { option.FieldType = FieldType.TextArea; option.IsRequired = false; }) .AddSelectField(p => p.Module) .AddField(p => p.ModelName, option => option.DisplayName = "Model Name") .AddField(p => p.RedirectUrl, option => option.DisplayName = "Redirect Link") .AddField(p => p.IsSystem, option => option.DisplayName = "Is System") .AddField(p => p.IsIncludedInMenu, option => option.DisplayName = "Include in Menu") .AddSelectField(p => p.Theme, null, option => option.DisplayName = "Theme"); }) .AddFieldSet("Permissions", fieldBuilder => { fieldBuilder.AddCheckBoxMatrix(p => p.PagePermissions, p => p.RoleId, p => p.PermissionId, p => p.Id, p => p.PageId, typeof(Role), typeof(Permission), option => option.IsRequired = false); }); builder.AddChildConfig(p => p.PageTranslation, modelBuilder => { var formBuilder = modelBuilder.FormBuilder; modelBuilder.GridBuilder .AddField(p => p.Language, option => option.DisplayName = "Language") .AddField(p => p.Name) .AddField(p => p.Title); formBuilder .AddSelectField(p => p.Language) .AddField(p => p.Name) .AddField(p => p.Title) .AddField(p => p.Description, option => { option.FieldType = FieldType.TextArea; option.IsRequired = false; }) .AddField(p => p.PageHeaderTags, option => { option.FieldType = FieldType.TextArea; option.IsRequired = false; }) .AddField(p => p.RedirectUrl, option => option.IsRequired = false); formBuilder.Property(p => p.Language) .HasLookup(sp => sp.GetService <PageManagementAdminService>().GetTranslateLanguages(), language => language.CultureCode, language => language.EnglishName); }); builder.ShowChildConfigOn(p => p.PageTranslation, provider => provider.GetService <PageManagementAdminService>().IsSiteMultilingual()); //formBuilder.Property(f => f.Name) // .ShowOn(f => f.PageType != null && (f.PageType.Id == standardId || f.PageType.Id == adminId)) // .ValidateOn(f => f.PageType != null && (f.PageType.Id == standardId || f.PageType.Id == adminId)); formBuilder.Property(f => f.Title) .ShowOn(f => f.PageType != null && (f.PageType.Id == standardId || f.PageType.Id == adminId)) .ValidateOn(f => f.PageType != null && (f.PageType.Id == standardId || f.PageType.Id == adminId)); formBuilder.Property(f => f.Description) .ShowOn(f => f.PageType != null && f.PageType.Id == standardId); formBuilder.Property(f => f.Module) .ShowOn(f => f.PageType != null && f.PageType.Id == adminId) .ValidateOn(f => f.PageType != null && f.PageType.Id == adminId); formBuilder.Property(f => f.ModelName) .ShowOn(f => f.PageType != null && f.PageType.Id == adminId) .ValidateOn(f => f.PageType != null && f.PageType.Id == adminId); formBuilder.Property(f => f.RedirectUrl) .ShowOn(f => f.PageType != null && f.PageType.Id == urlId) .ValidateOn(f => f.PageType != null && f.PageType.Id == urlId); formBuilder.Property(f => f.PageType).HasLookup( sp => sp.GetService <PageManagementAdminService>().GetPageTypes(), ke => ke.Id, de => de.Name); formBuilder.Property(f => f.Module).HasLookup( sp => sp.GetService <PageManagementAdminService>().GetModules(), ke => ke.Id, de => de.Name); formBuilder.Property(f => f.Theme).HasLookup( sp => sp.GetService <PageManagementAdminService>().GetThemes(), ke => ke.Id, de => de.Value); formBuilder.Property(f => f.PagePermissions).HasMatrixLookup <Role, Permission, Guid>( sp => sp.GetService <IRoleRepository>().GetRoles(), ke => ke.Id, de => de.Name, sp => sp.GetService <IPermissionRepository>().GetPagePermissions(), ke => ke.Id, de => de.Name); }); }
public void ConfigureAdmin(IAdminBuilder adminBuilder) { adminBuilder.Register <Employee, EmployeeAdminService>(modelBuilder => { modelBuilder.GridBuilder.Title = "Employee"; modelBuilder.FormBuilder.Title = "Employee Details"; modelBuilder.GridBuilder .AddField(c => c.Name) .AddField(c => c.Designation) .AddField(c => c.Email) .AddField(c => c.Nationality) .AddField(c => c.IsActive, option => { option.DisplayName = "Is Active"; option.IsTrue = "Active"; option.IsFalse = "In Active"; }); modelBuilder.GridBuilder.DisplayFieldAs(c => c.IsActive, LabelType.Badge, c => c.IsActiveBadgeClass); modelBuilder.FormBuilder .AddKeyField(c => c.Id) .AddField(c => c.Name, option => { option.EnableIn = FormMode.Create; }) .AddField(c => c.Designation) .AddField(c => c.Email, option => option.ValidationType = ValidationType.Email) .AddField(c => c.IsActive) .AddSelectField(c => c.Nationality); modelBuilder.FormBuilder.Property(c => c.Nationality).HasLookup(sp => sp.GetService <EmployeeAdminService>().GetCountries(), ke => ke.Code, de => de.Name); }); adminBuilder.RegisterGrid <Customer, CustomerAdminGridService>(builder => { builder.Title = "Customers"; builder .AddKeyField(c => c.Id) .AddField(c => c.OrderId) .AddField(c => c.Name) .AddField(c => c.Email) .AddField(c => c.OrderDate) .AddField(c => c.OrderStatus) .AddField(c => c.ShipDate) .AddField(c => c.ShipCountry); builder.Property(c => c.ShipCountry).HasLookup(sp => sp.GetService <EmployeeAdminService>().GetCountries(), ke => ke.Code, de => de.Name); builder.Property(c => c.OrderStatus).HasLookup(sp => OrderStatus.OrderStatuses, ke => ke.Id, de => de.Name); builder.DisplayFieldAs(c => c.OrderStatus, LabelType.Badge, c => c.OrderStatusClass); builder.AddRowAction("MarkAsDelivered", "Mark As Delivered", (provider, item) => provider.GetService <CustomerAdminGridService>().MarkDelivered(item)); builder.HideEditButton(); }); adminBuilder.RegisterForm <Guest, EventFormService>(builder => { builder .AddFieldSet("General", fieldBuilder => { fieldBuilder .AddKeyField(c => c.Id) .AddField(p => p.Name) .AddSelectField(p => p.Gender) .AddField(p => p.Email, option => option.ValidationType = ValidationType.Email); }) .AddFieldSet("Dietary requirements", fieldBuilder => { fieldBuilder .AddField(p => p.IsTakePartInDinner) .AddSelectField(p => p.FoodType); }); builder.Property(f => f.FoodType) .ShowOn(f => f.IsTakePartInDinner) .ValidateOn(f => f.IsTakePartInDinner); builder.Property(f => f.Gender).HasLookup( sp => Gender.Genders, ke => ke.Id, de => de.Name); builder.Property(f => f.FoodType).HasLookup( sp => FoodType.FoodTypes, ke => ke.Id, de => de.Name); }); adminBuilder.RegisterTreeAndForm <Folder, FolderAdminService>(builder => { builder.TreeBuilder.Title = "File Manager"; builder.FormBuilder.Title = "File Manager"; builder.TreeBuilder.ConfigureTree(p => p.Id, p => p.Name, p => p.Parent, p => p.SubFolders, p => p.SortOrder); var formBuilder = builder.FormBuilder; var adminId = Guid.Parse("5308b86c-a2fc-4220-8ba2-47e7bec1938d"); var urlId = Guid.Parse("bfefa535-7af1-4ddc-82c0-c906c948367a"); var standardId = Guid.Parse("4c06dcfd-214f-45af-8404-ff84b412ab01"); formBuilder .AddFieldSet("General", fieldBuilder => { fieldBuilder .AddField(p => p.Name); }) .AddFieldSet("Permissions", fieldBuilder => { fieldBuilder.AddCheckBoxMatrix(p => p.PagePermissions, p => p.RoleId, p => p.PermissionId, p => p.Id, p => p.FolderId, typeof(Role), typeof(Permission), option => option.IsRequired = false); }); formBuilder.Property(f => f.PagePermissions).HasMatrixLookup <Role, Permission, Guid>( sp => sp.GetService <IRoleRepository>().GetRoles(), ke => ke.Id, de => de.Name, sp => sp.GetService <IPermissionRepository>().GetPagePermissions(), ke => ke.Id, de => de.Name); }); }