Diff for /loncom/interface/lonhtmlcommon.pm between versions 1.101 and 1.106

version 1.101, 2004/11/30 18:42:09 version 1.106, 2005/06/03 15:47:29
Line 55  html. Line 55  html.
   
 package Apache::lonhtmlcommon;  package Apache::lonhtmlcommon;
   
   use strict;
 use Time::Local;  use Time::Local;
 use Time::HiRes;  use Time::HiRes;
 use Apache::lonlocal;  use Apache::lonlocal;
 use strict;  use Apache::lonnet;
   
 ##############################################  ##############################################
 ##############################################  ##############################################
Line 80  sub authorbombs { Line 81  sub authorbombs {
     foreach (keys %bombs) {      foreach (keys %bombs) {
  if ($_=~/^$udom\/$uname\//) {   if ($_=~/^$udom\/$uname\//) {
     return '<a href="/adm/bombs/'.$url.      return '<a href="/adm/bombs/'.$url.
  '"><img src="/adm/lonMisc/bomb.gif" border="0" /></a>'.   '"><img src="'.&Apache::loncommon::lonhttpdurl('/adm/lonMisc/bomb.gif').'" border="0" /></a>'.
  &Apache::loncommon::help_open_topic('About_Bombs');   &Apache::loncommon::help_open_topic('About_Bombs');
  }   }
     }      }
Line 132  sub select_recent { Line 133  sub select_recent {
     foreach (sort keys %recent) {      foreach (sort keys %recent) {
  unless ($_=~/^error\:/) {   unless ($_=~/^error\:/) {
     my $escaped = &Apache::loncommon::escape_url($_);      my $escaped = &Apache::loncommon::escape_url($_);
             if ($_ =~ /\/$/ && $escaped !~ /\/$/) {  
                 $escaped .= '/';  
             }  
     $return.="\n<option value='$escaped'>".      $return.="\n<option value='$escaped'>".
  &Apache::lonnet::unescape((split(/\&/,$recent{$_}))[1]).   &Apache::lonnet::unescape((split(/\&/,$recent{$_}))[1]).
  '</option>';   '</option>';
Line 438  sub get_date_from_form { Line 436  sub get_date_from_form {
     my ($dname) = @_;      my ($dname) = @_;
     my ($sec,$min,$hour,$day,$month,$year);      my ($sec,$min,$hour,$day,$month,$year);
     #      #
     if (defined($ENV{'form.'.$dname.'_second'})) {      if (defined($env{'form.'.$dname.'_second'})) {
         my $tmpsec = $ENV{'form.'.$dname.'_second'};          my $tmpsec = $env{'form.'.$dname.'_second'};
         if (($tmpsec =~ /^\d+$/) && ($tmpsec >= 0) && ($tmpsec < 60)) {          if (($tmpsec =~ /^\d+$/) && ($tmpsec >= 0) && ($tmpsec < 60)) {
             $sec = $tmpsec;              $sec = $tmpsec;
         }          }
Line 447  sub get_date_from_form { Line 445  sub get_date_from_form {
     } else {      } else {
         $sec = 0;          $sec = 0;
     }      }
     if (defined($ENV{'form.'.$dname.'_minute'})) {      if (defined($env{'form.'.$dname.'_minute'})) {
         my $tmpmin = $ENV{'form.'.$dname.'_minute'};          my $tmpmin = $env{'form.'.$dname.'_minute'};
         if (($tmpmin =~ /^\d+$/) && ($tmpmin >= 0) && ($tmpmin < 60)) {          if (($tmpmin =~ /^\d+$/) && ($tmpmin >= 0) && ($tmpmin < 60)) {
             $min = $tmpmin;              $min = $tmpmin;
         }          }
Line 456  sub get_date_from_form { Line 454  sub get_date_from_form {
     } else {      } else {
         $min = 0;          $min = 0;
     }      }
     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 < 24)) {          if (($tmphour =~ /^\d+$/) && ($tmphour >= 0) && ($tmphour < 24)) {
             $hour = $tmphour;              $hour = $tmphour;
         }          }
     } else {      } else {
         $hour = 0;          $hour = 0;
     }      }
     if (defined($ENV{'form.'.$dname.'_day'})) {      if (defined($env{'form.'.$dname.'_day'})) {
         my $tmpday = $ENV{'form.'.$dname.'_day'};          my $tmpday = $env{'form.'.$dname.'_day'};
         if (($tmpday =~ /^\d+$/) && ($tmpday > 0) && ($tmpday < 32)) {          if (($tmpday =~ /^\d+$/) && ($tmpday > 0) && ($tmpday < 32)) {
             $day = $tmpday;              $day = $tmpday;
         }          }
     }      }
     if (defined($ENV{'form.'.$dname.'_month'})) {      if (defined($env{'form.'.$dname.'_month'})) {
         my $tmpmonth = $ENV{'form.'.$dname.'_month'};          my $tmpmonth = $env{'form.'.$dname.'_month'};
         if (($tmpmonth =~ /^\d+$/) && ($tmpmonth > 0) && ($tmpmonth < 13)) {          if (($tmpmonth =~ /^\d+$/) && ($tmpmonth > 0) && ($tmpmonth < 13)) {
             $month = $tmpmonth - 1;              $month = $tmpmonth - 1;
         }          }
     }      }
     if (defined($ENV{'form.'.$dname.'_year'})) {      if (defined($env{'form.'.$dname.'_year'})) {
         my $tmpyear = $ENV{'form.'.$dname.'_year'};          my $tmpyear = $env{'form.'.$dname.'_year'};
         if (($tmpyear =~ /^\d+$/) && ($tmpyear > 1900)) {          if (($tmpyear =~ /^\d+$/) && ($tmpyear > 1900)) {
             $year = $tmpyear - 1900;              $year = $tmpyear - 1900;
         }          }
Line 539  sub javascript_nothing { Line 537  sub javascript_nothing {
     my $nothing = "''";      my $nothing = "''";
     my $user_browser;      my $user_browser;
     my $user_os;      my $user_os;
     $user_browser = $ENV{'browser.type'} if (exists($ENV{'browser.type'}));      $user_browser = $env{'browser.type'} if (exists($env{'browser.type'}));
     $user_os      = $ENV{'browser.os'}   if (exists($ENV{'browser.os'}));      $user_os      = $env{'browser.os'}   if (exists($env{'browser.os'}));
     if (! defined($user_browser) || ! defined($user_os)) {      if (! defined($user_browser) || ! defined($user_os)) {
         (undef,$user_browser,undef,undef,undef,$user_os) =           (undef,$user_browser,undef,undef,undef,$user_os) = 
                            &Apache::loncommon::decode_user_agent();                             &Apache::loncommon::decode_user_agent();
Line 558  sub javascript_docopen { Line 556  sub javascript_docopen {
     my $nothing = "''";      my $nothing = "''";
     my $user_browser;      my $user_browser;
     my $user_os;      my $user_os;
     $user_browser = $ENV{'browser.type'} if (exists($ENV{'browser.type'}));      $user_browser = $env{'browser.type'} if (exists($env{'browser.type'}));
     $user_os      = $ENV{'browser.os'}   if (exists($ENV{'browser.os'}));      $user_os      = $env{'browser.os'}   if (exists($env{'browser.os'}));
     if (! defined($user_browser) || ! defined($user_os)) {      if (! defined($user_browser) || ! defined($user_os)) {
         (undef,$user_browser,undef,undef,undef,$user_os) =           (undef,$user_browser,undef,undef,undef,$user_os) = 
                            &Apache::loncommon::decode_user_agent();                             &Apache::loncommon::decode_user_agent();
Line 586  enrollment status of students.  The sele Line 584  enrollment status of students.  The sele
 Inputs:  Inputs:
   
 $status: the currently selected status.  If undefined the value of  $status: the currently selected status.  If undefined the value of
 $ENV{'form.Status'} is taken.  If that is undefined, a value of 'Active'  $env{'form.Status'} is taken.  If that is undefined, a value of 'Active'
 is used.  is used.
   
 $formname: The name of the form.  If defined the onchange attribute of  $formname: The name of the form.  If defined the onchange attribute of
Line 608  sub StatusOptions { Line 606  sub StatusOptions {
     $size = 1 if (!defined($size));      $size = 1 if (!defined($size));
     if (! defined($status)) {      if (! defined($status)) {
         $status = 'Active';          $status = 'Active';
         $status = $ENV{'form.Status'} if (exists($ENV{'form.Status'}));          $status = $env{'form.Status'} if (exists($env{'form.Status'}));
     }      }
   
     my $OpSel1 = '';      my $OpSel1 = '';
Line 762  sub Create_PrgWin { Line 760  sub Create_PrgWin {
     $prog_state{'type'}=$type;      $prog_state{'type'}=$type;
     if ($type eq 'popup') {      if ($type eq 'popup') {
  $prog_state{'window'}='popwin';   $prog_state{'window'}='popwin';
    my $html=&Apache::lonxml::xmlbegin();
  #the whole function called through timeout is due to issues   #the whole function called through timeout is due to issues
  #in mozilla Read BUG #2665 if you want to know the whole story   #in mozilla Read BUG #2665 if you want to know the whole story
  &r_print($r,'<script>'.   &r_print($r,'<script>'.
         "var popwin;          "var popwin;
          function openpopwin () {           function openpopwin () {
          popwin=open(\'\',\'popwin\',\'width=400,height=100\');".           popwin=open(\'\',\'popwin\',\'width=400,height=100\');".
         "popwin.document.writeln(\'<html><head><title>$title</title></head>".          "popwin.document.writeln(\'".$html."<head><title>$title</title></head>".
       "<body bgcolor=\"#88DDFF\">".        "<body bgcolor=\"#88DDFF\">".
               "<h4>$heading</h4>".                "<h4>$heading</h4>".
               "<form name=popremain>".                "<form name=popremain>".
Line 857  sub Increment_PrgWin { Line 856  sub Increment_PrgWin {
         $lasttime = '('.$lasttime.' '.&mt('seconds for').' '.$extraInfo.')';          $lasttime = '('.$lasttime.' '.&mt('seconds for').' '.$extraInfo.')';
     }      }
     #      #
     my $user_browser = $ENV{'browser.type'} if (exists($ENV{'browser.type'}));      my $user_browser = $env{'browser.type'} if (exists($env{'browser.type'}));
     my $user_os      = $ENV{'browser.os'}   if (exists($ENV{'browser.os'}));      my $user_os      = $env{'browser.os'}   if (exists($env{'browser.os'}));
     if (! defined($user_browser) || ! defined($user_os)) {      if (! defined($user_browser) || ! defined($user_os)) {
         (undef,$user_browser,undef,undef,undef,$user_os) =           (undef,$user_browser,undef,undef,undef,$user_os) = 
                            &Apache::loncommon::decode_user_agent();                             &Apache::loncommon::decode_user_agent();
Line 909  sub crumbs { Line 908  sub crumbs {
     my $output='';      my $output='';
     unless ($noformat) { $output.='<br /><tt><b>'; }      unless ($noformat) { $output.='<br /><tt><b>'; }
     $output.='<font size="'.$size.'">'.$prefix.'/';      $output.='<font size="'.$size.'">'.$prefix.'/';
     if ($ENV{'user.adv'}) {      if ($env{'user.adv'}) {
  my $path=$prefix.'/';   my $path=$prefix.'/';
  foreach my $dir (split('/',$uri)) {   foreach my $dir (split('/',$uri)) {
             if (! $dir) { next; }              if (! $dir) { next; }
Line 932  sub crumbs { Line 931  sub crumbs {
 # --------------------- A function that generates a window for the spellchecker  # --------------------- A function that generates a window for the spellchecker
   
 sub spellheader {  sub spellheader {
     my $nothing = &javascript_nothing();      my $html=&Apache::lonxml::xmlbegin();
       my $nothing=&javascript_nothing();
     return (<<ENDCHECK);      return (<<ENDCHECK);
 <script type="text/javascript">   <script type="text/javascript"> 
 //<!-- BEGIN LON-CAPA Internal  //<!-- BEGIN LON-CAPA Internal
Line 940  var checkwin; Line 940  var checkwin;
   
 function spellcheckerwindow() {  function spellcheckerwindow() {
     checkwin=window.open($nothing,'spellcheckwin','height=320,width=280,resizable=yes,scrollbars=yes,location=no,menubar=no,toolbar=no');      checkwin=window.open($nothing,'spellcheckwin','height=320,width=280,resizable=yes,scrollbars=yes,location=no,menubar=no,toolbar=no');
     checkwin.document.writeln('<html><body bgcolor="#DDDDDD"><form name="spellcheckform" action="/adm/spellcheck" method="post"><input type="hidden" name="text" value="" /></form></body></html>');      checkwin.document.writeln('$html<head></head><body bgcolor="#DDDDDD"><form name="spellcheckform" action="/adm/spellcheck" method="post"><input type="hidden" name="text" value="" /></form></body></html>');
     checkwin.document.close();      checkwin.document.close();
 }  }
 // END LON-CAPA Internal -->  // END LON-CAPA Internal -->
Line 954  sub spelllink { Line 954  sub spelllink {
     my ($form,$field)=@_;      my ($form,$field)=@_;
     my $linktext=&mt('Check Spelling');      my $linktext=&mt('Check Spelling');
     return (<<ENDLINK);      return (<<ENDLINK);
 <a href="javascript:if (typeof(document.$form.onsubmit)!='undefined') { document.$form.onsubmit();};spellcheckerwindow();checkwin.document.forms.spellcheckform.text.value=this.document.forms.$form.$field.value;checkwin.document.forms.spellcheckform.submit();">$linktext</a>  <a href="javascript:if (typeof(document.$form.onsubmit)!='undefined') { if (document.$form.onsubmit!=null) { document.$form.onsubmit();}};spellcheckerwindow();checkwin.document.forms.spellcheckform.text.value=this.document.forms.$form.$field.value;checkwin.document.forms.spellcheckform.submit();">$linktext</a>
 ENDLINK  ENDLINK
 }  }
   
Line 1037  sub htmlareaselectactive { Line 1037  sub htmlareaselectactive {
 # --------------------------------------------------------------------- Blocked  # --------------------------------------------------------------------- Blocked
   
 sub htmlareablocked {  sub htmlareablocked {
     unless ($ENV{'environment.wysiwygeditor'} eq 'on') { return 1; }      unless ($env{'environment.wysiwygeditor'} eq 'on') { return 1; }
     return 0;      return 0;
 }  }
   
Line 1112  returns: nothing Line 1112  returns: nothing
         # Make the faq and bug data cascade          # Make the faq and bug data cascade
         my $faq = '';          my $faq = '';
         my $bug = '';          my $bug = '';
    my $help='';
         # The last breadcrumb does not have a link, so handle it separately.          # The last breadcrumb does not have a link, so handle it separately.
         my $last = pop(@Crumbs);          my $last = pop(@Crumbs);
         #          #
Line 1119  returns: nothing Line 1120  returns: nothing
  if (!defined($menulink)) { $menulink=1; }   if (!defined($menulink)) { $menulink=1; }
         if ($menulink) {          if ($menulink) {
             my $description = 'Menu';              my $description = 'Menu';
             if (exists($ENV{'request.course.id'}) &&               if (exists($env{'request.course.id'}) && 
                 $ENV{'request.course.id'} ne '') {                  $env{'request.course.id'} ne '') {
                 $description =                   $description = 
                     $ENV{'course.'.$ENV{'request.course.id'}.'.description'};                      $env{'course.'.$env{'request.course.id'}.'.description'};
             }              }
             unshift(@Crumbs,{              unshift(@Crumbs,{
                     href   =>'/adm/menu',                      href   =>'/adm/menu',
Line 1136  returns: nothing Line 1137  returns: nothing
                  map {                   map {
                      $faq = $_->{'faq'} if (exists($_->{'faq'}));                       $faq = $_->{'faq'} if (exists($_->{'faq'}));
                      $bug = $_->{'bug'} if (exists($_->{'bug'}));                       $bug = $_->{'bug'} if (exists($_->{'bug'}));
                        $help = $_->{'help'} if (exists($_->{'help'}));
                      my $result = '<a href="'.$_->{'href'}.'" ';                       my $result = '<a href="'.$_->{'href'}.'" ';
                      if (defined($_->{'target'}) && $_->{'target'} ne '') {                       if (defined($_->{'target'}) && $_->{'target'} ne '') {
                          $result .= 'target="'.$_->{'target'}.'" ';                           $result .= 'target="'.$_->{'target'}.'" ';
Line 1151  returns: nothing Line 1153  returns: nothing
         my $icons = '';          my $icons = '';
         $faq = $last->{'faq'} if (exists($last->{'faq'}));          $faq = $last->{'faq'} if (exists($last->{'faq'}));
         $bug = $last->{'bug'} if (exists($last->{'bug'}));          $bug = $last->{'bug'} if (exists($last->{'bug'}));
           $help = $last->{'help'} if (exists($last->{'help'}));
           $component_help=($component_help?$component_help:$help);
 #        if ($faq ne '') {  #        if ($faq ne '') {
 #            $icons .= &Apache::loncommon::help_open_faq($faq);  #            $icons .= &Apache::loncommon::help_open_faq($faq);
 #        }  #        }

Removed from v.1.101  
changed lines
  Added in v.1.106


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