Diff for /loncom/interface/loncommon.pm between versions 1.925.2.7 and 1.933

version 1.925.2.7, 2010/01/06 22:53:58 version 1.933, 2010/01/19 19:00:02
Line 483  ENDAUTHORBRW Line 483  ENDAUTHORBRW
   
 sub coursebrowser_javascript {  sub coursebrowser_javascript {
     my ($domainfilter,$sec_element,$formname,$role_element,$crstype) = @_;      my ($domainfilter,$sec_element,$formname,$role_element,$crstype) = @_;
     my $wintitle = &mt('Course Browser');      my $wintitle = 'Course_Browser';
     if ($crstype ne '') {      if ($crstype eq 'Community') {
         $wintitle = &mt($crstype);          $wintitle = 'Community_Browser';
     }      }
     my $id_functions = &javascript_index_functions();      my $id_functions = &javascript_index_functions();
     my $output = '      my $output = '
Line 1719  sub create_workbook { Line 1719  sub create_workbook {
     my $workbook  = Spreadsheet::WriteExcel->new('/home/httpd'.$filename);      my $workbook  = Spreadsheet::WriteExcel->new('/home/httpd'.$filename);
     if (! defined($workbook)) {      if (! defined($workbook)) {
         $r->log_error("Error creating excel spreadsheet $filename: $!");          $r->log_error("Error creating excel spreadsheet $filename: $!");
         $r->print('<p>'.&mt("Unable to create new Excel file.  ".          $r->print(
                             "This error has been logged.  ".              '<p class="LC_error">'
                             "Please alert your LON-CAPA administrator").             .&mt('Problems occurred in creating the new Excel file.')
                   '</p>');             .' '.&mt('This error has been logged.')
              .' '.&mt('Please alert your LON-CAPA administrator.')
              .'</p>'
           );
         return (undef);          return (undef);
     }      }
     #      #
Line 1762  sub create_text_file { Line 1765  sub create_text_file {
     $fh = Apache::File->new('>/home/httpd'.$filename);      $fh = Apache::File->new('>/home/httpd'.$filename);
     if (! defined($fh)) {      if (! defined($fh)) {
         $r->log_error("Couldn't open $filename for output $!");          $r->log_error("Couldn't open $filename for output $!");
         $r->print(&mt('Problems occurred in creating the output file. '          $r->print(
                      .'This error has been logged. '              '<p class="LC_error">'
                      .'Please alert your LON-CAPA administrator.'));             .&mt('Problems occurred in creating the output file.')
              .' '.&mt('This error has been logged.')
              .' '.&mt('Please alert your LON-CAPA administrator.')
              .'</p>'
           );
     }      }
     return ($fh,$filename)      return ($fh,$filename)
 }  }
Line 4467  sub bodytag { Line 4474  sub bodytag {
    'link'    => &designparm($function.'.link',$domain),);     'link'    => &designparm($function.'.link',$domain),);
     @design{keys(%$addentries)} = @$addentries{keys(%$addentries)};       @design{keys(%$addentries)} = @$addentries{keys(%$addentries)}; 
   
     my $custommenu;  
     if ($env{'environment.remote'} eq 'off') {  
         $custommenu = &needs_gci_custom();  
     }  
  # role and realm   # role and realm
     my ($role,$realm) = split(/\./,$env{'request.role'},2);      my ($role,$realm) = split(/\./,$env{'request.role'},2);
     if ($role  eq 'ca') {      if ($role  eq 'ca') {
Line 4480  sub bodytag { Line 4483  sub bodytag {
 # realm  # realm
     if ($env{'request.course.id'}) {      if ($env{'request.course.id'}) {
         if ($env{'request.role'} !~ /^cr/) {          if ($env{'request.role'} !~ /^cr/) {
             if (($custommenu) && ($role eq 'cm')) {              $role = &Apache::lonnet::plaintext($role,&course_type());
                 undef($role);  
             } else {  
                 $role = &Apache::lonnet::plaintext($role,&course_type());  
             }  
         }          }
         if ($env{'request.course.sec'}) {          if ($env{'request.course.sec'}) {
             $role .= ('&nbsp;'x2).'-&nbsp;'.&mt('section:').'&nbsp;'.$env{'request.course.sec'};              $role .= ('&nbsp;'x2).'-&nbsp;'.&mt('section:').'&nbsp;'.$env{'request.course.sec'};
         }             }   
  $realm = $env{'course.'.$env{'request.course.id'}.'.description'};   $realm = $env{'course.'.$env{'request.course.id'}.'.description'};
     } else {      } else {
         if (($custommenu) && ($role eq 'cm')) {          $role = &Apache::lonnet::plaintext($role);
             undef($role);  
         } else {  
             $role = &Apache::lonnet::plaintext($role);  
         }  
     }      }
   
     if (!$realm) { $realm='&nbsp;'; }      if (!$realm) { $realm='&nbsp;'; }
Line 4546  sub bodytag { Line 4541  sub bodytag {
         #        $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 $role_selector;  
         if (($custommenu) && ($env{'request.course.id'}) &&   
             ($env{'course.'.$env{'request.course.id'}.'.domain'} eq 'gcitest') &&  
             ($env{'request.role'} !~ m{^st\./gcitest/$match_courseid})) {  
             $role_selector = &Apache::lonmenu::roles_selector(  
                         $env{'course.' . $env{'request.course.id'} . '.domain'},  
                         $env{'course.' . $env{'request.course.id'} . '.num'}  );  
             if ($role_selector) {  
                 $role_selector = '<br />'.$role_selector;  
             }  
         }  
   
         if ($env{'request.noversionuri'} =~ m{^/res/adm/pages/}) {          if ($env{'request.noversionuri'} =~ m{^/res/adm/pages/}) {
              if ($dc_info) {               if ($dc_info) {
Line 4567  sub bodytag { Line 4552  sub bodytag {
             return $bodytag;              return $bodytag;
         }          }
   
         $bodytag .= qq|<div id="LC_nav_bar">$name $role $role_selector</div>|;          unless ($env{'request.symb'} =~ m/\.page___\d+___/) {
               $bodytag .= qq|<div id="LC_nav_bar">$name $role</div>|;
           }
   
         $bodytag .= Apache::lonhtmlcommon::scripttag(          $bodytag .= Apache::lonhtmlcommon::scripttag(
             Apache::lonmenu::utilityfunctions('',$custommenu), 'start');              Apache::lonmenu::utilityfunctions(), 'start');
   
         $bodytag .= Apache::lonmenu::primary_menu();          $bodytag .= Apache::lonmenu::primary_menu();
   
Line 4581  sub bodytag { Line 4568  sub bodytag {
   
         #don't show menus for public users          #don't show menus for public users
         if($env{'user.name'} ne 'public' && $env{'user.domain'} ne 'public'){          if($env{'user.name'} ne 'public' && $env{'user.domain'} ne 'public'){
             if (($custommenu) &&               $bodytag .= Apache::lonmenu::secondary_menu();
                 ($env{'request.role'} !~ m{^st\./gcitest/$match_courseid})) {  
                 $bodytag .= &Apache::lonmenu::gci_secondary_menu();  
             } else {   
                 $bodytag .= Apache::lonmenu::secondary_menu();  
             }  
             $bodytag .= Apache::lonmenu::serverform();              $bodytag .= Apache::lonmenu::serverform();
             $bodytag .= Apache::lonhtmlcommon::scripttag('', 'end');              $bodytag .= Apache::lonhtmlcommon::scripttag('', 'end');
             if ($env{'request.state'} eq 'construct') {              if ($env{'request.state'} eq 'construct') {
Line 4602  sub bodytag { Line 4584  sub bodytag {
             $bodytag .= Apache::lonhtmlcommon::scripttag('', 'end');               $bodytag .= Apache::lonhtmlcommon::scripttag('', 'end'); 
         }          }
   
         #SD testing  
         #$bodytag .= Apache::lonmenu::menubuttons($forcereg);  
         return $bodytag;          return $bodytag;
     }      }
   
Line 4930  table#LC_title_bar { Line 4910  table#LC_title_bar {
 }  }
   
 table#LC_title_bar,  table#LC_title_bar,
 table.LC_breadcrumbs,  table.LC_breadcrumbs, /* obsolete? */
 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 4943  table#LC_title_bar.LC_with_remote { Line 4923  table#LC_title_bar.LC_with_remote {
   margin: 0;    margin: 0;
 }  }
   
 /* #SD START (work in progress)*/  ul.LC_breadcrumb_tools_outerlist {
   
 ul.LC_bct {  
     margin: 0;      margin: 0;
     padding: 0;      padding: 0;
       position: relative;
       list-style: none;
 }  }
 ul.LC_bct ol {  ul.LC_breadcrumb_tools_outerlist li {
     display: inline;      display: inline;
 }  }
 ul.LC_bct ul {  
     display: inline;  
     padding: 0;  
 }  
 ul.LC_bct li {  
     list-style-type: none;  
     display: inline;  
 }  
   
   
 ul.LC_breadcrumb_tools {  
 }  
   
 li.LC_breadcrumb_tools {  .LC_breadcrumb_tools_navigation {
 }      padding: 0;
 li.LC_breadcrumb_tools img{      margin: 0;
     vertical-align: middle;      float: left;
 }  
   
 .LC_breadcrumb_tools_A {  
     margin: 0 0 0 1em;  
 }  
 .LC_breadcrumb_tools_B {  
     float: right;  
     margin-top: 0.4em;  
 }  }
 .LC_breadcrumb_tools_C {  .LC_breadcrumb_tools_tools {
     margin: 0 1em 0 0;      padding: 0;
       margin: 0;
     float: right;      float: right;
 }  }
 /* #SD END */  
   
 table#LC_title_bar td {  table#LC_title_bar td {
   background: $tabbg;    background: $tabbg;
Line 5013  td.LC_table_cell_checkbox { Line 4973  td.LC_table_cell_checkbox {
   background: $sidebg;    background: $sidebg;
   border-bottom: 1px solid $lg_border_color;    border-bottom: 1px solid $lg_border_color;
   line-height: 2.5em;    line-height: 2.5em;
      /* SD working here     overflow: hidden;
      height: 2.5em;  
      overflow: hidden; */  
   margin: 0;    margin: 0;
   padding: 0;    padding: 0;
 }  }
Line 5092  table.LC_nested { Line 5050  table.LC_nested {
   width: 100%;    width: 100%;
 }  }
   
   .ui-accordion,
   .ui-accordion table.LC_data_table,
   .ui-accordion table.LC_nested_outer{
     border: 0px;
     border-spacing: 0px;
     margin: 3px;
   }
   
 table.LC_data_table tr th,  table.LC_data_table tr th,
 table.LC_calendar tr th,  table.LC_calendar tr th,
 table.LC_mail_list tr th,  table.LC_mail_list tr th,
Line 5201  table.LC_nested tr td.LC_right_item { Line 5167  table.LC_nested tr td.LC_right_item {
   text-align: right;    text-align: right;
 }  }
   
   .ui-accordion table.LC_nested tr.LC_odd_row td.LC_left_item,
   .ui-accordion table.LC_nested tr.LC_even_row td.LC_left_item {
     text-align: right;
     width: 40%;
     padding-right:10px;
     vertical-align: top;
     padding: 5px;
   }
   
   .ui-accordion table.LC_nested tr.LC_odd_row td.LC_right_item,
   .ui-accordion table.LC_nested tr.LC_even_row td.LC_right_item {
     text-align: left;
     width: 60%;
     padding: 2px 4px;
   }
   
 table.LC_nested tr.LC_odd_row td {  table.LC_nested tr.LC_odd_row td {
   background-color: #EEEEEE;    background-color: #EEEEEE;
 }  }
Line 5542  table.LC_notify_front_page td { Line 5524  table.LC_notify_front_page td {
   font-size: 1.2em;    font-size: 1.2em;
 }  }
   
 .LC_topic_bar img {  
   vertical-align: bottom;  
 }  
   
 table.LC_course_group_status {  table.LC_course_group_status {
   margin: 20px;    margin: 20px;
 }  }
Line 6009  ol.LC_primary_menu { Line 5987  ol.LC_primary_menu {
   margin: 0.2em 0 0 0;    margin: 0.2em 0 0 0;
 }  }
   
   span.LC_new_message{
     font-weight:bold;
     color: darkred;
   }
   
 ol#LC_PathBreadcrumbs {  ol#LC_PathBreadcrumbs {
   margin: 0;    margin: 0;
 }  }
Line 6162  ol#LC_MenuBreadcrumbs, Line 6145  ol#LC_MenuBreadcrumbs,
 ol#LC_PathBreadcrumbs {  ol#LC_PathBreadcrumbs {
   padding-left: 10px;    padding-left: 10px;
   margin: 0;    margin: 0;
   list-style-position: inside;    height: 2.5em;  /* equal to #LC_breadcrumbs line-height */
     /* SD working here   
     white-space: nowrap; */  
 }  }
   
 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;
   white-space: nowrap;    white-space: normal;  
     /* SD working here    
     white-space: normal; */   
 }  }
   
 ol#LC_MenuBreadcrumbs li a,  ol#LC_MenuBreadcrumbs li a,
Line 6426  ul.LC_funclist { Line 6405  ul.LC_funclist {
     padding: 0.5em 1em 0.5em 0;      padding: 0.5em 1em 0.5em 0;
 }  }
   
   ul.LC_funclist > li:first-child {
       font-weight:bold; 
       margin-left:0.8em;
   }
   
 ul.LC_funclist + ul.LC_funclist {  ul.LC_funclist + ul.LC_funclist {
     /*       /* 
        left border as a seperator if we have more than         left border as a seperator if we have more than
Line 6446  ul.LC_funclist li { Line 6430  ul.LC_funclist li {
   line-height: 150%;    line-height: 150%;
 }  }
   
 #gciheader {  .ui-accordion .LC_advanced_toggle {
   float:left;    float: right;
   width:100%;    font-size: 90%;
   background:#DAE0D2 url("/gcimenu_bg.gif") repeat-x bottom;    padding: 0px 4px
   font-size:93%;  
   line-height:normal;  
 }  
 #gciheader ul {  
   margin:0;  
   padding:10px 10px 0;  
   list-style:none;  
 }  
 #gciheader li {  
   float:left;  
   background:url("/gcimenu_left.gif") no-repeat left top;  
   margin:0;  
   padding:0 0 0 9px;  
 }  
 #gciheader a {  
   display:block;  
   background:url("/gcimenu_right.gif") no-repeat right top;  
   padding:5px 15px 4px 6px;  
 }  
 #gciheader #current {  
   background-image:url("/gcimenu_left_on.gif");  
 }  
 #gciheader #current a {  
   background-image:url("/gcimenu_right_on.gif");  
   padding-bottom:5px;  
 }  }
   
 END  END
Line 10738  sub clean_symb { Line 10697  sub clean_symb {
     return ($symb,$enc);      return ($symb,$enc);
 }  }
   
 sub needs_gci_custom {  
     my $custommenu;  
     my $numdc = &check_for_gci_dc();  
     unless ($numdc) {  
         my $then=$env{'user.login.time'};  
         my $now = time;  
         my %cnums = (  
                         review => '9615072b469884921gcil1',  
                         submit => '1H96711d710194bfegcil1',  
                     );  
         if ($env{'user.role.st./gci/'.$cnums{'review'}}) {  
             my ($start,$end) =  
                 split('.',$env{'user.role.st./gci/'.$cnums{'review'}});  
             if (((!$start) || ($start && $start <= $now)) &&  
                 ((!$end) || ($end > $now))) {  
                 $custommenu = 1;  
                 if ($env{'user.role.cc./gci/'.$cnums{'review'}}) {  
                     my ($ccstart,$ccend) =  
                         split('.',$env{'user.role.cc./gci/'.$cnums{'review'}});  
                     if (((!$start) || ($start && $start <= $now)) &&  
                             ((!$end) || ($end > $now))) {  
                         $custommenu = '';  
                     }  
                 }  
             }  
         }  
     }  
     return $custommenu;  
 }  
   
 sub check_for_gci_dc {  
     my $then=$env{'user.login.time'};  
     my $numdc = 0;  
     foreach my $dom ('gci','gcitest') {  
         if ($env{'user.role.dc./'.$dom.'/'}) {  
             my $livedc = 1;  
             my ($tstart,$tend)=split(/\./,$env{'user.role.dc./'.$dom.'/'});  
             if ($tstart && $tstart>$then) { $livedc = 0; }  
             if ($tend   && $tend  <$then) { $livedc = 0; }  
             if ($livedc) {  
                 $numdc++;  
             }  
         }  
     }  
     return $numdc;  
 }  
   
 sub existing_gcitest_courses {  
     my ($role) = @_;  
     my %courses;  
     my $cdom = 'gcitest';  
     my $now = time;  
     foreach my $envkey (keys(%env)) {  
         my $cnum;  
         if ($envkey =~ m{^user\.role\.\Q$role\E\./\Q$cdom\E/($match_courseid)$}) {  
             $cnum = $1;  
         } else {  
             next;  
         }  
         my ($tstart,$tend) = split('.',$env{$envkey});  
         if (((!$tstart) || ($tstart < $now)) && ((!$tend) || ($tend > $now))) {  
             my $descr = $env{'course.'.$cdom.'_'.$cnum.'.description'};  
             if ($descr ne '') {  
                 $courses{$cdom.'_'.$cnum}{'description'} = $descr;  
             }  
         }  
     }  
     return %courses;  
 }  
   
 =pod  =pod
   
 =back  =back

Removed from v.1.925.2.7  
changed lines
  Added in v.1.933


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