form.pt
99 lines
| 3.4 KiB
| text/plain
|
TextLexer
r518 | <form | ||
tal:define="style style|field.widget.style; | |||
css_class css_class|string:${field.widget.css_class or field.css_class or ''}; | |||
item_template item_template|field.widget.item_template; | |||
autocomplete autocomplete|field.autocomplete; | |||
title title|field.title; | |||
errormsg errormsg|field.errormsg; | |||
description description|field.description; | |||
buttons buttons|field.buttons; | |||
use_ajax use_ajax|field.use_ajax; | |||
ajax_options ajax_options|field.ajax_options; | |||
formid formid|field.formid; | |||
action action|field.action or None; | |||
method method|field.method;" | |||
tal:attributes="autocomplete autocomplete; | |||
style style; | |||
class css_class; | |||
action action;" | |||
id="${formid}" | |||
method="${method}" | |||
enctype="multipart/form-data" | |||
accept-charset="utf-8" | |||
i18n:domain="deform" | |||
> | |||
<fieldset class="deform-form-fieldset"> | |||
<legend tal:condition="title">${title}</legend> | |||
r1918 | <input type="hidden" name="${h.csrf_token_key}" value="${h.get_csrf_token(request.session)}" /> | ||
r518 | <input type="hidden" name="_charset_" /> | ||
<input type="hidden" name="__formid__" value="${formid}"/> | |||
<!-- | |||
<div class="alert alert-danger" tal:condition="field.error"> | |||
<div class="error-msg-lbl" i18n:translate="" | |||
>There was a problem with your submission</div> | |||
<div class="error-msg-detail" i18n:translate="" | |||
>Errors have been highlighted below</div> | |||
<p class="error-msg">${field.errormsg}</p> | |||
</div> | |||
--> | |||
<p class="section first" tal:condition="description"> | |||
${description} | |||
</p> | |||
<div tal:repeat="child field" | |||
tal:replace="structure child.render_template(item_template)"/> | |||
<div class="form-group"> | |||
<tal:loop tal:repeat="button buttons"> | |||
<button | |||
tal:define="btn_disposition repeat.button.start and 'btn-primary' or (button.name == 'delete' and 'btn-danger' or 'btn-default'); | |||
btn_icon button.icon|None" | |||
tal:attributes="disabled button.disabled if button.disabled else None" | |||
id="${formid+button.name}" | |||
name="${button.name}" | |||
type="${button.type}" | |||
class="btn ${button.css_class or btn_disposition}" | |||
value="${button.value}"> | |||
<i tal:condition="btn_icon" class="${btn_icon}"> </i> | |||
${button.title} | |||
</button> | |||
</tal:loop> | |||
</div> | |||
</fieldset> | |||
<script type="text/javascript" tal:condition="use_ajax"> | |||
deform.addCallback( | |||
'${formid}', | |||
function(oid) { | |||
var target = '#' + oid; | |||
var options = { | |||
target: target, | |||
replaceTarget: true, | |||
success: function() { | |||
deform.processCallbacks(); | |||
deform.focusFirstInput(target); | |||
}, | |||
beforeSerialize: function() { | |||
// See http://bit.ly/1agBs9Z (hack to fix tinymce-related ajax bug) | |||
if ('tinymce' in window) { | |||
$(tinymce.get()).each( | |||
function(i, el) { | |||
var content = el.getContent(); | |||
var editor_input = document.getElementById(el.id); | |||
editor_input.value = content; | |||
}); | |||
} | |||
} | |||
}; | |||
var extra_options = ${ajax_options} || {}; | |||
$('#' + oid).ajaxForm($.extend(options, extra_options)); | |||
} | |||
); | |||
</script> | |||
</form> |