Diff for /loncom/interface/loncommon.pm between versions 1.925.2.13 and 1.925.2.14

version 1.925.2.13, 2010/09/19 18:50:48 version 1.925.2.14, 2010/10/04 18:01:31
Line 4559  sub bodytag { Line 4559  sub bodytag {
   
         my $role_selector;          my $role_selector;
         if (($custommenu) && ($env{'request.course.id'}) &&           if (($custommenu) && ($env{'request.course.id'}) && 
             ($env{'course.'.$env{'request.course.id'}.'.domain'} eq 'gcitest') &&              ($env{'course.'.$env{'request.course.id'}.'.domain'} eq 'gcitest')) {
             ($env{'request.role'} !~ m{^st\./gcitest/$match_courseid})) {  
             $role_selector = &Apache::lonmenu::roles_selector(              $role_selector = &Apache::lonmenu::roles_selector(
                         $env{'course.' . $env{'request.course.id'} . '.domain'},                          $env{'course.' . $env{'request.course.id'} . '.domain'},
                         $env{'course.' . $env{'request.course.id'} . '.num'}  );                          $env{'course.' . $env{'request.course.id'} . '.num'}  );
Line 4568  sub bodytag { Line 4567  sub bodytag {
                 $role_selector = '<br />'.$role_selector;                  $role_selector = '<br />'.$role_selector;
             }              }
         }          }
           my $cid = $env{'request.course.id'};
           my %gcicourses = (
                              gci_9615072b469884921gcil1 => 'review',
                              gci_1H96711d710194bfegcil1 => 'submit',
                              gci_5422913620b814c90gcil1 => 'tutorial',
                            );
           if (($custommenu && $cid && !$gcicourses{$cid}) || ($env{'user.domain'} eq 'gcitest')) {
               my $role = 'st';
               if ($custommenu) {
                   $role = 'cc';
               }
               my ($switcher_js,$switcher,$formname);
               $formname = 'pickrole';
               my %courses = &existing_gcitest_courses($role);
               my $numcourses = keys(%courses);
               my $reqdcount = 0;
               if ($cid) {
                   if ($courses{$cid}) {
                       $reqdcount = 1; 
                   }
               }
               if ($numcourses > $reqdcount) {
                   $switcher = &gcitest_switcher($role,$formname,%courses);
                   my $current;
                   if ($cid) {
                       $current = $role.'./'.$env{'course.'.$cid.'.domain'}.
                                  '/'.$env{'course.'.$cid.'.num'};
                   }
                   $switcher_js = &Apache::loncommon::gcitest_switcher_js($current,$numcourses,$formname);
                   if ($switcher_js) {  
                       $switcher_js= <<"ENDSCRIPT";
   <script type="text/javascript">
   // <![CDATA[
   
   $switcher_js
   
   // ]]>
   </script>
   ENDSCRIPT
                   }
               }
               if ($switcher) {
                   $switcher = $switcher_js.$switcher;
                   if ($role_selector) {
                       $role_selector .= '&nbsp;&nbsp;&nbsp;'.$switcher;
                   } else {
                       $role_selector .= '<br />'.$switcher;
                   }
               }
           }
   
         if ($env{'request.noversionuri'} =~ m{^/res/adm/pages/}) {          if ($env{'request.noversionuri'} =~ m{^/res/adm/pages/}) {
              if ($dc_info) {               if ($dc_info) {
Line 4578  sub bodytag { Line 4627  sub bodytag {
             return $bodytag;              return $bodytag;
         }          }
   
           if ($cid && $gcicourses{$cid} eq 'tutorial') {
               $bodytag .= '<div class="LC_page_header">';
           } 
         $bodytag .= qq|<div id="LC_nav_bar">$name $role $role_selector</div>|;          $bodytag .= qq|<div id="LC_nav_bar">$name $role $role_selector</div>|;
   
         $bodytag .= Apache::lonhtmlcommon::scripttag(          $bodytag .= Apache::lonhtmlcommon::scripttag(
Line 4589  sub bodytag { Line 4641  sub bodytag {
             $dc_info = &dc_courseid_toggle($dc_info);              $dc_info = &dc_courseid_toggle($dc_info);
         }          }
         $bodytag .= qq|<div id="LC_realm">$realm $dc_info</div>|;          $bodytag .= qq|<div id="LC_realm">$realm $dc_info</div>|;
           if ($cid && $gcicourses{$cid} eq 'tutorial') {
               $bodytag .= '</div>';
           }
   
         #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'){
Line 4605  sub bodytag { Line 4660  sub bodytag {
                                 $args->{'bread_crumbs'});                                  $args->{'bread_crumbs'});
             } elsif ($forcereg) {               } elsif ($forcereg) { 
                 $bodytag .= &Apache::lonmenu::innerregister($forcereg);                  $bodytag .= &Apache::lonmenu::innerregister($forcereg);
               } elsif ($custommenu && $env{'request.course.id'} && 
                        &Apache::lonnet::allowed('mdc', $env{'request.course.id'})) {
                   if ($env{'request.noversionuri'} eq '/adm/navmaps') {
                       my @advtools = &concept_test_manager();
                       &Apache::lonhtmlcommon::add_breadcrumb_tool(
                                         'advtools',@advtools);
                       my $advlinks;
                       my $legendtext = '<a class="LC_menubuttons_link" href="/adm/menu">'.&mt('Management').'</a>';
                       &Apache::lonhtmlcommon::render_advtools(\$advlinks,$legendtext);
                       $bodytag .= $advlinks;
                   }
             }              }
         }else{          }else{
             # this is to seperate menu from content when there's no secondary              # this is to seperate menu from content when there's no secondary
Line 4613  sub bodytag { Line 4679  sub bodytag {
             $bodytag .= Apache::lonhtmlcommon::scripttag('', 'end');               $bodytag .= Apache::lonhtmlcommon::scripttag('', 'end'); 
         }          }
   
         #SD testing  
         #$bodytag .= Apache::lonmenu::menubuttons($forcereg);  
         return $bodytag;          return $bodytag;
     }      }
   
Line 4652  $bodytag Line 4716  $bodytag
 ENDBODY  ENDBODY
 }  }
   
   sub concept_test_manager {
       my @advtools;
       my  %items = (
                      docs => { 
                                 desc    => 'Edit Test',
                                 action  => "go('/adm/coursedocs')",
                                 tooltip => 'Assemble or modify Concept Test'
                              },
                      cprv => {
                                 desc => 'Enrollment/Activity',
                                 action => "go('/adm/createuser')",
                                 tooltip => 'Enrollment and student activity',
                              },
                      new => { 
                                 desc   => "What's New?",
                                 action => "go('/adm/whatsnew')",
                                 tooltip => 'Recent events/action items in Concept Test' ,
                              },
                      prnt => {
                                 desc => 'Print Test',
                                 action => "go('/adm/printout');",
                                 tooltip => 'Prepare printable Concept Test',
                              },
                      chrt => { 
                                 desc   => 'Test Statistics',
                                 action => "go('/adm/statistics');",
                                 tooltip => 'Concept Test Statistics',
                              },
                      rcrs => {
                                 desc   => 'Create New Test',
                                 action  => "switchpage('createtest');",
                                 tooltip => 'Create new Concept Test',
                              },
                    );
       my @ordered = ('docs','cprv','new','prnt','chrt','rcrs');
       foreach my $item (@ordered) {
            push(@advtools,
                     '<a title="'.$items{$item}{tooltip}.'" class="LC_menubuttons_link" href="javascript:'.
                     $items{$item}{action}.';">'.
                     '<img src="'.'/res/adm/pages/'.$item.'22.png" alt="'.$items{$item}{tooltip}.
                     '" border="0" class="LC_icon" />'.
                     '<span class="LC_menubuttons_inline_text">'.$items{$item}{desc}.'</span></a>');
       }
       return @advtools;
   }
   
 sub dc_courseid_toggle {  sub dc_courseid_toggle {
     my ($dc_info) = @_;      my ($dc_info) = @_;
     return ' <span id="dccidtext" class="LC_cusr_subheading">'.      return ' <span id="dccidtext" class="LC_cusr_subheading">'.
Line 4954  table#LC_title_bar.LC_with_remote { Line 5064  table#LC_title_bar.LC_with_remote {
   margin: 0;    margin: 0;
 }  }
   
   ul.LC_breadcrumb_tools_outerlist {
       margin: 0;
       padding: 0;
       position: relative;
       list-style: none;
   }
   ul.LC_breadcrumb_tools_outerlist li {
       display: inline;
   }
   
   .LC_breadcrumb_tools_navigation {
       padding: 0;
       margin: 0;
       float: left;
   }
   .LC_breadcrumb_tools_tools {
       padding: 0;
       margin: 0;
       float: right;
   }
   
   div.LC_GCI_Menu {
       width:900px;
   }
   
   div.LC_GCI_Menu:after {
       content:'';
       display:block;
       clear:both;
   }
   
   div.LC_GCI_Menu_left {
       float:left;
       width:400px;
   }
   
   div.LC_GCI_Menu_right {
       float:left;
       width:400px;;
   }
   
 dl.LC_GCI_Menu {  dl.LC_GCI_Menu {
     width:300px;      width:300px;
     float:left;      float:left;
Line 4966  dl.LC_GCI_Menu dt { Line 5117  dl.LC_GCI_Menu dt {
     margin-bottom:0.7em;      margin-bottom:0.7em;
 }  }
   
   dl.LC_GCI_Menu dt a {
       color: $font;
   }
   
 dl.LC_GCI_Menu dd {  dl.LC_GCI_Menu dd {
     font-size:0.8em;      font-size:0.8em;
     margin:0 0 2em 0;      margin:0 0 2em 0;
Line 4974  dl.LC_GCI_Menu dd { Line 5129  dl.LC_GCI_Menu dd {
     background:none no-repeat left top;      background:none no-repeat left top;
 }  }
   
 /* #SD START (work in progress)*/  
   
 ul.LC_bct {  
     margin: 0;  
     padding: 0;  
 }  
 ul.LC_bct ol {  
     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 {  
 }  
 li.LC_breadcrumb_tools img{  
     vertical-align: middle;  
 }  
   
 .LC_breadcrumb_tools_A {  
     margin: 0 0 0 1em;  
 }  
 .LC_breadcrumb_tools_B {  
     float: right;  
     margin-top: 0.4em;  
 }  
 .LC_breadcrumb_tools_C {  
     margin: 0 1em 0 0;  
     float: right;  
 }  
 /* #SD END */  
   
 table#LC_title_bar td {  table#LC_title_bar td {
   background: $tabbg;    background: $tabbg;
 }  }
Line 5025  table#LC_menubuttons img { Line 5139  table#LC_menubuttons img {
   
 .LC_breadcrumbs_component {  .LC_breadcrumbs_component {
   float: right;    float: right;
   margin: 0 1em;    margin: 0.25em 1em;
 }  }
 .LC_breadcrumbs_component img {  .LC_breadcrumbs_component img {
   vertical-align: middle;    vertical-align: middle;
Line 5044  td.LC_table_cell_checkbox { Line 5158  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;
     text-align: left;
 }  }
   
 /* Preliminary fix to hide breadcrumbs inside remote control window */  /* Preliminary fix to hide breadcrumbs inside remote control window */
Line 5060  td.LC_table_cell_checkbox { Line 5173  td.LC_table_cell_checkbox {
   clear:both;    clear:both;
   background: #F8F8F8; /* $sidebg; */    background: #F8F8F8; /* $sidebg; */
   border: 1px solid $sidebg;    border: 1px solid $sidebg;
   margin: 0 0 10px 0;          margin: 0 0 0 0;      
 }  }
   
 .LC_fontsize_medium {  .LC_fontsize_medium {
Line 6018  fieldset > legend { Line 6131  fieldset > legend {
   padding: 0 5px 0 5px;    padding: 0 5px 0 5px;
 }  }
   
   div.LC_page_header {
     background-color: $pgbg_or_bgcolor;
     margin: 0 0 1.0em 0;
   }
   
 #LC_nav_bar {  #LC_nav_bar {
   float: left;    float: left;
   margin: 0.2em 0 0 0;    margin: 0.2em 0 0 0;
Line 6193  ol#LC_MenuBreadcrumbs, Line 6311  ol#LC_MenuBreadcrumbs,
 ol#LC_PathBreadcrumbs {  ol#LC_PathBreadcrumbs {
   padding-left: 10px;    padding-left: 10px;
   margin: 0;    margin: 0;
   list-style-position: inside;    margin: 0;
     /* SD working here     height: 2.5em;  /* equal to #LC_breadcrumbs line-height */
     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 6213  ul.LC_CourseBreadcrumbs li a { Line 6328  ul.LC_CourseBreadcrumbs li a {
   font-size:90%;    font-size:90%;
 }  }
   
   ol#LC_MenuBreadcrumbs h1 {
     display: inline;
     font-size: 90%;
     line-height: 2.5em;
     margin: 0;
     padding: 0;
   }
   
 ol#LC_PathBreadcrumbs li a {  ol#LC_PathBreadcrumbs li a {
   text-decoration:none;    text-decoration:none;
   font-size:100%;    font-size:100%;
Line 6457  ul.LC_funclist { Line 6580  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 6483  ul.LC_funclist li { Line 6611  ul.LC_funclist li {
   background:#DAE0D2 url("/gcimenu_bg.gif") repeat-x bottom;    background:#DAE0D2 url("/gcimenu_bg.gif") repeat-x bottom;
   font-size:93%;    font-size:93%;
   line-height:normal;    line-height:normal;
     margin: 0.5em 0 0.5em 0;
 }  }
 #gciheader ul {  #gciheader ul {
   margin:0;    margin:0;
   padding:10px 10px 0;    padding:10px 5px 0;
   list-style:none;    list-style:none;
 }  }
 #gciheader li {  #gciheader li {
Line 6801  sub start_page { Line 6930  sub start_page {
  #if bread_crumbs_component exists show it as headline else show only the breadcrumbs   #if bread_crumbs_component exists show it as headline else show only the breadcrumbs
  if(exists($args->{'bread_crumbs_component'})){   if(exists($args->{'bread_crumbs_component'})){
  $result .= &Apache::lonhtmlcommon::breadcrumbs($args->{'bread_crumbs_component'});   $result .= &Apache::lonhtmlcommon::breadcrumbs($args->{'bread_crumbs_component'});
  }else{   } else {
  $result .= &Apache::lonhtmlcommon::breadcrumbs();                  $result .= &Apache::lonhtmlcommon::breadcrumbs(); 
  }   }
     }      }
     return $result;      return $result;
Line 10909  sub existing_gcitest_courses { Line 11038  sub existing_gcitest_courses {
     return %courses;      return %courses;
 }  }
   
   sub gcitest_switcher {
       my ($role,$formname,%courses) = @_;
       my $output;
       my %Sortby;
       foreach my $course (sort(keys(%courses))) {
           next unless (ref($courses{$course}) eq 'HASH');
           my $clean_title = $courses{$course}{'description'};
           $clean_title =~ s/\W+//g;
           if ($clean_title eq '') {
               $clean_title = $courses{$course}{'description'};
           }
           push(@{$Sortby{$clean_title}},$course);
       }
       my @sorted_courses = sort { lc($a) cmp lc($b) } (keys(%Sortby));
       my $default;
       if (@sorted_courses > 1) {
           if (($env{'request.course.id'}) && ($courses{$env{'request.course.id'}})) {
               $default = &mt('Switch concept test ...');
           } else {
               $default = &mt('Select a concept test ...');
           }
       } else {
           unless (($env{'request.course.id'}) && ($courses{$env{'request.course.id'}})) {
               $default = &mt('Select concept test ...');
           }
       }
       if ($default) {
           $output = '<form name="'.$formname.'" action="/adm/roles" method="post">'.
                     '<select name="newrole" onchange="javascript:courseswitcher();">'.
                     '<option value="" selected="selected">'.$default.'</option>';
           foreach my $item (@sorted_courses) {
               foreach my $course (@{$Sortby{$item}}) {
                   my ($cdom,$cnum) = split('_',$course);
                   $output .= '<option value="'.$role.'./'.$cdom.'/'.$cnum.'">'.$courses{$course}{'description'}.'</option>';
               }
           }
           $output .= '</select><input type="hidden" name="selectrole" value="" /></form>';
       }
       return $output;
   }
   
   sub gcitest_switcher_js {
       my ($current,$numcourses,$formname) = @_;
       my $output = <<"ENDJS";
   
   function courseswitcher(caller) {
       var numcourses = $numcourses;
       var current = '$current';
       var choice = document.$formname.newrole.options[document.$formname.newrole.selectedIndex].value;
       if (choice == '') {
           if (caller == 'icon') {
               alert('No Concept Test selected');
           }
           document.$formname.selectrole.value = '';
           return;
       }
       if (choice == current) {
           if ((caller != 'icon') && (numcourses > 1)) {
               alert('You have selected the current course.\\nPlease select a different Concept Test course');
           }
           document.$formname.newrole.selectedIndex = 0;
           document.$formname.selectrole.value = '';
           return;
       }
       document.$formname.selectrole.value = '1';
       document.$formname.submit();
       return;
   }
   
   ENDJS
       return $output;
   }
   
   
   
 =pod  =pod
   
 =back  =back

Removed from v.1.925.2.13  
changed lines
  Added in v.1.925.2.14


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