From 780c8e9cbe1d3acaa1e256ed71e04d740b5eb958 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Thu, 11 Jul 2019 14:13:17 +0300 Subject: [PATCH] dashboard demo improvements --- .../Pages/Components/Dashboard/Default.js | 6 +++ ...lo.Abp.AspNetCore.Mvc.UI.Dashboards.csproj | 5 ++- .../AbpBasicDashboardScriptContributor.cs | 4 ++ .../Components/Dashboard/Default.cshtml | 26 +++++++---- .../DemoStatisticAppService.cs | 45 ++++++++++++++++--- .../DashboardDemo.Application/FilterDto.cs | 11 +++++ .../GetMonthlyUserStatisticDto.cs | 9 ++++ .../IDemoStatisticAppService.cs | 4 +- .../MonthlyProfitStatisticDto.cs | 2 + .../NewUserPerDayStatisticDto.cs | 7 --- .../DashboardDemoWebModule.cs | 4 +- .../Dashboards/DashboardDefinitionProvider.cs | 8 ++-- .../GlobalFilterDefinitionProvider.cs | 4 +- .../src/DashboardDemo.Web/Pages/Index.cshtml | 6 +-- .../MyDashboardScriptBundleContributor.cs | 4 +- ...obalFilter.js => DateRangeGlobalFilter.js} | 2 +- ...DateRangeGlobalFilterScriptContributor.cs} | 4 +- .../DateRangeGlobalFilterViewComponent.cshtml | 11 +++++ ...teRangeGlobalFilterViewComponent.cshtml.cs | 17 +++++++ .../RefreshGlobalFilterViewComponent.cshtml | 10 ----- ...RefreshGlobalFilterViewComponent.cshtml.cs | 17 ------- .../MonthlyProfitWidget.js | 27 ++++++----- ...thlyProfitWidgetScriptBundleContributor.cs | 1 - ...MonthlyProfitWidgetViewComponent.cshtml.cs | 2 +- .../RoleListWidgetViewComponent.cshtml.cs | 2 +- .../UserCountWidget/UserCountWidget.js | 28 ++++++------ .../UserCountWidgetScriptBundleContributor.cs | 1 - .../UserCountWidgetViewComponent.cshtml.cs | 2 +- .../Widgets/WidgetDefinitionProvider.cs | 6 +-- 29 files changed, 174 insertions(+), 101 deletions(-) create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Dashboards/Pages/Components/Dashboard/Default.js create mode 100644 samples/DashboardDemo/src/DashboardDemo.Application/FilterDto.cs create mode 100644 samples/DashboardDemo/src/DashboardDemo.Application/GetMonthlyUserStatisticDto.cs delete mode 100644 samples/DashboardDemo/src/DashboardDemo.Application/NewUserPerDayStatisticDto.cs rename samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/{RefreshGlobalFilter.js => DateRangeGlobalFilter.js} (54%) rename samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/{RefreshGlobalFilterScriptContributor.cs => DateRangeGlobalFilterScriptContributor.cs} (57%) create mode 100644 samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/DateRangeGlobalFilterViewComponent.cshtml create mode 100644 samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/DateRangeGlobalFilterViewComponent.cshtml.cs delete mode 100644 samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/RefreshGlobalFilterViewComponent.cshtml delete mode 100644 samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/RefreshGlobalFilterViewComponent.cshtml.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Dashboards/Pages/Components/Dashboard/Default.js b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Dashboards/Pages/Components/Dashboard/Default.js new file mode 100644 index 0000000000..272fc751eb --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Dashboards/Pages/Components/Dashboard/Default.js @@ -0,0 +1,6 @@ +(function ($) { + $('#GlobalRefreshButton').on('click', + function () { + $(document).trigger('RefreshWidgets', $('#DashboardGlobalFiltersForm').serializeFormToObject()); + }); +})(jQuery); \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Dashboards/Volo.Abp.AspNetCore.Mvc.UI.Dashboards.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Dashboards/Volo.Abp.AspNetCore.Mvc.UI.Dashboards.csproj index 633b783ad0..69c8816688 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Dashboards/Volo.Abp.AspNetCore.Mvc.UI.Dashboards.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Dashboards/Volo.Abp.AspNetCore.Mvc.UI.Dashboards.csproj @@ -18,14 +18,17 @@ + + + - + diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Dashboards/Volo/Abp/AspNetCore/Mvc/UI/Dashboards/AbpBasicDashboardScriptContributor.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Dashboards/Volo/Abp/AspNetCore/Mvc/UI/Dashboards/AbpBasicDashboardScriptContributor.cs index f351abd952..83f5910d68 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Dashboards/Volo/Abp/AspNetCore/Mvc/UI/Dashboards/AbpBasicDashboardScriptContributor.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Dashboards/Volo/Abp/AspNetCore/Mvc/UI/Dashboards/AbpBasicDashboardScriptContributor.cs @@ -4,5 +4,9 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Dashboards { public class AbpBasicDashboardScriptContributor : BundleContributor { + public override void ConfigureBundle(BundleConfigurationContext context) + { + context.Files.Add("/Pages/Components/Dashboard/Default.js"); + } } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Dashboards/Volo/Abp/AspNetCore/Mvc/UI/Dashboards/Components/Dashboard/Default.cshtml b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Dashboards/Volo/Abp/AspNetCore/Mvc/UI/Dashboards/Components/Dashboard/Default.cshtml index 2f6e080350..22d8ceb7c7 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Dashboards/Volo/Abp/AspNetCore/Mvc/UI/Dashboards/Components/Dashboard/Default.cshtml +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Dashboards/Volo/Abp/AspNetCore/Mvc/UI/Dashboards/Components/Dashboard/Default.cshtml @@ -1,23 +1,33 @@ -@using Microsoft.AspNetCore.Authorization +@using Localization.Resources.AbpUi +@using Microsoft.AspNetCore.Authorization +@using Microsoft.AspNetCore.Mvc.Localization @using Microsoft.Extensions.Localization @using Volo.Abp.AspNetCore.Mvc.UI.Dashboards @using Volo.Abp.AspNetCore.Mvc.UI.Widgets @inject IAuthorizationService AuthorizationService @inject IWidgetRenderer WidgetRenderer @inject IGlobalFilterRenderer GlobalFilteRenderer -@inject IStringLocalizerFactory localizer +@inject IHtmlLocalizer L @model Volo.Abp.AspNetCore.Mvc.UI.Dashboards.Components.Dashboard.DashboardViewModel @{ } - @foreach (var globalFilterConfiguration in Model.Dashboard.AvailableGlobalFilters) - { - var globalFilter = Model.GetGlobalFilter(globalFilterConfiguration.GlobalFilterName); - - @await GlobalFilteRenderer.RenderAsync(Component, globalFilter.Name) +
+ @foreach (var globalFilterConfiguration in Model.Dashboard.AvailableGlobalFilters) + { + var globalFilter = Model.GetGlobalFilter(globalFilterConfiguration.GlobalFilterName); - } + @await GlobalFilteRenderer.RenderAsync(Component, globalFilter.Name) + + } + @if (Model.Dashboard.AvailableGlobalFilters.Any()) + { +
+ +
+ } +
diff --git a/samples/DashboardDemo/src/DashboardDemo.Application/DemoStatisticAppService.cs b/samples/DashboardDemo/src/DashboardDemo.Application/DemoStatisticAppService.cs index 00ff771305..f00bf1ce32 100644 --- a/samples/DashboardDemo/src/DashboardDemo.Application/DemoStatisticAppService.cs +++ b/samples/DashboardDemo/src/DashboardDemo.Application/DemoStatisticAppService.cs @@ -3,30 +3,61 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Volo.Abp; using Volo.Abp.Application.Services; namespace DashboardDemo { public class DemoStatisticAppService : ApplicationService, IDemoStatisticAppService { - public async Task GetNewUserPerDayStatistic() + public async Task GetMonthlyUserStatistic(FilterDto filter) { + var monthCount = GetLabels(filter, out var monthList); + var data = Enumerable - .Repeat(0, 7) - .Select(i => new Random().Next(50, 99)) + .Repeat(0, monthCount) + .Select(i => new Random().Next(750, 960)) .ToArray(); - return new NewUserPerDayStatisticDto{Data = data}; + return new GetMonthlyUserStatisticDto{Labels = monthList.ToArray(), Data = data}; } - public async Task GetMonthlyProfitStatistic() + public async Task GetMonthlyProfitStatistic(FilterDto filter) { + var monthCount = GetLabels(filter, out var monthList); + var data = Enumerable - .Repeat(0, 12) + .Repeat(0, monthCount) .Select(i => new Random().Next(-20, 40)) .ToArray(); - return new MonthlyProfitStatisticDto { Data = data }; + return new MonthlyProfitStatisticDto { Labels = monthList.ToArray(), Data = data }; + } + + private static int GetLabels(FilterDto filter, out List monthList) + { + DateTime endDate = filter.EndDate ?? DateTime.Now; + DateTime startDate = filter.StartDate ?? DateTime.Now.AddYears(-1); + + if (filter.StartDate > filter.EndDate) + { + throw new BusinessException("Start date can not be greater than end date."); + } + + var months = new[] {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec"}; + var monthCount = (endDate.Year - startDate.Year) * 12 + endDate.Month - startDate.Month +1; + monthList = new List(); + + for (int i = 0; i < monthCount; i++) + { + monthList.Add(months[endDate.Month-1]); + endDate = endDate.AddMonths(-1); + } + + + monthList.Reverse(); + + return monthCount; } } } diff --git a/samples/DashboardDemo/src/DashboardDemo.Application/FilterDto.cs b/samples/DashboardDemo/src/DashboardDemo.Application/FilterDto.cs new file mode 100644 index 0000000000..9093a7b393 --- /dev/null +++ b/samples/DashboardDemo/src/DashboardDemo.Application/FilterDto.cs @@ -0,0 +1,11 @@ +using System; + +namespace DashboardDemo +{ + public class FilterDto + { + public DateTime? StartDate { get; set; } + + public DateTime? EndDate { get; set; } + } +} \ No newline at end of file diff --git a/samples/DashboardDemo/src/DashboardDemo.Application/GetMonthlyUserStatisticDto.cs b/samples/DashboardDemo/src/DashboardDemo.Application/GetMonthlyUserStatisticDto.cs new file mode 100644 index 0000000000..16e3a13370 --- /dev/null +++ b/samples/DashboardDemo/src/DashboardDemo.Application/GetMonthlyUserStatisticDto.cs @@ -0,0 +1,9 @@ +namespace DashboardDemo +{ + public class GetMonthlyUserStatisticDto + { + public string[] Labels { get; set; } + + public int[] Data { get; set; } + } +} \ No newline at end of file diff --git a/samples/DashboardDemo/src/DashboardDemo.Application/IDemoStatisticAppService.cs b/samples/DashboardDemo/src/DashboardDemo.Application/IDemoStatisticAppService.cs index 5086e94eb8..47524172ae 100644 --- a/samples/DashboardDemo/src/DashboardDemo.Application/IDemoStatisticAppService.cs +++ b/samples/DashboardDemo/src/DashboardDemo.Application/IDemoStatisticAppService.cs @@ -8,8 +8,8 @@ namespace DashboardDemo { public interface IDemoStatisticAppService : IApplicationService { - Task GetNewUserPerDayStatistic(); + Task GetMonthlyUserStatistic(FilterDto filter); - Task GetMonthlyProfitStatistic(); + Task GetMonthlyProfitStatistic(FilterDto filter); } } diff --git a/samples/DashboardDemo/src/DashboardDemo.Application/MonthlyProfitStatisticDto.cs b/samples/DashboardDemo/src/DashboardDemo.Application/MonthlyProfitStatisticDto.cs index 9682b3b025..96ee285af5 100644 --- a/samples/DashboardDemo/src/DashboardDemo.Application/MonthlyProfitStatisticDto.cs +++ b/samples/DashboardDemo/src/DashboardDemo.Application/MonthlyProfitStatisticDto.cs @@ -2,6 +2,8 @@ { public class MonthlyProfitStatisticDto { + public string[] Labels { get; set; } + public int[] Data { get; set; } } } \ No newline at end of file diff --git a/samples/DashboardDemo/src/DashboardDemo.Application/NewUserPerDayStatisticDto.cs b/samples/DashboardDemo/src/DashboardDemo.Application/NewUserPerDayStatisticDto.cs deleted file mode 100644 index 09f8c0d270..0000000000 --- a/samples/DashboardDemo/src/DashboardDemo.Application/NewUserPerDayStatisticDto.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace DashboardDemo -{ - public class NewUserPerDayStatisticDto - { - public int[] Data { get; set; } - } -} \ No newline at end of file diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/DashboardDemoWebModule.cs b/samples/DashboardDemo/src/DashboardDemo.Web/DashboardDemoWebModule.cs index 1e395b978b..a4443059e5 100644 --- a/samples/DashboardDemo/src/DashboardDemo.Web/DashboardDemoWebModule.cs +++ b/samples/DashboardDemo/src/DashboardDemo.Web/DashboardDemoWebModule.cs @@ -116,7 +116,7 @@ namespace DashboardDemo { configuration.AddContributors(typeof(MyDashboardScriptBundleContributor)); }); - options.ScriptBundles.Add(UserCountWidgetViewComponent.WidgetName, configuration => + options.ScriptBundles.Add(UserCountWidgetViewComponent.Name, configuration => { configuration.AddContributors(typeof(UserCountWidgetScriptBundleContributor)); }); @@ -124,7 +124,7 @@ namespace DashboardDemo { configuration.AddContributors(typeof(MyDashboardStyleBundleContributor)); }); - options.StyleBundles.Add(UserCountWidgetViewComponent.WidgetName, configuration => + options.StyleBundles.Add(UserCountWidgetViewComponent.Name, configuration => { configuration.AddContributors(typeof(UserCountWidgetStyleBundleContributor)); }); diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/Dashboards/DashboardDefinitionProvider.cs b/samples/DashboardDemo/src/DashboardDemo.Web/Dashboards/DashboardDefinitionProvider.cs index fd9553775e..73d8d46426 100644 --- a/samples/DashboardDemo/src/DashboardDemo.Web/Dashboards/DashboardDefinitionProvider.cs +++ b/samples/DashboardDemo/src/DashboardDemo.Web/Dashboards/DashboardDefinitionProvider.cs @@ -15,10 +15,10 @@ namespace DashboardDemo.Dashboards DashboardNames.MyDashboard, LocalizableString.Create("MyDashboard") ) - .WithWidget(UserCountWidgetViewComponent.WidgetName) - .WithWidget(RoleListWidgetViewComponent.WidgetName) - .WithWidget(MonthlyProfitWidgetViewComponent.WidgetName) - .WithGlobalFilter(RefreshGlobalFilterViewComponent.GlobalFilterName); + .WithWidget(UserCountWidgetViewComponent.Name) + .WithWidget(RoleListWidgetViewComponent.Name) + .WithWidget(MonthlyProfitWidgetViewComponent.Name) + .WithGlobalFilter(DateRangeGlobalFilterViewComponent.Name); return new List { diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/GlobalFilters/GlobalFilterDefinitionProvider.cs b/samples/DashboardDemo/src/DashboardDemo.Web/GlobalFilters/GlobalFilterDefinitionProvider.cs index 812cb8c0c4..ca4fe0204c 100644 --- a/samples/DashboardDemo/src/DashboardDemo.Web/GlobalFilters/GlobalFilterDefinitionProvider.cs +++ b/samples/DashboardDemo/src/DashboardDemo.Web/GlobalFilters/GlobalFilterDefinitionProvider.cs @@ -15,9 +15,9 @@ namespace DashboardDemo.GlobalFilters public static List GetDefinitions() { var dateRangeFilter = new GlobalFilterDefinition( - RefreshGlobalFilterViewComponent.GlobalFilterName, + DateRangeGlobalFilterViewComponent.Name, LocalizableString.Create("DateRangeFilter"), - typeof(RefreshGlobalFilterViewComponent) + typeof(DateRangeGlobalFilterViewComponent) ); return new List diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/Index.cshtml b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/Index.cshtml index e4aa8c6063..627772ffab 100644 --- a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/Index.cshtml +++ b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/Index.cshtml @@ -13,15 +13,15 @@ @model IndexModel @section styles { - + } @section scripts { - + } @L["Welcome"] - @await WidgetRenderer.RenderAsync(Component, UserCountWidgetViewComponent.WidgetName) + @await WidgetRenderer.RenderAsync(Component, UserCountWidgetViewComponent.Name) @foreach (var dashboard in OptionsDashboadOptions.Value.Dashboards) diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/MyDashboardScriptBundleContributor.cs b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/MyDashboardScriptBundleContributor.cs index a3cfb29865..065db42338 100644 --- a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/MyDashboardScriptBundleContributor.cs +++ b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/MyDashboardScriptBundleContributor.cs @@ -1,4 +1,5 @@ using DashboardDemo.Pages.widgets; +using DashboardDemo.Pages.widgets.Filters; using Volo.Abp.AspNetCore.Mvc.UI.Bundling; using Volo.Abp.AspNetCore.Mvc.UI.Dashboards; using Volo.Abp.Modularity; @@ -9,7 +10,8 @@ namespace DashboardDemo.Pages typeof(AbpBasicDashboardScriptContributor), typeof(UserCountWidgetScriptBundleContributor), typeof(MonthlyProfitWidgetScriptBundleContributor), - typeof(RoleListWidgetScriptContributor) + typeof(RoleListWidgetScriptContributor), + typeof(DateRangeGlobalFilterScriptContributor) )] public class MyDashboardScriptBundleContributor : BundleContributor { diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/RefreshGlobalFilter.js b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/DateRangeGlobalFilter.js similarity index 54% rename from samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/RefreshGlobalFilter.js rename to samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/DateRangeGlobalFilter.js index 507133527d..61a0b2ee44 100644 --- a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/RefreshGlobalFilter.js +++ b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/DateRangeGlobalFilter.js @@ -1,5 +1,5 @@ (function ($) { - var $container = $('#RefreshGlobalFilterContainer'); + var $container = $('#DateRangeGlobalFilterContainer'); if ($container.length > 0) { } diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/RefreshGlobalFilterScriptContributor.cs b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/DateRangeGlobalFilterScriptContributor.cs similarity index 57% rename from samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/RefreshGlobalFilterScriptContributor.cs rename to samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/DateRangeGlobalFilterScriptContributor.cs index efd5a18e6a..2af313857c 100644 --- a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/RefreshGlobalFilterScriptContributor.cs +++ b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/DateRangeGlobalFilterScriptContributor.cs @@ -2,11 +2,11 @@ namespace DashboardDemo.Pages.widgets.Filters { - public class RefreshGlobalFilterScriptContributor : BundleContributor + public class DateRangeGlobalFilterScriptContributor : BundleContributor { public override void ConfigureBundle(BundleConfigurationContext context) { - context.Files.Add("/Pages/widgets/Filters/RefreshGlobalFilter.js"); + context.Files.Add("/Pages/widgets/Filters/DateRangeGlobalFilter.js"); } } } diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/DateRangeGlobalFilterViewComponent.cshtml b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/DateRangeGlobalFilterViewComponent.cshtml new file mode 100644 index 0000000000..43787ddf79 --- /dev/null +++ b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/DateRangeGlobalFilterViewComponent.cshtml @@ -0,0 +1,11 @@ +@inject IHtmlLocalizer L +@using DashboardDemo.Localization.DashboardDemo +@using Microsoft.AspNetCore.Mvc.Localization +@model DashboardDemo.Pages.widgets.Filters.DateRangeGlobalFilterViewComponent +@{ +} +
+ + +
+ diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/DateRangeGlobalFilterViewComponent.cshtml.cs b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/DateRangeGlobalFilterViewComponent.cshtml.cs new file mode 100644 index 0000000000..b91bedcd9a --- /dev/null +++ b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/DateRangeGlobalFilterViewComponent.cshtml.cs @@ -0,0 +1,17 @@ +using Microsoft.AspNetCore.Mvc; + +namespace DashboardDemo.Pages.widgets.Filters +{ + [ViewComponent] + public class DateRangeGlobalFilterViewComponent : ViewComponent + { + public const string Name = "DateRangeGlobalFilter"; + + public const string DisplayName = "Date Range Filter"; + + public IViewComponentResult Invoke() + { + return View("/Pages/widgets/Filters/DateRangeGlobalFilterViewComponent.cshtml", new DateRangeGlobalFilterViewComponent()); + } + } +} \ No newline at end of file diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/RefreshGlobalFilterViewComponent.cshtml b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/RefreshGlobalFilterViewComponent.cshtml deleted file mode 100644 index cf7eb5f9bd..0000000000 --- a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/RefreshGlobalFilterViewComponent.cshtml +++ /dev/null @@ -1,10 +0,0 @@ -@inject IHtmlLocalizer L -@using DashboardDemo.Localization.DashboardDemo -@using Microsoft.AspNetCore.Mvc.Localization -@model DashboardDemo.Pages.widgets.Filters.RefreshGlobalFilterViewComponent -@{ -} -
- -
- diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/RefreshGlobalFilterViewComponent.cshtml.cs b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/RefreshGlobalFilterViewComponent.cshtml.cs deleted file mode 100644 index 99d849e1a1..0000000000 --- a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/Filters/RefreshGlobalFilterViewComponent.cshtml.cs +++ /dev/null @@ -1,17 +0,0 @@ -using Microsoft.AspNetCore.Mvc; - -namespace DashboardDemo.Pages.widgets.Filters -{ - [ViewComponent] - public class RefreshGlobalFilterViewComponent : ViewComponent - { - public const string GlobalFilterName = "RefreshGlobalFilter"; - - public const string DisplayName = "Refresh Filter"; - - public IViewComponentResult Invoke() - { - return View("/Pages/widgets/Filters/RefreshGlobalFilterViewComponent.cshtml", new RefreshGlobalFilterViewComponent()); - } - } -} \ No newline at end of file diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/MonthlyProfitWidget/MonthlyProfitWidget.js b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/MonthlyProfitWidget/MonthlyProfitWidget.js index 8042d525e0..ecad229510 100644 --- a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/MonthlyProfitWidget/MonthlyProfitWidget.js +++ b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/MonthlyProfitWidget/MonthlyProfitWidget.js @@ -2,15 +2,13 @@ var $container = $('#MonthlyProfitWidgetContainer'); if ($container.length > 0) { var chart = {}; - var $RefreshGlobalFilterContainer = $("#RefreshGlobalFilterContainer"); var createChart = function () { - dashboardDemo.demoStatistic.getMonthlyProfitStatistic().then(function (result) { - + dashboardDemo.demoStatistic.getMonthlyProfitStatistic({}).then(function (result) { chart = new Chart($container.find('#MonthlyProfitStatistics'), { type: 'line', data: { - labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', "Jul", "Aug", "Sept", "Oct", "Nov", "Dec"], + labels: result.labels, datasets: [{ label: 'Monthly Profit', data: result.data, @@ -30,15 +28,20 @@ }); }; - if ($RefreshGlobalFilterContainer.length > 0) { - $RefreshGlobalFilterContainer.find('#GlobalRefreshButton').on('click', - function () { - dashboardDemo.demoStatistic.getMonthlyProfitStatistic().then(function (result) { - chart.data.datasets[0].data = result.data; - chart.update(); - }); + $(document).on('RefreshWidgets', + function (event, filters) { + dashboardDemo.demoStatistic.getMonthlyProfitStatistic({ startDate: filters.startDate, endDate: filters.endDate }).then(function (result) { + chart.data = { + labels: result.labels, + datasets: [{ + label: 'Monthly Profit', + data: result.data, + backgroundColor: 'rgba(255, 255, 132, 0.2)' + }] + }, + chart.update(); }); - } + }); createChart(); } diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/MonthlyProfitWidget/MonthlyProfitWidgetScriptBundleContributor.cs b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/MonthlyProfitWidget/MonthlyProfitWidgetScriptBundleContributor.cs index f06cabf8a9..9f40cd0032 100644 --- a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/MonthlyProfitWidget/MonthlyProfitWidgetScriptBundleContributor.cs +++ b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/MonthlyProfitWidget/MonthlyProfitWidgetScriptBundleContributor.cs @@ -10,7 +10,6 @@ namespace DashboardDemo.Pages.widgets [DependsOn(typeof(JQueryScriptContributor))] [DependsOn(typeof(ClipboardScriptBundleContributor))] [DependsOn(typeof(ChartjsScriptContributor))] - [DependsOn(typeof(RefreshGlobalFilterScriptContributor))] public class MonthlyProfitWidgetScriptBundleContributor : BundleContributor { public override void ConfigureBundle(BundleConfigurationContext context) diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/MonthlyProfitWidget/MonthlyProfitWidgetViewComponent.cshtml.cs b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/MonthlyProfitWidget/MonthlyProfitWidgetViewComponent.cshtml.cs index 2a8f96c5e2..91e5f40015 100644 --- a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/MonthlyProfitWidget/MonthlyProfitWidgetViewComponent.cshtml.cs +++ b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/MonthlyProfitWidget/MonthlyProfitWidgetViewComponent.cshtml.cs @@ -5,7 +5,7 @@ namespace DashboardDemo.Pages.widgets { public class MonthlyProfitWidgetViewComponent : AbpViewComponent { - public const string WidgetName = "MonthlyProfitWidget"; + public const string Name = "MonthlyProfitWidget"; public const string DisplayName = "Monthly Profit Widget"; diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/RoleListWidget/RoleListWidgetViewComponent.cshtml.cs b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/RoleListWidget/RoleListWidgetViewComponent.cshtml.cs index 797849faf9..c6d31b5b78 100644 --- a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/RoleListWidget/RoleListWidgetViewComponent.cshtml.cs +++ b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/RoleListWidget/RoleListWidgetViewComponent.cshtml.cs @@ -5,7 +5,7 @@ namespace DashboardDemo.Pages.widgets [ViewComponent] public class RoleListWidgetViewComponent : ViewComponent { - public const string WidgetName = "RoleListWidget"; + public const string Name = "RoleListWidget"; public const string DisplayName = "RoleListWidgets"; diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/UserCountWidget/UserCountWidget.js b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/UserCountWidget/UserCountWidget.js index 00270c1b99..d96cea33d1 100644 --- a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/UserCountWidget/UserCountWidget.js +++ b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/UserCountWidget/UserCountWidget.js @@ -3,18 +3,14 @@ if ($container.length > 0) { var chart = {}; - var $DateRangeGlobalFilterContainer = $("#RefreshGlobalFilterContainer"); - - var createChart = function () { - dashboardDemo.demoStatistic.getNewUserPerDayStatistic().then(function (result) { - + dashboardDemo.demoStatistic.getMonthlyUserStatistic({}).then(function (result) { chart = new Chart($container.find('#UserStatistics'), { type: 'bar', data: { - labels: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', "Sun"], + labels: result.labels, datasets: [{ - label: 'Avarage new user per day', + label: 'Monthly user count', data: result.data, backgroundColor: 'rgba(255, 99, 132, 0.2)' }] @@ -32,16 +28,20 @@ }); }; - if ($DateRangeGlobalFilterContainer.length > 0) { - $DateRangeGlobalFilterContainer.find('#GlobalRefreshButton').on('click', - function () { - dashboardDemo.demoStatistic.getNewUserPerDayStatistic().then(function (result) { - - chart.data.datasets[0].data = result.data; + $(document).on('RefreshWidgets', + function (event, filters) { + dashboardDemo.demoStatistic.getMonthlyUserStatistic({ startDate: filters.startDate, endDate: filters.endDate }).then(function (result) { + chart.data= { + labels: result.labels, + datasets: [{ + label: 'Monthly user count', + data: result.data, + backgroundColor: 'rgba(255, 99, 132, 0.2)' + }] + }, chart.update(); }); }); - } createChart(); } diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/UserCountWidget/UserCountWidgetScriptBundleContributor.cs b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/UserCountWidget/UserCountWidgetScriptBundleContributor.cs index b0799cecd6..a56d915862 100644 --- a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/UserCountWidget/UserCountWidgetScriptBundleContributor.cs +++ b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/UserCountWidget/UserCountWidgetScriptBundleContributor.cs @@ -10,7 +10,6 @@ namespace DashboardDemo.Pages.widgets [DependsOn(typeof(JQueryScriptContributor))] [DependsOn(typeof(ClipboardScriptBundleContributor))] [DependsOn(typeof(ChartjsScriptContributor))] - [DependsOn(typeof(RefreshGlobalFilterScriptContributor))] public class UserCountWidgetScriptBundleContributor : BundleContributor { public override void ConfigureBundle(BundleConfigurationContext context) diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/UserCountWidget/UserCountWidgetViewComponent.cshtml.cs b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/UserCountWidget/UserCountWidgetViewComponent.cshtml.cs index 69688f707b..4e27b13e4b 100644 --- a/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/UserCountWidget/UserCountWidgetViewComponent.cshtml.cs +++ b/samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/UserCountWidget/UserCountWidgetViewComponent.cshtml.cs @@ -5,7 +5,7 @@ namespace DashboardDemo.Pages.widgets { public class UserCountWidgetViewComponent : AbpViewComponent { - public const string WidgetName = "UserCountWidget"; + public const string Name = "UserCountWidget"; public const string DisplayName = "UserCountWidgett"; diff --git a/samples/DashboardDemo/src/DashboardDemo.Web/Widgets/WidgetDefinitionProvider.cs b/samples/DashboardDemo/src/DashboardDemo.Web/Widgets/WidgetDefinitionProvider.cs index 98b11f7064..1fcc273bd7 100644 --- a/samples/DashboardDemo/src/DashboardDemo.Web/Widgets/WidgetDefinitionProvider.cs +++ b/samples/DashboardDemo/src/DashboardDemo.Web/Widgets/WidgetDefinitionProvider.cs @@ -12,7 +12,7 @@ namespace DashboardDemo.Widgets public static List GetDefinitions() { var userCountWidget = new WidgetDefinition( - UserCountWidgetViewComponent.WidgetName, + UserCountWidgetViewComponent.Name, LocalizableString.Create(UserCountWidgetViewComponent.DisplayName), typeof(UserCountWidgetViewComponent) ) @@ -20,7 +20,7 @@ namespace DashboardDemo.Widgets .AddRequiredPermission(IdentityPermissions.Users.Default); var monthlyProfitWidget = new WidgetDefinition( - MonthlyProfitWidgetViewComponent.WidgetName, + MonthlyProfitWidgetViewComponent.Name, LocalizableString.Create(MonthlyProfitWidgetViewComponent.DisplayName), typeof(MonthlyProfitWidgetViewComponent) ) @@ -28,7 +28,7 @@ namespace DashboardDemo.Widgets .AddRequiredPermission(IdentityPermissions.Users.Default); var roleListWidget = new WidgetDefinition( - RoleListWidgetViewComponent.WidgetName, + RoleListWidgetViewComponent.Name, LocalizableString.Create(RoleListWidgetViewComponent.DisplayName), typeof(RoleListWidgetViewComponent) )