Diff for /loncom/interface/loncommon.pm between versions 1.227 and 1.238

version 1.227, 2004/11/08 22:50:37 version 1.238, 2004/12/02 00:01:34
Line 379  sub coursebrowser_javascript { Line 379  sub coursebrowser_javascript {
    return (<<ENDSTDBRW);     return (<<ENDSTDBRW);
 <script type="text/javascript" language="Javascript" >  <script type="text/javascript" language="Javascript" >
     var stdeditbrowser;      var stdeditbrowser;
     function opencrsbrowser(formname,uname,udom,desc) {      function opencrsbrowser(formname,uname,udom,desc,extra_element) {
         var url = '/adm/pickcourse?';          var url = '/adm/pickcourse?';
         var filter;          var filter;
         if (filter != null) {          if (filter != null) {
Line 396  sub coursebrowser_javascript { Line 396  sub coursebrowser_javascript {
         url += 'form=' + formname + '&cnumelement='+uname+          url += 'form=' + formname + '&cnumelement='+uname+
                             '&cdomelement='+udom+                              '&cdomelement='+udom+
                                     '&cnameelement='+desc;                                      '&cnameelement='+desc;
           if (extra_element !=null && extra_element != '' && formname == 'rolechoice') {
               url += '&roleelement='+extra_element;
               if (domainfilter == null || domainfilter == '') {
                   url += '&domainfilter='+extra_element;
               }
           }
         var title = 'Course_Browser';          var title = 'Course_Browser';
         var options = 'scrollbars=1,resizable=1,menubar=0';          var options = 'scrollbars=1,resizable=1,menubar=0';
         options += ',width=700,height=600';          options += ',width=700,height=600';
Line 407  ENDSTDBRW Line 413  ENDSTDBRW
 }  }
   
 sub selectcourse_link {  sub selectcourse_link {
    my ($form,$unameele,$udomele,$desc)=@_;     my ($form,$unameele,$udomele,$desc,$extra_element)=@_;
     return "<a href='".'javascript:opencrsbrowser("'.$form.'","'.$unameele.      return "<a href='".'javascript:opencrsbrowser("'.$form.'","'.$unameele.
         '","'.$udomele.'","'.$desc.'");'."'>".&mt('Select Course')."</a>";          '","'.$udomele.'","'.$desc.'","'.$extra_element.'");'."'>".&mt('Select Course')."</a>";
 }  }
   
 =pod  =pod
Line 2279  sub get_student_view { Line 2285  sub get_student_view {
   if (defined($moreenv)) {    if (defined($moreenv)) {
       %form=(%form,%{$moreenv});        %form=(%form,%{$moreenv});
   }    }
   if ($target eq 'tex') {$form{'grade_target'} = 'tex';}    if (defined($target)) { $form{'grade_target'} = $target; }
   $feedurl=&Apache::lonnet::clutter($feedurl);    $feedurl=&Apache::lonnet::clutter($feedurl);
   my $userview=&Apache::lonnet::ssi_body($feedurl,%form);    my $userview=&Apache::lonnet::ssi_body($feedurl,%form);
   $userview=~s/\<body[^\>]*\>//gi;    $userview=~s/\<body[^\>]*\>//gi;
Line 2556  sub bodytag { Line 2562  sub bodytag {
     if (!defined($lonhttpdPort)) { $lonhttpdPort='8080'; }      if (!defined($lonhttpdPort)) { $lonhttpdPort='8080'; }
 # construct main body tag  # construct main body tag
     my $bodytag = <<END;      my $bodytag = <<END;
 <style>  <style type="text/css">
 h1, h2, h3, th { font-family: Arial, Helvetica, sans-serif }  h1, h2, h3, th { font-family: Arial, Helvetica, sans-serif }
 a:focus { color: red; background: yellow }   a:focus { color: red; background: yellow } 
 </style>  </style>
Line 2577  END Line 2583  END
 # No Remote  # No Remote
  my $roleinfo=(<<ENDROLE);   my $roleinfo=(<<ENDROLE);
 <td bgcolor="$tabbg" align="right">  <td bgcolor="$tabbg" align="right">
 <p>  
 <font size="2" face="Arial, Helvetica, sans-serif">  <font size="2" face="Arial, Helvetica, sans-serif">
     $ENV{'environment.firstname'}      $ENV{'environment.firstname'}
     $ENV{'environment.middlename'}      $ENV{'environment.middlename'}
Line 2588  END Line 2593  END
 <font size="2" face="Arial, Helvetica, sans-serif">$role</font>&nbsp;  <font size="2" face="Arial, Helvetica, sans-serif">$role</font>&nbsp;
 <br />  <br />
 <font size="2" face="Arial, Helvetica, sans-serif">$realm</font>&nbsp;  <font size="2" face="Arial, Helvetica, sans-serif">$realm</font>&nbsp;
 </p>  
 </td>  </td>
 ENDROLE  ENDROLE
         my $titleinfo = '<font face="Arial, Helvetica, sans-serif" size="+3" color="'.          my $titleinfo = '<font face="Arial, Helvetica, sans-serif" size="+3" color="'.
                         $font.'"><b>'.$title.'</b></font>';   $font.'"><b>'.$title.'</b></font>';
         if ($customtitle) {          if ($customtitle) {
             $titleinfo = $customtitle;              $titleinfo = $customtitle;
         }           }
         return $bodytag.&Apache::lonmenu::menubuttons($forcereg,'web',  
                                                       $forcereg).   if ($ENV{'request.state'} eq 'construct') {
       '<table bgcolor="'.$pgbg.'" width="100%" border="0" cellspacing="3" cellpadding="3"><tr><td rowspan="3" bgcolor="'.$tabbg.'">'.$titleinfo.'</td>'.$roleinfo.'</tr></table>';      my ($uname,$thisdisfn)=
    ($ENV{'request.filename'} =~ m|^/home/([^/]+)/public_html/(.*)|);
       my $formaction='/priv/'.$uname.'/'.$thisdisfn;
       $formaction=~s/\/+/\//g;
               unless ($customtitle) {  #this is for resources; directories have customtitle, and crumbs and select recent are created in lonpubdir.pm  
                   my $parentpath = '';
                   if ($thisdisfn =~ m-(.+/)[^/]*$-) {
                       $parentpath = $1;
                   }
           $titleinfo = &Apache::loncommon::help_open_menu('','','','',3,'Authoring').
                         '<font face="Arial, Helvetica, sans-serif"><b>Construction Space</b>:</font>&nbsp;'. 
                         '<form name="dirs" method="post" action="'.$formaction
       .'" target="_top"><tt><b>'
       .&Apache::lonhtmlcommon::crumbs($uname.'/'.$parentpath,'_top','/priv','','+1',1)."</b></tt><br />"
       .&Apache::lonhtmlcommon::select_recent('construct','recent','this.form.action=this.form.recent.value;this.form.submit()')
       .'</form>'
       .&Apache::lonmenu::constspaceform();
   
               }
       $forcereg=1;
           }
           my $titletable = '<table bgcolor="'.$pgbg.'" width="100%" border="0" '.
                            'cellspacing="3" cellpadding="3">'.
                            '<tr><td rowspan="3" bgcolor="'.$tabbg.'">'.
                            $titleinfo.'</td>'.$roleinfo.'</tr></table>';
           if ($ENV{'request.state'} eq 'construct') {
               $bodytag .= &Apache::lonmenu::menubuttons($forcereg,'web',$forcereg,$titletable);
    } else {
               $bodytag .= &Apache::lonmenu::menubuttons($forcereg,'web',$forcereg).
                           $titletable;
           }
           return $bodytag;
     }      }
   
 #  #
Line 2665  sub get_users_function { Line 2700  sub get_users_function {
   
 ###############################################  ###############################################
   
   =pod
   
   =item get_sections
   
   Determines all the sections for a course including
   sections with students and sections containing other roles.
   Incoming parameters: domain, course number, reference to 
   section hash (keys to be section/group IDs), reference to 
   array containing roles for which sections should be gathered
   (optional). If the fourth argument is undefined, sections
   are gathered for any role.
    
   Returns number of sections.
   
   =cut
   
   ###############################################
   sub get_sections {
       my ($cdom,$cnum,$sectioncount,$possible_roles) = @_;
       my $cid = $cdom.'_'.$cnum;
       my $numsections = 0;
       if ($cdom && $cnum) {
           if (!defined($possible_roles) || (grep/^st$/,@$possible_roles)) {
               my ($classlist) = &Apache::loncoursedata::get_classlist($cid,$cdom,$cnum);
               my $sec_index = &Apache::loncoursedata::CL_SECTION();
               my $status_index = &Apache::loncoursedata::CL_STATUS();
               while (my ($student,$data) = each %$classlist) {
                   my ($section,$status) = ($data->[$sec_index],
                                            $data->[$status_index]);
                   unless ($section eq '' || $section =~ /^\s*$/) {
                       if (!defined($$sectioncount{$section})) {
                           $$sectioncount{$section} = 1;
                           $numsections ++;
                       } else {
                           $$sectioncount{$section} ++;
                       }
                   }
               }
           }
           my %courseroles = &Apache::lonnet::dump('nohist_userroles',$cdom,$cnum);
           foreach my $user (sort keys %courseroles) {
               if ($user =~ /^(\w{2})/) {
                   my $role = $1;
                   if (!defined($possible_roles) || (grep/^$role$/,@$possible_roles)) {
                       if ($role eq 'cr') {
                           if ($user =~ m-^$role/[^/]*/[^/]*/[^/]*:[^:]*:[^:]*:(\w+)-) {
                               if (!defined($$sectioncount{$1})) {
                                   $$sectioncount{$1} = 1;
                                   $numsections ++;
                               } else {
                                   $$sectioncount{$1} ++;
                               }
                           }
                       }
                       if ($user =~ /^$role:[^:]*:[^:]*:(\w+)/) {
                           if (!defined($$sectioncount{$1})) {
                               $$sectioncount{$1} = 1;
                               $numsections ++;
                           } else {
                               $$sectioncount{$1} ++;
                           }
                       }
                   }
               }
           }
       }
       return $numsections;
   }
   
   
 sub get_posted_cgi {  sub get_posted_cgi {
     my $r=shift;      my $r=shift;
   
Line 3291  sub DrawBarGraph { Line 3396  sub DrawBarGraph {
                   '#66ccff', '#ff9999', '#cccc33', '#660000', '#33cc66',                    '#66ccff', '#ff9999', '#cccc33', '#660000', '#33cc66',
                   ];                     ]; 
     }      }
       my $extra_settings = {};
       if (ref($Values[-1]) eq 'HASH') {
           $extra_settings = pop(@Values);
       }
     #      #
     my $identifier = &get_cgi_id();      my $identifier = &get_cgi_id();
     my $id = 'cgi.'.$identifier;              my $id = 'cgi.'.$identifier;        
Line 3366  sub DrawBarGraph { Line 3475  sub DrawBarGraph {
     $ValuesHash{$id.'.bar_width'} = $bar_width;      $ValuesHash{$id.'.bar_width'} = $bar_width;
     $ValuesHash{$id.'.labels'} = join(',',@Labels);      $ValuesHash{$id.'.labels'} = join(',',@Labels);
     #      #
       # Deal with other parameters
       while (my ($key,$value) = each(%$extra_settings)) {
           $ValuesHash{$id.'.'.$key} = $value;
       }
       #
     &Apache::lonnet::appenv(%ValuesHash);      &Apache::lonnet::appenv(%ValuesHash);
     return '<img src="/cgi-bin/graph.png?'.$identifier.'" border="1" />';      return '<img src="/cgi-bin/graph.png?'.$identifier.'" border="1" />';
 }  }
Line 3773  sub escape_double { Line 3887  sub escape_double {
 #   Escapes the last element of a full URL.  #   Escapes the last element of a full URL.
 sub escape_url {  sub escape_url {
     my ($url)   = @_;      my ($url)   = @_;
     my @urlslices = split(/\//, $url);      my @urlslices = split(/\//, $url,-1);
     my $lastitem = &Apache::lonnet::escape(pop(@urlslices));      my $lastitem = &Apache::lonnet::escape(pop(@urlslices));
     return join('/',@urlslices).'/'.$lastitem;      return join('/',@urlslices).'/'.$lastitem;
 }  }

Removed from v.1.227  
changed lines
  Added in v.1.238


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