--- loncom/interface/lonhelper.pm 2005/07/12 16:11:19 1.112
+++ loncom/interface/lonhelper.pm 2005/10/11 20:57:54 1.118
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# .helper XML handler to implement the LON-CAPA helper
#
-# $Id: lonhelper.pm,v 1.112 2005/07/12 16:11:19 albertel Exp $
+# $Id: lonhelper.pm,v 1.118 2005/10/11 20:57:54 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1536,6 +1536,7 @@ sub start_date {
$paramHash->{'variable'} = $token->[2]{'variable'};
$helper->declareVar($paramHash->{'variable'});
$paramHash->{'hoursminutes'} = $token->[2]{'hoursminutes'};
+ $paramHash->{'anytime'} = $token->[2]{'anytime'};
}
sub end_date {
@@ -1554,9 +1555,19 @@ sub render {
my $var = $self->{'variable'};
my $date;
-
+
+ my $time=time;
+ my $anytime;
+
+ if (defined($self->{DEFAULT_VALUE})) {
+ my $valueFunc = eval($self->{DEFAULT_VALUE});
+ die('Error in default value code for variable ' .
+ $self->{'variable'} . ', Perl said: ' . $@) if $@;
+ $time = &$valueFunc($helper, $self);
+ if (lc($time) eq 'anytime') { $time=time; $anytime=1; }
+ }
# Default date: The current hour.
- $date = localtime();
+ $date = localtime($time);
$date->min(0);
if (defined $self->{ERROR_MSG}) {
@@ -1630,9 +1641,9 @@ sub render {
$result .= " :\n";
$result .= "\n";
}
-
+ if ($self->{'anytime'}) {
+ $result.=" or '
+ }
return $result;
}
@@ -1652,41 +1669,44 @@ sub render {
sub postprocess {
my $self = shift;
my $var = $self->{'variable'};
- my $month = $env{'form.' . $var . 'month'};
- my $day = $env{'form.' . $var . 'day'};
- my $year = $env{'form.' . $var . 'year'};
- my $min = 0;
- my $hour = 0;
- if ($self->{'hoursminutes'}) {
- $min = $env{'form.' . $var . 'minute'};
- $hour = $env{'form.' . $var . 'hour'};
- }
+ if ($env{'form.' . $var . 'anytime'}) {
+ $helper->{VARS}->{$var} = undef;
+ } else {
+ my $month = $env{'form.' . $var . 'month'};
+ my $day = $env{'form.' . $var . 'day'};
+ my $year = $env{'form.' . $var . 'year'};
+ my $min = 0;
+ my $hour = 0;
+ if ($self->{'hoursminutes'}) {
+ $min = $env{'form.' . $var . 'minute'};
+ $hour = $env{'form.' . $var . 'hour'};
+ }
+
+ my $chosenDate;
+ eval {$chosenDate = Time::Local::timelocal(0, $min, $hour, $day, $month, $year);};
+ my $error = $@;
+
+ # Check to make sure that the date was not automatically co-erced into a
+ # valid date, as we want to flag that as an error
+ # This happens for "Feb. 31", for instance, which is coerced to March 2 or
+ # 3, depending on if it's a leap year
+ my $checkDate = localtime($chosenDate);
+
+ if ($error || $checkDate->mon != $month || $checkDate->mday != $day ||
+ $checkDate->year + 1900 != $year) {
+ unless (Apache::lonlocal::current_language()== ~/^en/) {
+ $self->{ERROR_MSG} = &mt("Invalid date entry");
+ return 0;
+ }
+ # LOCALIZATION FIXME: Needs to be parameterized
+ $self->{ERROR_MSG} = "Can't use " . $months[$month] . " $day, $year as a "
+ . "date because it doesn't exist. Please enter a valid date.";
- my $chosenDate;
- eval {$chosenDate = Time::Local::timelocal(0, $min, $hour, $day, $month, $year);};
- my $error = $@;
-
- # Check to make sure that the date was not automatically co-erced into a
- # valid date, as we want to flag that as an error
- # This happens for "Feb. 31", for instance, which is coerced to March 2 or
- # 3, depending on if it's a leap year
- my $checkDate = localtime($chosenDate);
-
- if ($error || $checkDate->mon != $month || $checkDate->mday != $day ||
- $checkDate->year + 1900 != $year) {
- unless (Apache::lonlocal::current_language()== ~/^en/) {
- $self->{ERROR_MSG} = &mt("Invalid date entry");
return 0;
}
- # LOCALIZATION FIXME: Needs to be parameterized
- $self->{ERROR_MSG} = "Can't use " . $months[$month] . " $day, $year as a "
- . "date because it doesn't exist. Please enter a valid date.";
-
- return 0;
+ $helper->{VARS}->{$var} = $chosenDate;
}
- $helper->{VARS}->{$var} = $chosenDate;
-
if (defined($self->{NEXTSTATE})) {
$helper->changeState($self->{NEXTSTATE});
}
@@ -2243,6 +2263,43 @@ sub render {
}
}
}
+ function getDesiredState() { // Return desired person state radio value.
+ numRadio = document.forms.helpform.personstate.length;
+ for (i =0; i < numRadio; i++) {
+ if (document.forms.helpform.personstate[i].checked) {
+ return document.forms.helpform.personstate[i].value;
+ }
+ }
+ return "";
+ }
+
+ function checksections(value) { // Check selected sections.
+ numSections = document.forms.helpform.chosensections.length;
+ desiredState = getDesiredState();
+
+ for (var option = 0; option < numSections; option++) {
+ if(document.forms.helpform.chosensections.options[option].selected) {
+ section = document.forms.helpform.chosensections.options[option].text;
+ if (section == "none") {
+ section ="";
+ }
+ for (i = 0; i < document.forms.helpform.elements.length; i++ ) {
+ if (document.forms.helpform.elements[i].value.indexOf(':') != -1) {
+ info = document.forms.helpform.elements[i].value.split(':');
+ hisSection = info[2];
+ hisState = info[4];
+ if (desiredState == hisState ||
+ desiredState == "All") {
+ if(hisSection == section ||
+ section =="" ) {
+ document.forms.helpform.elements[i].checked = value;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
// -->
SCRIPT
@@ -2258,23 +2315,12 @@ SCRIPT
$buttons = <
- | |
|
|
- | - |
- | - |