Browse Source

Update MyDashboard.js

pull/1545/head
Halil İbrahim Kalkan 7 years ago
parent
commit
f8f2bdb91d
  1. 83
      samples/DashboardDemo/src/DashboardDemo.Web/Pages/MyDashboard.js

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

@ -1,26 +1,25 @@
abp.widgets = abp.widgets || {}; //TODO: Remove later
(function () {
abp.WidgetManager = function(opts) {
};
abp.DashboardManager = function (opts) {
abp.WidgetManager = function (opts) {
if (typeof opts === 'string') {
opts = {
wrapper: opts
};
}
var $dashboardWrapper;
var $widgetWrapperDiv;
if (typeof opts.wrapper === 'string') {
$dashboardWrapper = $(opts.wrapper);
$widgetWrapperDiv = $(opts.wrapper);
} else {
$dashboardWrapper = opts.wrapper;
$widgetWrapperDiv = opts.wrapper;
}
var getFilters = function ($widgetWrapperDiv) {
if (!$widgetWrapperDiv.hasClass('abp-widget-wrapper')) {
$widgetWrapperDiv = $widgetWrapperDiv.closest('.abp-widget-wrapper');
}
var getFilters = function () {
var filters = {};
if (opts.filterCallback) {
@ -34,8 +33,8 @@
return filters;
};
var initWidget = function($widgetWrapperDiv) {
var init = function () {
var widgetName = $widgetWrapperDiv.attr('data-widget-name');
var widgetApiClass = abp.widgets[widgetName];
if (widgetApiClass) {
@ -47,14 +46,14 @@
}
};
var callRefreshWidgetApi = function ($widgetWrapperDiv) {
var callRefreshWidgetApi = function () {
var widgetApi = $widgetWrapperDiv.data('abp-widget-api');
if (widgetApi && widgetApi.refresh) {
widgetApi.refresh(getFilters($widgetWrapperDiv));
}
}
var refreshWidget = function ($widgetWrapperDiv) {
var refresh = function () {
var refreshUrl = $widgetWrapperDiv.attr('data-refresh-url');
if (refreshUrl) {
abp.ajax({
@ -62,30 +61,62 @@
type: 'GET',
dataType: 'html',
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
data: getFilters($widgetWrapperDiv)
data: getFilters()
}).then(function (result) {
var $newWidgetWrapperDiv = $(result);
$widgetWrapperDiv.replaceWith($newWidgetWrapperDiv);
$widgetWrapperDiv = $newWidgetWrapperDiv;
initWidget($widgetWrapperDiv);
$widgetWrapperDiv.data('abp-widget-manager', publicApi);
init();
});
} else {
callRefreshWidgetApi($widgetWrapperDiv);
callRefreshWidgetApi();
}
};
var init = function () {
$dashboardWrapper.find('.abp-widget-wrapper').each(function () {
initWidget($(this));
});
var publicApi = {
init: init,
refresh: refresh
};
var refresh = function() {
$widgetWrapperDiv.data('abp-widget-manager', publicApi);
return publicApi;
};
abp.DashboardManager = function (opts) {
if (typeof opts === 'string') {
opts = {
wrapper: opts
};
}
var $dashboardWrapper;
if (typeof opts.wrapper === 'string') {
$dashboardWrapper = $(opts.wrapper);
} else {
$dashboardWrapper = opts.wrapper;
}
var init = function() {
$dashboardWrapper.find('.abp-widget-wrapper').each(function() {
refreshWidget($(this));
var widgetManager = new abp.WidgetManager({
wrapper: $(this),
filterCallback: opts.filterCallback
});
widgetManager.init();
});
};
var refresh = function () {
$dashboardWrapper.find('.abp-widget-wrapper').each(function () {
var widgetManager = $(this).data('abp-widget-manager');
widgetManager && widgetManager.refresh();
});
};
return {
init: init,
refresh: refresh
@ -96,14 +127,14 @@
var myDashboard = new abp.DashboardManager({
wrapper: '#MyDashboardWidgetsArea',
filterCallback: function() {
filterCallback: function () {
return filterForm.serializeFormToObject();
}
});
myDashboard.init();
filterForm.submit(function(e) {
filterForm.submit(function (e) {
e.preventDefault();
myDashboard.refresh();
});

Loading…
Cancel
Save