summaryrefslogtreecommitdiffstats
path: root/lib/extensions/jquery.jtable.record-actions.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/extensions/jquery.jtable.record-actions.js')
-rw-r--r--lib/extensions/jquery.jtable.record-actions.js27
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);