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)
+
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)
)