diff --git a/lib/extensions/jquery.jtable.record-actions.js b/lib/extensions/jquery.jtable.record-actions.js index cc9da7f4..5f221c2e 100644 --- a/lib/extensions/jquery.jtable.record-actions.js +++ b/lib/extensions/jquery.jtable.record-actions.js @@ -100,12 +100,17 @@ var $dropdownItemsContainer = $('').addClass('dropdown-menu'); for (var i = 0; i < field.items.length; i++) { var fieldItem = field.items[i]; - - if(fieldItem.visibility && !fieldItem.visibility(record)){ - continue; + + if(fieldItem.visible && !fieldItem.visible({record: record})){ + continue; + } + + var $dropdownItem = self._createDropdownItem(record, fieldItem); + + if(fieldItem.enabled && !fieldItem.enabled({ record: record })){ + $dropdownItem.addClass('disabled'); } - var $dropdownItem = self._createDropdownItem(record, field.items[i]); $dropdownItem.appendTo($dropdownItemsContainer); } @@ -117,18 +122,20 @@ return $dropdownContainer; }, - _createDropdownItem: function(record, item){ + _createDropdownItem: function(record, fieldItem){ var $li = $('
  • '); var $a = $(''); - if(item.text){ - $a.html(item.text); + if(fieldItem.text){ + $a.html(fieldItem.text); } - if(item.action){ + if(fieldItem.action && (fieldItem.enabled && fieldItem.enabled({ record: record }))) { $a.click(function(){ - item.action(record, $li.closest('tr')); - }); + fieldItem.action({ + record: record + }); + }); } $a.appendTo($li);