Diff for /loncom/interface/lonhelper.pm between versions 1.118 and 1.125

version 1.118, 2005/10/11 20:57:54 version 1.125, 2005/10/17 20:21:31
Line 1557  sub render { Line 1557  sub render {
     my $date;      my $date;
   
     my $time=time;      my $time=time;
     my $anytime;      my ($anytime,$onclick);
   
     if (defined($self->{DEFAULT_VALUE})) {      if (defined($self->{DEFAULT_VALUE})) {
         my $valueFunc = eval($self->{DEFAULT_VALUE});          my $valueFunc = eval($self->{DEFAULT_VALUE});
Line 1566  sub render { Line 1566  sub render {
         $time = &$valueFunc($helper, $self);          $time = &$valueFunc($helper, $self);
  if (lc($time) eq 'anytime') { $time=time; $anytime=1; }   if (lc($time) eq 'anytime') { $time=time; $anytime=1; }
     }      }
       if ($anytime) {
    $onclick = "onclick=\"javascript:updateCheck(this.form,'${var}anytime',false)\"";
       }
     # Default date: The current hour.      # Default date: The current hour.
     $date = localtime($time);      $date = localtime($time);
     $date->min(0);      $date->min(0);
Line 1576  sub render { Line 1579  sub render {
   
     # Month      # Month
     my $i;      my $i;
     $result .= "<select name='${var}month'>\n";      $result .= "<select $onclick name='${var}month'>\n";
     for ($i = 0; $i < 12; $i++) {      for ($i = 0; $i < 12; $i++) {
         if ($i == $date->mon) {          if ($i == $date->mon) {
             $result .= "<option value='$i' selected='selected'>";              $result .= "<option value='$i' selected='selected'>";
Line 1588  sub render { Line 1591  sub render {
     $result .= "</select>\n";      $result .= "</select>\n";
   
     # Day      # Day
     $result .= "<select name='${var}day'>\n";      $result .= "<select $onclick name='${var}day'>\n";
     for ($i = 1; $i < 32; $i++) {      for ($i = 1; $i < 32; $i++) {
         if ($i == $date->mday) {          if ($i == $date->mday) {
             $result .= '<option selected="selected">';              $result .= '<option selected="selected">';
Line 1600  sub render { Line 1603  sub render {
     $result .= "</select>,\n";      $result .= "</select>,\n";
   
     # Year      # Year
     $result .= "<select name='${var}year'>\n";      $result .= "<select $onclick name='${var}year'>\n";
     for ($i = 2000; $i < 2030; $i++) { # update this after 64-bit dates      for ($i = 2000; $i < 2030; $i++) { # update this after 64-bit dates
         if ($date->year + 1900 == $i) {          if ($date->year + 1900 == $i) {
             $result .= "<option selected='selected'>";              $result .= "<option selected='selected'>";
Line 1617  sub render { Line 1620  sub render {
  my $am = &mt('a.m.');   my $am = &mt('a.m.');
  my $pm = &mt('p.m.');   my $pm = &mt('p.m.');
         # Build hour          # Build hour
         $result .= "<select name='${var}hour'>\n";          $result .= "<select $onclick name='${var}hour'>\n";
         $result .= "<option " . ($date->hour == 0 ? 'selected="selected" ':'') .          $result .= "<option " . ($date->hour == 0 ? 'selected="selected" ':'') .
             " value='0'>" . &mt('midnight') . "</option>\n";              " value='0'>" . &mt('midnight') . "</option>\n";
         for ($i = 1; $i < 12; $i++) {          for ($i = 1; $i < 12; $i++) {
Line 1640  sub render { Line 1643  sub render {
   
         $result .= "</select> :\n";          $result .= "</select> :\n";
   
         $result .= "<select name='${var}minute'>\n";          $result .= "<select $onclick name='${var}minute'>\n";
         for my $i ((0,15,30,45,59,undef,1..59)) {   my $selected=0;
           for my $i ((0,15,30,45,59,undef,0..59)) {
             my $printedMinute = $i;              my $printedMinute = $i;
             if (defined($i) && $i < 10) {              if (defined($i) && $i < 10) {
                 $printedMinute = "0" . $printedMinute;                  $printedMinute = "0" . $printedMinute;
             }              }
             if ($date->min == $i) {              if (!$selected && $date->min == $i) {
                 $result .= "<option selected='selected'>";                  $result .= "<option selected='selected'>";
    $selected=1;
             } else {              } else {
                 $result .= "<option>";                  $result .= "<option>";
             }              }
Line 1656  sub render { Line 1661  sub render {
         $result .= "</select>\n";          $result .= "</select>\n";
     }      }
     if ($self->{'anytime'}) {      if ($self->{'anytime'}) {
    $result.=(<<CHECK);
   <script type="text/javascript">
   // <!--
       function updateCheck(form,name,value) {
    var checkbox=form[name];
    checkbox.checked = value;
       }
   // -->
   </script>
   CHECK
  $result.="&nbsp;or&nbsp;<label><input type='checkbox' ";   $result.="&nbsp;or&nbsp;<label><input type='checkbox' ";
  if ($anytime) {   if ($anytime) {
     $result.=' checked="checked" '      $result.=' checked="checked" '
Line 2002  BUTTONS Line 2017  BUTTONS
  $mapUrl = $self->{MAP_URL};   $mapUrl = $self->{MAP_URL};
     }      }
   
       my %defaultSymbs;
       if (defined($self->{DEFAULT_VALUE})) {
           my $valueFunc = eval($self->{DEFAULT_VALUE});
           die 'Error in default value code for variable ' . 
               $self->{'variable'} . ', Perl said: ' . $@ if $@;
           my @defaultSymbs = &$valueFunc($helper, $self);
    if (!$multichoice && @defaultSymbs) { # only allowed 1
       @defaultSymbs = ($defaultSymbs[0]);
    }
    %defaultSymbs = map { if ($_) {($_,1) } } @defaultSymbs;
    delete($defaultSymbs{''});
       }
   
     # Create the composite function that renders the column on the nav map      # Create the composite function that renders the column on the nav map
     # have to admit any language that lets me do this can't be all bad      # have to admit any language that lets me do this can't be all bad
Line 2050  BUTTONS Line 2077  BUTTONS
     }      }
   
             $col .= "<td align='center'><input type='$inputType' name='${var}.forminput' ";              $col .= "<td align='center'><input type='$inputType' name='${var}.forminput' ";
             if (!$checked && !$multichoice) {      if (%defaultSymbs) {
                 $col .= "checked='checked' ";   my $symb=$resource->symb();
                 $checked = 1;   if (exists($defaultSymbs{$symb})) {
             }      $col .= "checked='checked' ";
     if ($multichoice) { # all resources start checked; see bug 1174      $checked = 1;
  $col .= "checked='checked' ";   }
  $checked = 1;      } else {
    if (!$checked && !$multichoice) {
       $col .= "checked='checked' ";
       $checked = 1;
    }
    if ($multichoice) { # all resources start checked; see bug 1174
       $col .= "checked='checked' ";
       $checked = 1;
    }
     }      }
             $col .= "value='" . $resource_name  . "' /></td>";              $col .= "value='" . $resource_name  . "' /></td>";
   
Line 2174  selection. Defaults to false. Line 2209  selection. Defaults to false.
 If true, only active students and course personnel will be  If true, only active students and course personnel will be
 shown. Defaults to false.  shown. Defaults to false.
   
   =item * B<emptyallowed>:
   
   If true, the selection of no users is allowed. Defaults to false.
   
 =back  =back
   
 =cut  =cut
Line 2209  sub start_student { Line 2248  sub start_student {
     if (defined($token->[2]{'nextstate'})) {      if (defined($token->[2]{'nextstate'})) {
         $paramHash->{NEXTSTATE} = $token->[2]{'nextstate'};          $paramHash->{NEXTSTATE} = $token->[2]{'nextstate'};
     }      }
       $paramHash->{'emptyallowed'} = $token->[2]{'emptyallowed'};
           
 }      }    
   
Line 2470  sub postprocess { Line 2510  sub postprocess {
     my $self = shift;      my $self = shift;
   
     my $result = $env{'form.' . $self->{'variable'} . '.forminput'};      my $result = $env{'form.' . $self->{'variable'} . '.forminput'};
     if (!$result) {      if (!$result && !$self->{'emptyallowed'}) {
         $self->{ERROR_MSG} =    if ($self->{'coursepersonnel'}) {
     &mt('You must choose at least one student to continue.');      $self->{ERROR_MSG} = 
    &mt('You must choose at least one user to continue.');
    } else {
       $self->{ERROR_MSG} = 
    &mt('You must choose at least one student to continue.');
    }
         return 0;          return 0;
     }      }
   

Removed from v.1.118  
changed lines
  Added in v.1.125


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>