diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/AbpAspNetCoreMvcUiBootstrapDemoModule.cs b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/AbpAspNetCoreMvcUiBootstrapDemoModule.cs index 8437109aba..c0c03a8dfe 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/AbpAspNetCoreMvcUiBootstrapDemoModule.cs +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/AbpAspNetCoreMvcUiBootstrapDemoModule.cs @@ -1,8 +1,12 @@ using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.Hosting; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.Menus; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Bundling; using Volo.Abp.Autofac; using Volo.Abp.Modularity; +using Volo.Abp.UI.Navigation; namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo; @@ -26,4 +30,31 @@ public class AbpAspNetCoreMvcUiBootstrapDemoModule : AbpModule app.UseStaticFiles(); app.UseConfiguredEndpoints(); } + + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.StyleBundles + .Get(StandardBundles.Styles.Global) + .AddFiles("/css/demo.css"); + } ); + + Configure(options => + { + options.MenuContributors.Add(new BootstrapDemoMenuContributor()); + }); + + Configure(options => + { + options.StyleBundles.Configure( + StandardBundles.Styles.Global, + bundleConfiguration => + { + bundleConfiguration.AddFiles("/styles/my-global-styles.css"); + } + ); + }); + + } } diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/BootstrapDemoBrandingProvider.cs b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/BootstrapDemoBrandingProvider.cs new file mode 100644 index 0000000000..b3fea361e8 --- /dev/null +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/BootstrapDemoBrandingProvider.cs @@ -0,0 +1,10 @@ +using Volo.Abp.Ui.Branding; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo; + +public class BootstrapDemoBrandingProvider : DefaultBrandingProvider +{ + public override string AppName => "Bootstrap Tag Helpers"; + + public override string LogoUrl => "/imgs/demo/abp-io-light.png"; +} \ No newline at end of file diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Menus/BootstrapDemoMenuContributor.cs b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Menus/BootstrapDemoMenuContributor.cs new file mode 100644 index 0000000000..b6fce0dce0 --- /dev/null +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Menus/BootstrapDemoMenuContributor.cs @@ -0,0 +1,93 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Pages.Menus; +using Volo.Abp.UI.Navigation; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.Menus; + +public class BootstrapDemoMenuContributor : IMenuContributor +{ + public Task ConfigureMenuAsync(MenuConfigurationContext context) + { + if (context.Menu.Name == StandardMenus.Main) + { + AddMainMenuItems(context); + } + + return Task.CompletedTask; + } + private void AddMainMenuItems(MenuConfigurationContext context) + { + var menuItem = new ApplicationMenuItem(BootstrapDemoMenus.Components.Root, "Components"); + + var items = new List() + { + new ApplicationMenuItem(BootstrapDemoMenus.Components.Alerts, "Alerts", url: "/Components/Alerts"), + new ApplicationMenuItem(BootstrapDemoMenus.Components.Badges, "Badges", url: "/Components/Badges"), + new ApplicationMenuItem(BootstrapDemoMenus.Components.Borders, "Borders", url: "/Components/Borders"), + new ApplicationMenuItem(BootstrapDemoMenus.Components.Breadcrumbs, "Breadcrumbs", url: "/Components/Breadcrumbs"), + new ApplicationMenuItem(BootstrapDemoMenus.Components.Buttons, "Buttons", url: "/Components/Buttons"), + new ApplicationMenuItem(BootstrapDemoMenus.Components.ButtonGroups, "Button Groups", url: "/Components/ButtonGroups"), + new ApplicationMenuItem(BootstrapDemoMenus.Components.Cards, "Cards", url: "/Components/Cards"), + new ApplicationMenuItem(BootstrapDemoMenus.Components.Carousel, "Carousel", url: "/Components/Carousel"), + new ApplicationMenuItem(BootstrapDemoMenus.Components.Collapse, "Collapse", url: "/Components/Collapse"), + new ApplicationMenuItem(BootstrapDemoMenus.Components.Dropdowns, "Dropdowns", url: "/Components/Dropdowns"), + new ApplicationMenuItem(BootstrapDemoMenus.Components.DynamicForms, "Dynamic Forms", url: "/Components/DynamicForms"), + new ApplicationMenuItem(BootstrapDemoMenus.Components.FormElements, "Form Elements", url: "/Components/FormElements"), + new ApplicationMenuItem(BootstrapDemoMenus.Components.Grids, "Grids", url: "/Components/Grids"), + new ApplicationMenuItem(BootstrapDemoMenus.Components.ListGroups, "List Groups", url: "/Components/ListGroup"), + new ApplicationMenuItem(BootstrapDemoMenus.Components.Modals, "Modals", url: "/Components/Modals"), + new ApplicationMenuItem(BootstrapDemoMenus.Components.Navbars, "Navbars", url: "/Components/Navs"), + new ApplicationMenuItem(BootstrapDemoMenus.Components.Paginator, "Paginator", url: "/Components/Paginator"), + new ApplicationMenuItem(BootstrapDemoMenus.Components.Popovers, "Popovers", url: "/Components/Popovers"), + new ApplicationMenuItem(BootstrapDemoMenus.Components.ProgressBars, "Progress Bars", url: "/Components/ProgressBars"), + new ApplicationMenuItem(BootstrapDemoMenus.Components.Tables, "Tables", url: "/Components/Tables"), + new ApplicationMenuItem(BootstrapDemoMenus.Components.Tabs, "Tabs", url: "/Components/Tabs"), + new ApplicationMenuItem(BootstrapDemoMenus.Components.Tooltips, "Tooltips", url: "/Components/Tooltips") + }; + + items.OrderBy(x => x.Name) + .ToList() + .ForEach(x => menuItem.AddItem(x)); + + context.Menu.AddItem(menuItem); + + context.Menu.AddItem( + new ApplicationMenuItem( + name: "Framework", + displayName: "Framework", + url: "https://abp.io" + ) + ); + context.Menu.AddItem( + new ApplicationMenuItem( + name: "Community", + displayName: "Community", + url: "https://community.abp.io" + ) + ); + context.Menu.AddItem( + new ApplicationMenuItem( + name: "Commercial", + displayName: "Commercial", + url: "https://commercial.abp.io" + ) + ); + context.Menu.AddItem( + new ApplicationMenuItem( + name: "Documents", + displayName: "Documents", + url: "https://Docs.abp.io" + ) + ); + context.Menu.AddItem( + new ApplicationMenuItem( + name: "Github", + displayName: "Github", + url: "https://github.com/abpframework/abp", + icon:"fa fa-github" + ) + ); + } +} diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Menus/BootstrapDemoMenus.cs b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Menus/BootstrapDemoMenus.cs new file mode 100644 index 0000000000..4227c807c6 --- /dev/null +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Menus/BootstrapDemoMenus.cs @@ -0,0 +1,34 @@ +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Pages.Menus; + +public class BootstrapDemoMenus +{ + private const string Prefix = "BootstrapDemo"; + public const string Home = Prefix + ".Home"; + + public static class Components + { + public const string Root = Prefix + ".Components"; + public const string Alerts = Root + ".Alerts"; + public const string Badges = Root + ".Badges"; + public const string Borders = Root + ".Borders"; + public const string Breadcrumbs = Root + ".Breadcrumbs"; + public const string ButtonGroups = Root + ".ButtonGroups"; + public const string Buttons = Root + ".Buttons"; + public const string Cards = Root + ".Cards"; + public const string Carousel = Root + ".Carousel"; + public const string Collapse = Root + ".Collapse"; + public const string Dropdowns = Root + ".Dropdowns"; + public const string DynamicForms = Root + ".DynamicForms"; + public const string FormElements = Root + ".FormElements"; + public const string Grids = Root + ".Grids"; + public const string ListGroups = Root + ".ListGroups"; + public const string Modals = Root + ".Modals"; + public const string Navbars = Root + ".Navbars"; + public const string Paginator = Root + ".Paginator"; + public const string Popovers = Root + ".Popovers"; + public const string ProgressBars = Root + ".ProgressBars"; + public const string Tables = Root + ".Tables"; + public const string Tabs = Root + ".Tabs"; + public const string Tooltips = Root + ".Tooltips"; + } +} \ No newline at end of file diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/_ViewStart.cshtml b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/_ViewStart.cshtml deleted file mode 100644 index 821d04a80b..0000000000 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/_ViewStart.cshtml +++ /dev/null @@ -1,3 +0,0 @@ -@{ - Layout = "~/Pages/_Layout.cshtml"; -} diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/imgs/demo/abp-io-light.png b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/imgs/demo/abp-io-light.png new file mode 100644 index 0000000000..6a671a31be Binary files /dev/null and b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/imgs/demo/abp-io-light.png differ diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/styles/my-global-styles.css b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/styles/my-global-styles.css new file mode 100644 index 0000000000..538e75d469 --- /dev/null +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/styles/my-global-styles.css @@ -0,0 +1,10 @@ +.navbar-brand{ + padding-right: 1em; + padding-top: 0.50em; +} +.navbar-brand img{ + padding-right: 2em; +} +.nav-item{ + padding-left: 2.2em; +} \ No newline at end of file