Browse Source

functional widgets added

pull/1149/head
Yunus Emre Kalkan 7 years ago
parent
commit
ae46e96b81
  1. 7
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Dashboards/Volo/Abp/AspNetCore/Mvc/UI/Dashboards/Components/Dashboard/Default.cshtml
  2. 8
      samples/DashboardDemo/src/DashboardDemo.Web/DashboardDemoWebModule.cs
  3. 4
      samples/DashboardDemo/src/DashboardDemo.Web/Dashboards/DashboardDefinitionProvider.cs
  4. 7
      samples/DashboardDemo/src/DashboardDemo.Web/Pages/Index.cshtml
  5. 4
      samples/DashboardDemo/src/DashboardDemo.Web/Pages/MyDashboardScriptBundleContributor.cs
  6. 4
      samples/DashboardDemo/src/DashboardDemo.Web/Pages/MyDashboardStyleBundleContributor.cs
  7. 8
      samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/DemoStatisticsStyleContributor.cs
  8. 6
      samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/DemoStatisticsViewComponent.cshtml
  9. 17
      samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/DemoStatisticsViewComponent.cshtml.cs
  10. 1
      samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/MyDashboard.js
  11. 6
      samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/MyWidgetViewComponent.cshtml
  12. 17
      samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/MyWidgetViewComponent.cshtml.cs
  13. 0
      samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/RoleListWidget.css
  14. 14
      samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/RoleListWidget.js
  15. 6
      samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/RoleListWidgetScriptContributor.cs
  16. 12
      samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/RoleListWidgetStyleContributor.cs
  17. 15
      samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/RoleListWidgetViewComponent.cshtml
  18. 17
      samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/RoleListWidgetViewComponent.cshtml.cs
  19. 3
      samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/UserCountWidget.css
  20. 10
      samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/UserCountWidget.js
  21. 4
      samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/UserCountWidgetScriptBundleContributor.cs
  22. 4
      samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/UserCountWidgetStyleBundleContributor.cs
  23. 12
      samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/UserCountWidgetViewComponent.cshtml
  24. 17
      samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/UserCountWidgetViewComponent.cshtml.cs
  25. 13
      samples/DashboardDemo/src/DashboardDemo.Web/Widgets/WidgetDefinitionProvider.cs

7
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Dashboards/Volo/Abp/AspNetCore/Mvc/UI/Dashboards/Components/Dashboard/Default.cshtml

@ -10,11 +10,10 @@
@foreach (var widgetConfiguration in Model.Dashboard.AvailableWidgets)
{
var widgetDefinition = Model.GetWidget(widgetConfiguration.WidgetName);
widgetDefinition.DefaultDimensions = widgetConfiguration.Dimensions ?? widgetDefinition.DefaultDimensions ?? new WidgetDimensions(5, 5);
widgetDefinition.DefaultDimensions = widgetConfiguration.Dimensions ?? widgetDefinition.DefaultDimensions ?? new WidgetDimensions(6, 4);
<abp-column class="col-@(widgetDefinition.DefaultDimensions.Width) m-2"
style="height: @(widgetDefinition.DefaultDimensions.Height * 100)px"
abp-border="Danger">
<abp-column class="col-@(widgetDefinition.DefaultDimensions.Width) p-2"
style="height: @(widgetDefinition.DefaultDimensions.Height * 100)px">
@await WidgetRenderer.RenderAsync(Component, widgetDefinition.Name)
</abp-column>

8
samples/DashboardDemo/src/DashboardDemo.Web/DashboardDemoWebModule.cs

@ -106,10 +106,18 @@ namespace DashboardDemo
{
configuration.AddContributors(typeof(MyDashboardScriptBundleContributor));
});
options.ScriptBundles.Add(UserCountWidgetViewComponent.WidgetName, configuration =>
{
configuration.AddContributors(typeof(UserCountWidgetScriptBundleContributor));
});
options.StyleBundles.Add(DashboardNames.MyDashboard, configuration =>
{
configuration.AddContributors(typeof(MyDashboardStyleBundleContributor));
});
options.StyleBundles.Add(UserCountWidgetViewComponent.WidgetName, configuration =>
{
configuration.AddContributors(typeof(UserCountWidgetStyleBundleContributor));
});
});
}

4
samples/DashboardDemo/src/DashboardDemo.Web/Dashboards/DashboardDefinitionProvider.cs

@ -16,8 +16,8 @@ namespace DashboardDemo.Dashboards
DashboardNames.MyDashboard,
LocalizableString.Create<DashboardDemoResource>("MyDashboard")
)
.WithWidget(DemoStatisticsViewComponent.WidgetName)
.WithWidget(MyWidgetViewComponent.WidgetName);
.WithWidget(RoleListWidgetViewComponent.WidgetName)
.WithWidget(UserCountWidgetViewComponent.WidgetName);
return new List<DashboardDefinition>
{

7
samples/DashboardDemo/src/DashboardDemo.Web/Pages/Index.cshtml

@ -13,14 +13,17 @@
@model IndexModel
@section styles {
<link href="~/pages/index.css" rel="stylesheet" />
<abp-style-bundle name="@UserCountWidgetViewComponent.WidgetName" />
}
@section scripts {
<abp-script-bundle name="@UserCountWidgetViewComponent.WidgetName" />
}
<abp-card>
<abp-card-header>@L["Welcome"]</abp-card-header>
<abp-card-body>
@await WidgetRenderer.RenderAsync(Component, MyWidgetViewComponent.WidgetName)
@await WidgetRenderer.RenderAsync(Component, UserCountWidgetViewComponent.WidgetName)
</abp-card-body>
</abp-card>
@foreach (var dashboard in OptionsDashboadOptions.Value.Dashboards)
{
<a href="/@dashboard.Name">Go to @dashboard.DisplayName.Localize(localizer)</a>

4
samples/DashboardDemo/src/DashboardDemo.Web/Pages/MyDashboardScriptBundleContributor.cs

@ -7,8 +7,8 @@ namespace DashboardDemo.Pages
{
[DependsOn(
typeof(AbpBasicDashboardScriptContributor),
typeof(MyWidgetScriptBundleContributor),
typeof(DemoStatisticsScriptContributor)
typeof(UserCountWidgetScriptBundleContributor),
typeof(RoleListWidgetScriptContributor)
)]
public class MyDashboardScriptBundleContributor : BundleContributor
{

4
samples/DashboardDemo/src/DashboardDemo.Web/Pages/MyDashboardStyleBundleContributor.cs

@ -7,8 +7,8 @@ namespace DashboardDemo.Pages
{
[DependsOn(
typeof(AbpBasicDashboardStyleContributor),
typeof(MyWidgetStyleBundleContributor),
typeof(DemoStatisticsStyleContributor)
typeof(UserCountWidgetStyleBundleContributor),
typeof(RoleListWidgetStyleContributor)
)]
public class MyDashboardStyleBundleContributor : BundleContributor
{

8
samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/DemoStatisticsStyleContributor.cs

@ -1,8 +0,0 @@
using Volo.Abp.AspNetCore.Mvc.UI.Bundling;
namespace DashboardDemo.Pages.widgets
{
public class DemoStatisticsStyleContributor : BundleContributor
{
}
}

6
samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/DemoStatisticsViewComponent.cshtml

@ -1,6 +0,0 @@
@page
@model DashboardDemo.Pages.widgets.DemoStatisticsViewComponent
@{
}
Demo statistics

17
samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/DemoStatisticsViewComponent.cshtml.cs

@ -1,17 +0,0 @@
using Microsoft.AspNetCore.Mvc;
namespace DashboardDemo.Pages.widgets
{
[ViewComponent]
public class DemoStatisticsViewComponent : ViewComponent
{
public const string WidgetName = "DemoStatistics";
public const string DisplayName = "DemoStatisticss";
public IViewComponentResult Invoke()
{
return View("/Pages/widgets/DemoStatisticsViewComponent.cshtml", new DemoStatisticsViewComponent());
}
}
}

1
samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/MyDashboard.js

@ -1 +0,0 @@


6
samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/MyWidgetViewComponent.cshtml

@ -1,6 +0,0 @@
@page
@model DashboardDemo.Pages.widgets.MyWidgetViewComponent
@{
}
Hiiiiiii

17
samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/MyWidgetViewComponent.cshtml.cs

@ -1,17 +0,0 @@
using Microsoft.AspNetCore.Mvc;
namespace DashboardDemo.Pages.widgets
{
[ViewComponent]
public class MyWidgetViewComponent : ViewComponent
{
public const string WidgetName = "MyWidget";
public const string DisplayName = "MyWidgett";
public IViewComponentResult Invoke()
{
return View("/Pages/widgets/MyWidgetViewComponent.cshtml", new MyWidgetViewComponent());
}
}
}

0
samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/MyDashboard.css → samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/RoleListWidget.css

14
samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/RoleListWidget.js

@ -0,0 +1,14 @@
(function ($) {
var $container = $('#RoleListWidgetContainer');
var _identityUserAppService = volo.abp.identity.identityRole;
_identityUserAppService.getList({}).then(function (result) {
var html = '';
for (var i = 0; i < result.items.length; i++) {
html += '<li>'+ result.items[i].name+'</li>';
}
$container.find('#RoleList').html(html);
});
})(jQuery);

6
samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/DemoStatisticsScriptContributor.cs → samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/RoleListWidgetScriptContributor.cs

@ -5,7 +5,11 @@ using Volo.Abp.Modularity;
namespace DashboardDemo.Pages.widgets
{
[DependsOn(typeof(ClipboardScriptBundleContributor))]
public class DemoStatisticsScriptContributor : BundleContributor
public class RoleListWidgetScriptContributor : BundleContributor
{
public override void ConfigureBundle(BundleConfigurationContext context)
{
context.Files.Add("/Pages/widgets/RoleListWidget.js");
}
}
}

12
samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/RoleListWidgetStyleContributor.cs

@ -0,0 +1,12 @@
using Volo.Abp.AspNetCore.Mvc.UI.Bundling;
namespace DashboardDemo.Pages.widgets
{
public class RoleListWidgetStyleContributor : BundleContributor
{
public override void ConfigureBundle(BundleConfigurationContext context)
{
context.Files.Add("/Pages/widgets/RoleListWidget.css");
}
}
}

15
samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/RoleListWidgetViewComponent.cshtml

@ -0,0 +1,15 @@
@page
@model DashboardDemo.Pages.widgets.RoleListWidgetViewComponent
@{
}
<div id="RoleListWidgetContainer">
<abp-card background="Secondary">
<abp-card-header> Roles in application :</abp-card-header>
<abp-card-body>
<ul id="RoleList">
</ul>
</abp-card-body>
</abp-card>
</div>

17
samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/RoleListWidgetViewComponent.cshtml.cs

@ -0,0 +1,17 @@
using Microsoft.AspNetCore.Mvc;
namespace DashboardDemo.Pages.widgets
{
[ViewComponent]
public class RoleListWidgetViewComponent : ViewComponent
{
public const string WidgetName = "RoleListWidget";
public const string DisplayName = "RoleListWidgets";
public IViewComponentResult Invoke()
{
return View("/Pages/widgets/RoleListWidgetViewComponent.cshtml", new RoleListWidgetViewComponent());
}
}
}

3
samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/UserCountWidget.css

@ -0,0 +1,3 @@
body {
margin: 0;
}

10
samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/UserCountWidget.js

@ -0,0 +1,10 @@
(function ($) {
var $container = $('#UserCountWidgetContainer');
var _identityUserAppService = volo.abp.identity.identityUser;
_identityUserAppService.getList({}).then(function(result) {
$container.find('#UserCount').text(result.items.length);
});
})(jQuery);

4
samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/MyWidgetScriptBundleContributor.cs → samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/UserCountWidgetScriptBundleContributor.cs

@ -7,11 +7,11 @@ namespace DashboardDemo.Pages.widgets
{
[DependsOn(typeof(JQueryScriptContributor))]
[DependsOn(typeof(ClipboardScriptBundleContributor))]
public class MyWidgetScriptBundleContributor : BundleContributor
public class UserCountWidgetScriptBundleContributor : BundleContributor
{
public override void ConfigureBundle(BundleConfigurationContext context)
{
context.Files.Add("/Pages/widgets/MyDashboard.js");
context.Files.Add("/Pages/widgets/UserCountWidget.js");
}
}
}

4
samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/MyWidgetStyleBundleContributor.cs → samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/UserCountWidgetStyleBundleContributor.cs

@ -7,11 +7,11 @@ namespace DashboardDemo.Pages.widgets
{
[DependsOn(typeof(BootstrapStyleContributor))]
[DependsOn(typeof(HighlightJsStyleContributor))]
public class MyWidgetStyleBundleContributor : BundleContributor
public class UserCountWidgetStyleBundleContributor : BundleContributor
{
public override void ConfigureBundle(BundleConfigurationContext context)
{
context.Files.Add("/Pages/widgets/MyDashboard.css");
context.Files.Add("/Pages/widgets/UserCountWidget.css");
}
}
}

12
samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/UserCountWidgetViewComponent.cshtml

@ -0,0 +1,12 @@
@page
@model DashboardDemo.Pages.widgets.UserCountWidgetViewComponent
@{
}
<div id="UserCountWidgetContainer">
<abp-card background="Info">
<abp-card-header>User Count :</abp-card-header>
<abp-card-body>
<h1 id="UserCount"></h1>
</abp-card-body>
</abp-card>
</div>

17
samples/DashboardDemo/src/DashboardDemo.Web/Pages/widgets/UserCountWidgetViewComponent.cshtml.cs

@ -0,0 +1,17 @@
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc;
namespace DashboardDemo.Pages.widgets
{
public class UserCountWidgetViewComponent : AbpViewComponent
{
public const string WidgetName = "UserCountWidget";
public const string DisplayName = "UserCountWidgett";
public IViewComponentResult Invoke()
{
return View("/Pages/widgets/UserCountWidgetViewComponent.cshtml", new UserCountWidgetViewComponent());
}
}
}

13
samples/DashboardDemo/src/DashboardDemo.Web/Widgets/WidgetDefinitionProvider.cs

@ -13,14 +13,15 @@ namespace DashboardDemo.Widgets
return new List<WidgetDefinition>
{
new WidgetDefinition(
MyWidgetViewComponent.WidgetName,
typeof(MyWidgetViewComponent),
LocalizableString.Create<DashboardDemoResource>(MyWidgetViewComponent.DisplayName)
UserCountWidgetViewComponent.WidgetName,
typeof(UserCountWidgetViewComponent),
LocalizableString.Create<DashboardDemoResource>(UserCountWidgetViewComponent.DisplayName),
new WidgetDimensions(4,2)
),
new WidgetDefinition(
DemoStatisticsViewComponent.WidgetName,
typeof(DemoStatisticsViewComponent),
LocalizableString.Create<DashboardDemoResource>(DemoStatisticsViewComponent.DisplayName)
RoleListWidgetViewComponent.WidgetName,
typeof(RoleListWidgetViewComponent),
LocalizableString.Create<DashboardDemoResource>(RoleListWidgetViewComponent.DisplayName)
)
};
}

Loading…
Cancel
Save