Diff for /loncom/interface/loncommon.pm between versions 1.694 and 1.744

version 1.694, 2008/11/22 19:08:21 version 1.744, 2009/02/10 12:20:17
Line 271  BEGIN { Line 271  BEGIN {
         }          }
     }      }
     &Apache::lonnet::logthis(      &Apache::lonnet::logthis(
               "<font color=yellow>INFO: Read file types</font>");               "<span style='color:yellow;'>INFO: Read file types</span>");
     $readit=1;      $readit=1;
     }  # end of unless($readit)       }  # end of unless($readit) 
           
Line 677  sub select_datelocale { Line 677  sub select_datelocale {
             if ($id ne '') {              if ($id ne '') {
                 my $en_terr = $locale->{'en_territory'};                  my $en_terr = $locale->{'en_territory'};
                 my $native_terr = $locale->{'native_territory'};                  my $native_terr = $locale->{'native_territory'};
                 my @languages = &preferred_languages();                  my @languages = &Apache::lonlocal::preferred_languages();
                 if (grep(/^en$/,@languages) || !@languages) {                  if (grep(/^en$/,@languages) || !@languages) {
                     if ($en_terr ne '') {                      if ($en_terr ne '') {
                         $locale_names{$id} = '('.$en_terr.')';                          $locale_names{$id} = '('.$en_terr.')';
Line 926  sub help_open_topic { Line 926  sub help_open_topic {
     if ($text ne "") {      if ($text ne "") {
  $template .=    $template .= 
             "<table bgcolor='#3333AA' cellspacing='1' cellpadding='1' border='0'><tr>".              "<table bgcolor='#3333AA' cellspacing='1' cellpadding='1' border='0'><tr>".
             "<td bgcolor='#5555FF'><span class=\"LC_nobreak\"><a target=\"_top\" href=\"$link\"><font color='#FFFFFF' size='2'>$text</font></a>";              "<td bgcolor='#5555FF'><a target=\"_top\" href=\"$link\"><span style=\"color:#FFFFFF;font-size:10pt;\">$text</span></a>";
     }      }
   
     # Add the graphic      # Add the graphic
Line 935  sub help_open_topic { Line 935  sub help_open_topic {
     $template .= <<"ENDTEMPLATE";      $template .= <<"ENDTEMPLATE";
  <a target="_top" href="$link" title="$title"><img src="$helpicon" border="0" alt="(Help: $topic)" /></a>   <a target="_top" href="$link" title="$title"><img src="$helpicon" border="0" alt="(Help: $topic)" /></a>
 ENDTEMPLATE  ENDTEMPLATE
     if ($text ne '') { $template.='</span></td></tr></table>' };      if ($text ne '') { $template.='</td></tr></table>' };
     return $template;      return $template;
   
 }  }
Line 943  ENDTEMPLATE Line 943  ENDTEMPLATE
 # This is a quicky function for Latex cheatsheet editing, since it   # This is a quicky function for Latex cheatsheet editing, since it 
 # appears in at least four places  # appears in at least four places
 sub helpLatexCheatsheet {  sub helpLatexCheatsheet {
     my $other = shift;      my ($topic,$text,$not_author) = @_;
       my $out;
     my $addOther = '';      my $addOther = '';
     if ($other) {      if ($topic) {
  $addOther = Apache::loncommon::help_open_topic($other, shift,   $addOther = &Apache::loncommon::help_open_topic($topic,$text,
        undef, undef, 600) .         undef, undef, 600).
    '</td><td>';     '</td><td>';
     }      }
     return '<table><tr><td>'.      $out = '<table><tr><td>'.
  $addOther .     $addOther .
  &Apache::loncommon::help_open_topic("Greek_Symbols",&mt('Greek Symbols'),     &Apache::loncommon::help_open_topic("Greek_Symbols",&mt('Greek Symbols'),
     undef,undef,600)         undef,undef,600).
  .'</td><td>'.     '</td><td>'.
  &Apache::loncommon::help_open_topic("Other_Symbols",&mt('Other Symbols'),     &Apache::loncommon::help_open_topic("Other_Symbols",&mt('Other Symbols'),
     undef,undef,600)         undef,undef,600).
  .'</td><td>'.     '</td>';
  &Apache::loncommon::help_open_topic("Authoring_Output_Tags",&mt('Output Tags'),      unless ($not_author) {
                                     undef,undef,600)          $out .= '<td>'.
  .'</td></tr></table>';          &Apache::loncommon::help_open_topic("Authoring_Output_Tags",&mt('Output Tags'),
                                               undef,undef,600).
           '</td>';
       }
       $out .= '</tr></table>';
       return $out;
 }  }
   
 sub general_help {  sub general_help {
Line 1128  sub help_open_bug { Line 1134  sub help_open_bug {
     {      {
  $template .=    $template .= 
   "<table bgcolor='#AA3333' cellspacing='1' cellpadding='1' border='0'><tr>".    "<table bgcolor='#AA3333' cellspacing='1' cellpadding='1' border='0'><tr>".
   "<td bgcolor='#FF5555'><a target=\"_top\" href=\"$link\"><font color='#FFFFFF' size='2'>$text</font></a>";    "<td bgcolor='#FF5555'><a target=\"_top\" href=\"$link\"><span style=\"color:#FFFFFF;font-size:10pt;\">$text</span></a>";
     }      }
   
     # Add the graphic      # Add the graphic
Line 1173  sub help_open_faq { Line 1179  sub help_open_faq {
     {      {
  $template .=    $template .= 
   "<table bgcolor='#337733' cellspacing='1' cellpadding='1' border='0'><tr>".    "<table bgcolor='#337733' cellspacing='1' cellpadding='1' border='0'><tr>".
   "<td bgcolor='#448844'><a target=\"_top\" href=\"$link\"><font color='#FFFFFF' size='2'>$text</font></a>";    "<td bgcolor='#448844'><a target=\"_top\" href=\"$link\"><span style=\"color:#FFFFFF; font-size:10pt;\">$text</span></a>";
     }      }
   
     # Add the graphic      # Add the graphic
Line 1629  sub multiple_select_form { Line 1635  sub multiple_select_form {
             $size = scalar(keys(%$hash));              $size = scalar(keys(%$hash));
         }          }
     }      }
     $output.="\n<select name='$name' size='$size' multiple='1'>";      $output.="\n".'<select name="'.$name.'" size="'.$size.'" multiple="multiple">';
     my @order;      my @order;
     if (ref($order) eq 'ARRAY')  {      if (ref($order) eq 'ARRAY')  {
         @order = @{$order};          @order = @{$order};
Line 1686  sub select_form { Line 1692  sub select_form {
 sub display_filter {  sub display_filter {
     if (!$env{'form.show'}) { $env{'form.show'}=10; }      if (!$env{'form.show'}) { $env{'form.show'}=10; }
     if (!$env{'form.displayfilter'}) { $env{'form.displayfilter'}='currentfolder'; }      if (!$env{'form.displayfilter'}) { $env{'form.displayfilter'}='currentfolder'; }
     return '<nobr><label>'.&mt('Records [_1]',      return '<span class="LC_nobreak"><label>'.&mt('Records [_1]',
        &Apache::lonmeta::selectbox('show',$env{'form.show'},undef,         &Apache::lonmeta::selectbox('show',$env{'form.show'},undef,
    (&mt('all'),10,20,50,100,1000,10000))).     (&mt('all'),10,20,50,100,1000,10000))).
    '</label></nobr> <nobr>'.     '</label></span> <span class="LC_nobreak">'.
            &mt('Filter [_1]',             &mt('Filter [_1]',
    &select_form($env{'form.displayfilter'},     &select_form($env{'form.displayfilter'},
  'displayfilter',   'displayfilter',
  ('currentfolder' => 'Current folder/page',   ('currentfolder' => 'Current folder/page',
  'containing' => 'Containing phrase',   'containing' => 'Containing phrase',
  'none' => 'None'))).   'none' => 'None'))).
  '<input type="text" name="containingphrase" size="30" value="'.&HTML::Entities::encode($env{'form.containingphrase'}).'" /></nobr>';   '<input type="text" name="containingphrase" size="30" value="'.&HTML::Entities::encode($env{'form.containingphrase'}).'" /></span>';
 }  }
   
 sub gradeleveldescription {  sub gradeleveldescription {
Line 1740  sub select_level_form { Line 1746  sub select_level_form {
   
 =pod  =pod
   
 =item * &select_dom_form($defdom,$name,$includeempty,$showdomdesc)  =item * &select_dom_form($defdom,$name,$includeempty,$showdomdesc,$autosubmit)
   
 Returns a string containing a <select name='$name' size='1'> form to   Returns a string containing a <select name='$name' size='1'> form to 
 allow a user to select the domain to preform an operation in.    allow a user to select the domain to preform an operation in.  
Line 1749  See loncreateuser.pm for an example invo Line 1755  See loncreateuser.pm for an example invo
 If the $includeempty flag is set, it also includes an empty choice ("no domain  If the $includeempty flag is set, it also includes an empty choice ("no domain
 selected");  selected");
   
 If the $showdomdesc flag is set, the domain name is followed by the domain description.   If the $showdomdesc flag is set, the domain name is followed by the domain description.
   
   If the $autosubmit flag is set, the form containing the domain selector will be auto-submitted by an onchange action.  
   
 =cut  =cut
   
 #-------------------------------------------  #-------------------------------------------
 sub select_dom_form {  sub select_dom_form {
     my ($defdom,$name,$includeempty,$showdomdesc) = @_;      my ($defdom,$name,$includeempty,$showdomdesc,$autosubmit) = @_;
       my $onchange;
       if ($autosubmit) {
           $onchange = ' onchange="this.form.submit()"';
       }
     my @domains = sort {lc($a) cmp lc($b)} (&Apache::lonnet::all_domains());      my @domains = sort {lc($a) cmp lc($b)} (&Apache::lonnet::all_domains());
     if ($includeempty) { @domains=('',@domains); }      if ($includeempty) { @domains=('',@domains); }
     my $selectdomain = "<select name=\"$name\" size=\"1\">\n";      my $selectdomain = "<select name=\"$name\" size=\"1\"$onchange>\n";
     foreach my $dom (@domains) {      foreach my $dom (@domains) {
         $selectdomain.="<option value=\"$dom\" ".          $selectdomain.="<option value=\"$dom\" ".
             ($dom eq $defdom ? 'selected="selected" ' : '').'>'.$dom;              ($dom eq $defdom ? 'selected="selected" ' : '').'>'.$dom;
Line 2717  sub flush_email_cache { Line 2729  sub flush_email_cache {
     &Apache::lonnet::devalidate_cache_new('emailscache',$id);      &Apache::lonnet::devalidate_cache_new('emailscache',$id);
 }  }
   
   # -------------------------------------------------------------------- getlangs
   
   =pod
   
   =item * &getlangs($uname,$udom)
   
   Gets a user's language preference and returns it as a hash with key:
   language.
   
   =cut
   
   
   sub getlangs {
       my ($uname,$udom) = @_;
       if (!$udom)  { $udom =$env{'user.domain'}; }
       if (!$uname) { $uname=$env{'user.name'};   }
       my $id=$uname.':'.$udom;
       my ($langs,$cached)=&Apache::lonnet::is_cached_new('userlangs',$id);
       if ($cached) {
           return %{$langs};
       } else {
           my %loadlangs=&Apache::lonnet::get('environment',['languages'],
                                              $udom,$uname);
           &Apache::lonnet::do_cache_new('userlangs',$id,\%loadlangs);
           return %loadlangs;
       }
   }
   
   sub flush_langs_cache {
       my ($uname,$udom)=@_;
       if (!$udom)  { $udom =$env{'user.domain'}; }
       if (!$uname) { $uname=$env{'user.name'};   }
       return if ($udom eq 'public' && $uname eq 'public');
       my $id=$uname.':'.$udom;
       &Apache::lonnet::devalidate_cache_new('userlangs',$id);
   }
   
 # ------------------------------------------------------------------ Screenname  # ------------------------------------------------------------------ Screenname
   
 =pod  =pod
Line 2768  sub aboutmewrapper { Line 2817  sub aboutmewrapper {
   
   
 sub syllabuswrapper {  sub syllabuswrapper {
     my ($linktext,$coursedir,$domain,$fontcolor)=@_;      my ($linktext,$coursedir,$domain)=@_;
     if ($fontcolor) {   
         $linktext='<font color="'.$fontcolor.'">'.$linktext.'</font>';   
     }  
     return qq{<a href="/public/$domain/$coursedir/syllabus">$linktext</a>};      return qq{<a href="/public/$domain/$coursedir/syllabus">$linktext</a>};
 }  }
   
Line 2998  sub fileextensions { Line 3044  sub fileextensions {
   
 sub display_languages {  sub display_languages {
     my %languages=();      my %languages=();
     foreach my $lang (&preferred_languages()) {      foreach my $lang (&Apache::lonlocal::preferred_languages()) {
  $languages{$lang}=1;   $languages{$lang}=1;
     }      }
     &get_unprocessed_cgi($ENV{'QUERY_STRING'},['displaylanguage']);      &get_unprocessed_cgi($ENV{'QUERY_STRING'},['displaylanguage']);
Line 3010  sub display_languages { Line 3056  sub display_languages {
     return %languages;      return %languages;
 }  }
   
 sub preferred_languages {  
     my @languages=();  
     if (($env{'request.role.adv'}) && ($env{'form.languages'})) {  
         @languages=(@languages,split(/\s*(\,|\;|\:)\s*/,$env{'form.languages'}));  
     }  
     if ($env{'course.'.$env{'request.course.id'}.'.languages'}) {  
  @languages=(@languages,split(/\s*(\,|\;|\:)\s*/,  
          $env{'course.'.$env{'request.course.id'}.'.languages'}));  
     }  
   
     if ($env{'environment.languages'}) {  
  @languages=(@languages,  
     split(/\s*(\,|\;|\:)\s*/,$env{'environment.languages'}));  
     }  
     my $browser=$ENV{'HTTP_ACCEPT_LANGUAGE'};  
     if ($browser) {  
  my @browser =   
     map { (split(/\s*;\s*/,$_))[0] } (split(/\s*,\s*/,$browser));  
  push(@languages,@browser);  
     }  
   
     foreach my $domtype ($env{'user.domain'},$env{'request.role.domain'},  
                          $Apache::lonnet::perlvar{'lonDefDomain'}) {  
         if ($domtype ne '') {  
             my %domdefs = &Apache::lonnet::get_domain_defaults($domtype);  
             if ($domdefs{'lang_def'} ne '') {  
                 push(@languages,$domdefs{'lang_def'});  
             }  
         }  
     }  
     return &get_genlanguages(@languages);  
 }  
   
 sub get_genlanguages {  
     my (@languages) = @_;  
 # turn "en-ca" into "en-ca,en"  
     my @genlanguages;  
     foreach my $lang (@languages) {  
         unless ($lang=~/\w/) { next; }  
         push(@genlanguages,$lang);  
         if ($lang=~/(\-|\_)/) {  
             push(@genlanguages,(split(/(\-|\_)/,$lang))[0]);  
         }  
     }  
     #uniqueify the languages list  
     my %count;  
     @genlanguages = map { $count{$_}++ == 0 ? $_ : () } @genlanguages;  
     return @genlanguages;  
 }  
   
 sub languages {  sub languages {
     my ($possible_langs) = @_;      my ($possible_langs) = @_;
     my @preferred_langs = &preferred_languages();      my @preferred_langs = &Apache::lonlocal::preferred_languages();
     if (!ref($possible_langs)) {      if (!ref($possible_langs)) {
  if( wantarray ) {   if( wantarray ) {
     return @preferred_langs;      return @preferred_langs;
Line 3083  sub languages { Line 3079  sub languages {
     return $preferred_possibilities[0];      return $preferred_possibilities[0];
 }  }
   
   sub user_lang {
       my ($touname,$toudom,$fromcid) = @_;
       my @userlangs;
       if (($fromcid ne '') && ($env{'course.'.$fromcid.'.languages'} ne '')) {
           @userlangs=(@userlangs,split(/\s*(\,|\;|\:)\s*/,
                       $env{'course.'.$fromcid.'.languages'}));
       } else {
           my %langhash = &getlangs($touname,$toudom);
           if ($langhash{'languages'} ne '') {
               @userlangs = split(/\s*(\,|\;|\:)\s*/,$langhash{'languages'});
           } else {
               my %domdefs = &Apache::lonnet::get_domain_defaults($toudom);
               if ($domdefs{'lang_def'} ne '') {
                   @userlangs = ($domdefs{'lang_def'});
               }
           }
       }
       my @languages=&Apache::lonlocal::get_genlanguages(@userlangs);
       my $user_lh = Apache::localize->get_handle(@languages);
       return $user_lh;
   }
   
   
 ###############################################################  ###############################################################
 ##               Student Answer Attempts                     ##  ##               Student Answer Attempts                     ##
 ###############################################################  ###############################################################
Line 3221  sub relative_to_absolute { Line 3240  sub relative_to_absolute {
     }      }
     $thisdir=~s-/[^/]*$--;      $thisdir=~s-/[^/]*$--;
     foreach my $link (@rlinks) {      foreach my $link (@rlinks) {
  unless (($link=~/^http:\/\//i) ||   unless (($link=~/^https?\:\/\//i) ||
  ($link=~/^\//) ||   ($link=~/^\//) ||
  ($link=~/^javascript:/i) ||   ($link=~/^javascript:/i) ||
  ($link=~/^mailto:/i) ||   ($link=~/^mailto:/i) ||
Line 3930  sub get_domainconf { Line 3949  sub get_domainconf {
         if (ref($domconfig{'login'}) eq 'HASH') {          if (ref($domconfig{'login'}) eq 'HASH') {
             if (keys(%{$domconfig{'login'}})) {              if (keys(%{$domconfig{'login'}})) {
                 foreach my $key (keys(%{$domconfig{'login'}})) {                  foreach my $key (keys(%{$domconfig{'login'}})) {
                     $designhash{$udom.'.login.'.$key}=$domconfig{'login'}{$key};                      if (ref($domconfig{'login'}{$key}) eq 'HASH') {
                           foreach my $img (keys(%{$domconfig{'login'}{$key}})) {
                               $designhash{$udom.'.login.'.$key.'_'.$img} = 
                                   $domconfig{'login'}{$key}{$img};
                           }
                       } else {
                           $designhash{$udom.'.login.'.$key}=$domconfig{'login'}{$key};
                       }
                 }                  }
             } else {              } else {
                 $legacy{'login'} = 1;                  $legacy{'login'} = 1;
Line 4263  ENDROLE Line 4289  ENDROLE
  .'<b>'.&mt('Construction Space').'</b>:&nbsp;'   .'<b>'.&mt('Construction Space').'</b>:&nbsp;'
  .'<form name="dirs" method="post" action="'.$formaction   .'<form name="dirs" method="post" action="'.$formaction
  .'" target="_top"><tt><b>'   .'" target="_top"><tt><b>'
  .&Apache::lonhtmlcommon::crumbs($uname.'/'.$parentpath,'_top','/priv','','+1',1)."<font size=\"+1\">$lastitem</font></b></tt><br />"   .&Apache::lonhtmlcommon::crumbs($uname.'/'.$parentpath,'_top','/priv','','+1',1)."<span class=\"LC_fontsize_big\">$lastitem</span></b></tt><br />"
  .&Apache::lonhtmlcommon::select_recent('construct','recent','this.form.action=this.form.recent.value;this.form.submit()')   .&Apache::lonhtmlcommon::select_recent('construct','recent','this.form.action=this.form.recent.value;this.form.submit()')
  .'</form>'   .'</form>'
  .&Apache::lonmenu::constspaceform();   .&Apache::lonmenu::constspaceform();
Line 4437  sub standard_css { Line 4463  sub standard_css {
     my $vlink  = &designparm($function.'.vlink', $domain);      my $vlink  = &designparm($function.'.vlink', $domain);
     my $link   = &designparm($function.'.link',  $domain);      my $link   = &designparm($function.'.link',  $domain);
   
       my $loginbg = &designparm('login.sidebg',$domain);
       my $bgcol = &designparm('login.bgcol',$domain);
       my $textcol = &designparm('login.textcol',$domain);
   
     my $sans                 = 'Verdana,Arial,Helvetica,sans-serif';      my $sans                 = 'Verdana,Arial,Helvetica,sans-serif';
     my $mono                 = 'monospace';      my $mono                 = 'monospace';
     my $data_table_head      = $tabbg;      my $data_table_head      = $tabbg;
Line 4454  sub standard_css { Line 4484  sub standard_css {
     my $mail_other_hover     = '#669999';      my $mail_other_hover     = '#669999';
     my $table_header         = '#DDDDDD';      my $table_header         = '#DDDDDD';
     my $feedback_link_bg     = '#BBBBBB';      my $feedback_link_bg     = '#BBBBBB';
       my $lg_border_color     = '#C8C8C8';
   
     my $border = ($env{'browser.type'} eq 'explorer' ||      my $border = ($env{'browser.type'} eq 'explorer' ||
   $env{'browser.type'} eq 'safari'     ) ? '0px 2px 0px 2px'    $env{'browser.type'} eq 'safari'     ) ? '0px 2px 0px 2px'
Line 4461  sub standard_css { Line 4492  sub standard_css {
   
   
     return <<END;      return <<END;
 h1, h2, h3, th { font-family: $sans }  body{
        font-family: $sans;
        line-height:130%;
        font-size:0.83em;
        color:$font;
     }
   a:link, a:visited { font-size:100%; }
   
 a:focus { color: red; background: yellow }   a:focus { color: red; background: yellow } 
 table.thinborder,  table.thinborder,
   
 table.thinborder tr th {  table.thinborder tr th {
   border-style: solid;    border-style: solid;
   border-width: 1px;    border-width: 1px;
     border-color: $lg_border_color;
   background: $tabbg;    background: $tabbg;
 }  }
 table.thinborder tr td {  table.thinborder tr td {
   border-style: solid;    border-style: solid;
   border-width: 1px    border-width: 1px;
     border-color: $lg_border_color;
 }  }
   
 form, .inline { display: inline; }  form, .inline { display: inline; }
 .center { text-align: center; }  
   .LC_center { text-align: center; }
   .LC_left { text-align:left; }
   .LC_right {text-align:right;}
   .LC_middle {vertical-align:middle;}
   .LC_top {vertical-align:top;}
   .LC_bottom {vertical-align:bottom;}
   
   /* just for tests */
   .LC_300Box { width:300px; }
   .LC_200Box {width:200px; }
   .LC_500Box {width:500px; }
   .LC_600Box {width:600px; }
   .LC_800Box {width:800px;}
   /* end */
   
 .LC_filename {font-family: $mono; white-space:pre;}  .LC_filename {font-family: $mono; white-space:pre;}
 .LC_error {  .LC_error {
   color: red;    color: red;
Line 4510  form, .inline { display: inline; } Line 4564  form, .inline { display: inline; }
 }  }
   
 .LC_internal_info {  .LC_internal_info {
   color: #999;    color: #999999;
 }  }
   
 table.LC_pastsubmission {  table.LC_pastsubmission {
Line 4538  table#LC_title_bar.LC_with_remote { Line 4592  table#LC_title_bar.LC_with_remote {
   border-collapse: collapse;    border-collapse: collapse;
   padding: 0px;    padding: 0px;
 }  }
   
 table.LC_docs_path {  table.LC_docs_path {
   width: 100%;    width: 100%;
   border: 0;    border: 0;
Line 4573  table#LC_title_bar td.LC_title_bar_role_ Line 4626  table#LC_title_bar td.LC_title_bar_role_
   padding: 0px;    padding: 0px;
 }  }
   
 table#LC_menubuttons_mainmenu {  table#LC_menubuttons img{
   width: 100%;  
   border: 0px;  
   border-spacing: 1px;  
   padding: 0px 1px;  
   margin: 0px;  
   border-collapse: separate;  
 }  
 table#LC_menubuttons img, table#LC_menubuttons_mainmenu img {  
   border: 0px;    border: 0px;
 }  }
 table#LC_top_nav td {  table#LC_top_nav td {
   background: $tabbg;    background: $tabbg;
   border: 0px;    border: 0px;
   font-size: small;    font-size: small;
     vertical-align:top;
     padding:2px 5px 2px 5px;
 }  }
 table#LC_top_nav td a, div#LC_top_nav a {  table#LC_top_nav td a, div#LC_top_nav a {
   color: $font;    color: $font;
Line 4632  table#LC_mainmenu td.LC_mainmenu_column Line 4679  table#LC_mainmenu td.LC_mainmenu_column
     vertical-align: top;      vertical-align: top;
 }  }
   
   .LC_fontsize_small
   {
    font-size: 70%;
   }
   
   .LC_fontsize_medium
   {
    font-size: 85%;
   }
   
   .LC_fontsize_large
   {
    font-size: 120%;
   }
   
   .LC_fontcolor_red
   {
    color: #FF0000;
   }
   
 .LC_menubuttons_inline_text {  .LC_menubuttons_inline_text {
   color: $font;    color: $font;
   font-family: $sans;    font-family: $sans;
   font-size: smaller;    font-size: 90%;
     padding-left:3px;
 }  }
   
 .LC_menubuttons_link {  .LC_menubuttons_link {
   text-decoration: none;    text-decoration: none;
 }  }
 #2008--9-5: new menu style sheet.Changed category  /*2008--9-5: new menu style sheet.Changed category*/
 .LC_menubuttons_category {  .LC_menubuttons_category {
   color: $font;    color: $font;
   background: $pgbg;    background: $pgbg;
Line 4651  table#LC_mainmenu td.LC_mainmenu_column Line 4719  table#LC_mainmenu td.LC_mainmenu_column
 }  }
   
 td.LC_menubuttons_text {  td.LC_menubuttons_text {
   width: 90%;    color: $font;
   color: $font;  
   font-family: $sans;  
 }  }
   
 td.LC_menubuttons_img {  
 }  
   
 .LC_current_location {  .LC_current_location {
   font-family: $sans;    font-family: $sans;
Line 4669  td.LC_menubuttons_img { Line 4734  td.LC_menubuttons_img {
   font-weight: bold;    font-weight: bold;
 }  }
   
 .LC_rolesmenu_is {  
   font-family: $sans;  
 }  
   
 .LC_rolesmenu_selected {  
   font-family: $sans;  
 }  
   
 .LC_rolesmenu_future {  
   font-family: $sans;  
 }  
   
   
 .LC_rolesmenu_will {  
   font-family: $sans;  
 }  
   
 .LC_rolesmenu_will_not {  
   font-family: $sans;  
 }  
   
 .LC_rolesmenu_expired {  
   font-family: $sans;  
 }  
   
 .LC_rolesinfo {  
   font-family: $sans;  
 }  
   
 .LC_dropadd_labeltext {  .LC_dropadd_labeltext {
   font-family: $sans;    font-family: $sans;
Line 4709  td.LC_menubuttons_img { Line 4746  td.LC_menubuttons_img {
 }  }
   
 .LC_roleslog_note {  .LC_roleslog_note {
   font-size: smaller;    font-size: small;
   }
   
   .LC_mail_functions {
       font-weight: bold;
 }  }
   
 table.LC_aboutme_port {  table.LC_aboutme_port {
Line 4742  table.LC_data_table tr th, table.LC_cale Line 4783  table.LC_data_table tr th, table.LC_cale
 table.LC_prior_tries tr th {  table.LC_prior_tries tr th {
   font-weight: bold;    font-weight: bold;
   background-color: $data_table_head;    background-color: $data_table_head;
   font-size: smaller;    font-size:90%;
   }
   table.LC_data_table tr.LC_info_row > td {
     background-color: #CCCCCC;
     font-weight: bold;
     text-align: left;
 }  }
 table.LC_data_table tr.LC_odd_row > td,   table.LC_data_table tr.LC_odd_row > td, 
   table.LC_pick_box tr > td.LC_odd_row,
 table.LC_aboutme_port tr td {  table.LC_aboutme_port tr td {
   background-color: $data_table_light;    background-color: $data_table_light;
   padding: 2px;    padding: 2px;
 }  }
 table.LC_data_table tr.LC_even_row > td,  table.LC_data_table tr.LC_even_row > td,
   table.LC_pick_box tr > td.LC_even_row,
 table.LC_aboutme_port tr.LC_even_row td {  table.LC_aboutme_port tr.LC_even_row td {
   background-color: $data_table_dark;    background-color: $data_table_dark;
     padding: 2px;
 }  }
 table.LC_data_table tr.LC_data_table_highlight td {  table.LC_data_table tr.LC_data_table_highlight td {
   background-color: $data_table_darker;    background-color: $data_table_darker;
Line 4774  table.LC_nested tr.LC_empty_row td { Line 4823  table.LC_nested tr.LC_empty_row td {
 table.LC_nested_outer tr th {  table.LC_nested_outer tr th {
   font-weight: bold;    font-weight: bold;
   background-color: $data_table_head;    background-color: $data_table_head;
   font-size: smaller;    font-size: small;
   border-bottom: 1px solid #000000;    border-bottom: 1px solid #000000;
 }  }
 table.LC_nested_outer tr td.LC_subheader {  table.LC_nested_outer tr td.LC_subheader {
Line 4785  table.LC_nested_outer tr td.LC_subheader Line 4834  table.LC_nested_outer tr td.LC_subheader
   text-align: right;    text-align: right;
 }  }
 table.LC_nested tr.LC_info_row td {  table.LC_nested tr.LC_info_row td {
   background-color: #CCC;    background-color: #CCCCCC;
   font-weight: bold;    font-weight: bold;
   font-size: small;    font-size: small;
   text-align: center;    text-align: center;
Line 4795  table.LC_nested_outer tr th.LC_left_item Line 4844  table.LC_nested_outer tr th.LC_left_item
   text-align: left;    text-align: left;
 }  }
 table.LC_nested td {  table.LC_nested td {
   background-color: #FFF;    background-color: #FFFFFF;
   font-size: small;    font-size: small;
 }  }
 table.LC_nested_outer tr th.LC_right_item,  table.LC_nested_outer tr th.LC_right_item,
Line 4806  table.LC_nested tr td.LC_right_item { Line 4855  table.LC_nested tr td.LC_right_item {
 }  }
   
 table.LC_nested tr.LC_odd_row td {  table.LC_nested tr.LC_odd_row td {
   background-color: #EEE;    background-color: #EEEEEE;
 }  }
   
 table.LC_createuser {  table.LC_createuser {
 }  }
   
 table.LC_createuser tr.LC_section_row td {  table.LC_createuser tr.LC_section_row td {
   font-size: smaller;    font-size: small;
 }  }
   
 table.LC_createuser tr.LC_info_row td  {  table.LC_createuser tr.LC_info_row td  {
   background-color: #CCC;    background-color: #CCCCCC;
   font-weight: bold;    font-weight: bold;
   text-align: center;    text-align: center;
 }  }
Line 4869  table.LC_mail_list tr.LC_mail_even { Line 4918  table.LC_mail_list tr.LC_mail_even {
 table.LC_mail_list tr.LC_mail_odd {  table.LC_mail_list tr.LC_mail_odd {
 }  }
   
   table.LC_data_table tr > td.LC_browser_file,
 table#LC_portfolio_actions {  table.LC_data_table tr > td.LC_browser_file_published {
   width: auto;    background: #CCFF88;
   background: $pgbg;  
   border: 0px;  
   border-spacing: 2px 2px;  
   padding: 0px;  
   margin: 0px;  
   border-collapse: separate;  
 }  
 table#LC_portfolio_actions td.LC_label {  
   background: $tabbg;  
   text-align: right;  
 }  }
 table#LC_portfolio_actions td.LC_value {  table.LC_data_table tr > td.LC_browser_file_locked,
   background: $tabbg;  table.LC_data_table tr > td.LC_browser_file_unpublished {
     background: #FFAA99;
 }  }
   table.LC_data_table tr > td.LC_browser_file_obsolete {
 table#LC_cstr_controls {    background: #AAAAAA;
   width: 100%;  
   border-collapse: collapse;  
 }  }
 table#LC_cstr_controls tr td {  table.LC_data_table tr > td.LC_browser_file_modified,
   border: 4px solid $pgbg;  table.LC_data_table tr > td.LC_browser_file_metamodified {
   padding: 4px;    background: #FFFF77;
   text-align: center;  
   background: $tabbg;  
 }  }
 table#LC_cstr_controls tr th {  table.LC_data_table tr.LC_browser_folder > td {
   border: 4px solid $pgbg;    background: #CCCCFF;
   background: $table_header;  
   text-align: center;  
   font-family: $sans;  
   font-size: smaller;  
 }  }
   
 table#LC_browser {  table.LC_data_table tr > td.LC_roles_is {
    /*  background: #77FF77; */
 }  }
 table#LC_browser tr th {  table.LC_data_table tr > td.LC_roles_future {
   background: $table_header;    background: #FFFF77;
 }  }
 table#LC_browser tr td {  table.LC_data_table tr > td.LC_roles_will {
   padding: 2px;    background: #FFAA77;
 }  }
 table#LC_browser tr.LC_browser_file,  table.LC_data_table tr > td.LC_roles_expired {
 table#LC_browser tr.LC_browser_file_published {    background: #FF7777;
   background: #CCFF88;  
 }  }
 table#LC_browser tr.LC_browser_file_locked,  table.LC_data_table tr > td.LC_roles_will_not {
 table#LC_browser tr.LC_browser_file_unpublished {    background: #AAFF77;
   background: #FFAA99;  
 }  }
 table#LC_browser tr.LC_browser_file_obsolete {  table.LC_data_table tr > td.LC_roles_selected {
   background: #AAAAAA;    background: #11CC55;
 }  
 table#LC_browser tr.LC_browser_file_modified,  
 table#LC_browser tr.LC_browser_file_metamodified {  
   background: #FFFF77;  
 }  
 table#LC_browser tr.LC_browser_folder {  
   background: #CCCCFF;  
 }  }
   
 span.LC_current_location {  span.LC_current_location {
   font-size: x-large;    font-size:larger;
   background: $pgbg;    background: $pgbg;
 }  }
   
Line 5032  table.LC_pick_box td.LC_pick_box_title { Line 5056  table.LC_pick_box td.LC_pick_box_title {
   background: $tabbg;    background: $tabbg;
   font-weight: bold;    font-weight: bold;
   text-align: right;    text-align: right;
     vertical-align: top;
   width: 184px;    width: 184px;
   padding: 8px;    padding: 8px;
 }  }
Line 5273  table.LC_docs_documents td.LC_docs_docum Line 5298  table.LC_docs_documents td.LC_docs_docum
   padding: 4px;    padding: 4px;
 }  }
   
 .LC_docs_course_commands div {  
   float: left;  
   border: 4px solid #AAAAAA;  
   padding: 4px;  
   background: #DDDDCC;  
 }  
   
 .LC_docs_entry_move {  .LC_docs_entry_move {
   border: 0px;    border: 0px;
   border-collapse: collapse;    border-collapse: collapse;
Line 5377  div.LC_clear_float_footer { Line 5395  div.LC_clear_float_footer {
 }  }
   
   
 div.LC_grade_select_mode {  
   font-family: $sans;  
 }  
 div.LC_grade_select_mode div div {  
   margin: 5px;  
 }  
 div.LC_grade_select_mode_selector {  
   margin: 5px;  
   float: left;  
 }  
 div.LC_grade_select_mode_selector_header {  
   font: bold medium $sans;  
 }  
 div.LC_grade_select_mode_type {  
   clear: left;  
 }  
   
 div.LC_grade_show_user {  div.LC_grade_show_user {
   margin-top: 20px;    margin-top: 20px;
   border: 1px solid black;    border: 1px solid black;
Line 5401  div.LC_grade_show_user { Line 5402  div.LC_grade_show_user {
 div.LC_grade_user_name {  div.LC_grade_user_name {
   background: #DDDDEE;    background: #DDDDEE;
   border-bottom: 1px solid black;    border-bottom: 1px solid black;
   font: bold large $sans;    font-weight: bold;
     font-size: large;
 }  }
 div.LC_grade_show_user_odd_row div.LC_grade_user_name {  div.LC_grade_show_user_odd_row div.LC_grade_user_name {
   background: #DDEEDD;    background: #DDEEDD;
Line 5420  div.LC_grade_show_problem_header, Line 5422  div.LC_grade_show_problem_header,
 div.LC_grade_submissions_header,  div.LC_grade_submissions_header,
 div.LC_grade_message_center_header,  div.LC_grade_message_center_header,
 div.LC_grade_assign_header {  div.LC_grade_assign_header {
   font: bold large $sans;    font-weight: bold;
     font-size: large;
 }  }
 div.LC_grade_show_problem_problem,  div.LC_grade_show_problem_problem,
 div.LC_grade_submissions_body,  div.LC_grade_submissions_body,
Line 5431  div.LC_grade_assign_body { Line 5434  div.LC_grade_assign_body {
   background: #FFFFFF;    background: #FFFFFF;
 }  }
 span.LC_grade_check_note {  span.LC_grade_check_note {
   font: normal medium $sans;    font-weight: normal;
     font-size: medium;
   display: inline;    display: inline;
   position: absolute;    position: absolute;
   right: 1em;    right: 1em;
Line 5441  table.LC_scantron_action { Line 5445  table.LC_scantron_action {
   width: 100%;    width: 100%;
 }  }
 table.LC_scantron_action tr th {  table.LC_scantron_action tr th {
   font: normal bold $sans;    font-weight:bold;
     font-style:normal;
 }  }
   .LC_edit_problem_header, 
 div.LC_edit_problem_header,   
 div.LC_edit_problem_footer {  div.LC_edit_problem_footer {
   font: normal medium $sans;    font-weight: normal;
     font-size:  medium;
   margin: 2px;    margin: 2px;
 }  }
 div.LC_edit_problem_header,  div.LC_edit_problem_header,
Line 5463  div.LC_edit_problem_header_edit_row { Line 5468  div.LC_edit_problem_header_edit_row {
   margin-bottom: 5px;    margin-bottom: 5px;
 }  }
 div.LC_edit_problem_header_title {  div.LC_edit_problem_header_title {
   font: larger bold $sans;    font-weight: bold;
     font-size: larger;
   background: $tabbg;    background: $tabbg;
   padding: 3px;    padding: 3px;
 }  }
 table.LC_edit_problem_header_title {  table.LC_edit_problem_header_title {
   font: larger bold $sans;    font-size: larger;
     font-weight:  bold;
   width: 100%;    width: 100%;
   border-color: $pgbg;    border-color: $pgbg;
   border-style: solid;    border-style: solid;
Line 5516  table#LC_mainmenu td.LC_mainmenu_col_fie Line 5523  table#LC_mainmenu td.LC_mainmenu_col_fie
   font-size: small;    font-size: small;
   font-weight: bold;    font-weight: bold;
 }  }
 fieldset#LC_mainmenu_fieldset {  
   margin:0px 10px 10px 0px;  
   
   div.LC_createcourse {
       margin: 10px 10px 10px 10px;
 }  }
   
 /* ---- Remove when done ----  /* ---- Remove when done ----
 # The following styles is part of the redesign of LON-CAPA and are  # The following styles is part of the redesign of LON-CAPA and are
 # subject to change during this project.  # subject to change during this project.
Line 5527  fieldset#LC_mainmenu_fieldset { Line 5535  fieldset#LC_mainmenu_fieldset {
 # changed or removed.  # changed or removed.
 # --------------------------*/  # --------------------------*/
   
   a:hover,
 body {  ol.LC_smallMenu a:hover,
  font-family: Tahoma, Arial,Helvetica,sans-serif;  ol#LC_MenuBreadcrumbs a:hover,
  font-size: 0.85em;  ol#LC_PathBreadcrumbs a:hover,
  line-height: 130%;  ul#LC_TabMainMenuContent a:hover,
  color: RGB(45, 45, 45);  .LC_FormSectionClearButton input:hover
 }  ul.LC_TabContent   li:hover a{
    color:#BF2317;
 a:link,a:visited {          text-decoration:none;
  /*color: RGB(0, 118, 127);*/  
  /*text-decoration: underline;*/  
 }  
   
 a:hover{  
  text-decoration:none;  
 }  }
 /*a:hover,  
 UL.smallMenu A:hover,  
 UL.MenuBreadcrumbs A:hover,  
 UL#TabMainMenuContent A:hover{  
  color: rgb(200, 10, 50);  
 }*/  
   
 h1 {   h1 { 
  padding:5px 10px 5px 20px;   padding:5px 10px 5px 20px;
  line-height:130%;   line-height:130%;
 }  }
 h2,h4,h6 {  
  /*color: RGB(0, 118, 127);*/  
 }  
 h2,h3,h4,h5,h6  h2,h3,h4,h5,h6
 {  {
 margin:5px 0px 5px 0px;   margin:5px 0px 5px 0px;
 line-height:130%;   padding:0px;
    line-height:130%;
 }  }
   .LC_hcell{
 .right {          padding:3px 15px 3px 15px;
  text-align: right;          margin:0px;
    background-color:$tabbg;
    border-bottom:solid 1px $lg_border_color;       
 }  }
   .LC_noBorder {
 .center {          border:0px;
  text-align: center;  
 }  }
   
 .left {  .LC_bgLightGrey{
  text-align: left;   background:URL(/adm/lonIcons/lightGreyBG.png) repeat-x left bottom;
 }  }
   
   
 .HeadRight {  /* Main Header with discription of Person, Course, etc. */
   .LC_HeadRight {
  text-align: right;   text-align: right;
  float: right;   float: right;
  margin: 0px;   margin: 0px;
  padding: 0px;   padding: 0px;
  right:0;          right:0;
         position:absolute;          position:absolute;
           overflow:hidden;
 }  }
   
 img {  p, .LC_ContentBox {
 /* border: 0px; */   padding: 10px;
 }  
   
 .personalBgColor {  
  background: RGB(237, 239, 0) url(images/headHighlight.png) repeat-y left top;  
 }  }
   .LC_FormSectionClearButton input {
 p {          background-color:transparent;        
  padding: 10px;          border:0px;
           cursor:pointer;
           text-decoration:underline;
 }  }
 DL,UL,Div,Fieldset {  
  /*margin: 10px;*/  
   dl,ul,div,fieldset {
    margin: 10px 10px 10px 0px;
  overflow:hidden;   overflow:hidden;
 }  }
 OL.smallMenu {  ol.LC_smallMenu, ol#LC_PathBreadcrumbs {
  margin: 0px 0px 0px 0px;   margin: 0px;
 }  }
   
 OL.smallMenu li {  ol.LC_smallMenu li {
  display: inline;   display: inline;
  padding: 5px 5px 0px 10px;   padding: 5px 5px 0px 10px;
  vertical-align: top;   vertical-align: top;
 }  }
   
 OL.smallMenu li img {  ol.LC_smallMenu li img {
  vertical-align: bottom;   vertical-align: bottom;
 }  }
   
 OL.smallMenu A {  ol.LC_smallMenu a {
  font-size: 90%;   font-size: 90%;
  color: RGB(80, 80, 80);   color: RGB(80, 80, 80);
  text-decoration: none;   text-decoration: none;
 }  }
   ol#LC_TabMainMenueContent, ul.LC_TabContent ,
 OL#TabMainMenuContent {  ul.LC_TabContentBigger {
    display:block;
  margin: 0px 0px 10px 0px;   list-style:none;
    margin: 0px;
  padding: 0px;   padding: 0px;
 }  }
   
 OL#TabMainMenuContent LI {  ol#LC_TabMainMenuContent li, ul.LC_TabContent li,
   ul.LC_TabContentBigger li{
  display: inline;   display: inline;
    border-right: solid 1px $lg_border_color;
    float:left;
    line-height:140%;
    white-space:nowrap;
   }
   ol#LC_TabMainMenuContent li{
  vertical-align: bottom;   vertical-align: bottom;
  border-bottom: solid 1px RGB(175, 175, 175);   border-bottom: solid 1px RGB(175, 175, 175);
  border-right: solid 1px RGB(175, 175, 175);   padding: 5px 10px 5px 10px;
  padding: 5px 15px 5px 15px;   margin-right:5px;
  margin-right:4px;   margin-bottom:3px;
  line-height: 140%;  
  font-weight: bold;   font-weight: bold;
  overflow:hidden;   background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top;
  background: RGB(211, 206, 205) URL(images/TabMenuBG.png) repeat-x left top;  
 }  }
   
 OL#TabMainMenuContent LI A {  ol#LC_TabMainMenuContent li a{
  color: RGB(47, 47, 47);   color: RGB(47, 47, 47);
  text-decoration: none;   text-decoration: none;
 }  }
   ul.LC_TabContent {
    min-height:1.6em;
    border-bottom:solid 1px $lg_border_color;
   }
   ul.LC_TabContent li{
    vertical-align:middle;
    padding:0px 10px 0px 10px;
    background-color:$lg_border_color;
   }
   ul.LC_TabContent li a, ul.LC_TabContent li{ 
    color:rgb(47,47,47);
    text-decoration:none;
    font-size:95%;
    font-weight:bold;
   }
   ul.LC_TabContent li:hover, ul.LC_TabContent li.active{
    background-color:#FFFFFF;
   }
   ul.LC_TabContentBigger li{
    vertical-align:bottom;
    border-top:solid 1px $lg_border_color;
    border-left:solid 1px $lg_border_color;
    padding:5px 10px 5px 10px;
    margin-left:2px;
    background:url(/adm/lonIcons/lightGreyBG.png) repeat-x left top;
   }
   ul.LC_TabContentBigger li:hover, ul.LC_TabContentBigger li.active{
    background:url(/adm/lonIcons/lightGreyBG.png) repeat-x right bottom;
   }
   ul.LC_TabContentBigger li, ul.LC_TabContentBigger li a{
    font-size:110%;
    font-weight:bold;
   }
   #LC_CourseDocuments, #LC_SupplementalCourseDocuments
   {
    margin:0px;
   }
   
 OL#TabMainMenuContent DIV.columnSection {  .LC_hideThis
  margin-bottom: 0px;  {
    display:none;
    visibility:hidden;
 }  }
   
 OL#MenuBreadcrumbs {  ol#LC_MenuBreadcrumbs, ol#LC_PathBreadcrumbs {
  border-top: solid 1px RGB(255, 255, 255);   border-top: solid 1px RGB(255, 255, 255);
  height: 20px;   height: 20px;
  line-height: 20px;   line-height: 20px;
Line 5656  OL#MenuBreadcrumbs { Line 5700  OL#MenuBreadcrumbs {
  margin: 0px 0px 30px 0px;   margin: 0px 0px 30px 0px;
  padding-left: 10px;   padding-left: 10px;
  list-style-position: inside;   list-style-position: inside;
  background: RGB(211, 206, 205) URL(images/TabMenuBG.png) repeat-x left   background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top;
  top;  
 }  }
   
 OL#MenuBreadcrumbs li {  ol#LC_MenuBreadcrumbs li, ol#LC_PathBreadcrumbs li {
  background: url(images/pfeil_white.png) no-repeat left center;  /*
    background: url(/adm/lonIcons/arrow_white.png) no-repeat left center;
   */
  display: inline;   display: inline;
  padding: 0px 0px 0px 10px;   padding: 0px 0px 0px 10px;
  vertical-align: bottom;   vertical-align: bottom;
  overflow:hidden;   overflow:hidden;
 }  }
   
 OL#MenuBreadcrumbs LI A {  ol#LC_MenuBreadcrumbs li a {
  text-decoration: none;   text-decoration: none;
  font-size:90%;   font-size:90%;
 }  }
   ol#LC_PathBreadcrumbs li a{
 h4.hcell {   text-decoration:none;
  padding: 3px 10px 3px 10px;   font-size:100%;
  margin: 0px;   font-weight:bold;
  background: RGB(0, 118, 127);  
  color: white;  
  border: outset 1px;  
 }  
   
 DIV.DivContentBoxSpecial  
 {  
  border: solid 1px RGB(100, 100, 100);  
 }  }
   .LC_ContentBoxSpecial
 FIELDSET  
 {  {
  /*width:78%;*/   border: solid 1px $lg_border_color;
 }  
 DIV.DivContentBox,  
 DIV.DivContentBoxSpecial {  
  width: 80%;  
  margin:10px;  
 }  }
   
 FIELDSET legend,DL DT {  dl.LC_ListStyleClean dt {
  font-weight: bold;  
  font-size: 110%;  
  /*padding-left: 0px;*/  
 /* margin-left: 0px;*/  
 }  
   
 DIV.DivImportant {  
  background: url(images/important.png) no-repeat center top;  
  padding: 100px 10px 10px 10px;  
  width: 200px;  
  border: double 4px RGB(200, 200, 200);  
 }  
   
   
   
 DL.ListStyleClean DT {  
  padding-right: 5px;   padding-right: 5px;
  display: table-header-group;   display: table-header-group;
 }  }
   
 DL.ListStyleClean DD {  dl.LC_ListStyleClean dd {
  display: table-row;   display: table-row;
 }  }
   
 .ListStyleClean,  .LC_ListStyleClean,
 .ListStyleSimple,  .LC_ListStyleSimple,
 .ListStyleNormal,  .LC_ListStyleNormal,
 .ListStyleNormal_Border,  .LC_ListStyleNormal_Border,
 .ListStyleSpecial  .LC_ListStyleSpecial
  {   {
  /*display:block; */   /*display:block; */
  width: 400px;  
  list-style-position: inside;   list-style-position: inside;
  list-style-type: none;   list-style-type: none;
  overflow: hidden;   overflow: hidden;
  padding: 0px;   padding: 0px;
 }  }
   
 .ListStyleClean li,  .LC_ListStyleSimple li,
 .ListStyleSimple li,  .LC_ListStyleSimple dd,
 .ListStyleSimple DD,  .LC_ListStyleNormal li,
 .ListStyleNormal li,  .LC_ListStyleNormal dd,
 .ListStyleNormal DD,  .LC_ListStyleSpecial li,
 .ListStyleSpecial li,  .LC_ListStyleSpecial dd
 .ListStyleSpecial DD  
  {   {
  margin: 0px;   margin: 0px;
  padding: 5px 5px 5px 10px;   padding: 5px 5px 5px 10px;
  clear: both;   clear: both;
  /*display:block;*/  
 }  }
   
 .ListStyleClean LI,  .LC_ListStyleClean li,
 .ListStyleClean DD {  .LC_ListStyleClean dd {
  padding-top: 0px;   padding-top: 0px;
  padding-bottom: 0px;   padding-bottom: 0px;
 }  }
   
 .ListStyleSimple DD,  .LC_ListStyleSimple dd,
 .ListStyleSimple LI{  .LC_ListStyleSimple li{
  border-bottom: solid 1px RGB(150, 150, 150);   border-bottom: solid 1px $lg_border_color;
 }  }
   
 .ListStyleSpecial LI,  .LC_ListStyleSpecial li,
 .ListStyleSpecial DD {  .LC_ListStyleSpecial dd {
  list-style-type: none;   list-style-type: none;
  background-color: RGB(220, 220, 220);   background-color: RGB(220, 220, 220);
  margin-bottom: 4px;   margin-bottom: 4px;
 }  }
   
 table.SimpleTable *{  table.LC_SimpleTable {
  padding:10px;   margin:5px;
    border:solid 1px $lg_border_color;
  }   }
   
 table.SimpleTable td {  table.LC_SimpleTable tr {
  vertical-align:top;   padding:0px;
  border:solid 1px RGB(210,210,210);   border:solid 1px $lg_border_color;
 }  }
 table.SimpleTable thead{  table.LC_SimpleTable thead{
  background:rgb(210,210,210);   background:rgb(220,220,220);
 }  }
   
 DIV.columnSection {  div.LC_columnSection {
  display: block;   display: block;
  clear: both;   clear: both;
  overflow: hidden;   overflow: hidden;
  margin:0px;   margin:0px;
 }  }
   
 DIV.columnSection>* {  div.LC_columnSection>* {
  float: left;   float: left;
  margin: 10px 20px 10px 0px;   margin: 10px 20px 10px 0px;
  overflow:hidden;   overflow:hidden;
 }  }
   div.LC_columnSection > .LC_ContentBox,
 DIV.columnSection>FIELDSET,  div.LC_columnSection > .LC_ContentBoxSpecial
 DIV.columnSection>DIV.DivContentBox,  
 DIV.columnSection>DIV.DivContentBoxSpecial  
  {   {
  width: 480px;   width: 400px;
   }
   
   .ContentBoxSpecialTemplate
   {
           border: solid 1px $lg_border_color;
   }
   .ContentBoxTemplate {
           padding:10px;
   }
   
   div.LC_columnSection > .ContentBoxTemplate,
   div.LC_columnSection > .ContentBoxSpecialTemplate
           {
           width: 600px;
   
   }
   
   .clear{
    clear: both;
    line-height: 0px;
    font-size: 0px;
    height: 0px;
 }  }
   
 .LC_loginpage_container {  .LC_loginpage_container {
Line 5813  DIV.columnSection>DIV.DivContentBoxSpeci Line 5845  DIV.columnSection>DIV.DivContentBoxSpeci
   
 .LC_loginpage_loginContainer {  .LC_loginpage_loginContainer {
  float:left;   float:left;
  width:60%;   width: 182px;
    border:1px solid #CCCCCC;
    background-color:$loginbg;
 }  }
   
   .LC_loginpage_loginContainer h2{
    margin-top:0;
    display:block;
    background:$bgcol;
    color:$textcol;
    padding-left:5px;
   }
 .LC_loginpage_loginInfo {  .LC_loginpage_loginInfo {
  margin-top:20px;  
  margin-left:20px;   margin-left:20px;
  float:left;   float:left;
  width:30%;   width:30%;
Line 5825  DIV.columnSection>DIV.DivContentBoxSpeci Line 5865  DIV.columnSection>DIV.DivContentBoxSpeci
  padding:10px;   padding:10px;
 }  }
   
   .LC_loginpage_loginDomain {
    margin-right:20px;
    width:20%;
    float:left;
    padding:10px;
   }
   
 .LC_loginpage_space {  .LC_loginpage_space {
  clear:both;   clear:both;
  margin-bottom:20px;   margin-bottom:20px;
  border-bottom: 1px solid #CCCCCC;   border-bottom: 1px solid #CCCCCC;
 }  }
   
 .LC_loginpage_fieldset{  
  border: 1px solid #CCCCCC;  
  margin: 0 auto;  
 }  
   
 .LC_loginpage_legend{  
  padding: 2px;  
  margin: 0px;  
  font-size:14px;  
  font-weight:bold;  
 }  
   
   
   
 END  END
 }  }
   
Line 6108  sub start_page { Line 6141  sub start_page {
     }      }
   
     if ($args->{'js_ready'}) {      if ($args->{'js_ready'}) {
  $result = &js_ready($result);   $result = &js_ready($result);
     }      }
     if ($args->{'html_encode'}) {      if ($args->{'html_encode'}) {
  $result = &html_encode($result);   $result = &html_encode($result);
     }      }
   
       if (exists($args->{'bread_crumbs'})) {
           &Apache::lonhtmlcommon::clear_breadcrumbs();
           if (ref($args->{'bread_crumbs'}) eq 'ARRAY') {         
               foreach my $crumb (@{$args->{'bread_crumbs'}}){
                   &Apache::lonhtmlcommon::add_breadcrumb($crumb);
               }
           }
           $result .= &Apache::lonhtmlcommon::breadcrumbs();
       }
   
     return $result;      return $result;
 }  }
   
Line 6259  sub simple_error_page { Line 6303  sub simple_error_page {
     }      }
   
     sub start_data_table_empty_row {      sub start_data_table_empty_row {
  $row_count[0]++;  # $row_count[0]++;
  return  '<tr class="LC_empty_row" >'."\n";;   return  '<tr class="LC_empty_row" >'."\n";;
     }      }
   
Line 6875  sub default_quota { Line 6919  sub default_quota {
         if ($inststatus ne '') {          if ($inststatus ne '') {
             my @statuses = split(/:/,$inststatus);              my @statuses = split(/:/,$inststatus);
             foreach my $item (@statuses) {              foreach my $item (@statuses) {
                 if ($quotahash{'quotas'}{$item} ne '') {                  if (ref($quotahash{'quotas'}{'defaultquota'}) eq 'HASH') {
                     if ($defquota eq '') {                      if ($quotahash{'quotas'}{'defaultquota'}{$item} ne '') {
                         $defquota = $quotahash{'quotas'}{$item};                          if ($defquota eq '') {
                         $settingstatus = $item;                              $defquota = $quotahash{'quotas'}{'defaultquota'}{$item};
                     } elsif ($quotahash{'quotas'}{$item} > $defquota) {                              $settingstatus = $item;
                         $defquota = $quotahash{'quotas'}{$item};                          } elsif ($quotahash{'quotas'}{'defaultquota'}{$item} > $defquota) {
                         $settingstatus = $item;                              $defquota = $quotahash{'quotas'}{'defaultquota'}{$item};
                               $settingstatus = $item;
                           }
                       }
                   } else {
                       if ($quotahash{'quotas'}{$item} ne '') {
                           if ($defquota eq '') {
                               $defquota = $quotahash{'quotas'}{$item};
                               $settingstatus = $item;
                           } elsif ($quotahash{'quotas'}{$item} > $defquota) {
                               $defquota = $quotahash{'quotas'}{$item};
                               $settingstatus = $item;
                           }
                     }                      }
                 }                  }
             }              }
         }          }
         if ($defquota eq '') {          if ($defquota eq '') {
             $defquota = $quotahash{'quotas'}{'default'};              if (ref($quotahash{'quotas'}{'defaultquota'}) eq 'HASH') {
                   $defquota = $quotahash{'quotas'}{'defaultquota'}{'default'};
               } else {
                   $defquota = $quotahash{'quotas'}{'default'};
               }
             $settingstatus = 'default';              $settingstatus = 'default';
         }          }
     } else {      } else {
Line 7683  sub upload_embedded { Line 7743  sub upload_embedded {
                                    '&nbsp;<a href="'.$url.'">'.                                     '&nbsp;<a href="'.$url.'">'.
                                    $orig_uploaded_filename.'</a><br />';                                     $orig_uploaded_filename.'</a><br />';
                     } else {                      } else {
                         $output .= '<font size="+2">'.                          $output .= '<span class=\"LC_fontsize_large\">'.
                                    &mt('View embedded file: [_1]','<a href="'.$url.'">'.                                     &mt('View embedded file: [_1]','<a href="'.$url.'">'.
                                    $orig_uploaded_filename.'</a>').'</font><br />';                                     $orig_uploaded_filename.'</a>').'</span><br />';
                     }                      }
                 }                  }
                 close($fh);                  close($fh);
Line 7944  sub upfile_select_html { Line 8004  sub upfile_select_html {
 #                 xml   => &mt('HTML/XML'),  #                 xml   => &mt('HTML/XML'),
                  );                   );
     my $Str = '<input type="file" name="upfile" size="50" />'.      my $Str = '<input type="file" name="upfile" size="50" />'.
         '<br />Type: <select name="upfiletype">';          '<br />'.&mt('Type').': <select name="upfiletype">';
     foreach my $type (sort(keys(%Types))) {      foreach my $type (sort(keys(%Types))) {
         $Str .= '<option value="'.$type.'" >'.$Types{$type}."</option>\n";          $Str .= '<option value="'.$type.'" >'.$Types{$type}."</option>\n";
     }      }
Line 9368  sub construct_course { Line 9428  sub construct_course {
                    'policy.email',                     'policy.email',
                    'comment.email',                     'comment.email',
                    'pch.users.denied',                     'pch.users.denied',
                    'plc.users.denied'],                     'plc.users.denied',
                      'hidefromcat',
                      'categories'],
                    $$crsudom,$$crsunum);                     $$crsudom,$$crsunum);
     }      }
   
Line 9826  sub init_user_environment { Line 9888  sub init_user_environment {
     }      }
  }   }
   
           foreach my $tool ('aboutme','blog','portfolio') {
               $userenv{'availabletools.'.$tool} = 
                   &Apache::lonnet::usertools_access($username,$domain,$tool,'reload');
           }
   
  $env{'user.environment'} = "$lonids/$cookie.id";   $env{'user.environment'} = "$lonids/$cookie.id";
   
  if (tie(my %disk_env,'GDBM_File',"$lonids/$cookie.id",   if (tie(my %disk_env,'GDBM_File',"$lonids/$cookie.id",
Line 9838  sub init_user_environment { Line 9905  sub init_user_environment {
     }      }
     untie(%disk_env);      untie(%disk_env);
  } else {   } else {
     &Apache::lonnet::logthis("<font color=\"blue\">WARNING: ".      &Apache::lonnet::logthis("<span style=\"color:blue;\">WARNING: ".
    'Could not create environment storage in lonauth: '.$!.'</font>');     'Could not create environment storage in lonauth: '.$!.'</span>');
     return 'error: '.$!;      return 'error: '.$!;
  }   }
     }      }
Line 9864  sub _add_to_env { Line 9931  sub _add_to_env {
 # --- Get the symbolic name of a problem and the url  # --- Get the symbolic name of a problem and the url
 sub get_symb {  sub get_symb {
     my ($request,$silent) = @_;      my ($request,$silent) = @_;
     (my $url=$env{'form.url'}) =~ s-^http://($ENV{'SERVER_NAME'}|$ENV{'HTTP_HOST'})--;      (my $url=$env{'form.url'}) =~ s-^https?\://($ENV{'SERVER_NAME'}|$ENV{'HTTP_HOST'})--;
     my $symb=($env{'form.symb'} ne '' ? $env{'form.symb'} : (&Apache::lonnet::symbread($url)));      my $symb=($env{'form.symb'} ne '' ? $env{'form.symb'} : (&Apache::lonnet::symbread($url)));
     if ($symb eq '') {      if ($symb eq '') {
         if (!$silent) {          if (!$silent) {
Line 9891  sub get_annotation { Line 9958  sub get_annotation {
 }  }
   
 sub clean_symb {  sub clean_symb {
     my ($symb) = @_;      my ($symb,$delete_enc) = @_;
   
     &Apache::lonenc::check_decrypt(\$symb);      &Apache::lonenc::check_decrypt(\$symb);
     my $enc = $env{'request.enc'};      my $enc = $env{'request.enc'};
     delete($env{'request.enc'});      if ($delete_enc) {
           delete($env{'request.enc'});
       }
   
     return ($symb,$enc);      return ($symb,$enc);
 }  }

Removed from v.1.694  
changed lines
  Added in v.1.744


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