diff --git a/samples/DashboardDemo/DashboardDemo.sln b/samples/DashboardDemo/DashboardDemo.sln index ea6de6b988..c3317b5241 100644 --- a/samples/DashboardDemo/DashboardDemo.sln +++ b/samples/DashboardDemo/DashboardDemo.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27703.1 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29020.237 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DashboardDemo.Domain", "src\DashboardDemo.Domain\DashboardDemo.Domain.csproj", "{554AD327-6DBA-4F8F-96F8-81CE7A0C863F}" EndProject @@ -37,7 +37,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DashboardDemo.Domain.Tests" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DashboardDemo.HttpApi.Client.ConsoleTestApp", "test\DashboardDemo.HttpApi.Client.ConsoleTestApp\DashboardDemo.HttpApi.Client.ConsoleTestApp.csproj", "{EF480016-9127-4916-8735-D2466BDBC582}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DashboardDemo.DbMigrator", "src\DashboardDemo.DbMigrator\DashboardDemo.DbMigrator.csproj", "{AA94D832-1CCC-4715-95A9-A483F23A1A5D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DashboardDemo.DbMigrator", "src\DashboardDemo.DbMigrator\DashboardDemo.DbMigrator.csproj", "{AA94D832-1CCC-4715-95A9-A483F23A1A5D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/DashboardDemoWebModule.cs b/samples/DashboardDemo/src/DashboardDemo.Web/DashboardDemoWebModule.cs index f0cac3c2c1..9bd9b9602b 100644 --- a/samples/DashboardDemo/src/DashboardDemo.Web/DashboardDemoWebModule.cs +++ b/samples/DashboardDemo/src/DashboardDemo.Web/DashboardDemoWebModule.cs @@ -8,6 +8,7 @@ using DashboardDemo.EntityFrameworkCore; using DashboardDemo.Localization; using DashboardDemo.MultiTenancy; using DashboardDemo.Web.Menus; +using DashboardDemo.Web.Pages.Components.MySimpleWidget; using Swashbuckle.AspNetCore.Swagger; using Volo.Abp; using Volo.Abp.Account.Web; @@ -16,8 +17,10 @@ using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.Mvc.UI; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; +using Volo.Abp.AspNetCore.Mvc.UI.Widgets; using Volo.Abp.Autofac; using Volo.Abp.AutoMapper; using Volo.Abp.Identity.Web; @@ -73,6 +76,7 @@ namespace DashboardDemo.Web ConfigureNavigationServices(); ConfigureAutoApiControllers(); ConfigureSwaggerServices(context.Services); + ConfigureWidgets(); } private void ConfigureUrls(IConfigurationRoot configuration) @@ -168,6 +172,20 @@ namespace DashboardDemo.Web ); } + private void ConfigureWidgets() + { + Configure(options => + { + options.Widgets.Add( + new WidgetDefinition( + "MySimpleWidget", + typeof(MySimpleWidgetViewComponent)) + .WithStyles("/Pages/Components/MySimpleWidget/Default.css") + .WithScripts("/Pages/Components/MySimpleWidget/Default.js") + ); + }); + } + public override void OnApplicationInitialization(ApplicationInitializationContext context) { var app = context.GetApplicationBuilder(); diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/Components/MySimpleWidget/Default.cshtml b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/Components/MySimpleWidget/Default.cshtml new file mode 100644 index 0000000000..eb00022157 --- /dev/null +++ b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/Components/MySimpleWidget/Default.cshtml @@ -0,0 +1,4 @@ +
+

My Simple Widget

+

This is a simple widget!

+
\ No newline at end of file diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/Components/MySimpleWidget/Default.css b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/Components/MySimpleWidget/Default.css new file mode 100644 index 0000000000..6e9a635c13 --- /dev/null +++ b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/Components/MySimpleWidget/Default.css @@ -0,0 +1,5 @@ +.my-simple-widget { + width: 400px; + border: 1px solid red; + padding: 5px; +} \ No newline at end of file diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/Components/MySimpleWidget/Default.js b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/Components/MySimpleWidget/Default.js new file mode 100644 index 0000000000..8a09ff6a33 --- /dev/null +++ b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/Components/MySimpleWidget/Default.js @@ -0,0 +1 @@ +abp.log.debug('MySimpleWidget loaded :)'); \ No newline at end of file diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/Components/MySimpleWidget/MySimpleWidgetViewComponent.cs b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/Components/MySimpleWidget/MySimpleWidgetViewComponent.cs new file mode 100644 index 0000000000..73ec57e8f0 --- /dev/null +++ b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/Components/MySimpleWidget/MySimpleWidgetViewComponent.cs @@ -0,0 +1,24 @@ +using System.Collections.Generic; +using Microsoft.AspNetCore.Mvc; +using Volo.Abp.AspNetCore.Mvc; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; + +namespace DashboardDemo.Web.Pages.Components.MySimpleWidget +{ + + public class MySimpleWidgetViewComponent : AbpViewComponent + { + public IViewComponentResult Invoke() + { + return View(); + } + } + + public class MySimpleWidgetStyleBundleContributor : BundleContributor + { + public override void ConfigureBundle(BundleConfigurationContext context) + { + context.Files.AddIfNotContains("~/Pages/Components/MySimpleWidget/Default.css"); + } + } +} diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/Index.cshtml b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/Index.cshtml index 84c1789906..59b2818846 100644 --- a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/Index.cshtml +++ b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/Index.cshtml @@ -1,5 +1,6 @@ @page @inherits DashboardDemo.Web.Pages.DashboardDemoPage +@using Volo.Abp.AspNetCore.Mvc.UI.Widgets @model DashboardDemo.Web.Pages.IndexModel @section styles { @@ -14,7 +15,12 @@ @L["Welcome"] -

@L["LongWelcomeMessage"]

+

Demo Pages

+ +
@if (!CurrentUser.IsAuthenticated) {

@L["Login"]

diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/MyWidgets.cshtml b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/MyWidgets.cshtml new file mode 100644 index 0000000000..8fb0d776cd --- /dev/null +++ b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/MyWidgets.cshtml @@ -0,0 +1,6 @@ +@page +@using Volo.Abp.AspNetCore.Mvc.UI.Widgets +@model DashboardDemo.Web.Pages.MyWidgetsModel +@inject IWidgetRenderer WidgetRenderer + +@await WidgetRenderer.RenderAsync(Component, "MySimpleWidget") diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/MyWidgets.cshtml.cs b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/MyWidgets.cshtml.cs new file mode 100644 index 0000000000..bd26191de0 --- /dev/null +++ b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/MyWidgets.cshtml.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace DashboardDemo.Web.Pages +{ + public class MyWidgetsModel : PageModel + { + public void OnGet() + { + } + } +} \ No newline at end of file