[open-ils-commits] r16553 - in trunk/Open-ILS: examples src/perlmods/OpenILS/Utils web/js/dojo/fieldmapper (miker)

svn at svn.open-ils.org svn at svn.open-ils.org
Tue Jun 1 22:43:34 EDT 2010


Author: miker
Date: 2010-06-01 22:43:32 -0400 (Tue, 01 Jun 2010)
New Revision: 16553

Modified:
   trunk/Open-ILS/examples/fm_IDL.xml
   trunk/Open-ILS/examples/oils_obj.xsd
   trunk/Open-ILS/src/perlmods/OpenILS/Utils/Fieldmapper.pm
   trunk/Open-ILS/web/js/dojo/fieldmapper/IDL.js
Log:
add required IDL flag and validation regexp support

Modified: trunk/Open-ILS/examples/fm_IDL.xml
===================================================================
--- trunk/Open-ILS/examples/fm_IDL.xml	2010-06-01 21:04:39 UTC (rev 16552)
+++ trunk/Open-ILS/examples/fm_IDL.xml	2010-06-02 02:43:32 UTC (rev 16553)
@@ -3351,7 +3351,7 @@
 			<field reporter:label="Name" name="name" reporter:datatype="text" oils_persist:i18n="true"/>
 			<field reporter:label="Organizational Unit Type" name="ou_type" reporter:datatype="link"/>
 			<field reporter:label="Parent Organizational Unit" name="parent_ou" reporter:datatype="link"/>
-			<field reporter:label="Short (Policy) Name" name="shortname" reporter:datatype="text"/>
+			<field reporter:label="Short (Policy) Name" name="shortname" reporter:datatype="text" oils_obj:required="true" oils_obj:validate="^[A-Z]+$"/>
 			<field reporter:label="Email Address" name="email" reporter:datatype="text"/>
 			<field reporter:label="Phone Number" name="phone" reporter:datatype="text"/>
 			<field reporter:label="OPAC Visible" name="opac_visible" reporter:datatype="bool"/>

Modified: trunk/Open-ILS/examples/oils_obj.xsd
===================================================================
--- trunk/Open-ILS/examples/oils_obj.xsd	2010-06-01 21:04:39 UTC (rev 16552)
+++ trunk/Open-ILS/examples/oils_obj.xsd	2010-06-02 02:43:32 UTC (rev 16553)
@@ -28,6 +28,8 @@
  attributeFormDefault="unqualified"
 >
 
+<xs:attribute name="required"/>
+<xs:attribute name="validate"/>
 <xs:attribute name="array_position" type="xs:nonNegativeInteger"/>
 <xs:attribute name="fieldmapper"/>
 

Modified: trunk/Open-ILS/src/perlmods/OpenILS/Utils/Fieldmapper.pm
===================================================================
--- trunk/Open-ILS/src/perlmods/OpenILS/Utils/Fieldmapper.pm	2010-06-01 21:04:39 UTC (rev 16552)
+++ trunk/Open-ILS/src/perlmods/OpenILS/Utils/Fieldmapper.pm	2010-06-02 02:43:32 UTC (rev 16553)
@@ -79,6 +79,8 @@
 			
 			my $name     = get_attribute( $attribute_list, 'name' );
 			next if( $name eq 'isnew' || $name eq 'ischanged' || $name eq 'isdeleted' );
+			my $required  = get_attribute( $attribute_list, 'oils_obj:required' );
+			my $validate  = get_attribute( $attribute_list, 'oils_obj:validate' );
 			my $virtual  = get_attribute( $attribute_list, 'oils_persist:virtual' );
 			if( ! defined( $virtual ) ) {
 				$virtual = "false";
@@ -87,9 +89,12 @@
 
 			$$fieldmap{$fm}{fields}{ $name } =
 				{ virtual => ( $virtual eq 'true' ) ? 1 : 0,
+				  required => ( $required eq 'true' ) ? 1 : 0,
 				  position => $array_position,
 				};
 
+			$$fieldmap{$fm}{fields}{ $name }{validate} = qr/$valudate/ if (defined($validate));
+
 			# The selector attribute, if present at all, attaches to only one
 			# of the fields in a given class.  So if we see it, we store it at
 			# the level of the enclosing class.

Modified: trunk/Open-ILS/web/js/dojo/fieldmapper/IDL.js
===================================================================
--- trunk/Open-ILS/web/js/dojo/fieldmapper/IDL.js	2010-06-01 21:04:39 UTC (rev 16552)
+++ trunk/Open-ILS/web/js/dojo/fieldmapper/IDL.js	2010-06-02 02:43:32 UTC (rev 16553)
@@ -76,10 +76,14 @@
                     label   : fieldmapper._getAttributeNS(node,this.NS_REPORTS, 'label'),
                     restrict_primary   : fieldmapper._getAttributeNS(node,this.NS_PERSIST, 'restrict_primary'),
                     virtual : (fieldmapper._getAttributeNS(node,this.NS_PERSIST, 'virtual') == 'true'),
+                    required : (fieldmapper._getAttributeNS(node,this.NS_OBJ, 'required') == 'true'),
                     pkey    : fieldmapper._getAttributeNS(fields,this.NS_PERSIST, 'primary'),
                     pkey_sequence : fieldmapper._getAttributeNS(fields,this.NS_PERSIST, 'sequence')
                 };
 
+		var valid = fieldmapper._getAttributeNS(node,this.NS_OBJ, 'validate');
+		if (valid) obj.validate = new RegExp( valid );
+
                 var permacrud = node.getElementsByTagName('permacrud')[0];
                 if(permacrud) {
                     var actions = ['create', 'retrieve', 'update', 'delete'];



More information about the open-ils-commits mailing list