Browse Source

Simplify to create a widget dashboard.

pull/1545/head
Halil İbrahim Kalkan 7 years ago
parent
commit
042d1fb0e6
  1. 28
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/jquery/widget-manager.js
  2. 2
      samples/DashboardDemo/src/DashboardDemo.Web/Pages/MyDashboard.cshtml
  3. 8
      samples/DashboardDemo/src/DashboardDemo.Web/Pages/MyDashboard.js

28
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/jquery/widget-manager.js

@ -16,11 +16,22 @@
opts.wrapper = $(opts.wrapper); opts.wrapper = $(opts.wrapper);
} }
if (!opts.filterForm) {
var widgetFilterAttr = opts.wrapper.attr('data-widget-filter');
if (widgetFilterAttr) {
opts.filterForm = $(widgetFilterAttr);
}
} else if (typeof opts.filterForm === 'string') {
opts.filterForm = $(opts.filterForm);
}
var getFilters = function ($widgetWrapperDiv) { var getFilters = function ($widgetWrapperDiv) {
var filters = {}; var filters = {};
if (opts.filterForm) { if (opts.filterForm) {
filters = opts.filterForm.serializeFormToObject(); opts.filterForm.each(function() {
filters = $.extend(filters, opts.filterForm.serializeFormToObject());
});
} }
if (opts.filterCallback) { if (opts.filterCallback) {
@ -75,15 +86,22 @@
}; };
if (opts.filterForm) { if (opts.filterForm) {
opts.filterForm.submit(function (e) { opts.filterForm.each(function() {
e.preventDefault(); $(this).submit(function (e) {
refresh(); e.preventDefault();
refresh();
});
}); });
} }
return { var publicApi = {
init: init, init: init,
refresh: refresh refresh: refresh
}; };
opts.wrapper.data('abp-widget-manager', publicApi);
return publicApi;
}; };
})(jQuery); })(jQuery);

2
samples/DashboardDemo/src/DashboardDemo.Web/Pages/MyDashboard.cshtml

@ -23,7 +23,7 @@
</abp-row> </abp-row>
</form> </form>
<div id="MyDashboardWidgetsArea"> <div id="MyDashboardWidgetsArea" data-widget-filter="#MyDashboardFilterForm">
<abp-row> <abp-row>
<abp-column> <abp-column>
@await Component.InvokeAsync("CountersWidget", new @await Component.InvokeAsync("CountersWidget", new

8
samples/DashboardDemo/src/DashboardDemo.Web/Pages/MyDashboard.js

@ -1,9 +1,3 @@
(function () { (function () {
new abp.WidgetManager('#MyDashboardWidgetsArea').init();
var myDashboard = new abp.WidgetManager({
wrapper: '#MyDashboardWidgetsArea',
filterForm: $('#MyDashboardFilterForm')
});
myDashboard.init();
})(); })();
Loading…
Cancel
Save