domjs-ext
Version:
DOMJS extensions
36 lines (30 loc) • 1.07 kB
JavaScript
;
var genId = require('time-uuid')
, setupMmap = require('./mmap')
, slice = Array.prototype.slice;
module.exports = function (domjs/*, options*/) {
setupMmap(domjs);
var form = domjs.ns.form, p = domjs.ns.p, button = domjs.ns.button
, script = domjs.ns.script, options = arguments[1], mmap = domjs.ns.mmap;
domjs.ns[(options && options.name) || 'postButton'] = function (attrs) {
var id, value, buttonClass;
attrs = Object(attrs);
if (!attrs.hasOwnProperty('method')) attrs.method = 'post';
if (!attrs.hasOwnProperty('id')) attrs.id = 'form-' + genId();
id = String(attrs.id);
buttonClass = attrs.buttonClass;
delete attrs.buttonClass;
value = attrs.value;
delete attrs.value;
return [form(attrs,
p(button({ type: 'submit', class: buttonClass }, value),
slice.call(arguments, 1))),
mmap(attrs.confirm, function (message) {
if (!message) return;
if (message === true) message = null;
return script(function (formId, message) {
$.confirmSubmit(formId, message);
}, id, message);
})];
};
};