diff options
Diffstat (limited to 'lib/extensions/jquery.jtable.record-actions.js')
-rw-r--r-- | lib/extensions/jquery.jtable.record-actions.js | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/lib/extensions/jquery.jtable.record-actions.js b/lib/extensions/jquery.jtable.record-actions.js index cc9da7f..5f221c2 100644 --- a/lib/extensions/jquery.jtable.record-actions.js +++ b/lib/extensions/jquery.jtable.record-actions.js @@ -100,12 +100,17 @@ var $dropdownItemsContainer = $('<ul></ul>').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 = $('<li></li>'); var $a = $('<a></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); |