Diff for /loncom/interface/lonhtmlcommon.pm between versions 1.24 and 1.33

version 1.24, 2003/06/18 15:02:20 version 1.33, 2003/10/17 19:56:13
Line 56  html. Line 56  html.
 package Apache::lonhtmlcommon;  package Apache::lonhtmlcommon;
   
 use Time::Local;  use Time::Local;
   use Apache::lonlocal;
 use strict;  use strict;
   
   
   ##############################################
   ##############################################
   
   =pod
   
   =item textbox
   
   =cut
   
   ##############################################
   ##############################################
   sub textbox {
       my ($name,$value,$size,$special) = @_;
       $size = 40 if (! defined($size));
       my $Str = '<input type="text" name="'.$name.'" size="'.$size.'" '.
           'value="'.$value.'" '.$special.' />';
       return $Str;
   }
   
   ##############################################
   ##############################################
   
   =pod
   
   =item checkbox
   
   =cut
   
   ##############################################
   ##############################################
   sub checkbox {
       my ($name) = @_;
       my $Str = '<input type="checkbox" name="'.$name.'" />';
       return $Str;
   }
   
   
   
 ##############################################  ##############################################
 ##############################################  ##############################################
   
Line 85  The current setting for this time parame Line 125  The current setting for this time parame
 An undefined value is taken to indicate the value is the current time.  An undefined value is taken to indicate the value is the current time.
 Also, to be explicit, a value of 'now' also indicates the current time.  Also, to be explicit, a value of 'now' also indicates the current time.
   
   =item $special
   
   Additional html/javascript to be associated with each element in
   the date_setter.  See lonparmset for example usage.
   
 =back  =back
   
 Bugs  Bugs
Line 96  The method used to restrict user input w Line 141  The method used to restrict user input w
 ##############################################  ##############################################
 ##############################################  ##############################################
 sub date_setter {  sub date_setter {
     my ($formname,$dname,$currentvalue) = @_;      my ($formname,$dname,$currentvalue,$special) = @_;
     if (! defined($currentvalue) || $currentvalue eq 'now') {      if (! defined($currentvalue) || $currentvalue eq 'now') {
         $currentvalue = time;          $currentvalue = time;
     }      }
Line 137  sub date_setter { Line 182  sub date_setter {
             document.$formname.$dname\_day.value = 30;              document.$formname.$dname\_day.value = 30;
         }          }
     }      }
   
       function $dname\_opencalendar() {
          var calwin=window.open(
   "/adm/announcements?pickdate=yes&formname=$formname&element=$dname&month="+
   document.$formname.$dname\_month.value+"&year="+
   document.$formname.$dname\_year.value,
                "LONCAPAcal",
                 "height=350,width=350,scrollbars=yes,resizable=yes,menubar=no");
   
       }
 </script>  </script>
 ENDJS  ENDJS
     $result .= "  <select name=\"$dname\_month\" ".      $result .= "  <nobr><select name=\"$dname\_month\" ".$special.' '.
         "onChange=\"javascript:$dname\_checkday()\" >\n";          "onChange=\"javascript:$dname\_checkday()\" >\n";
     my @Months = qw/January February  March     April   May      June       my @Months = qw/January February  March     April   May      June 
                     July    August    September October November December/;                      July    August    September October November December/;
Line 148  ENDJS Line 203  ENDJS
     for(my $m = 1;$m <=$#Months;$m++) {      for(my $m = 1;$m <=$#Months;$m++) {
         $result .= "      <option value=\"$m\" ";          $result .= "      <option value=\"$m\" ";
         $result .= "selected " if ($m-1 == $month);          $result .= "selected " if ($m-1 == $month);
         $result .= "> $Months[$m] </option>\n";          $result .= "> ".&mt($Months[$m])." </option>\n";
     }      }
     $result .= "  </select>\n";      $result .= "  </select>\n";
     $result .= "  <input type=\"text\" name=\"$dname\_day\" ".      $result .= "  <input type=\"text\" name=\"$dname\_day\" ".
             "value=\"$mday\" size=\"3\" ".              "value=\"$mday\" size=\"3\" ".$special.' '.
             "onChange=\"javascript:$dname\_checkday()\" />\n";              "onChange=\"javascript:$dname\_checkday()\" />\n";
     $result .= "  <input type=\"year\" name=\"$dname\_year\" ".      $result .= "  <input type=\"year\" name=\"$dname\_year\" ".
             "value=\"$year\" size=\"5\" ".              "value=\"$year\" size=\"5\" ".$special.' '.
             "onChange=\"javascript:$dname\_checkday()\" />\n";              "onChange=\"javascript:$dname\_checkday()\" />\n";
     $result .= "&nbsp;&nbsp;";      $result .= "&nbsp;&nbsp;";
     $result .= "  <select name=\"$dname\_hour\" >\n";      $result .= "  <select name=\"$dname\_hour\" ".$special." >\n";
     for (my $h = 0;$h<24;$h++) {      for (my $h = 0;$h<24;$h++) {
         $result .= "      <option value=\"$h\" ";          $result .= "      <option value=\"$h\" ";
         $result .= "selected " if ($hour == $h);          $result .= "selected " if ($hour == $h);
         $result .= "> ";          $result .= "> ";
    my $timest='';
         if ($h == 0) {          if ($h == 0) {
             $result .= "12 am";              $timest .= "12 am";
         } elsif($h == 12) {          } elsif($h == 12) {
             $result .= "12 noon";              $timest .= "12 noon";
         } elsif($h < 12) {          } elsif($h < 12) {
             $result .= "$h am";              $timest .= "$h am";
         } else {          } else {
             $result .= $h-12 ." pm";              $timest .= $h-12 ." pm";
         }          }
         $result .= " </option>\n";   $timest=&mt($timest);
           $result .= $timest." </option>\n";
     }       } 
     $result .= "  </select>\n";      $result .= "  </select>\n";
     $result .= "  <input type=\"text\" name=\"$dname\_minute\" ".      $result .= "  <input type=\"text\" name=\"$dname\_minute\" ".$special.' '.
         "value=\"$min\" size=\"3\" /> m\n";          "value=\"$min\" size=\"3\" /> m\n";
     $result .= "  <input type=\"text\" name=\"$dname\_second\" ".      $result .= "  <input type=\"text\" name=\"$dname\_second\" ".$special.' '.
         "value=\"$sec\" size=\"3\" /> s\n";          "value=\"$sec\" size=\"3\" /> s\n";
     $result .= "<!-- end $dname date setting form -->\n";      $result .= "<a href=\"javascript:$dname\_opencalendar()\">".
       &mt('Select Date')."</a></nobr>\n<!-- end $dname date setting form -->\n";
     return $result;      return $result;
 }  }
   
Line 230  sub get_date_from_form { Line 288  sub get_date_from_form {
     }      }
     if (defined($ENV{'form.'.$dname.'_hour'})) {      if (defined($ENV{'form.'.$dname.'_hour'})) {
         my $tmphour = $ENV{'form.'.$dname.'_hour'};          my $tmphour = $ENV{'form.'.$dname.'_hour'};
         if (($tmphour =~ /^\d+$/) && ($tmphour > 0) && ($tmphour < 32)) {          if (($tmphour =~ /^\d+$/) && ($tmphour >= 0) && ($tmphour < 24)) {
             $hour = $tmphour;              $hour = $tmphour;
         }          }
     }      }
Line 253  sub get_date_from_form { Line 311  sub get_date_from_form {
         }          }
     }      }
     if (($year<70) || ($year>137)) { return undef; }      if (($year<70) || ($year>137)) { return undef; }
     if (eval(&timelocal($sec,$min,$hour,$day,$month,$year))) {      if (defined($sec) && defined($min)   && defined($hour) &&
           defined($day) && defined($month) && defined($year) &&
           eval(&timelocal($sec,$min,$hour,$day,$month,$year))) {
         return &timelocal($sec,$min,$hour,$day,$month,$year);          return &timelocal($sec,$min,$hour,$day,$month,$year);
     } else {      } else {
         return undef;          return undef;
Line 341  the selection box is set to document.$fo Line 401  the selection box is set to document.$fo
   
 $size: the size (number of lines) of the selection box.  $size: the size (number of lines) of the selection box.
   
   $onchange: javascript to use when the value is changed.  Enclosed in 
   double quotes, ""s, not single quotes.
   
 Returns: a perl string as described.  Returns: a perl string as described.
   
 =cut  =cut
Line 348  Returns: a perl string as described. Line 411  Returns: a perl string as described.
 ##############################################  ##############################################
 ##############################################  ##############################################
 sub StatusOptions {  sub StatusOptions {
     my ($status, $formName,$size)=@_;      my ($status, $formName,$size,$onchange)=@_;
     $size = 1 if (!defined($size));      $size = 1 if (!defined($size));
     if (! defined($status)) {      if (! defined($status)) {
         $status = 'Active';          $status = 'Active';
Line 365  sub StatusOptions { Line 428  sub StatusOptions {
   
     my $Str = '';      my $Str = '';
     $Str .= '<select name="Status"';      $Str .= '<select name="Status"';
     if(defined($formName) && $formName ne '') {      if(defined($formName) && $formName ne '' && ! defined($onchange)) {
         $Str .= ' onchange="document.'.$formName.'.submit()"';          $Str .= ' onchange="document.'.$formName.'.submit()"';
     }      }
       if (defined($onchange)) {
           $Str .= ' onchange="'.$onchange.'"';
       }
     $Str .= ' size="'.$size.'" ';      $Str .= ' size="'.$size.'" ';
     $Str .= '>'."\n";      $Str .= '>'."\n";
     $Str .= '<option value="Active" '.$OpSel1.'>'.      $Str .= '<option value="Active" '.$OpSel1.'>'.
Line 684  sub Create_PrgWin { Line 750  sub Create_PrgWin {
       "<body bgcolor=\"#88DDFF\">".        "<body bgcolor=\"#88DDFF\">".
               "<h4>$heading</h4>".                "<h4>$heading</h4>".
               "<form name=popremain>".                "<form name=popremain>".
               "<input type=text size=55 name=remaining value=Starting></form>".                '<input type="text" size="55" name="remaining" value="'.
         &mt('Starting').'"></form>'.
               "</body></html>\');".                "</body></html>\');".
     "popwin.document.close();".      "popwin.document.close();".
     "</script>");      "</script>");
Line 719  sub Increment_PrgWin { Line 786  sub Increment_PrgWin {
     if (int ($time_est/60) > 0) {      if (int ($time_est/60) > 0) {
  my $min = int($time_est/60);   my $min = int($time_est/60);
  my $sec = $time_est % 60;   my $sec = $time_est % 60;
  $time_est = $min.' minutes';   $time_est = $min.' '.&mt('minutes');
  if ($sec > 1) {          if ($min < 10)  {
     $time_est.= ', '.$sec.' seconds';              if ($sec > 1) {
  } elsif ($sec > 0) {                  $time_est.= ', '.$sec.' '.&mt('seconds');
     $time_est.= ', '.$sec.' second';              } elsif ($sec > 0) {
  }                  $time_est.= ', '.$sec.' '.&mt('second');
               }
           }
     } else {      } else {
  $time_est .= ' seconds';   $time_est .= ' '.&mt('seconds');
     }      }
     my $lasttime = &Time::HiRes::time()-$$prog_state{'laststart'};      my $lasttime = &Time::HiRes::time()-$$prog_state{'laststart'};
     if ($lasttime > 9) {      if ($lasttime > 9) {
Line 737  sub Increment_PrgWin { Line 806  sub Increment_PrgWin {
         $lasttime = sprintf("%3.2f",$lasttime);          $lasttime = sprintf("%3.2f",$lasttime);
     }      }
     if ($lasttime == 1) {      if ($lasttime == 1) {
         $lasttime = '('.$lasttime.' second for '.$extraInfo.')';          $lasttime = '('.$lasttime.' '.&mt('second for').' '.$extraInfo.')';
     } else {      } else {
         $lasttime = '('.$lasttime.' seconds for '.$extraInfo.')';          $lasttime = '('.$lasttime.' '.&mt('seconds for').' '.$extraInfo.')';
       }
       #
       my $user_browser = $ENV{'browser.type'} if (exists($ENV{'browser.type'}));
       my $user_os      = $ENV{'browser.os'}   if (exists($ENV{'browser.os'}));
       if (! defined($user_browser) || ! defined($user_os)) {
           (undef,$user_browser,undef,undef,undef,$user_os) = 
                              &Apache::loncommon::decode_user_agent();
       }
       if ($user_browser eq 'explorer' && $user_os =~ 'mac') {
           $lasttime = '';
     }      }
     $r->print('<script>popwin.document.popremain.remaining.value="'.      $r->print('<script>popwin.document.popremain.remaining.value="'.
       $$prog_state{'done'}.'/'.$$prog_state{'max'}.        $$prog_state{'done'}.'/'.$$prog_state{'max'}.
       ': '.$time_est.' remaining '.$lasttime.'";'.'</script>');        ': '.$time_est.' '.&mt('remaining').' '.$lasttime.'";'.'</script>');
     $$prog_state{'laststart'}=&Time::HiRes::time();      $$prog_state{'laststart'}=&Time::HiRes::time();
     $r->rflush();      $r->rflush();
 }  }

Removed from v.1.24  
changed lines
  Added in v.1.33


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