From 449618573542aabbb0470c23cdc44fb3964a0487 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Onur=20P=C4=B1=C3=A7akc=C4=B1?= Date: Tue, 11 Apr 2023 10:30:35 +0300 Subject: [PATCH] bootstrap-taghelpers.abp.io: New navbar added --- .../AbpAspNetCoreMvcUiBootstrapDemoModule.cs | 31 ++++++ .../BootstrapDemoBrandingProvider.cs | 10 ++ .../Menus/BootstrapDemoMenuContributor.cs | 93 ++++++++++++++++++ .../Pages/Menus/BootstrapDemoMenus.cs | 34 +++++++ .../Pages/_ViewStart.cshtml | 3 - .../wwwroot/imgs/demo/abp-io-light.png | Bin 0 -> 4641 bytes .../wwwroot/styles/my-global-styles.css | 10 ++ 7 files changed, 178 insertions(+), 3 deletions(-) create mode 100644 modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/BootstrapDemoBrandingProvider.cs create mode 100644 modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Menus/BootstrapDemoMenuContributor.cs create mode 100644 modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Menus/BootstrapDemoMenus.cs delete mode 100644 modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/_ViewStart.cshtml create mode 100644 modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/imgs/demo/abp-io-light.png create mode 100644 modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/styles/my-global-styles.css 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 0000000000000000000000000000000000000000..6a671a31bef699d1eca62689baec4e8ff5c32765 GIT binary patch literal 4641 zcmY*dXIN8Bw@qlF7imHe0-~Tu5flkcL3#;@Lg>9kT1bMF7^;ZUq)1UfP(W0W-dhNW zgz|!jh#{0HAV@d#e&PMRe)rCK_StLptiAT^d7ks*%wtoSE*rBTGXMZ!)7R57JN6#O zCe6rj{H}@&SUYw=w3)6ZptN7;*YV_mo29B_ zD_CF&3tE1(H zc0nPK7=)iMC=vVXOYQ&mr* z$|fj;+i~R+ef7(#|1$qy>`xt4*^}b`XEXol^xx=ltLn_EvVV_Foms&CI|u;a7}VF& zxDy0i%3?_xH&2dP>2nRIOW~BGlsf9Q(a{CRI&<35L<-(9n6_%KjJ4KFYJYE6bGL?0 z+i;BcLzm2UV))04+6K2CKYjE7z@Sk8a3j#^F+O+zxJlzKAGo>KuXZrd5V+j@iso%j z>F)UQP?1TlZtiSYinUMtM;%9RI-Tn@XYysuiZ`~l0?lB02W%Dx^SAB7bai!GJ|{Be z3rBE)BtQjmg7d5)lX`bw_0@Zi=sx=jN&L`xRR1tx$Zq%Q6I@KRX_2t%?y zH1jap(}k?;1JU!Kzt8*)=*@BnCwbv{I9L}rA36>}@UB`d5u;ZVBLl{1t>hNdWdBmzeWrR28l5$f8^ zI9*pG55Z3NH+P!LAoKUUt}>FN$Pw$3N~_U#Q#aTRugKA$8L7;WLJ~WkcmGrYY>qWp zr5vQhCsQj3b~pTB3N?dUSFrSP&}{L z((oYn?hMCI+APL?S64EG#38FxTgc3gqDqMLO?qx*%~W{4THOX

XmrrkZ8#?(S*4m69!QfF|^3CtMsjX+UCL{(A z;+s_lN#C9D;*OKixLt#Y{kuKQyo)TaX*Q(7S4wgnw>;{X-t}bqiY_D&6f(ex1Gb zK}DK9P<$XYWh}A(la6Mn^fr8z9x1vF$Q&dZ@5~q0hdQM83W$Tbcco(GFYCR0r?iPM zB&u(U9t^dEegIGbha8W*DvPC!^|m)Dd=P0`Y$VjNzHSWV-JhT%DiN04?-Muti+PU@ z=^Z0hw|6auWBP8P3UQ_P+(2)?>;OWRPF?)m!1HgLiCV43ZeY}>GMXlLhc#>OL$w9G z*_<>t2t}qOIb1!xBkoAH?vB&1uIs}lJ&@{ag%QVCG}fIiP&FM@tly3+zW--{Fuhnj z$~@?k79e}mp3b_P386y1C3s}pTH)rhk>wp6+W&~6Y8Rw*eim2oiS3;AW5lcr` zQXt(Cpn04gXKllzeLLJJibrUhDNh`}HA3*GTy<1bVpGyE2#I}Q;~+MzPuU{n1(YAg zAF3jGjz0)?b=FXj0cz|s7eEB$+!>@3)F2LAvkFJEa5Sw`mnWi<;%i`(p-%{<@IdkwPND>?~*2Y9%RP7 zzQ(VV4;Iz@ip4fP%?1ujj7|9(q+mSCyIA@@h(fPZncMIAOTOGrC9GkrD`og~Zkao7 zqcf^RiLV+JjXkVAM|~YB5}uN1_|Y@lO(WM_{}pC=@dZOIy_81OJOXdh+gOrjB$B`7 zCPk9197tsu_p9nB2~RI>0BR2}DiMbhSa-Z2L@S|{g5N}&s4Lhip{gLi&nDq{N5p`| z_#cTSm^4Fs)G5&gv=pcMREq1KI%8yZJff)%Lbc^g9S_ePTg{}dli1eZu6*`@{(KQl zo?l#pNJgTAB`NS(gMs&$jYb8TfY4#`PuzM%M}IwH7~F4JKR;ImBi8OEue?jnhVDiA zv>n_)mAi-AMUag@RW$5}Qyk^ERiCrv{6beQnO3RRW^esORW_la5@fsR3H6=m@yq(T z8BYy0SMpxh68OXO3_I96_f6Y}=zCSCuh={B3*oH&k#N)aCoY??t=|Gpj88N!l*QEj z-0!&9l&}%ku)9&JyuBV*WRKshQknRsfbE)GZ$|7dnOw3Ap2NZ*EBzsUlUtQ7X(AEJ z&>+Fn+dOhC;~lHK5YG@sl;9)%jhL1w)1~aSu;@d$)mJ~8_VZLeM`V~H%52eOLizLX zJFOQ_`tzEibsB672*fQDiOV_&m0ku=?}Y^enEXCMPUMYH>r2xUlxer5?;E=^K15ON)9tSox4uU{Dx7 zv`mugDHX+ee07@GkLfJ&b32NQbkdvVgYtG)7){aPL0an0*h(3qlAfX9rGtL6XYAyX zc)}x{VpwwYHFtrL8v&<%hpfs1HmF0Bxm0Dv^|K>_aC7gTVg67J0lb?R*?)=>R{DK`m^mDxRQbppp#6~jT`23L)# zgI_bnEk1}lJS|D9cq%sM-K8NHWY7DDmrd4-`rK~GU0hly4X`P#Jxup|(K_Ge4=+)1 z{qgR_&01{G#`5^=O7pbJQKvV~t*hR@$dk5#`s4mL1%#kNSa5nrS$9{ZjO7=f#xb$Y z+l02Jc{3ZMIy1V5n@Zbd7pUXxg&^=H+$Kq-*Dc3t_=8xO^5`?D2X6rBUKH0sMOjmX zXm=W0XQEk4ha?8ScW>v7twAIAB1`1N+rU%5VOCMi@T2iSEN?uC&*tepELvuqg`-hD zW9uI-xKSAak=D*1Bf4Mi4LvS zd2$se(xo0zw$FcKGm>Cb-ZMe6Dhb(KfYcb!&J`Q)ifN-0`Ij^O(jP6`c>cKyn0weIX>*m#7G>EeP-KTpzdP|WR4i|*< zt~V>EqX{7pD3@a7S@et0buM+EGAU&)D!)e3$ZofCHeGr&U+CMftHD-*wy+GsGuXrx zPASnW#mnGeBbmJyVzW%s7-2%rEf(~I`KUobF=ZN4@*;{Dx0Tv?Y46Ef(<~9HJ=-#^ z88m;Wr@Qr9%cS7FT*TBnGbd+<`!RHO!p|fV>C_DhJ!h?_uRL^uqo}N3&*c@|mI7Bh zNTY;Q%c9v+q+ION{kj!PvjrUaIoZ0cc=w=YC7EZFrszuvo#veh%B8oNa?%%m`;r8+ z=WRt-Xa)JFW19d%4B1!80Di!X2o$Hj1;)KpYDXLE*8i(_%x=mE2?&BB4b|vvSq!LL zHg-qJv*DJ|!W`<8wx+fhH*!HVb;DFqBh(N)_6kfg+v%KLIyg+J=Nd3$nvLXmRrL%J z2}Y|UA*`$Th^HC7xdzJaoX$r%ZO`QCKfveC5n+!oYZ34Wy@cNDg~CvatIphN`tPzC zlXv7Ixuxe8$67IkI=>Wyv|aheD9USOV@>iBo{T<)?M=zx9@M~ts#B(3n$&ez?7j*W zmseDi($ku9-V`Fs89r1=!b@VU>1F+Roh5qTz|>ySL8I1xcH?~g2ltg$D#1ILQL+ftjYjCER>h1l==)w}Ij?lJ`N zsM4usj~{UW%4p7wYySwkf57ChT(m~m(+kU4k0$bqmT3vE%f@{ZZ~sU^j1)yy$NaXX zJn&bsIAW}4vrQP6MlOwoo(HVu>a1+i8sf_4wP%?(<1=a9fqTnX&kL4xp?c5Ukhs_Q z()Ol7f$+1YM}X}@N(NjH?<~VBY3bI z^3$~F7qfkul%7#qBifEZ238rMe_qo+oqSG7CFqp<)mjaAKXRD!HNleRWtTp&S-zb6 zad7)Ndr}3u=FUvM&{!Jx2yS4!x{*Q2Grz4C7ekQjoK)a981Rxm&1V`k;FeXZvW9|g zEYaBcdU0htI4&?(l)yd7x6`z1muhWtZ*GZ1RpyZs?kuOlQ+$=Z^srMw*S0y4_)vb& zn%_S$XOmcMKV5G4ZcJP3i)JiBfEZh$>ejuk4h$im9IYSjGxjGFVeW5PVb;8JiueSc z(saJc82co0>a_6`mLe|KQlpT3eqiB;6-AkoC&FL*(9lW6wX0*fv+tJ)od-L$XYBY7 zy#n>l|Dbr6i}x2D38D%Z9Yj5~muN}DU7HfDhZ8f^9vN3>K8Jv5n z%%^QGl~EejH6@Zm*YJ`3FFf>{x8N;gds7tv+Rt1RTeft*N0H&?>3Hd>BWuNtADzjk z&5_nw*|aY?xQd;JW@En6xcsW%It`Af;M#6_(sl&Im`t*O#pCBs?n(5uVOph{j*