Browse Source

Merge pull request #5471 from abpframework/maliming/DataTables

DataTables.Net Actions Improvements
pull/5507/head
Halil İbrahim Kalkan 6 years ago
committed by GitHub
parent
commit
049e30e8ef
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 77
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js

77
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js

@ -15,19 +15,19 @@
return; return;
} }
var getVisibilityValue = function (visibilityField, record) { var getVisibilityValue = function (visibilityField, record, tableInstance) {
if (visibilityField === undefined) { if (visibilityField === undefined) {
return true; return true;
} }
if (abp.utils.isFunction(visibilityField)) { if (abp.utils.isFunction(visibilityField)) {
return visibilityField(record); return visibilityField(record, tableInstance);
} else { } else {
return visibilityField; return visibilityField;
} }
}; };
var _createDropdownItem = function (record, fieldItem) { var _createDropdownItem = function (record, fieldItem, tableInstance) {
var $li = $('<li/>'); var $li = $('<li/>');
var $a = $('<a/>'); var $a = $('<a/>');
@ -50,14 +50,14 @@
if (!$(this).closest('li').hasClass('disabled')) { if (!$(this).closest('li').hasClass('disabled')) {
if (fieldItem.confirmMessage) { if (fieldItem.confirmMessage) {
abp.message.confirm(fieldItem.confirmMessage({ record: record })) abp.message.confirm(fieldItem.confirmMessage({ record: record, table: tableInstance }))
.done(function (accepted) { .done(function (accepted) {
if (accepted) { if (accepted) {
fieldItem.action({ record: record }); fieldItem.action({ record: record, table: tableInstance });
} }
}); });
} else { } else {
fieldItem.action({ record: record }); fieldItem.action({ record: record, table: tableInstance });
} }
} }
}); });
@ -67,17 +67,60 @@
return $li; return $li;
}; };
var _createButtonDropdown = function (record, field) { var _createButtonDropdown = function (record, field, tableInstance) {
if(field.items.length === 1) {
var firstItem = field.items[0];
if (!getVisibilityValue(firstItem.visible, record, tableInstance)) {
return "";
}
var $button = $('<button type="button" class="btn btn-primary"></button>');
if (firstItem.displayNameHtml) {
$button.html(firstItem.text);
} else {
if (firstItem.icon !== undefined && firstItem.icon) {
$button.append($("<i>").addClass("fa fa-" + firstItem.icon + " mr-1"));
} else if (firstItem.iconClass) {
$button.append($("<i>").addClass(firstItem.iconClass + " mr-1"));
}
$button.append(firstItem.text);
}
if (firstItem.enabled && !firstItem.enabled({ record: record, table: tableInstance })) {
$button.addClass('disabled');
}
if (firstItem.action) {
$button.click(function (e) {
e.preventDefault();
if (!$(this).hasClass('disabled')) {
if (firstItem.confirmMessage) {
abp.message.confirm(firstItem.confirmMessage({ record: record, table: tableInstance }))
.done(function (accepted) {
if (accepted) {
firstItem.action({ record: record, table: tableInstance });
}
});
} else {
firstItem.action({ record: record, table: tableInstance });
}
}
});
}
return $button;
}
var $container = $('<div/>') var $container = $('<div/>')
.addClass('dropdown') .addClass('dropdown')
.addClass('action-button'); .addClass('action-button');
var $dropdownButton = $('<button/>'); var $dropdownButton = $('<button/>');
if (field.icon !== undefined) { if (field.icon !== undefined && field.icon) {
if (field.icon) { $dropdownButton.append($("<i>").addClass("fa fa-" + field.icon + " mr-1"));
$dropdownButton.append($("<i>").addClass("fa fa-" + field.icon + " mr-1"));
}
} else if (field.iconClass) { } else if (field.iconClass) {
$dropdownButton.append($("<i>").addClass(field.iconClass + " mr-1")); $dropdownButton.append($("<i>").addClass(field.iconClass + " mr-1"));
} else { } else {
@ -105,14 +148,14 @@
for (var i = 0; i < field.items.length; i++) { for (var i = 0; i < field.items.length; i++) {
var fieldItem = field.items[i]; var fieldItem = field.items[i];
var isVisible = getVisibilityValue(fieldItem.visible, record); var isVisible = getVisibilityValue(fieldItem.visible, record, tableInstance);
if (!isVisible) { if (!isVisible) {
continue; continue;
} }
var $dropdownItem = _createDropdownItem(record, fieldItem); var $dropdownItem = _createDropdownItem(record, fieldItem, tableInstance);
if (fieldItem.enabled && !fieldItem.enabled({ record: record })) { if (fieldItem.enabled && !fieldItem.enabled({ record: record, table: tableInstance })) {
$dropdownItem.addClass('disabled'); $dropdownItem.addClass('disabled');
} }
@ -131,10 +174,10 @@
return $container; return $container;
}; };
var _createSingleButton = function (record, field) { var _createSingleButton = function (record, field, tableInstance) {
$(field.element).data(record); $(field.element).data(record);
var isVisible = getVisibilityValue(field.visible, record); var isVisible = getVisibilityValue(field.visible, record, tableInstance);
if (isVisible) { if (isVisible) {
return field.element; return field.element;
@ -147,7 +190,7 @@
if (field.items && field.items.length > 0) { if (field.items && field.items.length > 0) {
return _createButtonDropdown(record, field, tableInstance); return _createButtonDropdown(record, field, tableInstance);
} else if (field.element) { } else if (field.element) {
var $singleActionButton = _createSingleButton(record, field); var $singleActionButton = _createSingleButton(record, field, tableInstance);
if ($singleActionButton === "") { if ($singleActionButton === "") {
return ""; return "";
} }

Loading…
Cancel
Save