[interchange-cvs] interchange - racke modified lib/Vend/Form.pm

interchange-cvs at icdevgroup.org interchange-cvs at icdevgroup.org
Fri Jan 30 12:33:11 EST 2004


User:      racke
Date:      2004-01-30 17:33:11 GMT
Modified:  lib/Vend Form.pm
Log:
allow date_widget to display/store empty value if called as date_blank
datetime_blank etc.

Revision  Changes    Path
2.40      +25 -10    interchange/lib/Vend/Form.pm


rev 2.40, prev_rev 2.39
Index: Form.pm
===================================================================
RCS file: /anon_cvs/repository/interchange/lib/Vend/Form.pm,v
retrieving revision 2.39
retrieving revision 2.40
diff -u -r2.39 -r2.40
--- Form.pm	5 Oct 2003 16:25:58 -0000	2.39
+++ Form.pm	30 Jan 2004 17:33:10 -0000	2.40
@@ -1,6 +1,6 @@
 # Vend::Form - Generate Form widgets
 # 
-# $Id: Form.pm,v 2.39 2003/10/05 16:25:58 mheins Exp $
+# $Id: Form.pm,v 2.40 2004/01/30 17:33:10 racke Exp $
 #
 # Copyright (C) 2002-2003 Interchange Development Group
 # Copyright (C) 1996-2002 Red Hat, Inc.
@@ -38,7 +38,7 @@
 require Exporter;
 @ISA = qw(Exporter);
 
-$VERSION = substr(q$Revision: 2.39 $, 10);
+$VERSION = substr(q$Revision: 2.40 $, 10);
 
 @EXPORT = qw (
 	display
@@ -420,6 +420,9 @@
 	my $sel = 0;
 	my $out = qq{<SELECT NAME="$name">};
 	my $o;
+	if ($opt->{blank}) {
+		$out .= '<OPTION VALUE="0">------</OPTION>';
+	}
 	for(@Months) {
 		$o = qq{<OPTION VALUE="$_->[0]">} . errmsg($_->[1]) . '</OPTION>';
 		($out .= $o, next) unless ! $sel and $val;
@@ -431,6 +434,9 @@
 	$out .= qq{</SELECT>};
 	$out .= qq{<INPUT TYPE=hidden NAME="$name" VALUE="/">};
 	$out .= qq{<SELECT NAME="$name">};
+	if ($opt->{blank}) {
+		$out .= '<OPTION VALUE="0">--</OPTION>';
+	}
 	for(@Days) {
 		$o = qq{<OPTION VALUE="$_->[0]">$_->[1]} . '</OPTION>';
 		($out .= $o, next) unless ! $sel and $val;
@@ -453,6 +459,9 @@
 		}
 		@Years = ($by .. $ey);
 	}
+	if ($opt->{blank}) {
+		$out .= '<OPTION VALUE="0000">----</OPTION>';
+	}
 	for(@Years) {
 		$o = qq{<OPTION>$_} . '</OPTION>';
 		($out .= $o, next) unless ! $sel and $val;
@@ -468,6 +477,9 @@
 	$val = round_to_fifteen($val);
 	$out .= qq{<INPUT TYPE=hidden NAME="$name" VALUE=":">};
 	$out .= qq{<SELECT NAME="$name">};
+	if ($opt->{blank}) {
+		$out .= '<OPTION VALUE="0">--:--</OPTION>';
+	}
 	
 	my $ampm = defined $opt->{ampm} ? $opt->{ampm} : 1;
 	my $mod = '';
@@ -1031,7 +1043,7 @@
 	#            in $opt
 	my $type = parse_type($opt);
 
-#::logDebug("type=$type");
+#::logDebug("name=$opt->{name} type=$type");
 
 	my $look;
 
@@ -1270,14 +1282,17 @@
 			$opt->{type} = 'text';
 		}
 	}
-	elsif($type =~ /^date_?time(.*)/i) {
-		my $extra = $1;
+	elsif($type =~ /^date_?(time([^_]*))?(_?blank)?/i) {
 		$opt->{type} = 'date';
-		$opt->{time} = 1;
-		$opt->{ampm} = 1
-			if $extra =~ /ampm/i;
-		$opt->{time_adjust} = $1
-			if $extra =~ /([+-]?\d+)/i;
+		$opt->{blank} = 1 if $3;
+		if ($1) {
+			my $extra = $2;
+			$opt->{time} = 1;
+			$opt->{ampm} = 1
+				if $extra =~ /ampm/i;
+			$opt->{time_adjust} = $1
+				if $extra =~ /([+-]?\d+)/i;
+		}
 	}
 	elsif($type =~ /^hidden_text/i) {
 		$opt->{type} = 'hiddentext';








More information about the interchange-cvs mailing list