kivitendo/js/kivi.ActionBar.js @ 87ab51e5
e0a3b19e | Sven Schöling | namespace('kivi', function(k){
|
||
'use strict';
|
||||
k.ActionBarAction = function(e) {
|
||||
var data = $(e).data('action');
|
||||
3dc29e42 | Sven Schöling | |||
if (data.disabled)
|
||||
$(e).addClass('layout-actionbar-action-disabled');
|
||||
e0a3b19e | Sven Schöling | // dispatch as needed
|
||
if (data.submit) {
|
||||
var form = data.submit[0];
|
||||
var params = data.submit[1];
|
||||
$(e).click(function(event) {
|
||||
3ab81831 | Sven Schöling | var $hidden, key, func, check;
|
||
3dc29e42 | Sven Schöling | if (data.disabled) return;
|
||
if (data.checks) {
|
||||
3ab81831 | Sven Schöling | for (var i=0; i < data.checks.length; i++) {
|
||
check = data.checks[i];
|
||||
3dc29e42 | Sven Schöling | func = kivi.get_function_by_name(check);
|
||
3ab81831 | Sven Schöling | if (!func) console.log('Cannot find check function: ' + check);
|
||
3dc29e42 | Sven Schöling | if (!func()) return;
|
||
}
|
||||
}
|
||||
80f2a2f4 | Sven Schöling | if (data.confirm && !confirm(data.confirm)) return;
|
||
e0a3b19e | Sven Schöling | for (key in params) {
|
||
$hidden = $('<input type=hidden>')
|
||||
$hidden.attr('name', key)
|
||||
$hidden.attr('value', params[key])
|
||||
$(form).append($hidden)
|
||||
}
|
||||
$(form).submit()
|
||||
})
|
||||
} else if (data.function) {
|
||||
// TODO: what to do with templated calls
|
||||
$(e).click(function(event) {
|
||||
3dc29e42 | Sven Schöling | var func;
|
||
if (data.disabled) return;
|
||||
if (data.checks) {
|
||||
3ab81831 | Sven Schöling | for (var i=0; i < data.checks.length; i++) {
|
||
check = data.checks[i];
|
||||
3dc29e42 | Sven Schöling | func = kivi.get_function_by_name(check);
|
||
3ab81831 | Sven Schöling | if (!func) console.log('Cannot find check function: ' + check);
|
||
3dc29e42 | Sven Schöling | if (!func()) return;
|
||
}
|
||||
}
|
||||
80f2a2f4 | Sven Schöling | if (data.confirm && !confirm(data.confirm)) return;
|
||
3dc29e42 | Sven Schöling | func = kivi.get_function_by_name(data.function[0]);
|
||
e0a3b19e | Sven Schöling | func.apply(document, data.function.slice(1))
|
||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
$(function(){
|
||||
$('div.layout-actionbar .layout-actionbar-action').each(function(_, e) {
|
||||
kivi.ActionBarAction(e);
|
||||
});
|
||||
});
|