Diff for /loncom/interface/loncommon.pm between versions 1.339 and 1.349

version 1.339, 2006/04/18 19:18:17 version 1.349, 2006/04/22 17:10:07
Line 63  use Apache::lonlocal; Line 63  use Apache::lonlocal;
 use HTML::Entities;  use HTML::Entities;
 use Apache::lonhtmlcommon();  use Apache::lonhtmlcommon();
 use Apache::loncoursedata();  use Apache::loncoursedata();
   use Apache::lontexconvert();
   
 my $readit;  my $readit;
   
Line 2604  sub maketime { Line 2605  sub maketime {
 #########################################  #########################################
   
 sub findallcourses {  sub findallcourses {
     my %courses=();      my %courses;
     my $now=time;      my $now=time;
     foreach (keys %env) {      foreach my $key (keys(%env)) {
  if ($_=~/^user\.role\.\w+\.\/(\w+)\/(\w+)/) {   if ( $key=~m{^user\.role\.(\w+)\./(\w+)/(\w+)} ) {
     my ($starttime,$endtime)=$env{$_};      my ($role,$domain,$id) = ($1,$2,$3);
       next if ($role eq 'ca' || $role eq 'aa');
       my ($starttime,$endtime)=$env{$key};
             my $active=1;              my $active=1;
             if ($starttime) {              if ($starttime) {
  if ($now<$starttime) { $active=0; }   if ($now<$starttime) { $active=0; }
Line 2616  sub findallcourses { Line 2619  sub findallcourses {
             if ($endtime) {              if ($endtime) {
                 if ($now>$endtime) { $active=0; }                  if ($now>$endtime) { $active=0; }
             }              }
             if ($active) { $courses{$1.'_'.$2}=1; }              if ($active) { $courses{$domain.'_'.$id}=1; }
         }          }
     }      }
     return keys %courses;      return keys(%courses);
 }  }
   
 ###############################################  ###############################################
Line 2807  sub bodytag { Line 2810  sub bodytag {
   
 # construct main body tag  # construct main body tag
     my $bodytag = <<END;      my $bodytag = <<END;
 <style type="text/css">  
 h1, h2, h3, th { font-family: Arial, Helvetica, sans-serif }  
 a:focus { color: red; background: yellow }   
 table.thinborder { border-collapse: collapse; }  
 table.thinborder tr th, table.thinborder tr td { border-style: solid; border-width: 1px}  
 form, .inline { display: inline; }  
 .center { text-align: center; }  
 .filename {font-family: monospace;}  
 </style>  
 <body $extra_body_attr>  <body $extra_body_attr>
 END  END
   
Line 3049  sub endbodytag { Line 3043  sub endbodytag {
     return $endbodytag;      return $endbodytag;
 }  }
   
   sub standard_css {
       my ($function,$domain,$bgcolor) = @_;
       my $function = &get_users_function() if (!$function);
       my $img =    &designparm($function.'.img',$domain);
       my $tabbg =  &designparm($function.'.tabbg',$domain);
       my $font =   &designparm($function.'.font',$domain);
       my $sidebg = &designparm($function.'.sidebg',$domain);
       my $pgbg   = $bgcolor || &designparm($function.'.pgbg',$domain);
   
       my $alink  = &designparm($function.'.alink',$domain);
       my $vlink  = &designparm($function.'.vlink',$domain);
       my $link   = &designparm($function.'.link',$domain);
       my $sans   = 'Arial,Helvetica,sans-serif';
       my $data_table_head = $tabbg;
       my $data_table_light = '#EEEEEE';
       my $data_table_dark = '#DDD';
       my $data_table_highlight = '#FFFF00';
       my $mail_new = '#FFBB77';
       my $mail_new_hover = '#DD9955';
       my $mail_read = '#BBBB77';
       my $mail_read_hover = '#999944';
       my $mail_replied = '#AAAA88';
       my $mail_replied_hover = '#888855';
       my $mail_other = '#99BBBB';
       my $mail_other_hover = '#669999';
   
       return <<END;
   <style type="text/css">
   h1, h2, h3, th { font-family: $sans }
   a:focus { color: red; background: yellow } 
   table.thinborder { border-collapse: collapse; }
   table.thinborder tr th, table.thinborder tr td { border-style: solid; border-width: 1px}
   form, .inline { display: inline; }
   .center { text-align: center; }
   .filename {font-family: monospace;}
   
   table#LC_top_nav, table#LC_menubuttons, table#LC_nav_location {
     width: 100%;
     background: $pgbg;
     border: 0px;
     border-spacing: 1px;
     padding: 0px;
     margin: 0px;
     border-collapse: separate;
   }
   table#LC_menubuttons_mainmenu {
     background: $pgbg;
     border: 0px;
     border-spacing: 1px;
     padding: 0px;
     margin: 0px;
     border-collapse: separate;
   }
   table#LC_menubuttons img, table#LC_menubuttons_mainmenu img {
     border: 0px;
   }
   table#LC_top_nav td {
     background: $tabbg;
   }
   table#LC_top_nav td a, div#LC_top_nav a {
     color: $font;
     font-family: $sans;
   }
   .LC_menubuttons_inline_text {
     color: $font;
     font-family: $sans;
     font-size: smaller;
   }
   
   td.LC_menubuttons_text {
     color: $font;
     font-family: $sans;
   }
   td.LC_menubuttons_img {
     background: $tabbg;
   }
   .LC_current_location {
     font-family: $sans;
     background: $tabbg;
   }
   .LC_new_mail {
     font-family: $sans;
     font-weight: bold;
   }
   
   table.LC_data_table, table.LC_mail_list {
     border: 1px solid #000000;
     border-collapse: seperate;
   }
   table.LC_data_table tr th, table.LC_calendar tr th, table.LC_mail_list tr th {
     font-weight: bold;
     background-color: $data_table_head;
   }
   table.LC_data_table tr td {
     background-color: $data_table_light;
   }
   table.LC_data_table tr.LC_even_row td {
     background-color: $data_table_dark;
   }
   table.LC_data_table tr.LC_empty td {
     background-color: #FFFFFF;
   }
   
   table.LC_calendar {
     border: 1px solid #000000;
     border-collapse: collapse;
   }
   table.LC_calendar_pickdate {
     font-size: xx-small;
   }
   table.LC_calendar tr td {
     border: 1px solid #000000;
     vertical-align: top;
   }
   table.LC_calendar tr td.LC_calendar_day_empty {
     background-color: $data_table_dark;
   }
   table.LC_calendar tr td.LC_calendar_day_current {
     background-color: $data_table_highlight;
   }
   
   table.LC_mail_list tr.LC_mail_new {
     background-color: $mail_new;
   }
   table.LC_mail_list tr.LC_mail_new:hover {
     background-color: $mail_new_hover;
   }
   table.LC_mail_list tr.LC_mail_read {
     background-color: $mail_read;
   }
   table.LC_mail_list tr.LC_mail_read:hover {
     background-color: $mail_read_hover;
   }
   table.LC_mail_list tr.LC_mail_replied {
     background-color: $mail_replied;
   }
   table.LC_mail_list tr.LC_mail_replied:hover {
     background-color: $mail_replied_hover;
   }
   table.LC_mail_list tr.LC_mail_other {
     background-color: $mail_other;
   }
   table.LC_mail_list tr.LC_mail_other:hover {
     background-color: $mail_other_hover;
   }
   </style>
   END
   }
   
 =pod  =pod
   
 =over 4  =over 4
Line 3076  sub headtag { Line 3219  sub headtag {
           
     my $result =      my $result =
  '<head>'.   '<head>'.
  &Apache::lonxml::fontsettings().   &standard_css().
    &font_settings().
  &Apache::lonhtmlcommon::htmlareaheaders();   &Apache::lonhtmlcommon::htmlareaheaders();
   
     if ($args->{'force_register'}) {      if ($args->{'force_register'}) {
Line 3089  sub headtag { Line 3233  sub headtag {
  $env{'internal.head.redirect'} = $url;   $env{'internal.head.redirect'} = $url;
  $result.=<<ADDMETA   $result.=<<ADDMETA
 <meta http-equiv="pragma" content="no-cache" />  <meta http-equiv="pragma" content="no-cache" />
 <meta HTTP-EQUIV="Refresh" CONTENT="$time; url=$url" />  <meta http-equiv="Refresh" content="$time; url=$url" />
 ADDMETA  ADDMETA
     }      }
     if (!defined($title)) {      if (!defined($title)) {
Line 3104  ADDMETA Line 3248  ADDMETA
   
 =over 4  =over 4
   
   =item * &font_settings()
   
   Returns neccessary <meta> to set the proper encoding
   
   Inputs: none
   
   =back
   
   =cut
   
   sub font_settings {
       my $headerstring='';
       if (($env{'browser.os'} eq 'mac') && (!$env{'browser.mathml'})) { 
    $headerstring.=
       '<meta Content-Type="text/html; charset=x-mac-roman" />';
       } elsif (!$env{'browser.mathml'} && $env{'browser.unicode'}) {
    $headerstring.=
       '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
       }
       return $headerstring;
   }
   
   =pod
   
   =over 4
   
   =item * &xml_begin()
   
   Returns the needed doctype and <html>
   
   Inputs: none
   
   =back
   
   =cut
   
   sub xml_begin {
       my $output='';
   
       &Apache::lonhtmlcommon::init_htmlareafields();
   
       if ($env{'browser.mathml'}) {
    $output='<?xml version="1.0"?>'
               #.'<?xml-stylesheet type="text/css" href="/adm/MathML/mathml.css"?>'."\n"
   #            .'<!DOCTYPE html SYSTEM "/adm/MathML/mathml.dtd" '
               
   #    .'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" [<!ENTITY mathns "http://www.w3.org/1998/Math/MathML">] >'
       .'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">'
               .'<html xmlns:math="http://www.w3.org/1998/Math/MathML" ' 
       .'xmlns="http://www.w3.org/1999/xhtml">';
       } else {
    $output='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>';
       }
       return $output;
   }
   
   =pod
   
   =over 4
   
 =item * &endheadtag()  =item * &endheadtag()
   
 Returns a uniform </head> for LON-CAPA web pages.  Returns a uniform </head> for LON-CAPA web pages.
Line 3192  sub start_page { Line 3396  sub start_page {
     my $result;      my $result;
     if (! exists($args->{'skip_phases'}{'head'}) ) {      if (! exists($args->{'skip_phases'}{'head'}) ) {
  $result.=   $result.=
     &Apache::lonxml::xmlbegin().      &xml_begin().
     &headtag($title,$head_extra,\%head_args).&endheadtag();      &headtag($title,$head_extra,\%head_args).&endheadtag();
     }      }
           
Line 3328  sub simple_error_page { Line 3532  sub simple_error_page {
     }      }
     return $page;      return $page;
 }  }
   
   {
       my $row_count;
       sub start_data_table {
    undef($row_count);
    return '<table class="LC_data_table">';
       }
   
       sub end_data_table {
    undef($row_count);
    return '</table>';
       }
   
       sub start_data_table_row {
    $row_count++;
    return  '<tr '.(($row_count % 2)?'':'class="LC_even_row"').'>';
       }
   
       sub end_data_table_row {
    return '</tr>';
       }
   }
   
 ###############################################  ###############################################
   
 =pod  =pod

Removed from v.1.339  
changed lines
  Added in v.1.349


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