Projekt

Allgemein

Profil

Herunterladen (1,82 KB) Statistiken
| Zweig: | Markierung: | Revision:
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);
});
});