Diff for /loncom/interface/loncommon.pm between versions 1.825 and 1.866

version 1.825, 2009/05/27 13:36:46 version 1.866, 2009/07/26 20:39:46
Line 483  ENDAUTHORBRW Line 483  ENDAUTHORBRW
   
 sub coursebrowser_javascript {  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 Community - for which you wish to add/modify a user role');
    my $output = '     my $output = '
 <script type="text/javascript" language="JavaScript">  <script type="text/javascript" language="JavaScript">
 // <![CDATA[  // <![CDATA[
Line 532  sub coursebrowser_javascript { Line 532  sub coursebrowser_javascript {
         if (multflag !=null && multflag != '') {          if (multflag !=null && multflag != '') {
             url += '&multiple='+multflag;              url += '&multiple='+multflag;
         }          }
         if (crstype == 'Course/Group') {          if (crstype == 'Course/Community') {
             if (formname == 'cu') {              if (formname == 'cu') {
                 crstype = document.cu.crstype.options[document.cu.crstype.selectedIndex].value;                   crstype = document.cu.crstype.options[document.cu.crstype.selectedIndex].value; 
                 if (crstype == "") {                  if (crstype == "") {
Line 3766  sub blockcheck { Line 3766  sub blockcheck {
                  ($env{'request.role'} !~ m{^st\./\Q$cdom\E/\Q$cnum\E}));                   ($env{'request.role'} !~ m{^st\./\Q$cdom\E/\Q$cnum\E}));
         next if ($no_userblock);          next if ($no_userblock);
   
         # Retrieve blocking times and identity of blocker for course          # Retrieve blocking times and identity of locker for course
         # of specified user, unless user has 'evb' privilege.          # of specified user, unless user has 'evb' privilege.
                   
         my ($start,$end)=&get_blocks($setters,$activity,$cdom,$cnum);          my ($start,$end)=&get_blocks($setters,$activity,$cdom,$cnum);
Line 3871  sub build_block_table { Line 3871  sub build_block_table {
     }      }
     $output .= &end_data_table();      $output .= &end_data_table();
 }  }
   
 sub blocking_status {  sub blocking_status {
     my $blocked = blocking_status_print(@_);
     my ($activity,$uname,$udom) = @_;
     if(!wantarray) {
       return $blocked;
     }
     my $output;
     my $querystring;
     $querystring = "?activity=$activity";
     if(defined($uname)) { 
       $querystring .= "&uname=$uname";
     }if(defined($udom)) {
       $querystring .= "&udom=$udom";
     }
   
         $output .= <<"END_MYBLOCK";
   <script type="text/javascript">
   // <![CDATA[
       function openWindow(url, wdwName, w, h, toolbar,scrollbar) {
           var options = "width=" + w + ",height=" + h + ",";
           options += "resizable=yes,scrollbars="+scrollbar+",status=no,";
           options += "menubar=no,toolbar="+toolbar+",location=no,directories=no";
           var newWin = window.open(url, wdwName, options);
           newWin.focus();
       }
   
   // ]]>
   </script>
   END_MYBLOCK
     my $popupUrl = "/adm/blockingstatus/$querystring";
     $output.="\n<img src='/res/adm/pages/emblem-readonly.png' /><a onclick='openWindow(\"$popupUrl\",\"Blocking Table\",600,300,\"no\",\"no\");return false;' href='/adm/blockingstatus/$querystring'>Blocking Table</a>";
   
     return ($blocked, $output);
   }
   sub blocking_status_print {
     my ($activity,$uname,$udom) = @_;      my ($activity,$uname,$udom) = @_;
     my %setters;      my %setters;
     my ($blocked,$output,$ownitem,$is_course);      my ($blocked,$output,$ownitem,$is_course);
Line 3883  sub blocking_status { Line 3916  sub blocking_status {
             my $category;              my $category;
             if ($activity eq 'boards') {              if ($activity eq 'boards') {
                 $category = 'Discussion posts in this course';                  $category = 'Discussion posts in this course';
               } elsif ($activity eq 'chat') {
                   $category = 'Chat';
               } elsif ($activity eq 'msgdisplay') {
                   $category = 'This message';
             } elsif ($activity eq 'blogs') {              } elsif ($activity eq 'blogs') {
                 $category = 'Blogs';                  $category = 'Blogs'; 
             } elsif ($activity eq 'port') {              } elsif ($activity eq 'port') {
                 if (defined($uname) && defined($udom)) {                  if (defined($uname) && defined($udom)) {
                     if ($uname eq $env{'user.name'} &&                      if ($uname eq $env{'user.name'} &&
Line 3914  sub blocking_status { Line 3951  sub blocking_status {
                 }                  }
             } elsif ($activity eq 'groups') {              } elsif ($activity eq 'groups') {
                 $category = 'Groups in this course';                  $category = 'Groups in this course';
               } else {
                   $category = 'Communication';
             }              }
             my $showstart = &Apache::lonlocal::locallocaltime($startblock);              my $showstart = &Apache::lonlocal::locallocaltime($startblock);
             my $showend = &Apache::lonlocal::locallocaltime($endblock);              my $showend = &Apache::lonlocal::locallocaltime($endblock);
Line 4183  sub designparm { Line 4222  sub designparm {
 ##############################################  ##############################################
 =pod  =pod
   
   =item * &authorspace()
   
   Inputs: ./.
   
   Returns: Path to the Construction Space of the current user's
            accessed author space
            The author space will be that of the current user
            when accessing the own author space
            and that of the co-author/assistent co-author
            when accessing the co-author's/assistent co-author's
            space
   
   =cut
   
   sub authorspace {
       my $caname = '';
       if ($env{'request.role'} =~ /^ca|^aa/) {
           (undef,$caname) =
               ($env{'request.role'}=~/($match_domain)\/($match_username)$/);
       } else {
           $caname = $env{'user.name'};
       }
       return '/priv/'.$caname.'/';
   }
   
   ##############################################
   =pod
   
 =item * &head_subbox()  =item * &head_subbox()
   
 Inputs: $content (contains HTML code with page functions, etc.)  Inputs: $content (contains HTML code with page functions, etc.)
Line 4195  Returns: HTML div with $content Line 4262  Returns: HTML div with $content
 sub head_subbox {  sub head_subbox {
     my ($content)=@_;      my ($content)=@_;
     my $output =      my $output =
         '<div id="LC_head_subbox2">' #FIXME: solve conflicts with lonhtmlcommon:breadcrumbs LC_head_subbox          '<div id="LC_head_subbox">'
        .$content         .$content
        .'</div>'         .'</div>'
 }  }
Line 4274  Inputs: Line 4341  Inputs:
 =item * $forcereg, if page should register as content page (relevant for   =item * $forcereg, if page should register as content page (relevant for 
             text interface only)              text interface only)
   
 =item * $customtitle, alternate text to use instead of $title  
                       in the title box that appears, this text  
                       is not auto translated like the $title is  
   
 =item * $no_nav_bar, if true, keep the 'what is this' info but remove the  =item * $no_nav_bar, if true, keep the 'what is this' info but remove the
                      navigational links                       navigational links
   
Line 4302  other decorations will be returned. Line 4365  other decorations will be returned.
 =cut  =cut
   
 sub bodytag {  sub bodytag {
     my ($title,$function,$addentries,$bodyonly,$domain,$forcereg,$customtitle,      my ($title,$function,$addentries,$bodyonly,$domain,$forcereg,
         $no_nav_bar,$bgcolor,$no_inline_link,$args)=@_;          $no_nav_bar,$bgcolor,$no_inline_link,$args)=@_;
   
     if (!$args->{'no_auto_mt_title'}) { $title = &mt($title); }      if (!$args->{'no_auto_mt_title'}) { $title = &mt($title); }
Line 4357  sub bodytag { Line 4420  sub bodytag {
  $name = &aboutmewrapper($name,$env{'user.name'},$env{'user.domain'});   $name = &aboutmewrapper($name,$env{'user.name'},$env{'user.domain'});
     }      }
           
     my $roleinfo=(<<ENDROLE);  
 <td class="LC_title_bar_who">  
 <div class="LC_title_bar_name">  
     $name  
     &nbsp;  
 </div>  
 <div class="LC_title_bar_role">  
 $role&nbsp;  
 </div>  
 <div class="LC_title_bar_realm">  
 $realm&nbsp;  
 </div>  
 </td>  
 ENDROLE  
   
     my $titleinfo = '<h1>'.$title.'</h1>';      my $titleinfo = '<h1>'.$title.'</h1>';
     if ($customtitle) {  
         $titleinfo = $customtitle;  
     }  
     #      #
     # Extra info if you are the DC      # Extra info if you are the DC
     my $dc_info = '';      my $dc_info = '';
Line 4388  ENDROLE Line 4433  ENDROLE
         $dc_info = '('.$dc_info.')';          $dc_info = '('.$dc_info.')';
     }      }
   
     if (($env{'environment.remote'} eq 'off') || ($args->{'suppress_header_logos'})) {      $role = "($role)" if $role;
       &get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['inhibitmenu']);
   
       if ($env{'environment.remote'} eq 'off') {
         # No Remote          # No Remote
  if ($env{'request.state'} eq 'construct') {   if ($env{'request.state'} eq 'construct') {
     $forcereg=1;      $forcereg=1;
  }   }
   
     if (!$customtitle && $env{'request.state'} eq 'construct') {  #    if ($env{'request.state'} eq 'construct') {
         $titleinfo = &CSTR_pageheader(); #FIXME: Will be removed once all scripts have their own calls  #        $titleinfo = &CSTR_pageheader(); #FIXME: Will be removed once all scripts have their own calls
     }  #    }
   
         my $titletable = '<table id="LC_title_bar">'          my $titletable = '<table id="LC_title_bar">'
                         ."<tr><td> $titleinfo $dc_info</td>".$roleinfo                          ."<tr><td> $titleinfo $dc_info</td>"
                         .'</tr></table>';                          .'</tr></table>';
   
  if ($no_nav_bar) {   if ($no_nav_bar) {
     $bodytag .= $titletable;      $bodytag .= $titletable;
  } else {   } else {
         $bodytag .= qq|<div id="LC_nav_bar">$name ($role)<br />          $bodytag .= qq|<div id="LC_nav_bar">$name $role<br />
             <em>$realm</em> $dc_info</div>|;              <em>$realm</em> $dc_info</div>| unless $env{'form.inhibitmenu'};
   
     if ($env{'request.state'} eq 'construct') {      if ($env{'request.state'} eq 'construct') {
                 $bodytag .= &Apache::lonmenu::menubuttons($forcereg,$forcereg,                  $bodytag .= &Apache::lonmenu::menubuttons($forcereg,$titletable);
   $titletable);  
             } else {              } else {
                 $bodytag .= &Apache::lonmenu::menubuttons($forcereg,$forcereg).                  $bodytag .= &Apache::lonmenu::menubuttons($forcereg).$titletable;
     $titletable;  
             }              }
         }          }
         return $bodytag;          return $bodytag;
Line 4430  ENDROLE Line 4477  ENDROLE
   
     # Explicit link to get inline menu      # Explicit link to get inline menu
     my $menu= ($no_inline_link?''      my $menu= ($no_inline_link?''
        :'<br /><a href="/adm/remote?action=collapse">'.&mt('Switch to Inline Menu Mode').'</a>');         :'<a href="/adm/remote?action=collapse">'.&mt('Switch to Inline Menu Mode').'</a>');
       $bodytag .= qq|<div id="LC_nav_bar">$name $role
               <em>$realm</em> $dc_info </div>
               <ol class="LC_smallMenu LC_right">
                   <li>$menu</li>
               </ol>| unless $env{'form.inhibitmenu'};
     #      #
     return(<<ENDBODY);      return(<<ENDBODY);
 $bodytag  $bodytag
Line 4439  $bodytag Line 4491  $bodytag
     <td>$messages&nbsp;</td>      <td>$messages&nbsp;</td>
 </tr>  </tr>
 <tr><td>$titleinfo $dc_info $menu</td>  <tr><td>$titleinfo $dc_info $menu</td>
 $roleinfo  
 </tr>  </tr>
 </table>  </table>
 ENDBODY  ENDBODY
Line 4561  sub standard_css { Line 4612  sub standard_css {
   
     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      = $sidebg;
     my $data_table_light     = '#EEEEEE';      my $data_table_light     = '#FAFAFA';
     my $data_table_dark      = '#DDDDDD';      my $data_table_dark      = '#F0F0F0';
     my $data_table_darker    = '#CCCCCC';      my $data_table_darker    = '#CCCCCC';
     my $data_table_highlight = '#FFFF00';      my $data_table_highlight = '#FFFF00';
     my $mail_new             = '#FFBB77';      my $mail_new             = '#FFBB77';
Line 4600  a:focus { Line 4651  a:focus {
   background: yellow     background: yellow 
 }  }
   
   hr {
     clear: both;
     color: $tabbg;
     background-color: $tabbg;
     height: 3px;
     border: none;
   }
   
 form, .inline {   form, .inline { 
    display: inline;      display: inline; 
 }  }
Line 4680  div.LC_confirm_box .LC_success img { Line 4739  div.LC_confirm_box .LC_success img {
   
 .LC_disc_action_links_bar {  .LC_disc_action_links_bar {
    background: $tabbg;     background: $tabbg;
    font-family: $sans;  
    border: none;     border: none;
    margin: 4px;     margin: 4px;
 }  }
Line 4723  table#LC_nav_location { Line 4781  table#LC_nav_location {
 table#LC_title_bar a {  table#LC_title_bar a {
   color: $fontmenu;    color: $fontmenu;
 }  }
       
 table#LC_title_bar {  table#LC_title_bar {
   clear: both;    clear: both;
   /*display: none;*/    display: none;
 }  }
   
 table#LC_title_bar,  table#LC_title_bar,
Line 4738  table#LC_title_bar.LC_with_remote { Line 4796  table#LC_title_bar.LC_with_remote {
   border-width: $border;    border-width: $border;
   background: $pgbg;    background: $pgbg;
   color: $fontmenu;    color: $fontmenu;
   font-family: $sans;  
   border-collapse: collapse;    border-collapse: collapse;
   padding: 0;    padding: 0;
   margin: 0;    margin: 0;
 }  }
   
 table.LC_docs_path {  
   width: 100%;  
   border: 0;  
   background: $pgbg;  
   font-family: $sans;  
   border-collapse: collapse;  
   padding: 0;  
 }  
   
 table#LC_title_bar td {  table#LC_title_bar td {
   background: $tabbg;    background: $tabbg;
 }  }
   
 table#LC_title_bar .LC_title_bar_who {  
   background: $tabbg;  
   color: $fontmenu;  
   font: small $sans;  
   text-align: right;  
   margin: 0;  
 }  
   
 table#LC_title_bar div.LC_title_bar_name {  
   margin: 0;  
 }  
   
 table#LC_title_bar div.LC_title_bar_role {  
   margin: 0;  
 }  
   
 table#LC_title_bar div.LC_title_bar_realm {  
   margin: 0;  
 }  
   
 table#LC_menubuttons img{  table#LC_menubuttons img{
   border: none;    border: none;
 }  }
Line 4792  table#LC_top_nav td { Line 4820  table#LC_top_nav td {
 table#LC_top_nav td a,  table#LC_top_nav td a,
 div#LC_top_nav a {  div#LC_top_nav a {
   color: $font;    color: $font;
   font-family: $sans;  
 }  }
   
 table#LC_top_nav td.LC_top_nav_logo {  table#LC_top_nav td.LC_top_nav_logo {
Line 4817  table#LC_top_nav td.LC_top_nav_login { Line 4844  table#LC_top_nav td.LC_top_nav_login {
   text-align: center;    text-align: center;
 }  }
   
 table.LC_breadcrumbs td,  .LC_breadcrumbs_component {
 table.LC_docs_path td  {      float: right;
   background: $tabbg;      margin: 0 1em;
   color: $fontmenu;  
   font-family: $sans;  
   font-size: smaller;  
 }  }
   .LC_breadcrumbs_component img {
 table.LC_breadcrumbs td.LC_breadcrumbs_component,      vertical-align: middle;
 table.LC_docs_path td.LC_docs_path_component {  
   background: $tabbg;  
   color: $fontmenu;  
   font-family: $sans;  
   font-size: larger;  
   text-align: right;  
 }  }
   
 td.LC_table_cell_checkbox {  td.LC_table_cell_checkbox {
Line 4846  table#LC_mainmenu td.LC_mainmenu_column Line 4864  table#LC_mainmenu td.LC_mainmenu_column
  font-size: 70%;   font-size: 70%;
 }  }
   
 #LC_head_subbox {  #LC_breadcrumbs {
  clear:both;   clear:both;
  background: $sidebg;   background: $sidebg;
  border-bottom: 1px solid $lg_border_color;   border-bottom: 1px solid $lg_border_color;
  height: 32px;  
  line-height: 32px;    line-height: 32px; 
  margin: 0;   margin: 0;
  padding: 0;   padding: 0;
 }  }
   
 #LC_head_subbox2 { /* FIXME: replace by LC_head_subbox once lonhtmlcommon::breadcrumbs has been fixed */  /* Preliminary fix to hide breadcrumbs inside remote control window */
   #LC_remote #LC_breadcrumbs {
       display:none;
   }
   
   #LC_head_subbox {
  clear:both;   clear:both;
  background: #F8F8F8; /* $sidebg; */   background: #F8F8F8; /* $sidebg; */
  border-bottom: 1px solid $lg_border_color;   border-bottom: 1px solid $lg_border_color;
Line 4874  table#LC_mainmenu td.LC_mainmenu_column Line 4896  table#LC_mainmenu td.LC_mainmenu_column
   
 .LC_menubuttons_inline_text {  .LC_menubuttons_inline_text {
   color: $font;    color: $font;
   font-family: $sans;  
   font-size: 90%;    font-size: 90%;
   padding-left:3px;    padding-left:3px;
 }  }
Line 4886  table#LC_mainmenu td.LC_mainmenu_column Line 4907  table#LC_mainmenu td.LC_mainmenu_column
 .LC_menubuttons_category {  .LC_menubuttons_category {
   color: $font;    color: $font;
   background: $pgbg;    background: $pgbg;
   font-family: $sans;  
   font-size: larger;    font-size: larger;
   font-weight: bold;    font-weight: bold;
 }  }
Line 4896  td.LC_menubuttons_text { Line 4916  td.LC_menubuttons_text {
 }  }
   
 .LC_current_location {  .LC_current_location {
   font-family: $sans;  
   background: $tabbg;    background: $tabbg;
 }  }
   
 .LC_new_mail {  .LC_new_mail {
   font-family: $sans;  
   background: $tabbg;    background: $tabbg;
   font-weight: bold;    font-weight: bold;
 }  }
   
 .LC_preferences_labeltext {  
   font-family: $sans;  
   text-align: right;  
 }  
   
 .LC_roleslog_note {  .LC_roleslog_note {
   font-size: small;    font-size: small;
 }  }
   
 .LC_mail_functions {  
     font-weight: bold;  
 }  
   
 table.LC_data_table,  table.LC_data_table,
 table.LC_mail_list {  table.LC_mail_list {
   border: 1px solid #000000;    border: 1px solid #000000;
Line 5166  span.LC_current_location { Line 5175  span.LC_current_location {
   
 span.LC_parm_menu_item {  span.LC_parm_menu_item {
   font-size: larger;    font-size: larger;
   font-family: $sans;  
 }  }
   
 span.LC_parm_scope_all {  span.LC_parm_scope_all {
Line 5221  table#LC_helpmenu { Line 5229  table#LC_helpmenu {
   
 table#LC_helpmenu fieldset legend {  table#LC_helpmenu fieldset legend {
   font-size: larger;    font-size: larger;
   font-weight: bold;  
 }  }
   
 table#LC_helpmenu_links {  table#LC_helpmenu_links {
Line 5274  table.LC_pick_box { Line 5281  table.LC_pick_box {
 }  }
   
 table.LC_pick_box td.LC_pick_box_title {  table.LC_pick_box td.LC_pick_box_title {
   background: $tabbg;    background: $sidebg;
   font-weight: bold;    font-weight: bold;
   text-align: right;    text-align: right;
   vertical-align: top;    vertical-align: top;
Line 5282  table.LC_pick_box td.LC_pick_box_title { Line 5289  table.LC_pick_box td.LC_pick_box_title {
   padding: 8px;    padding: 8px;
 }  }
   
 table.LC_pick_box td.LC_selfenroll_pick_box_title {  
   background: $tabbg;  
   font-weight: bold;  
   text-align: right;  
   width: 350px;  
   padding: 8px;  
 }  
   
 table.LC_pick_box td.LC_pick_box_value {  table.LC_pick_box td.LC_pick_box_value {
   text-align: left;    text-align: left;
   padding: 8px;    padding: 8px;
Line 5409  table.LC_notify_front_page td { Line 5408  table.LC_notify_front_page td {
 }  }
   
 .LC_topic_bar {  .LC_topic_bar {
   font-family: $sans;  
   font-weight: bold;    font-weight: bold;
   width: 100%;    width: 100%;
   background: $tabbg;    background: $tabbg;
Line 5438  table.LC_status_selector td { Line 5436  table.LC_status_selector td {
   
 div.LC_feedback_link {  div.LC_feedback_link {
   clear: both;    clear: both;
   background: white;    background: $sidebg;
   width: 100%;    width: 100%;
     padding-bottom: 10px;
     border: 1px $tabbg solid;
     height: 22px;
     line-height: 22px;
     padding-top: 5px;
   }
   
   div.LC_feedback_link img {
     height: 22px;
   }
   
   div.LC_feedback_link a{
     text-decoration: none;
 }  }
   
 span.LC_feedback_link {  span.LC_feedback_link {
   background: $feedback_link_bg;    /* background: $feedback_link_bg; */
   font-size: larger;    font-size: larger;
 }  }
   
 span.LC_message_link {  span.LC_message_link {
   background: $feedback_link_bg;    /* background: $feedback_link_bg; */
   font-size: larger;    font-size: larger;
   position: absolute;    position: absolute;
   right: 1em;    right: 1em;
Line 5466  table.LC_prior_tries td { Line 5477  table.LC_prior_tries td {
   
 .LC_answer_correct {  .LC_answer_correct {
   background: lightgreen;    background: lightgreen;
   font-family: $sans;  
   color: darkgreen;    color: darkgreen;
   padding: 6px;    padding: 6px;
 }  }
   
 .LC_answer_charged_try {  .LC_answer_charged_try {
   background: #FFAAAA;    background: #FFAAAA;
   font-family: $sans;  
   color: darkred;    color: darkred;
   padding: 6px;    padding: 6px;
 }  }
Line 5482  table.LC_prior_tries td { Line 5491  table.LC_prior_tries td {
 .LC_answer_no_grade,  .LC_answer_no_grade,
 .LC_answer_late {  .LC_answer_late {
   background: lightyellow;    background: lightyellow;
   font-family: $sans;  
   color: black;    color: black;
   padding: 6px;    padding: 6px;
 }  }
   
 .LC_answer_previous {  .LC_answer_previous {
   background: lightblue;    background: lightblue;
   font-family: $sans;  
   color: darkblue;    color: darkblue;
   padding: 6px;    padding: 6px;
 }  }
   
 .LC_answer_no_message {  .LC_answer_no_message {
   background: #FFFFFF;    background: #FFFFFF;
   font-family: $sans;  
   color: black;    color: black;
   padding: 6px;    padding: 6px;
 }  }
   
 .LC_answer_unknown {  .LC_answer_unknown {
   background: orange;    background: orange;
   font-family: $sans;  
   color: black;    color: black;
   padding: 6px;    padding: 6px;
 }  }
Line 5538  table.LC_prior_match tr td { Line 5543  table.LC_prior_match tr td {
   border: 1px solid #000000;    border: 1px solid #000000;
 }  }
   
 td.LC_nobreak,  .LC_nobreak {
 span.LC_nobreak {  
   white-space: nowrap;    white-space: nowrap;
 }  }
   
Line 5563  table.LC_docs_documents td.LC_docs_docum Line 5567  table.LC_docs_documents td.LC_docs_docum
   padding: 4px;    padding: 4px;
 }  }
   
 .LC_docs_entry_move {  div.LC_docs_entry_move {
   border: none;    border: 1px solid #BBBBBB;
   border-collapse: collapse;  
 }  
   
 .LC_docs_entry_move td {  
   border: 2px solid #BBBBBB;  
   background: #DDDDDD;    background: #DDDDDD;
     width: 22px;
     padding: 1px;
     margin: 0;
 }  }
   
 .LC_docs_editor td.LC_docs_entry_commands {  table.LC_data_table tr > td.LC_docs_entry_commands,
   table.LC_data_table tr > td.LC_docs_entry_parameter {
   background: #DDDDDD;    background: #DDDDDD;
   font-size: x-small;    font-size: x-small;
 }  }
   
   .LC_docs_entry_parameter {
     white-space: nowrap;
   }
   
 .LC_docs_copy {  .LC_docs_copy {
   color: #000099;    color: #000099;
 }  }
Line 5599  table.LC_docs_documents td.LC_docs_docum Line 5606  table.LC_docs_documents td.LC_docs_docum
   font-size: x-small;    font-size: x-small;
 }  }
   
 .LC_docs_editor td.LC_docs_entry_title,  
 .LC_docs_editor td.LC_docs_entry_icon {  
   background: #FFFFBB;  
 }  
   
 .LC_docs_editor td.LC_docs_entry_parameter {  
   background: #BBBBFF;  
   font-size: x-small;  
   white-space: nowrap;  
 }  
   
 table.LC_docs_adddocs td,  table.LC_docs_adddocs td,
 table.LC_docs_adddocs th {  table.LC_docs_adddocs th {
   border: 1px solid #BBBBBB;    border: 1px solid #BBBBBB;
Line 5741  div.LC_edit_problem_editxml_header div { Line 5737  div.LC_edit_problem_editxml_header div {
   margin-top: 5px;    margin-top: 5px;
 }  }
   
 div.LC_edit_problem_header_edit_row {  
   background: $tabbg;  
   padding: 3px;  
   margin-bottom: 5px;  
 }  
   
 div.LC_edit_problem_header_title {  div.LC_edit_problem_header_title {
   font-weight: bold;    font-weight: bold;
   font-size: larger;    font-size: larger;
Line 5776  div.LC_edit_problem_saves { Line 5766  div.LC_edit_problem_saves {
   padding-bottom: 5px;    padding-bottom: 5px;
 }  }
   
 hr.LC_edit_problem_divide {  
   clear: both;  
   color: $tabbg;  
   background-color: $tabbg;  
   height: 3px;  
   border: none;  
 }  
   
 img.stift{  img.stift{
   border-width: 0;    border-width: 0;
   vertical-align: middle;    vertical-align: middle;
Line 5802  table#LC_mainmenu td.LC_mainmenu_col_fie Line 5784  table#LC_mainmenu td.LC_mainmenu_col_fie
 .LC_mainmenu_fieldset_category {  .LC_mainmenu_fieldset_category {
   color: $font;    color: $font;
   background: $pgbg;    background: $pgbg;
   font-family: $sans;  
   font-size: small;    font-size: small;
   font-weight: bold;    font-weight: bold;
 }  }
Line 5848  h2,h3,h4,h5,h6 { Line 5829  h2,h3,h4,h5,h6 {
  border-bottom:solid 1px $lg_border_color;   border-bottom:solid 1px $lg_border_color;
 }  }
   
   .LC_Box > .LC_hcell {
       margin: 0 -10px 10px -10px;
   }
   
 .LC_noBorder {  .LC_noBorder {
         border: 0;          border: 0;
 }  }
   
   
 /* Main Header with discription of Person, Course, etc. */  
   
 .LC_Right {  .LC_Right {
         float: right;          float: right;
         margin: 0;          margin: 0;
Line 5883  dl,ul,div,fieldset { Line 5865  dl,ul,div,fieldset {
 /* overflow: hidden; */  /* overflow: hidden; */
 }  }
   
   fieldset > legend {
       font-weight: bold;
       padding: 0 5px 0 5px;
   }
   
 #LC_nav_bar {  #LC_nav_bar {
     float: left;      float: left;
     margin: 0;      margin: 0.2em 0 0 0;
 }  }
   
 #LC_nav_bar em{  #LC_nav_bar em{
Line 5895  dl,ul,div,fieldset { Line 5882  dl,ul,div,fieldset {
   
 ol.LC_smallMenu {  ol.LC_smallMenu {
     float: right;      float: right;
       margin: 0.2em 0 0 0;
 }  }
   
 ol.LC_smallMenu, ol#LC_PathBreadcrumbs {  ol#LC_PathBreadcrumbs {
  margin: 0;   margin: 0;
 }  }
   
Line 5924  ul#LC_TabMainMenuContent { Line 5912  ul#LC_TabMainMenuContent {
     list-style: none;      list-style: none;
     padding: 0;      padding: 0;
     margin: 0;      margin: 0;
     float:left;  
     width: 100%;      width: 100%;
 }  }
   
 ul#LC_TabMainMenuContent li {  ul#LC_TabMainMenuContent li {
     float: left;  
     font-weight: bold;      font-weight: bold;
     line-height: 1.8em;      line-height: 1.8em;
     padding: 0 0.8em;       padding: 0 0.8em; 
Line 5938  ul#LC_TabMainMenuContent li { Line 5924  ul#LC_TabMainMenuContent li {
     vertical-align: middle;      vertical-align: middle;
 }  }
   
 ul.LC_TabContent ,  ul.LC_TabContent {
 ul.LC_TabContentBigger {  
  display:block;   display:block;
    background: $sidebg;
    border-bottom: solid 1px $lg_border_color;
  list-style:none;   list-style:none;
  margin: 0;   margin: -10px -10px 0 -10px;
  padding: 0;   padding: 0;
 }  }
   
   ul.LC_TabContentBigger {
           display:block;
           list-style:none;
           padding: 0;
   }
   
   
 ul.LC_TabContent li,  ul.LC_TabContent li,
 ul.LC_TabContentBigger li {  ul.LC_TabContentBigger li {
  display: inline;   display: inline;
Line 5961  ul#LC_TabMainMenuContent li a { Line 5955  ul#LC_TabMainMenuContent li a {
 }  }
   
 ul.LC_TabContent {  ul.LC_TabContent {
  min-height:1.6em;   min-height:1.5em;
 }  }
   
 ul.LC_TabContent li {  ul.LC_TabContent li {
Line 5971  ul.LC_TabContent li { Line 5965  ul.LC_TabContent li {
  border-bottom:solid 1px $lg_border_color;   border-bottom:solid 1px $lg_border_color;
 }  }
   
   ul.LC_TabContent .right {
    float:right;
   }
   
 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;
Line 5981  ul.LC_TabContent li a, ul.LC_TabContent Line 5979  ul.LC_TabContent li a, ul.LC_TabContent
   
 ul.LC_TabContent li:hover, ul.LC_TabContent li.active {  ul.LC_TabContent li:hover, ul.LC_TabContent li.active {
         background:#FFFFFF url(/adm/lonIcons/open.gif) no-repeat scroll right center;          background:#FFFFFF url(/adm/lonIcons/open.gif) no-repeat scroll right center;
  border-bottom:solid 1px #FFFFFF;   border-bottom:solid 2px #FFFFFF;
  padding-right: 16px;   padding-right: 16px;
 }  }
   
Line 5991  ul.LC_TabContentBigger li { Line 5989  ul.LC_TabContentBigger li {
  border-left:solid 1px $lg_border_color;   border-left:solid 1px $lg_border_color;
  padding:5px 10px 5px 10px;   padding:5px 10px 5px 10px;
  margin-left:2px;   margin-left:2px;
  background:url(/adm/lonIcons/lightGreyBG.png) repeat-x left top;   background: #d9d9d9;
   }
   
   #maincoursedoc {
    clear:both;
 }  }
   
 ul.LC_TabContentBigger li:hover,   ul.LC_TabContentBigger li:hover, 
 ul.LC_TabContentBigger li.active {  ul.LC_TabContentBigger li.active {
  background:url(/adm/lonIcons/lightGreyBG.png) repeat-x right bottom;   background: #ffffff;
    color:$font;
 }  }
   
 ul.LC_TabContentBigger li,   ul.LC_TabContentBigger li, 
 ul.LC_TabContentBigger li a {  ul.LC_TabContentBigger li a {
  font-size:110%;   font-size:110%;
  font-weight:bold;   font-weight:bold;
    color: #737373;
   }
   
   ul.LC_CourseBreadcrumbs {
     background: $sidebg;
     line-height: 32px;
     padding-left: 10px;
     margin: 0 0 10px 0;
     list-style-position: inside;
   
 }  }
   
 ol#LC_MenuBreadcrumbs,   ol#LC_MenuBreadcrumbs, 
 ol#LC_PathBreadcrumbs,   ol#LC_PathBreadcrumbs {
 ul#LC_CourseBreadcrumbs {  
  padding-left: 10px;   padding-left: 10px;
  margin: 0;   margin: 0;
  list-style-position: inside;   list-style-position: inside;
Line 6015  ul#LC_CourseBreadcrumbs { Line 6027  ul#LC_CourseBreadcrumbs {
   
 ol#LC_MenuBreadcrumbs li,   ol#LC_MenuBreadcrumbs li, 
 ol#LC_PathBreadcrumbs li,   ol#LC_PathBreadcrumbs li, 
 ul#LC_CourseBreadcrumbs li {  ul.LC_CourseBreadcrumbs li {
  display: inline;      display: inline;
  padding: 0 0 0 10px;      white-space: nowrap;
  overflow:hidden;  
 }  }
   
 ol#LC_MenuBreadcrumbs li a,  ol#LC_MenuBreadcrumbs li a,
 ul#LC_CourseBreadcrumbs li a {  ul.LC_CourseBreadcrumbs li a {
  text-decoration: none;   text-decoration: none;
  font-size:90%;   font-size:90%;
 }  }
Line 6033  ol#LC_PathBreadcrumbs li a { Line 6044  ol#LC_PathBreadcrumbs li a {
  font-weight:bold;   font-weight:bold;
 }  }
   
 .LC_BoxPadding {  .LC_Box {
  padding: 10px;      border: solid 1px $lg_border_color;
 }      padding: 0 10px 10px 10px;
   
 .LC_ContentBoxSpecial {  
  border: solid 1px $lg_border_color;  
 }  
   
 .LC_ContentBoxSpecialContactInfo {  
  border: solid 1px $lg_border_color;  
  max-width:25%;  
  min-width:25%;  
 }  }
   
 .LC_AboutMe_Image {  .LC_AboutMe_Image {
Line 6133  div.LC_columnSection>* { Line 6135  div.LC_columnSection>* {
  overflow:hidden;   overflow:hidden;
 }  }
   
 .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: 0;  
  font-size: 0;  
  height: 0;  
 }  
   
 .LC_loginpage_container {  .LC_loginpage_container {
  text-align:left;   text-align:left;
  margin : 0 auto;   margin : 0 auto;
Line 6207  table em { Line 6189  table em {
 table.LC_tableBrowseRes,  table.LC_tableBrowseRes,
 table.LC_tableOfContent {  table.LC_tableOfContent {
         border:none;          border:none;
  border-spacing: 1;   border-spacing: 1px;
  padding: 3px;   padding: 3px;
  background-color: #FFFFFF;   background-color: #FFFFFF;
  font-size: 90%;   font-size: 90%;
Line 6301  a.LC_toolbarItem { Line 6283  a.LC_toolbarItem {
  background-color:transparent;   background-color:transparent;
 }  }
   
 ul.LC_functionslist li {  ul.LC_funclist li {
   float: left;    float: left;
   white-space: nowrap;    white-space: nowrap;
   height: 35px; /* at least as high as heighest list item */    height: 35px; /* at least as high as heighest list item */
Line 6436  sub xml_begin { Line 6418  sub xml_begin {
             .'<html xmlns:math="http://www.w3.org/1998/Math/MathML" '               .'<html xmlns:math="http://www.w3.org/1998/Math/MathML" ' 
     .'xmlns="http://www.w3.org/1999/xhtml">';      .'xmlns="http://www.w3.org/1999/xhtml">';
     } else {      } else {
  $output='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>';   $output='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'
              .'<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">';
     }      }
     return $output;      return $output;
 }  }
Line 6512  $args - additional optional args support Line 6495  $args - additional optional args support
                                     a html attribute                                      a html attribute
              force_register -> if is true will turn on the &bodytag()               force_register -> if is true will turn on the &bodytag()
                                     $forcereg arg                                      $forcereg arg
              body_title     -> alternate text to use instead of $title  
                                     in the title box that appears, this text  
                                     is not auto translated like the $title is  
              frameset       -> if true will start with a <frameset>               frameset       -> if true will start with a <frameset>
                                     rather than <body>                                      rather than <body>
              skip_phases    -> hash ref of                skip_phases    -> hash ref of 
Line 6558  sub start_page { Line 6538  sub start_page {
     my $attr_string = &make_attr_string($args->{'force_register'},      my $attr_string = &make_attr_string($args->{'force_register'},
  $args->{'add_entries'});   $args->{'add_entries'});
     $result .= "\n<frameset $attr_string>\n";      $result .= "\n<frameset $attr_string>\n";
  } else {          } else {
     $result .=              $result .=
  &bodytag($title,                   &bodytag($title, 
  $args->{'function'},       $args->{'add_entries'},                           $args->{'function'},       $args->{'add_entries'},
  $args->{'only_body'},      $args->{'domain'},                           $args->{'only_body'},      $args->{'domain'},
  $args->{'force_register'}, $args->{'body_title'},                           $args->{'force_register'}, $args->{'no_nav_bar'},
  $args->{'no_nav_bar'},     $args->{'bgcolor'},                           $args->{'bgcolor'},        $args->{'no_inline_link'},
  $args->{'no_inline_link'},                           $args);
  $args);          }
  }  
     }      }
   
     if ($args->{'js_ready'}) {      if ($args->{'js_ready'}) {
Line 6839  sub get_users_function { Line 6818  sub get_users_function {
     if ($env{'request.role'}=~/^(su|dc|ad|li)/) {      if ($env{'request.role'}=~/^(su|dc|ad|li)/) {
         $function='admin';          $function='admin';
     }      }
     if (($env{'request.role'}=~/^(au|ca)/) ||      if (($env{'request.role'}=~/^(au|ca|aa)/) ||
         ($ENV{'REQUEST_URI'}=~/^(\/priv|\~)/)) {          ($ENV{'REQUEST_URI'}=~/^(\/priv|\~)/)) {
         $function='author';          $function='author';
     }      }
Line 8589  sub csv_print_samples { Line 8568  sub csv_print_samples {
     $r->print(&mt('Samples').'<br />'.&start_data_table().      $r->print(&mt('Samples').'<br />'.&start_data_table().
               &start_data_table_header_row());                &start_data_table_header_row());
     foreach my $sample (sort({$a <=> $b} keys(%{ $samples->[0] }))) {       foreach my $sample (sort({$a <=> $b} keys(%{ $samples->[0] }))) { 
         $r->print('<th>'.&mt('Column&nbsp;[_1]',($sample+1)).'</th>'); }          $r->print('<th>'.&mt('Column [_1]',($sample+1)).'</th>'); }
     $r->print(&end_data_table_header_row());      $r->print(&end_data_table_header_row());
     foreach my $hash (@$samples) {      foreach my $hash (@$samples) {
  $r->print(&start_data_table_row());   $r->print(&start_data_table_row());
Line 10238  sub group_term { Line 10217  sub group_term {
     my $crstype = &course_type();      my $crstype = &course_type();
     my %names = (      my %names = (
                   'Course' => 'group',                    'Course' => 'group',
                   'Group' => 'team',                    'Community' => 'group',
                 );                  );
     return $names{$crstype};      return $names{$crstype};
 }  }
Line 10431  sub init_user_environment { Line 10410  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') {          foreach my $crstype ('official','unofficial','community') {
             $userenv{'canrequest.'.$crstype} =              $userenv{'canrequest.'.$crstype} =
                 &Apache::lonnet::usertools_access($username,$domain,$crstype,                  &Apache::lonnet::usertools_access($username,$domain,$crstype,
                                                   'reload','requestcourses');                                                    'reload','requestcourses');

Removed from v.1.825  
changed lines
  Added in v.1.866


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