Diff for /loncom/interface/loncommon.pm between versions 1.731 and 1.788

version 1.731, 2009/01/08 19:46:43 version 1.788, 2009/04/21 10:44:04
Line 406  sub studentbrowser_javascript { Line 406  sub studentbrowser_javascript {
          || ($env{'request.role'}=~/^(au|dc|su)/)           || ($env{'request.role'}=~/^(au|dc|su)/)
           ) { return ''; }              ) { return ''; }  
    return (<<'ENDSTDBRW');     return (<<'ENDSTDBRW');
 <script type="text/javascript" language="Javascript" >  <script type="text/javascript" language="Javascript">
     var stdeditbrowser;      var stdeditbrowser;
     function openstdbrowser(formname,uname,udom,roleflag,ignorefilter) {      function openstdbrowser(formname,uname,udom,roleflag,ignorefilter) {
         var url = '/adm/pickstudent?';          var url = '/adm/pickstudent?';
Line 452  sub selectstudent_link { Line 452  sub selectstudent_link {
   
 sub authorbrowser_javascript {  sub authorbrowser_javascript {
     return <<"ENDAUTHORBRW";      return <<"ENDAUTHORBRW";
 <script type="text/javascript">  <script type="text/javascript" language="JavaScript">
 var stdeditbrowser;  var stdeditbrowser;
   
 function openauthorbrowser(formname,udom) {  function openauthorbrowser(formname,udom) {
Line 473  sub coursebrowser_javascript { Line 473  sub coursebrowser_javascript {
     my ($domainfilter,$sec_element,$formname)=@_;      my ($domainfilter,$sec_element,$formname)=@_;
     my $crs_or_grp_alert = &mt('Please select the type of LON-CAPA entity - Course or Group - for which you wish to add/modify a user role');      my $crs_or_grp_alert = &mt('Please select the type of LON-CAPA entity - Course or Group - for which you wish to add/modify a user role');
    my $output = '     my $output = '
 <script type="text/javascript">  <script type="text/javascript" language="JavaScript">
     var stdeditbrowser;'."\n";      var stdeditbrowser;'."\n";
    $output .= <<"ENDSTDBRW";     $output .= <<"ENDSTDBRW";
     function opencrsbrowser(formname,uname,udom,desc,extra_element,multflag,crstype) {      function opencrsbrowser(formname,uname,udom,desc,extra_element,multflag,crstype) {
Line 602  function setSect(sectionlist) { Line 602  function setSect(sectionlist) {
   
 sub selectcourse_link {  sub selectcourse_link {
    my ($form,$unameele,$udomele,$desc,$extra_element,$multflag,$selecttype)=@_;     my ($form,$unameele,$udomele,$desc,$extra_element,$multflag,$selecttype)=@_;
    return "<a href='".'javascript:opencrsbrowser("'.$form.'","'.$unameele.     return '<span class="LC_nobreak">'
         '","'.$udomele.'","'.$desc.'","'.$extra_element.'","'.$multflag.'","'.$selecttype.'");'."'>".&mt('Select Course')."</a>";           ."<a href='"
            .'javascript:opencrsbrowser("'.$form.'","'.$unameele
            .'","'.$udomele.'","'.$desc.'","'.$extra_element
            .'","'.$multflag.'","'.$selecttype.'");'
            ."'>".&mt('Select Course').'</a>'
            .'</span>';
 }  }
   
 sub selectauthor_link {  sub selectauthor_link {
Line 796  sub linked_select_forms { Line 801  sub linked_select_forms {
     my $first = "document.$formname.$firstselectname";      my $first = "document.$formname.$firstselectname";
     # output the javascript to do the changing      # output the javascript to do the changing
     my $result = '';      my $result = '';
     $result.="<script type=\"text/javascript\">\n";      $result.='<script type="text/javascript" language="JavaScript">'."\n";
     $result.="var select2data = new Object();\n";      $result.="var select2data = new Object();\n";
     $" = '","';      $" = '","';
     my $debug = '';      my $debug = '';
Line 923  sub help_open_topic { Line 928  sub help_open_topic {
     }      }
   
     # Add the text      # Add the text
     if ($text ne "") {      if ($text ne "") {
  $template .=    $template.='<span class="LC_help_open_topic">'
             "<table bgcolor='#3333AA' cellspacing='1' cellpadding='1' border='0'><tr>".                    .'<a target="_top" href="'.$link.'">'
             "<td bgcolor='#5555FF'><a target=\"_top\" href=\"$link\"><span style=\"color:#FFFFFF;font-size:10pt;\">$text</span></a>";                    .$text.'</a>';
     }      }
   
     # Add the graphic      # (Always) Add the graphic
     my $title = &mt('Online Help');      my $title = &mt('Online Help');
     my $helpicon=&lonhttpdurl("/adm/help/help.png");      my $helpicon=&lonhttpdurl("/adm/help/help.png");
     $template .= <<"ENDTEMPLATE";      $template.=' <a target="_top" href="'.$link.'" title="'.$title.'">'
  <a target="_top" href="$link" title="$title"><img src="$helpicon" border="0" alt="(Help: $topic)" /></a>                .'<img src="'.$helpicon.'" border="0"'
 ENDTEMPLATE                .' alt="'.&mt('Help: [_1]',$topic).'"'
     if ($text ne '') { $template.='</td></tr></table>' };                .' title="'.$title.'"' 
                 .' /></a>';
       if ($text ne "") {
           $template.='</span>';
       }
     return $template;      return $template;
   
 }  }
Line 943  ENDTEMPLATE Line 952  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 = '<span>'.&Apache::loncommon::help_open_topic($topic,&mt($text),
        undef, undef, 600) .         undef, undef, 600).
    '</td><td>';     '</span> ';
     }      }
     return '<table><tr><td>'.      $out = '<span>' # Start cheatsheet
  $addOther .    .$addOther
  &Apache::loncommon::help_open_topic("Greek_Symbols",&mt('Greek Symbols'),            .'<span>'
     undef,undef,600)    .&Apache::loncommon::help_open_topic('Greek_Symbols',&mt('Greek Symbols'),
  .'</td><td>'.         undef,undef,600)
  &Apache::loncommon::help_open_topic("Other_Symbols",&mt('Other Symbols'),    .'</span> <span>'
     undef,undef,600)    .&Apache::loncommon::help_open_topic('Other_Symbols',&mt('Other Symbols'),
  .'</td><td>'.         undef,undef,600)
  &Apache::loncommon::help_open_topic("Authoring_Output_Tags",&mt('Output Tags'),    .'</span>';
                                     undef,undef,600)      unless ($not_author) {
  .'</td></tr></table>';          $out .= ' <span>'
          .&Apache::loncommon::help_open_topic('Authoring_Output_Tags',&mt('Output Tags'),
                                               undef,undef,600)
          .'</span>';
       }
       $out .= '</span>'; # End cheatsheet
       return $out;
 }  }
   
 sub general_help {  sub general_help {
Line 1629  sub multiple_select_form { Line 1645  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 1740  sub select_level_form { Line 1756  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 1765  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 2109  sub authform_kerberos { Line 2131  sub authform_kerberos {
         $autharg,$jscall);          $autharg,$jscall);
     my ($authnum,%can_assign) =  &get_assignable_auth($in{'domain'});      my ($authnum,%can_assign) =  &get_assignable_auth($in{'domain'});
     if ($in{'kerb_def_auth'} eq 'krb5') {      if ($in{'kerb_def_auth'} eq 'krb5') {
        $check5 = ' checked="on"';         $check5 = ' checked="checked"';
     } else {      } else {
        $check4 = ' checked="on"';         $check4 = ' checked="checked"';
     }      }
     $krbarg = $in{'kerb_def_dom'};      $krbarg = $in{'kerb_def_dom'};
     if (defined($in{'curr_authtype'})) {      if (defined($in{'curr_authtype'})) {
         if ($in{'curr_authtype'} eq 'krb') {          if ($in{'curr_authtype'} eq 'krb') {
             $krbcheck = ' checked="on"';              $krbcheck = ' checked="checked"';
             if (defined($in{'mode'})) {              if (defined($in{'mode'})) {
                 if ($in{'mode'} eq 'modifyuser') {                  if ($in{'mode'} eq 'modifyuser') {
                     $krbcheck = '';                      $krbcheck = '';
Line 2124  sub authform_kerberos { Line 2146  sub authform_kerberos {
             }              }
             if (defined($in{'curr_kerb_ver'})) {              if (defined($in{'curr_kerb_ver'})) {
                 if ($in{'curr_krb_ver'} eq '5') {                  if ($in{'curr_krb_ver'} eq '5') {
                     $check5 = ' checked="on"';                      $check5 = ' checked="checked"';
                     $check4 = '';                      $check4 = '';
                 } else {                  } else {
                     $check4 = ' checked="on"';                      $check4 = ' checked="checked"';
                     $check5 = '';                      $check5 = '';
                 }                  }
             }              }
Line 2148  sub authform_kerberos { Line 2170  sub authform_kerberos {
         }          }
     } else {      } else {
         if ($authnum == 1) {          if ($authnum == 1) {
             $authtype = '<input type="hidden" name="login" value="krb">';              $authtype = '<input type="hidden" name="login" value="krb" />';
         }          }
     }      }
     if (!$can_assign{'krb4'} && !$can_assign{'krb5'}) {      if (!$can_assign{'krb4'} && !$can_assign{'krb5'}) {
Line 2157  sub authform_kerberos { Line 2179  sub authform_kerberos {
         if (defined($in{'mode'})) {          if (defined($in{'mode'})) {
             if ($in{'mode'} eq 'modifycourse') {              if ($in{'mode'} eq 'modifycourse') {
                 if ($authnum == 1) {                  if ($authnum == 1) {
                     $authtype = '<input type="hidden" name="login" value="krb">';                      $authtype = '<input type="hidden" name="login" value="krb" />';
                 }                  }
             }              }
         }          }
Line 2218  sub authform_internal{ Line 2240  sub authform_internal{
     if (defined($in{'curr_authtype'})) {      if (defined($in{'curr_authtype'})) {
         if ($in{'curr_authtype'} eq 'int') {          if ($in{'curr_authtype'} eq 'int') {
             if ($can_assign{'int'}) {              if ($can_assign{'int'}) {
                 $intcheck = 'checked="on" ';                  $intcheck = 'checked="checked" ';
                 if (defined($in{'mode'})) {                  if (defined($in{'mode'})) {
                     if ($in{'mode'} eq 'modifyuser') {                      if ($in{'mode'} eq 'modifyuser') {
                         $intcheck = '';                          $intcheck = '';
Line 2234  sub authform_internal{ Line 2256  sub authform_internal{
         }          }
     } else {      } else {
         if ($authnum == 1) {          if ($authnum == 1) {
             $authtype = '<input type="hidden" name="login" value="int">';              $authtype = '<input type="hidden" name="login" value="int" />';
         }          }
     }      }
     if (!$can_assign{'int'}) {      if (!$can_assign{'int'}) {
Line 2243  sub authform_internal{ Line 2265  sub authform_internal{
         if (defined($in{'mode'})) {          if (defined($in{'mode'})) {
             if ($in{'mode'} eq 'modifycourse') {              if ($in{'mode'} eq 'modifycourse') {
                 if ($authnum == 1) {                  if ($authnum == 1) {
                     $authtype = '<input type="hidden" name="login" value="int">';                      $authtype = '<input type="hidden" name="login" value="int" />';
                 }                  }
             }              }
         }          }
Line 2273  sub authform_local{ Line 2295  sub authform_local{
     if (defined($in{'curr_authtype'})) {      if (defined($in{'curr_authtype'})) {
         if ($in{'curr_authtype'} eq 'loc') {          if ($in{'curr_authtype'} eq 'loc') {
             if ($can_assign{'loc'}) {              if ($can_assign{'loc'}) {
                 $loccheck = 'checked="on" ';                  $loccheck = 'checked="checked" ';
                 if (defined($in{'mode'})) {                  if (defined($in{'mode'})) {
                     if ($in{'mode'} eq 'modifyuser') {                      if ($in{'mode'} eq 'modifyuser') {
                         $loccheck = '';                          $loccheck = '';
Line 2289  sub authform_local{ Line 2311  sub authform_local{
         }          }
     } else {      } else {
         if ($authnum == 1) {          if ($authnum == 1) {
             $authtype = '<input type="hidden" name="login" value="loc">';              $authtype = '<input type="hidden" name="login" value="loc" />';
         }          }
     }      }
     if (!$can_assign{'loc'}) {      if (!$can_assign{'loc'}) {
Line 2298  sub authform_local{ Line 2320  sub authform_local{
         if (defined($in{'mode'})) {          if (defined($in{'mode'})) {
             if ($in{'mode'} eq 'modifycourse') {              if ($in{'mode'} eq 'modifycourse') {
                 if ($authnum == 1) {                  if ($authnum == 1) {
                     $authtype = '<input type="hidden" name="login" value="loc">';                      $authtype = '<input type="hidden" name="login" value="loc" />';
                 }                  }
             }              }
         }          }
Line 2327  sub authform_filesystem{ Line 2349  sub authform_filesystem{
     if (defined($in{'curr_authtype'})) {      if (defined($in{'curr_authtype'})) {
         if ($in{'curr_authtype'} eq 'fsys') {          if ($in{'curr_authtype'} eq 'fsys') {
             if ($can_assign{'fsys'}) {              if ($can_assign{'fsys'}) {
                 $fsyscheck = 'checked="on" ';                  $fsyscheck = 'checked="checked" ';
                 if (defined($in{'mode'})) {                  if (defined($in{'mode'})) {
                     if ($in{'mode'} eq 'modifyuser') {                      if ($in{'mode'} eq 'modifyuser') {
                         $fsyscheck = '';                          $fsyscheck = '';
Line 2340  sub authform_filesystem{ Line 2362  sub authform_filesystem{
         }          }
     } else {      } else {
         if ($authnum == 1) {          if ($authnum == 1) {
             $authtype = '<input type="hidden" name="login" value="fsys">';              $authtype = '<input type="hidden" name="login" value="fsys" />';
         }          }
     }      }
     if (!$can_assign{'fsys'}) {      if (!$can_assign{'fsys'}) {
Line 2349  sub authform_filesystem{ Line 2371  sub authform_filesystem{
         if (defined($in{'mode'})) {          if (defined($in{'mode'})) {
             if ($in{'mode'} eq 'modifycourse') {              if ($in{'mode'} eq 'modifycourse') {
                 if ($authnum == 1) {                  if ($authnum == 1) {
                     $authtype = '<input type="hidden" name="login" value="fsys">';                      $authtype = '<input type="hidden" name="login" value="fsys" />';
                 }                  }
             }              }
         }          }
Line 2798  sub aboutmewrapper { Line 2820  sub aboutmewrapper {
         return;          return;
     }      }
     return '<a href="/adm/'.$domain.'/'.$username.'/aboutme"'.      return '<a href="/adm/'.$domain.'/'.$username.'/aboutme"'.
  ($target?' target="$target"':'').' title="'.&mt("View this user's personal page").'">'.$link.'</a>';   ($target?' target="$target"':'').' title="'.&mt("View this user's personal information page").'">'.$link.'</a>';
 }  }
   
 # ------------------------------------------------------------ Syllabus Wrapper  # ------------------------------------------------------------ Syllabus Wrapper
Line 2830  sub track_student_link { Line 2852  sub track_student_link {
  &help_open_topic('View_recent_activity');   &help_open_topic('View_recent_activity');
 }  }
   
   sub slot_reservations_link {
       my ($linktext,$sname,$sdom,$target) = @_;
       my $link ="/adm/slotrequest?command=showresv&amp;origin=aboutme";
       my $title = 'View slot reservation history';
       if (defined($sname) && $sname !~ /^\s*$/ &&
           defined($sdom)  && $sdom  !~ /^\s*$/) {
           $link .= "&amp;uname=$sname&amp;udom=$sdom";
           $title .= ' of this student';
       }
       if (defined($target) && $target !~ /^\s*$/) {
           $target = qq{target="$target"};
       } else {
           $target = '';
       }
       $title = &mt($title);
       $linktext = &mt($linktext);
       return qq{<a href="$link" title="$title" $target>$linktext</a>};
   # FIXME uncomment when help item created: &help_open_topic('Slot_Reservation_History');
   
   }
   
 # ===================================================== Display a student photo  # ===================================================== Display a student photo
   
   
Line 3067  sub languages { Line 3110  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 3782  sub blocking_status { Line 3848  sub blocking_status {
                              &Apache::lonnet::coursedescription($course);                               &Apache::lonnet::coursedescription($course);
                         $coursedesc = $courseinfo{'description'};                          $coursedesc = $courseinfo{'description'};
                     }                      }
                     $category = "Group files in the course '$coursedesc'";                      $category = "Group portfolio in the course '$coursedesc'";
                 } else {                  } else {
                     $category = 'Portfolio files belonging to ';                      $category = 'Portfolio files belonging to ';
                     if ($env{'user.name'} eq 'public' &&                       if ($env{'user.name'} eq 'public' && 
Line 4211  $realm&nbsp; Line 4277  $realm&nbsp;
 </td>  </td>
 ENDROLE  ENDROLE
   
     my $titleinfo = '<span class="LC_title_bar_title">'.$title.'</span>';      my $titleinfo = '<h1>'.$title.'</h1>';
     if ($customtitle) {      if ($customtitle) {
         $titleinfo = $customtitle;          $titleinfo = $customtitle;
     }      }
Line 4465  body{ Line 4531  body{
   }    }
 a:link, a:visited { font-size:100%; }  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;
Line 4481  table.thinborder tr td { Line 4547  table.thinborder tr td {
   
 form, .inline { display: inline; }  form, .inline { display: inline; }
   
 .LC_center { text-align: center; }  
 .LC_left { text-align:left; }  
 .LC_right {text-align:right;}  .LC_right {text-align:right;}
 .LC_middle {vertical-align:middle;}  .LC_middle {vertical-align:middle;}
 .LC_top {vertical-align:top;}  
 .LC_bottom {vertical-align:bottom;}  
   
 /* just for tests */  /* just for tests */
 .LC_300Box { width:300px; }  .LC_400Box {width:400px; }
 .LC_200Box {width:200px; }  
 .LC_500Box {width:500px; }  
 .LC_600Box {width:600px; }  
 /* end */  /* end */
   
 .LC_filename {font-family: $mono; white-space:pre;}  .LC_filename {
     font-family: $mono;
     white-space:pre;
   }
   
   .LC_fileicon {
     border: none;
     height: 1.3em;
     vertical-align: text-bottom;
     margin-right: 0.3em;
     text-decoration:none;
   }
   
 .LC_error {  .LC_error {
   color: red;    color: red;
   font-size: larger;    font-size: larger;
 }  }
 .LC_warning,  .LC_warning,
 .LC_diff_removed {  .LC_diff_removed {
       color: red;
 }  }
   
 .LC_info,  .LC_info,
Line 4515  form, .inline { display: inline; } Line 4586  form, .inline { display: inline; }
 }  }
   
 .LC_icon {  .LC_icon {
   border: 0px;    border: none;
 }  }
   
 .LC_indexer_icon {  .LC_indexer_icon {
   border: 0px;    border: 0px;
   height: 22px;    height: 22px;
Line 4524  form, .inline { display: inline; } Line 4596  form, .inline { display: inline; }
 .LC_docs_spacer {  .LC_docs_spacer {
   width: 25px;    width: 25px;
   height: 1px;    height: 1px;
   border: 0px;    border: none;
 }  }
   
 .LC_internal_info {  .LC_internal_info {
   color: #999;    color: #999999;
 }  }
   
 table.LC_pastsubmission {  table.LC_pastsubmission {
Line 4544  table#LC_top_nav, table#LC_menubuttons,t Line 4616  table#LC_top_nav, table#LC_menubuttons,t
   padding: 0px;    padding: 0px;
 }  }
   
 table#LC_title_bar, table.LC_breadcrumbs,   table#LC_title_bar, table.LC_breadcrumbs,
 table#LC_title_bar.LC_with_remote {  table#LC_title_bar.LC_with_remote {
   width: 100%;    width: 100%;
   border-color: $pgbg;    border-color: $pgbg;
Line 4568  table.LC_docs_path { Line 4640  table.LC_docs_path {
 table#LC_title_bar td {  table#LC_title_bar td {
   background: $tabbg;    background: $tabbg;
 }  }
 table#LC_title_bar td.LC_title_bar_who {  table#LC_title_bar .LC_title_bar_who {
   background: $tabbg;    background: $tabbg;
   color: $font;    color: $font;
   font: small $sans;    font: small $sans;
   text-align: right;    text-align: right;
     margin: 0px;
   }
   table#LC_title_bar .LC_title_bar_name {
     margin: 0px;
   }
   table#LC_title_bar .LC_title_bar_role {
     margin: 0px;
   }
   table#LC_title_bar .LC_title_bar_realm {
     margin: 0px;
 }  }
 span.LC_metadata {  span.LC_metadata {
     font-family: $sans;      font-family: $sans;
 }  }
 span.LC_title_bar_title {  
   font: bold x-large $sans;  
 }  
 table#LC_title_bar td.LC_title_bar_domain_logo {  table#LC_title_bar td.LC_title_bar_domain_logo {
   background: $sidebg;    background: $sidebg;
   text-align: right;    text-align: right;
Line 4658  table#LC_mainmenu td.LC_mainmenu_column Line 4737  table#LC_mainmenu td.LC_mainmenu_column
  font-size: 120%;   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;
Line 4683  table#LC_mainmenu td.LC_mainmenu_column Line 4757  table#LC_mainmenu td.LC_mainmenu_column
 }  }
   
 td.LC_menubuttons_text {  td.LC_menubuttons_text {
   color: $font;    color: $font;
 }  }
   
   
Line 4750  table.LC_prior_tries tr th { Line 4824  table.LC_prior_tries tr th {
   font-size:90%;    font-size:90%;
 }  }
 table.LC_data_table tr.LC_info_row > td {  table.LC_data_table tr.LC_info_row > td {
   background-color: #CCC;    background-color: #CCCCCC;
   font-weight: bold;    font-weight: bold;
   text-align: left;    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_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;
Line 4798  table.LC_nested_outer tr td.LC_subheader Line 4872  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 4808  table.LC_nested_outer tr th.LC_left_item Line 4882  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 4819  table.LC_nested tr td.LC_right_item { Line 4893  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 {
Line 4830  table.LC_createuser tr.LC_section_row td Line 4904  table.LC_createuser tr.LC_section_row td
 }  }
   
 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 4852  table.LC_calendar tr td.LC_calendar_day_ Line 4926  table.LC_calendar tr td.LC_calendar_day_
 table.LC_calendar tr td.LC_calendar_day_current {  table.LC_calendar tr td.LC_calendar_day_current {
   background-color: $data_table_highlight;    background-color: $data_table_highlight;
 }  }
   
 table.LC_mail_list tr.LC_mail_new {  table.LC_mail_list tr.LC_mail_new {
   background-color: $mail_new;    background-color: $mail_new;
 }  }
 table.LC_mail_list tr.LC_mail_new:hover {  table.LC_mail_list tr.LC_mail_new:hover {
   background-color: $mail_new_hover;    background-color: $mail_new_hover;
 }  }
   table.LC_mail_list tr.LC_mail_even{
   }
   table.LC_mail_list tr.LC_mail_odd{
   }
 table.LC_mail_list tr.LC_mail_read {  table.LC_mail_list tr.LC_mail_read {
   background-color: $mail_read;    background-color: $mail_read;
 }  }
Line 4877  table.LC_mail_list tr.LC_mail_other { Line 4954  table.LC_mail_list tr.LC_mail_other {
 table.LC_mail_list tr.LC_mail_other:hover {  table.LC_mail_list tr.LC_mail_other:hover {
   background-color: $mail_other_hover;    background-color: $mail_other_hover;
 }  }
 table.LC_mail_list tr.LC_mail_even {  
 }  
 table.LC_mail_list tr.LC_mail_odd {  
 }  
   
 table.LC_data_table tr > td.LC_browser_file,  table.LC_data_table tr > td.LC_browser_file,
 table.LC_data_table tr > td.LC_browser_file_published {  table.LC_data_table tr > td.LC_browser_file_published {
Line 4948  span.LC_parm_folder, span.LC_parm_symb { Line 5021  span.LC_parm_folder, span.LC_parm_symb {
 }  }
   
 td.LC_parm_overview_level_menu, td.LC_parm_overview_map_menu,  td.LC_parm_overview_level_menu, td.LC_parm_overview_map_menu,
 td.LC_parm_overview_parm_selectors, td.LC_parm_overview_parm_restrictions {  td.LC_parm_overview_parm_selectors,td.LC_parm_overview_restrictions  {
   border: 1px solid black;    border: 1px solid black;
   border-collapse: collapse;    border-collapse: collapse;
 }  }
Line 5020  table.LC_pick_box td.LC_pick_box_title { Line 5093  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 5159  table.LC_descriptive_input td.LC_descrip Line 5233  table.LC_descriptive_input td.LC_descrip
 div.LC_feedback_link {  div.LC_feedback_link {
   clear: both;    clear: both;
   background: white;    background: white;
   width: 100%;      width: 100%;
 }  }
 span.LC_feedback_link {  span.LC_feedback_link {
   background: $feedback_link_bg;    background: $feedback_link_bg;
Line 5190  table.LC_prior_tries td { Line 5264  table.LC_prior_tries td {
   background: #FFAAAA ! important;    background: #FFAAAA ! important;
   color: black;    color: black;
 }  }
 .LC_answer_not_charged_try,   .LC_answer_not_charged_try,
 .LC_answer_no_grade,  .LC_answer_no_grade,
 .LC_answer_late {  .LC_answer_late {
   background: #FFFFAA;    background: #FFFFAA;
Line 5208  table.LC_prior_tries td { Line 5282  table.LC_prior_tries td {
   background: orange;    background: orange;
   color: black;    color: black;
 }  }
   
   
 span.LC_prior_numerical,  span.LC_prior_numerical,
 span.LC_prior_string,  span.LC_prior_string,
 span.LC_prior_custom,  span.LC_prior_custom,
Line 5237  table.LC_prior_match tr td { Line 5309  table.LC_prior_match tr td {
   border: 1px solid #000000;    border: 1px solid #000000;
 }  }
   
   td.LC_nobreak,
 span.LC_nobreak {  span.LC_nobreak {
   white-space: nowrap;    white-space: nowrap;
 }  }
Line 5255  table.LC_docs_documents { Line 5328  table.LC_docs_documents {
   border-width: 0px;    border-width: 0px;
   border-collapse: collapse;    border-collapse: collapse;
 }  }
   
 table.LC_docs_documents td.LC_docs_document {  table.LC_docs_documents td.LC_docs_document {
   border: 2px solid black;    border: 2px solid black;
   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 5340  table.LC_double_column tr td.LC_left_col Line 5404  table.LC_double_column tr td.LC_left_col
   
 table.LC_double_column tr td.LC_right_col {  table.LC_double_column tr td.LC_right_col {
   top: 2px;    top: 2px;
   right: 2px;     right: 2px;
   width: 47%;    width: 47%;
   vertical-align: top;    vertical-align: top;
 }  }
Line 5418  table.LC_scantron_action tr th { Line 5482  table.LC_scantron_action tr th {
   font-weight:bold;    font-weight:bold;
   font-style:normal;    font-style:normal;
 }  }
 .LC_edit_problem_header,   .LC_edit_problem_header,
 div.LC_edit_problem_footer {  div.LC_edit_problem_footer {
   font-weight: normal;    font-weight: normal;
   font-size:  medium;    font-size:  medium;
Line 5493  table#LC_mainmenu td.LC_mainmenu_col_fie Line 5557  table#LC_mainmenu td.LC_mainmenu_col_fie
   font-size: small;    font-size: small;
   font-weight: bold;    font-weight: bold;
 }  }
   
 div.LC_createcourse {  div.LC_createcourse {
     margin: 10px 10px 10px 10px;      margin: 10px 10px 10px 10px;
 }  }
Line 5516  ul.LC_TabContent   li:hover a{ Line 5579  ul.LC_TabContent   li:hover a{
         text-decoration:none;          text-decoration:none;
 }  }
   
 h1 {   h1 {
  padding:5px 10px 5px 20px;   padding:5px 10px 5px 20px;
  line-height:130%;   line-height:130%;
 }  }
Line 5531  h2,h3,h4,h5,h6 Line 5594  h2,h3,h4,h5,h6
         padding:3px 15px 3px 15px;          padding:3px 15px 3px 15px;
         margin:0px;          margin:0px;
  background-color:$tabbg;   background-color:$tabbg;
  border-bottom:solid 1px $lg_border_color;          border-bottom:solid 1px $lg_border_color;
 }  }
 .LC_noBorder {  .LC_noBorder {
         border:0px;          border:0px;
 }  }
   
 .LC_bgLightGrey{  
  background:URL(/adm/lonIcons/lightGreyBG.png) repeat-x left top;   
 }  
 .LC_bgLightGreyYellow {  
  background-color:#EFECE0;  
 }  
   
 /* Main Header with discription of Person, Course, etc. */  /* Main Header with discription of Person, Course, etc. */
 .LC_HeadRight {  
  text-align: right;  .LC_Right {
  float: right;          float: right;
  margin: 0px;          margin: 0px;
  padding: 0px;          padding: 0px;
         right:0;  
         position:absolute;  
         overflow:hidden;  
 }  }
   
 p, .LC_ContentBox {  p, .LC_ContentBox {
Line 5560  p, .LC_ContentBox { Line 5614  p, .LC_ContentBox {
   
 }  }
 .LC_FormSectionClearButton input {  .LC_FormSectionClearButton input {
                  background-color:transparent;
         border:0px;          border:0px;
         cursor:pointer;          cursor:pointer;
         text-decoration:underline;          text-decoration:underline;
 }  }
   
   .LC_help_open_topic {
           color: #FFFFFF;
           background-color: #EEEEFF;
           margin: 1px;
           padding: 4px;
           border: 1px solid #000033;
           white-space: nowrap;
   /* vertical-align: middle; */
   }
   
 dl,ul,div,fieldset {  dl,ul,div,fieldset {
  margin: 10px 10px 10px 0px;   margin: 10px 10px 10px 0px;
Line 5590  ol.LC_smallMenu a { Line 5653  ol.LC_smallMenu a {
  color: RGB(80, 80, 80);   color: RGB(80, 80, 80);
  text-decoration: none;   text-decoration: none;
 }  }
   ol#LC_TabMainMenuContent, ul.LC_TabContent ,
 ol#LC_TabMainMenuContent {  ul.LC_TabContentBigger {
  display:block;   display:block;
  list-style:none;   list-style:none;
  margin: 0px 0px 10px 0px;   margin: 0px;
  padding: 0px;   padding: 0px;
 }  }
   
 ol#LC_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 10px 5px 10px;
  margin-right:3px;   margin-right:5px;
  line-height: 140%;   margin-bottom:3px;
  font-weight: bold;   font-weight: bold;
  white-space:nowrap;  
  background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top;   background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top;
 }  }
   
Line 5616  ol#LC_TabMainMenuContent li a{ Line 5684  ol#LC_TabMainMenuContent li a{
  text-decoration: none;   text-decoration: none;
 }  }
 ul.LC_TabContent {  ul.LC_TabContent {
  margin:0px;   min-height:1.6em;
  padding:0px;  
  display:block;  
  list-style:none;  
  min-height:1.5em;  
 }  }
 ul.LC_TabContent li{  ul.LC_TabContent li{
  display:inline;   vertical-align:middle;
  vertical-align:top;   padding:0px 10px 0px 10px;
    background-color:$tabbg;
  border-bottom:solid 1px $lg_border_color;   border-bottom:solid 1px $lg_border_color;
  border-right:solid 1px $lg_border_color;  
  padding:5px 10px 5px 10px;  
  margin-right:2px;  
  background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top;  
 }  }
 ul.LC_TabContent li a, ul.LC_TabContent li{  ul.LC_TabContent li a, ul.LC_TabContent li{
  color:rgb(47,47,47);   color:rgb(47,47,47);
  text-decoration:none;   text-decoration:none;
  font-size:95%;   font-size:95%;
  font-weight:bold;   font-weight:bold;
  white-space:nowrap;   padding-right: 16px;
 }  }
 .LC_hideThis  ul.LC_TabContent li:hover, ul.LC_TabContent li.active{
 {          background:#FFFFFF url(/adm/lonIcons/open.gif) no-repeat scroll right center;
  display:none;   border-bottom:solid 1px #FFFFFF;
  visibility:hidden;   padding-right: 16px;
   }
   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;
 }  }
   
 ol#LC_MenuBreadcrumbs, ol#LC_PathBreadcrumbs {  ol#LC_MenuBreadcrumbs, ol#LC_PathBreadcrumbs, ul.LC_CourseBreadcrumbs{
  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 5655  ol#LC_MenuBreadcrumbs, ol#LC_PathBreadcr Line 5731  ol#LC_MenuBreadcrumbs, ol#LC_PathBreadcr
  background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top;   background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top;
 }  }
   
 ol#LC_MenuBreadcrumbs li, ol#LC_PathBreadcrumbs li {  ol#LC_MenuBreadcrumbs li, ol#LC_PathBreadcrumbs li, ul.LC_CourseBreadcrumbs li {
   /*
  background: url(/adm/lonIcons/arrow_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#LC_MenuBreadcrumbs li a {  ol#LC_MenuBreadcrumbs li a, ul.LC_CourseBreadcrumbs li a {
  text-decoration: none;   text-decoration: none;
  font-size:90%;   font-size:90%;
 }  }
Line 5672  ol#LC_PathBreadcrumbs li a{ Line 5750  ol#LC_PathBreadcrumbs li a{
  font-size:100%;   font-size:100%;
  font-weight:bold;   font-weight:bold;
 }  }
   .LC_BoxPadding
   {
    padding: 10px;
   }
 .LC_ContentBoxSpecial  .LC_ContentBoxSpecial
 {  {
  border: solid 1px $lg_border_color;   border: solid 1px $lg_border_color;
 }  }
 .LC_PopUp  .LC_ContentBoxSpecialContactInfo
 {  {
  padding:10px;   border: solid 1px $lg_border_color;
  border-left:solid 1px $lg_border_color;   max-width:25%;
   border-top:solid 1px $lg_border_color;   min-width:25%;
  border-bottom:outset 1px $lg_border_color;  }
  border-right:outset 1px $lg_border_color;  .LC_AboutMe_Image
  display:none;  {
  position:absolute;   float:left;
  right:0;   margin-right:10px;
  background-color:white;  }
  z-index:5;  .LC_Clear_AboutMe_Image
   {
    clear:left;
 }  }
   
 dl.LC_ListStyleClean dt {  dl.LC_ListStyleClean dt {
  padding-right: 5px;   padding-right: 5px;
  display: table-header-group;   display: table-header-group;
Line 5702  dl.LC_ListStyleClean dd { Line 5785  dl.LC_ListStyleClean dd {
 .LC_ListStyleClean,  .LC_ListStyleClean,
 .LC_ListStyleSimple,  .LC_ListStyleSimple,
 .LC_ListStyleNormal,  .LC_ListStyleNormal,
 .LC_ListStyleNormal_Border,  .LC_ListStyle_Border,
 .LC_ListStyleSpecial  .LC_ListStyleSpecial
  {   {
  /*display:block; */   /*display:block; */
Line 5765  div.LC_columnSection { Line 5848  div.LC_columnSection {
 div.LC_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.LC_columnSection > .LC_ContentBoxSpecial  
  {  
  width: 400px;  
 }  }
   
 .ContentBoxSpecialTemplate  .ContentBoxSpecialTemplate
Line 5785  div.LC_columnSection > .ContentBoxTempla Line 5863  div.LC_columnSection > .ContentBoxTempla
 div.LC_columnSection > .ContentBoxSpecialTemplate  div.LC_columnSection > .ContentBoxSpecialTemplate
         {          {
         width: 600px;          width: 600px;
   
 }  }
   
 .clear{  .clear{
Line 5798  div.LC_columnSection > .ContentBoxSpecia Line 5875  div.LC_columnSection > .ContentBoxSpecia
 .LC_loginpage_container {  .LC_loginpage_container {
  text-align:left;   text-align:left;
  margin : 0 auto;   margin : 0 auto;
  width:65%;   width:90%;
  padding: 10px;   padding: 10px;
  height: auto;   height: auto;
  background-color:#FFFFFF;   background-color:#FFFFFF;
Line 5809  div.LC_columnSection > .ContentBoxSpecia Line 5886  div.LC_columnSection > .ContentBoxSpecia
 .LC_loginpage_loginContainer {  .LC_loginpage_loginContainer {
  float:left;   float:left;
  width: 182px;   width: 182px;
    padding: 2px;
  border:1px solid #CCCCCC;   border:1px solid #CCCCCC;
  background-color:$loginbg;   background-color:$loginbg;
 }  }
Line 5820  div.LC_columnSection > .ContentBoxSpecia Line 5898  div.LC_columnSection > .ContentBoxSpecia
  color:$textcol;   color:$textcol;
  padding-left:5px;   padding-left:5px;
 }  }
   
 .LC_loginpage_loginInfo {  .LC_loginpage_loginInfo {
  margin-left:20px;  
  float:left;   float:left;
  width:30%;   width:182px;
  border:1px solid #CCCCCC;   border:1px solid #CCCCCC;
  padding:10px;   padding:2px;
 }  
   
 .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{  .LC_loginpage_floatLeft {
  border: 1px solid #CCCCCC;   float: left;
  margin: 0 auto;   width: 200px;
    margin: 0;
 }  }
   
 .LC_loginpage_legend{  table em{
  padding: 2px;   font-weight: bold;
  margin: 0px;   font-style: normal;
  font-size:14px;  }
  font-weight:bold;  table.LC_tableBrowseRes,
   table.LC_tableOfContent{
           border:none;
    border-spacing: 1;
    padding: 3px;
    background-color: #FFFFFF;
    font-size: 90%;
   }
   table.LC_tableBrowseRes a,
   table.LC_tableOfContent a {
           background-color: transparent;
    text-decoration: none;
   }
   
   table.LC_tableBrowseRes tr.LC_trOdd,
   table.LC_tableOfContent tr.LC_trOdd{
    background-color: #EEEEEE;
   }
   
   table.LC_tableOfContent img{
    border: none;
    height: 1.3em;
    vertical-align: text-bottom;
    margin-right: 0.3em;
   }
   
   a#LC_content_toolbar_firsthomework{
    background-image:url(/res/adm/pages/open-first-problem.gif);
   }
   
   a#LC_content_toolbar_launchnav{
    background-image:url(/res/adm/pages/start-navigation.gif);
   }
   
   a#LC_content_toolbar_closenav{
    background-image:url(/res/adm/pages/close-navigation.gif);
   }
   
   a#LC_content_toolbar_everything{
    background-image:url(/res/adm/pages/show-all.gif);
   }
   
   a#LC_content_toolbar_uncompleted{
    background-image:url(/res/adm/pages/show-incomplete-problems.gif);
   }
   
   #LC_content_toolbar_clearbubbles{
    background-image:url(/res/adm/pages/mark-discussionentries-read.gif);
   }
   
   a#LC_content_toolbar_changefolder{
    background : url(/res/adm/pages/close-all-folders.gif) top center ;
   }
   
   a#LC_content_toolbar_changefolder_toggled{
    background-image:url(/res/adm/pages/open-all-folders.gif);
   }
   
   ul#LC_toolbar li a:hover{
    background-position: bottom center;
   }
   
   ul#LC_toolbar{
    padding:0;
    margin: 2px;
    list-style:none;
    position:relative;
    background-color:white;
   }
   
   ul#LC_toolbar li{
    border:1px solid white;
    padding:0;
    margin: 0;
       float: left;
    display:inline;
    vertical-align:middle;
   }
   
   
   a.LC_toolbarItem{
    display:block;
    padding:0;
    margin:0;
    height: 32px;
    width: 32px;
    color:white;
    border:0 none;
    background-repeat:no-repeat;
    background-color:transparent;
   }
   
   ul.LC_functionslist li {
     float: left;
     white-space: nowrap;
     height: 35px; /* at least as high as heighest list item */
     margin: 0px 15px 15px 10px;
 }  }
   
   
Line 6123  sub start_page { Line 6291  sub start_page {
  $result = &html_encode($result);   $result = &html_encode($result);
     }      }
   
     if (exists($args->{'bread_crumbs'})) {   #Breadcrumbs
         &Apache::lonhtmlcommon::clear_breadcrumbs();      if (exists($args->{'bread_crumbs'}) or exists($args->{'bread_crumbs_component'})) {
         if (ref($args->{'bread_crumbs'}) eq 'ARRAY') {            &Apache::lonhtmlcommon::clear_breadcrumbs();
             foreach my $crumb (@{$args->{'bread_crumbs'}}){   #if any br links exists, add them to the breadcrumbs
                 &Apache::lonhtmlcommon::add_breadcrumb($crumb);   if (exists($args->{'bread_crumbs'}) and ref($args->{'bread_crumbs'}) eq 'ARRAY') {         
             }   foreach my $crumb (@{$args->{'bread_crumbs'}}){
         }   &Apache::lonhtmlcommon::add_breadcrumb($crumb);
         $result .= &Apache::lonhtmlcommon::breadcrumbs();   }
     }   }
   
    #if bread_crumbs_component exists show it as headline else show only the breadcrumbs
    if(exists($args->{'bread_crumbs_component'})){
    $result .= &Apache::lonhtmlcommon::breadcrumbs($args->{'bread_crumbs_component'});
    }else{
    $result .= &Apache::lonhtmlcommon::breadcrumbs();
    }
       }
     return $result;      return $result;
 }  }
   
Line 6881  If the user's status includes multiple t Line 7056  If the user's status includes multiple t
 the largest default quota which applies to the user determines the  the largest default quota which applies to the user determines the
 default quota returned.  default quota returned.
   
   =back
   
 =cut  =cut
   
 ###############################################  ###############################################
Line 6893  sub default_quota { Line 7070  sub default_quota {
                                             ['quotas'],$udom);                                              ['quotas'],$udom);
     if (ref($quotahash{'quotas'}) eq 'HASH') {      if (ref($quotahash{'quotas'}) eq 'HASH') {
         if ($inststatus ne '') {          if ($inststatus ne '') {
             my @statuses = split(/:/,$inststatus);              my @statuses = map { &unescape($_); } split(/:/,$inststatus);
             foreach my $item (@statuses) {              foreach my $item (@statuses) {
                 if (ref($quotahash{'quotas'}{'defaultquota'}) eq 'HASH') {                  if (ref($quotahash{'quotas'}{'defaultquota'}) eq 'HASH') {
                     if ($quotahash{'quotas'}{'defaultquota'}{$item} ne '') {                      if ($quotahash{'quotas'}{'defaultquota'}{$item} ne '') {
Line 7359  sub personal_data_fieldtitles { Line 7536  sub personal_data_fieldtitles {
                         middlename => 'Middle Name',                          middlename => 'Middle Name',
                         generation => 'Generation',                          generation => 'Generation',
                         gen => 'Generation',                          gen => 'Generation',
                           inststatus => 'Affiliation',
                    );                     );
     return %fieldtitles;      return %fieldtitles;
 }  }
Line 7428  sub get_institutional_codes { Line 7606  sub get_institutional_codes {
   
 =pod  =pod
   
   =head1 Slot Helpers
   
   =over 4
   
   =item * sorted_slots()
   
   Sorts an array of slot names in order of slot start time (earliest first). 
   
   Inputs:
   
   =over 4
   
   slotsarr  - Reference to array of unsorted slot names.
   
   slots     - Reference to hash of hash, where outer hash keys are slot names.
   
   =back
   
   Returns:
   
   =over 4
   
   sorted   - An array of slot names sorted by the start time of the slot.
   
   =back
   
 =back  =back
   
   =cut
   
   
   sub sorted_slots {
       my ($slotsarr,$slots) = @_;
       my @sorted;
       if ((ref($slotsarr) eq 'ARRAY') && (ref($slots) eq 'HASH')) {
           @sorted =
               sort {
                        if (ref($slots->{$a}) && ref($slots->{$b})) {
                            return $slots->{$a}{'starttime'} <=> $slots->{$b}{'starttime'}
                        }
                        if (ref($slots->{$a})) { return -1;}
                        if (ref($slots->{$b})) { return 1;}
                        return 0;
                    } @{$slotsarr};
       }
       return @sorted;
   }
   
   
   =pod
   
 =head1 HTTP Helpers  =head1 HTTP Helpers
   
 =over 4  =over 4
Line 8724  sub restore_settings { Line 8951  sub restore_settings {
   
 =item * &build_recipient_list()  =item * &build_recipient_list()
   
 Build recipient lists for three types of e-mail:  Build recipient lists for four types of e-mail:
 (a) Error Reports, (b) Package Updates, (c) Help requests, generated by  (a) Error Reports, (b) Package Updates, (c) lonstatus warnings/errors
 lonerrorhandler.pm, CHECKRPMS and lonsupportreq.pm respectively.  (d) Help requests, generated by
   lonerrorhandler.pm, CHECKRPMS, loncron, and lonsupportreq.pm respectively.
   
 Inputs:  Inputs:
 defmail (scalar - email address of default recipient),   defmail (scalar - email address of default recipient), 
Line 8750  sub build_recipient_list { Line 8978  sub build_recipient_list {
     my %domconfig =      my %domconfig =
          &Apache::lonnet::get_dom('configuration',['contacts'],$defdom);           &Apache::lonnet::get_dom('configuration',['contacts'],$defdom);
     if (ref($domconfig{'contacts'}) eq 'HASH') {      if (ref($domconfig{'contacts'}) eq 'HASH') {
         if (ref($domconfig{'contacts'}{$mailing}) eq 'HASH') {          if (exists($domconfig{'contacts'}{$mailing})) {
             my @contacts = ('adminemail','supportemail');              if (ref($domconfig{'contacts'}{$mailing}) eq 'HASH') {
             foreach my $item (@contacts) {                  my @contacts = ('adminemail','supportemail');
                 if ($domconfig{'contacts'}{$mailing}{$item}) {                  foreach my $item (@contacts) {
                     my $addr = $domconfig{'contacts'}{$item};                       if ($domconfig{'contacts'}{$mailing}{$item}) {
                     if (!grep(/^\Q$addr\E$/,@recipients)) {                          my $addr = $domconfig{'contacts'}{$item}; 
                         push(@recipients,$addr);                          if (!grep(/^\Q$addr\E$/,@recipients)) {
                               push(@recipients,$addr);
                           }
                     }                      }
                       $otheremails = $domconfig{'contacts'}{$mailing}{'others'};
                 }                  }
                 $otheremails = $domconfig{'contacts'}{$mailing}{'others'};  
             }              }
           } elsif ($origmail ne '') {
               push(@recipients,$origmail);
         }          }
     } elsif ($origmail ne '') {      } elsif ($origmail ne '') {
         push(@recipients,$origmail);          push(@recipients,$origmail);
Line 9031  sub assign_categories_table { Line 9263  sub assign_categories_table {
                     my $checked = '';                      my $checked = '';
                     if (@currcategories > 0) {                      if (@currcategories > 0) {
                         if (grep(/^\Q$item\E$/,@currcategories)) {                          if (grep(/^\Q$item\E$/,@currcategories)) {
                             $checked = ' checked="checked" ';                              $checked = ' checked="checked"';
                         }                          }
                     }                      }
                     $output .= '<tr '.$css_class.'><td><span class="LC_nobreak">'.                      $output .= '<tr '.$css_class.'><td><span class="LC_nobreak">'.
Line 9097  sub assign_category_rows { Line 9329  sub assign_category_rows {
                     if (ref($currcategories) eq 'ARRAY') {                      if (ref($currcategories) eq 'ARRAY') {
                         if (@{$currcategories} > 0) {                          if (@{$currcategories} > 0) {
                             if (grep(/^\Q$item\E$/,@{$currcategories})) {                              if (grep(/^\Q$item\E$/,@{$currcategories})) {
                                 $checked = ' checked="checked" ';                                  $checked = ' checked="checked"';
                             }                              }
                         }                          }
                     }                      }
Line 9869  sub init_user_environment { Line 10101  sub init_user_environment {
                 &Apache::lonnet::usertools_access($username,$domain,$tool,'reload');                  &Apache::lonnet::usertools_access($username,$domain,$tool,'reload');
         }          }
   
           foreach my $crstype ('official','unofficial') {
               $userenv{'canrequest.'.$crstype} =
                   &Apache::lonnet::usertools_access($username,$domain,$crstype,
                                                     'reload','requestcourses');
           }
   
  $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",

Removed from v.1.731  
changed lines
  Added in v.1.788


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