work in progress: form/field validation on dialogs

git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@2417 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2008-02-25 10:18:13 +00:00
parent 4f4f71aee4
commit 10983e79bc
3 changed files with 26 additions and 2 deletions

View file

@ -79,8 +79,7 @@ class ObjectForm(NodeView):
def closeAction(self, submit=False):
if self.isInnerHtml:
return ("closeDataWidget(%s); dialog.hide();" %
(submit and 'true' or 'false'))
return "return closeDialog(%s);" % (submit and 'true' or 'false')
if submit:
return "xhrSubmitPopup('dialog_form', '%s'); return false" % (self.request.URL)
return 'window.close()'

View file

@ -4,6 +4,7 @@
<metal:block define-macro="edit" i18n:domain="loops">
<form method="post" enctype="multipart/form-data"
id="dialog_form" class="dialog"
dojoType="dijit.form.Form"
tal:define="langInfo view/languageInfo;
languages langInfo/availableLanguages;
language langInfo/language;

View file

@ -143,6 +143,30 @@ function addConceptAssignment(prefix, suffix) {
node.appendChild(tr);
}
function validate() {
var form = dijit.byId('dialog_form');
if (form != undefined && !form.isValid()) {
return false;
}
var titleField = dojo.byId('title');
if (titleField != undefined && titleField.value == '') {
return false;
}
if (form != undefined) {
return form.submit();
}
return true;
}
function closeDialog(save) {
if (save && !validate()) {
return false;
}
closeDataWidget(save);
dialog.hide();
return true;
}
function closeDataWidget(save) {
var widget = dijit.byId('data');
if (widget != undefined && save) {