kivitendo/js/kivi.ActionBar.js @ 2da8f5ca
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) {
|
||||
3dc29e42 | Sven Schöling | var $hidden, key, func;
|
||
if (data.disabled) return;
|
||||
if (data.confirm && !confirm(data.confirm)) return;
|
||||
if (data.checks) {
|
||||
for (var check in data.check) {
|
||||
func = kivi.get_function_by_name(check);
|
||||
if (!func()) 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
|
||||
console.log(data.function)
|
||||
$(e).click(function(event) {
|
||||
3dc29e42 | Sven Schöling | var func;
|
||
if (data.disabled) return;
|
||||
if (data.confirm && !confirm(data.confirm)) return;
|
||||
if (data.checks) {
|
||||
for (var check in data.check) {
|
||||
func = kivi.get_function_by_name(check);
|
||||
if (!func()) return;
|
||||
}
|
||||
}
|
||||
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);
|
||||
});
|
||||
});
|