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:
		
							parent
							
								
									4f4f71aee4
								
							
						
					
					
						commit
						10983e79bc
					
				
					 3 changed files with 26 additions and 2 deletions
				
			
		|  | @ -79,8 +79,7 @@ class ObjectForm(NodeView): | ||||||
| 
 | 
 | ||||||
|     def closeAction(self, submit=False): |     def closeAction(self, submit=False): | ||||||
|         if self.isInnerHtml: |         if self.isInnerHtml: | ||||||
|             return ("closeDataWidget(%s); dialog.hide();" % |             return "return closeDialog(%s);" % (submit and 'true' or 'false') | ||||||
|                         (submit and 'true' or 'false')) |  | ||||||
|         if submit: |         if submit: | ||||||
|             return "xhrSubmitPopup('dialog_form', '%s'); return false" % (self.request.URL) |             return "xhrSubmitPopup('dialog_form', '%s'); return false" % (self.request.URL) | ||||||
|         return 'window.close()' |         return 'window.close()' | ||||||
|  |  | ||||||
|  | @ -4,6 +4,7 @@ | ||||||
| <metal:block define-macro="edit" i18n:domain="loops"> | <metal:block define-macro="edit" i18n:domain="loops"> | ||||||
|     <form method="post" enctype="multipart/form-data" |     <form method="post" enctype="multipart/form-data" | ||||||
|           id="dialog_form" class="dialog" |           id="dialog_form" class="dialog" | ||||||
|  |           dojoType="dijit.form.Form" | ||||||
|           tal:define="langInfo view/languageInfo; |           tal:define="langInfo view/languageInfo; | ||||||
|                       languages langInfo/availableLanguages; |                       languages langInfo/availableLanguages; | ||||||
|                       language langInfo/language; |                       language langInfo/language; | ||||||
|  |  | ||||||
|  | @ -143,6 +143,30 @@ function addConceptAssignment(prefix, suffix) { | ||||||
|     node.appendChild(tr); |     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) { | function closeDataWidget(save) { | ||||||
|     var widget = dijit.byId('data'); |     var widget = dijit.byId('data'); | ||||||
|     if (widget != undefined && save) { |     if (widget != undefined && save) { | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 helmutm
						helmutm