From 1ddf19631609842eff954ccc1d4ccb5df7478fec Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Tue, 3 Jul 2018 13:11:39 +0300 Subject: [PATCH] Visibility now supports both function and boolean value #283 --- .../datatables/datatables-extensions.js | 35 ++++++++++--------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js index b358f1065e..3561d1a4bd 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js @@ -5,7 +5,7 @@ /************************************************************************ * RECORD-ACTIONS extension for datatables --------------------------------------------------------------- - * USAGE: element (creates the JQuery element and puts in the specified target) + * USAGE: element (creates the JQuery element) { targets: 0, rowAction: @@ -78,6 +78,18 @@ return $li; } + var getVisibilityValue = function(visibilityField, record) { + if (visibilityField === undefined) { + return true; + } + + if (abp.utils.isFunction(visibilityField)) { + return visibilityField(record); + } else { + return visibilityField; + } + } + var _createButtonDropdown = function (record, field) { var $container = $('
') .addClass('dropdown') @@ -99,7 +111,8 @@ for (var i = 0; i < field.items.length; i++) { var fieldItem = field.items[i]; - if (fieldItem.visible && !fieldItem.visible({ record: record })) { + var isVisible = getVisibilityValue(fieldItem.visible, record); + if (!isVisible) { continue; } @@ -126,22 +139,12 @@ var _createSingleButton = function (record, field) { $(field.element).data(record); + var isVisible = getVisibilityValue(field.visible, record); - if (field.visible === undefined) { + if (isVisible) { return field.element; } - - var isVisibilityFunction = typeof field.visible === "function"; - if (isVisibilityFunction) { - if (field.visible()) { - return field.element; - } - } else { - if (field.visible) { - return field.element; - } - } - + return ""; }; @@ -157,7 +160,7 @@ return $singleActionButton.clone(true); } - throw "Cannot create row action. Either set element or items fields!"; + throw "DTE#1: Cannot create row action. Either set element or items fields!"; } var hideColumnWithoutRedraw = function (tableInstance, colIndex) {