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

interchange-cvs at icdevgroup.org interchange-cvs at icdevgroup.org
Wed Jun 9 13:16:55 EDT 2004


User:      heins
Date:      2004-06-09 17:16:55 GMT
Modified:  lib/Vend Form.pm
Log:
* Add code to allow control of class and style for date widget. Should
  probably be put in "select" type, too.

Revision  Changes    Path
2.45      +34 -14    interchange/lib/Vend/Form.pm


rev 2.45, prev_rev 2.44
Index: Form.pm
===================================================================
RCS file: /var/cvs/interchange/lib/Vend/Form.pm,v
retrieving revision 2.44
retrieving revision 2.45
diff -u -r2.44 -r2.45
--- Form.pm	7 Jun 2004 03:18:19 -0000	2.44
+++ Form.pm	9 Jun 2004 17:16:55 -0000	2.45
@@ -1,6 +1,6 @@
 # Vend::Form - Generate Form widgets
 # 
-# $Id: Form.pm,v 2.44 2004/06/07 03:18:19 mheins Exp $
+# $Id: Form.pm,v 2.45 2004/06/09 17:16:55 mheins 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.44 $, 10);
+$VERSION = substr(q$Revision: 2.45 $, 10);
 
 @EXPORT = qw (
 	display
@@ -424,19 +424,39 @@
 		$now += $sign eq '+' ? $adjust : -$adjust;
 	}
 
+	my $sel_extra;
+	my $opt_extra;
+	for(qw/ class style extra /) {
+		my $stag = "select_$_";
+		my $otag = "option_$_";
+		my $selapp;
+		my $optapp;
+
+		if($_ eq 'extra') {
+			$selapp = " $opt->{$stag}";
+			$optapp = " $opt->{$otag}";
+		}
+		else {
+			$selapp = qq{ $_="$opt->{$stag}"};
+			$optapp = qq{ $_="$opt->{$otag}"};
+		}
+		$sel_extra .= $opt->{$stag} ? $selapp : '';
+		$opt_extra .= $opt->{$otag} ? $optapp : '';
+	}
+
 	my @t = localtime($now || time);
 	if (not $val) {
 		$t[2]++ if $t[2] < 23;
 		$val = POSIX::strftime("%Y%m%d%H00", @t);
 	}
 	my $sel = 0;
-	my $out = qq{<SELECT NAME="$name">};
+	my $out = qq{<SELECT NAME="$name"$sel_extra>};
 	my $o;
 	if ($opt->{blank}) {
-		$out .= '<OPTION VALUE="0">------</OPTION>';
+		$out .= '<OPTION VALUE="0"$opt_extra>------</OPTION>';
 	}
 	for(@Months) {
-		$o = qq{<OPTION VALUE="$_->[0]">} . errmsg($_->[1]) . '</OPTION>';
+		$o = qq{<OPTION VALUE="$_->[0]"$opt_extra>} . errmsg($_->[1]) . '</OPTION>';
 		($out .= $o, next) unless ! $sel and $val;
 		$o =~ s/>/ SELECTED>/ && $sel++
 			if substr($val, 4, 2) eq $_->[0];
@@ -445,12 +465,12 @@
 	$sel = 0;
 	$out .= qq{</SELECT>};
 	$out .= qq{<INPUT TYPE=hidden NAME="$name" VALUE="/">};
-	$out .= qq{<SELECT NAME="$name">};
+	$out .= qq{<SELECT NAME="$name"$sel_extra>};
 	if ($opt->{blank}) {
-		$out .= '<OPTION VALUE="0">--</OPTION>';
+		$out .= '<OPTION VALUE="0"$opt_extra>--</OPTION>';
 	}
 	for(@Days) {
-		$o = qq{<OPTION VALUE="$_->[0]">$_->[1]} . '</OPTION>';
+		$o = qq{<OPTION VALUE="$_->[0]"$opt_extra>$_->[1]} . '</OPTION>';
 		($out .= $o, next) unless ! $sel and $val;
 		$o =~ s/>/ SELECTED>/ && $sel++
 			if substr($val, 6, 2) eq $_->[0];
@@ -459,7 +479,7 @@
 	$sel = 0;
 	$out .= qq{</SELECT>};
 	$out .= qq{<INPUT TYPE=hidden NAME="$name" VALUE="/">};
-	$out .= qq{<SELECT NAME="$name">};
+	$out .= qq{<SELECT NAME="$name"$sel_extra>};
 	if(my $by = $opt->{year_begin} || $::Variable->{UI_DATE_BEGIN}) {
 		my $cy = $t[5] + 1900;
 		my $ey = $opt->{year_end}  || $::Variable->{UI_DATE_END} || ($cy + 10);
@@ -472,10 +492,10 @@
 		@Years = ($by .. $ey);
 	}
 	if ($opt->{blank}) {
-		$out .= '<OPTION VALUE="0000">----</OPTION>';
+		$out .= '<OPTION VALUE="0000"$opt_extra>----</OPTION>';
 	}
 	for(@Years) {
-		$o = qq{<OPTION>$_} . '</OPTION>';
+		$o = qq{<OPTION$opt_extra>$_} . '</OPTION>';
 		($out .= $o, next) unless ! $sel and $val;
 		$o =~ s/>/ SELECTED>/ && $sel++
 			if substr($val, 0, 4) eq $_;
@@ -488,9 +508,9 @@
 	$val =~ s/\D+//g;
 	$val = round_to_fifteen($val);
 	$out .= qq{<INPUT TYPE=hidden NAME="$name" VALUE=":">};
-	$out .= qq{<SELECT NAME="$name">};
+	$out .= qq{<SELECT NAME="$name"$sel_extra>};
 	if ($opt->{blank}) {
-		$out .= '<OPTION VALUE="0">--:--</OPTION>';
+		$out .= '<OPTION VALUE="0"$opt_extra>--:--</OPTION>';
 	}
 	
 	my $ampm = defined $opt->{ampm} ? $opt->{ampm} : 1;
@@ -522,7 +542,7 @@
 				$disp_hour = sprintf("%02d:%02d", $hr, $min);
 			}
 			my $time = sprintf "%02d%02d", $hr, $min;
-			$o = sprintf qq{<OPTION VALUE="%s">%s}, $time, $disp_hour;
+			$o = sprintf qq{<OPTION VALUE="%s"$opt_extra>%s}, $time, $disp_hour;
 			($out .= $o, next) unless ! $sel and $val;
 #::logDebug("prospect=$time actual=$val");
 			$o =~ s/>/ SELECTED>/ && $sel++








More information about the interchange-cvs mailing list