Diff for /loncom/interface/lonaboutme.pm between versions 1.130 and 1.142

version 1.130, 2009/05/12 14:46:59 version 1.142, 2010/01/30 18:02:27
Line 96  sub handler { Line 96  sub handler {
     my $target=$env{'form.grade_target'};      my $target=$env{'form.grade_target'};
 # ------------------------------------------------------------ Print the screen  # ------------------------------------------------------------ Print the screen
     if ($target eq 'tex') {      if ($target eq 'tex') {
  $r->print(&Apache::lonprintout::print_latex_header($env{'form.latex_type'}));          $r->print(&Apache::lonprintout::print_latex_header($env{'form.latex_type'}));
     }      }
     my (undef,undef,$cdom,$cnum,undef,$action)=split(/\//,$r->uri);      my (undef,undef,$cdom,$cnum,undef,$action)=split(/\//,$r->uri);
     my $is_course;      my $is_course;
 # Is this even a user?  # Is this even a user?
     if (&Apache::lonnet::homeserver($cnum,$cdom) eq 'no_host') {      if (&Apache::lonnet::homeserver($cnum,$cdom) eq 'no_host') {
  &Apache::loncommon::simple_error_page($r,'No info',          &Apache::loncommon::simple_error_page($r,'No info',
       'No user information available');              'No user information available');
         return OK;          return OK;
     } else {      } else {
         $is_course = &Apache::lonnet::is_course($cdom,$cnum);          $is_course = &Apache::lonnet::is_course($cdom,$cnum);
Line 122  sub handler { Line 122  sub handler {
                 } else {                  } else {
                     $r->print(&Apache::loncommon::start_page("Personal Information Page"));                      $r->print(&Apache::loncommon::start_page("Personal Information Page"));
                     $r->print('<h2>'.&mt('No user personal information page available') .'</h2>'.                      $r->print('<h2>'.&mt('No user personal information page available') .'</h2>'.
                               &mt('This is a result of one of the following:').'<ul>'.                          &mt('This is a result of one of the following:').'<ul>'.
                               '<li>'.&mt('The administrator of this domain has disabled personal information page functionality for this specific user.').'</li>'.                          '<li>'.&mt('The administrator of this domain has disabled personal information page functionality for this specific user.').'</li>'.
                               '<li>'.&mt('The domain has been configured to disable, by default, personal information page functionality for all users in the domain.').'</li>'.                          '<li>'.&mt('The domain has been configured to disable, by default, personal information page functionality for all users in the domain.').'</li>'.
                               '</ul>');                          '</ul>');
                     $r->print(&Apache::loncommon::end_page());                      $r->print(&Apache::loncommon::end_page());
                 }                  }
                 return OK;                  return OK;
Line 141  sub handler { Line 141  sub handler {
   
 # ------------------------------------------------------------ Get Query String  # ------------------------------------------------------------ Get Query String
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
     ['forceedit','forcestudent',                          ['forceedit','forcestudent',
      'register','popup']);                           'register','popup']);
   
 # ----------------------------------------------- Available Portfolio file display  # ----------------------------------------------- Available Portfolio file display
     if (($target ne 'tex') && ($action eq 'portfolio')) {      if (($target ne 'tex') && ($action eq 'portfolio')) {
         &display_portfolio_header($r,$is_course);          &display_portfolio_header($r,$is_course);
         if ((!$is_course) && (!&Apache::lonnet::usertools_access($cnum,$cdom,'portfolio'))) {          if ((!$is_course) && (!&Apache::lonnet::usertools_access($cnum,$cdom,'portfolio'))) {
             $r->print('<h2>'.&mt('No user portfolio available') .'</h2>'.              $r->print('<h2>'.&mt('No user portfolio available') .'</h2>'.
                       &mt('This is a result of one of the following:').'<ul>'.                  &mt('This is a result of one of the following:').'<ul>'.
                       '<li>'.&mt('The administrator of this domain has disabled portfolio functionality for this specific user.').'</li>'.                  '<li>'.&mt('The administrator of this domain has disabled portfolio functionality for this specific user.').'</li>'.
                       '<li>'.&mt('The domain has been configured to disable, by default, portfolio functionality for all users in the domain.').'</li>'.                  '<li>'.&mt('The domain has been configured to disable, by default, portfolio functionality for all users in the domain.').'</li>'.
                       '</ul>');                  '</ul>');
         } else {          } else {
             my ($blocked,$blocktext) =              my ($blocked,$blocktext) =
                 &Apache::loncommon::blocking_status('port',$cnum,$cdom);                  &Apache::loncommon::blocking_status('port',$cnum,$cdom);
Line 168  sub handler { Line 168  sub handler {
   
     if ($is_course) {      if ($is_course) {
         if ($target ne 'tex') {          if ($target ne 'tex') {
     my $brcrum = [{href=>"/adm/navmaps",text=>"Navigate Course Contents"},              my $brcrum = [{href=>"/adm/navmaps",text=>"Course Contents"},
   {href=>"/adm/aboutme",text=>"Course Information"}];                {href=>"/adm/aboutme",text=>"Course Information"}];
             my $start_page =              my $start_page =
                 &Apache::loncommon::start_page(                  &Apache::loncommon::start_page(
                     "Course Information",                      "Course Information",
Line 196  sub handler { Line 196  sub handler {
     }      }
   
 #------------Get rights  #------------Get rights
  my %courseenv=&Apache::lonnet::dump('environment',$cdom,$cnum);      my %courseenv=&Apache::lonnet::dump('environment',$cdom,$cnum);
   my %syllabus=&Apache::lonnet::dump('aboutme',$cdom,$cnum);       my %syllabus=&Apache::lonnet::dump('aboutme',$cdom,$cnum);
     my $allowed=0;      my $allowed=0;
   my $privleged=$allowed=(($env{'user.name'} eq $cnum) &&        my $privleged=$allowed=(($env{'user.name'} eq $cnum) &&
        ($env{'user.domain'} eq $cdom));                     ($env{'user.domain'} eq $cdom));
     if ($forcestudent or $target eq 'tex') { $allowed=0; }      if ($forcestudent or $target eq 'tex') { $allowed=0; }
   
   
 # --------------------------------------- There is such a user, get environment  # --------------------------------------- There is such a user, get environment
   
     if ($target ne 'tex') {      if ($target ne 'tex') {
  my $rss_link = &Apache::lonrss::rss_link($cnum,$cdom);          my $rss_link = &Apache::lonrss::rss_link($cnum,$cdom);
         my $args = {'function' => $forcestudent,          my $args = {'function' => undef,
                     'domain'   => $cdom,                      'domain'   => $cdom,
                     'force_register' => $forceregister};  # if this page is part of course content it looses the menu line when switching from Edit Mode to Public Mode. To avoid
   #this, I take take the value of the environment Variable $env{form.register}
   #                    'force_register' => $forceregister};
                       'force_register' => $env{'form.register'}};
   
         if ($env{'form.popup'}) {          if ($env{'form.popup'}) {
             $args->{'no_nav_bar'} = 1;              $args->{'no_nav_bar'} = 1;
    #Don't show breadcrumbs twice, when this page is part of course content and you call it  
    } elsif ($env{'form.register'}) {
    #do nothing
           } else { # Don't show breadcrumbs in popup window
               $args->{'bread_crumbs'} = [{href=>"/adm/$cdom/$cnum/aboutme",text=>"Personal Information Page"}];
           }
           my $start_page = &Apache::loncommon::start_page('Personal Information Page',$rss_link,$args);
           $r->print($start_page);
      }
   
   #----------------Print Functions
       if ($target ne 'tex') {
           my $functions=&Apache::lonhtmlcommon::start_funclist();
           if ($allowed) {
               my $query_string = &build_query_string(
                                      {'forcestudent' => '1',
                                       'popup' => $env{'form.popup'}});
               $functions.=&Apache::lonhtmlcommon::add_item_funclist(
                               '<a href="'.$r->uri.$query_string.'">'
                              .&mt('Show Public View').'</a>'
                              .&Apache::loncommon::help_open_topic(
                                   'Uploaded_Templates_PublicView'));
           } elsif ($privleged) {
               my $query_string = &build_query_string(
                                      {'forceedit' => '1',
                                       'popup' => $env{'form.popup'}});
               $functions.=&Apache::lonhtmlcommon::add_item_funclist(
                               '<a href="'.$r->uri.$query_string.'">'
                               .&mt('Edit').'</a>');
           }
           $functions.=&Apache::lonhtmlcommon::add_item_funclist(
                           &Apache::lontemplate::send_message($r,$cnum,$cdom));
   
           if ($env{'request.course.id'} &&
               &Apache::lonnet::allowed('srm',$env{'request.course.id'}) &&
               &in_course($cdom,$cnum)) {
               if (&Apache::lonnet::allowed('vsa', $env{'request.course.id'}) ||
                   &Apache::lonnet::allowed('vsa', $env{'request.course.id'}.'/'.$env{'request.course.sec'})) {
                   $functions.=&Apache::lonhtmlcommon::add_item_funclist(
                        &Apache::loncommon::track_student_link(
                            'View recent activity by this student',$cnum,$cdom));
               }
               if (&Apache::lonnet::allowed('vgr', $env{'request.course.id'}) ||
                   &Apache::lonnet::allowed('vgr', $env{'request.course.id'}.'/'.$env{'request.course.sec'})) {
                   $functions.=&Apache::lonhtmlcommon::add_item_funclist(
                       &Apache::loncommon::slot_reservations_link(
                           'Slot reservation history',$cnum,$cdom));
               }
               $functions.=&Apache::lonhtmlcommon::add_item_funclist(
                              &Apache::loncommon::noteswrapper(
                                  &mt('Add Records'),$cnum,$cdom));
         }          }
  $args->{'bread_crumbs'} = [{href=>"/adm/fhwfdev/$cnum/aboutme",text=>"Personal Information Page"}];          $functions.=&Apache::lonhtmlcommon::end_funclist();
  my $start_page = &Apache::loncommon::start_page('Personal Information Page',$rss_link,$args);          $r->print(&Apache::loncommon::head_subbox($functions));
  $r->print($start_page);      }
   
   # Print Privacy Note
       if ($target ne 'tex') {
         #Print Privacy Note          #Print Privacy Note
         if ($allowed) {          if ($allowed) {
             $r->print('<div class="LC_info">'              $r->print('<div class="LC_info">'
                     .'<b>'.&mt('Privacy Note:').'</b> '                  .'<b>'.&mt('Privacy Note:').'</b> '
                     .&mt('The information you submit can be viewed by anybody who is logged into LON-CAPA. Do not provide information that you are not ready to share publicly.')                  .&mt('The information you submit can be viewed by anybody who is logged into LON-CAPA. Do not provide information that you are not ready to share publicly.')
                     .'</div>'                  .'</div>'
            );              );
  }          }
       }
   
 #Print last modified  #Print last modified
   
  my $lastmod;      if ($target ne 'tex') {
           my $lastmod;
         if (($syllabus{'uploaded.lastmodified'}) || ($allowed)) {          if (($syllabus{'uploaded.lastmodified'}) || ($allowed)) {
         $lastmod=$syllabus{'uploaded.lastmodified'};              $lastmod=$syllabus{'uploaded.lastmodified'};
         $lastmod=($lastmod?&Apache::lonlocal::locallocaltime($lastmod):&mt('never'));              $lastmod=($lastmod?&Apache::lonlocal::locallocaltime($lastmod):&mt('never'));
  $r->print('<div class="LC_info">');              $r->print('<div class="LC_info">');
   $r->print(&mt('Last updated').': '.$lastmod . '');               $r->print(&mt('Last updated').': '.$lastmod . '');
  $r->print('</div>');              $r->print('</div>');
           }
     }      }
 }  
 #Print Help Text  #Print Help Text
  if ($target ne 'tex') {      if ($target ne 'tex') {
  if($allowed){          if($allowed){
  $r->print(&Apache::loncommon::help_open_topic('Uploaded_Templates_TextBoxes',&mt('Help with filling in text boxes')));              $r->print(&Apache::loncommon::help_open_topic('Uploaded_Templates_TextBoxes',&mt('Help with filling in text boxes')));
  }          }
  }      }
   
 #----------------Print Functions  
  if ($target ne 'tex') {  
  $r->print(&Apache::lontemplate::start_functionslist());  
       if ($allowed) {  
  my $query_string = &build_query_string({'forcestudent' => '1','popup' => $env{'form.popup'}});  
                         $r->print(&Apache::lontemplate::item_functionslist(  
                             '<a href="'.$r->uri.$query_string.'">'.&mt('Show Public View').'</a>'  
                            .&Apache::loncommon::help_open_topic('Uploaded_Templates_PublicView')));  
     }elsif($privleged){  
  my $query_string = &build_query_string({'forceedit' => '1','popup' => $env{'form.popup'}});  
                         $r->print(&Apache::lontemplate::item_functionslist(  
                             '<a href="'.$r->uri.$query_string.'">'. &mt('Edit').'</a>'));  
  }  
                 $r->print(&Apache::lontemplate::item_functionslist(  
                     &Apache::lontemplate::send_message($r,$cnum,$cdom)));  
   
  if ($env{'request.course.id'} && &Apache::lonnet::allowed('srm',$env{'request.course.id'}) && &in_course($cdom,$cnum)) {  
  if (&Apache::lonnet::allowed('vsa', $env{'request.course.id'}) || &Apache::lonnet::allowed('vsa', $env{'request.course.id'}.'/'.  
  $env{'request.course.sec'})) {  
                             $r->print(&Apache::lontemplate::item_functionslist(  
                                 &Apache::loncommon::track_student_link('View recent activity by this student',$cnum,$cdom)));  
      }  
                         if (&Apache::lonnet::allowed('vgr', $env{'request.course.id'}) ||  
                             &Apache::lonnet::allowed('vgr', $env{'request.course.id'}.'/'.  
                                                      $env{'request.course.sec'})) {  
                             $r->print(&Apache::lontemplate::item_functionslist(  
                                 &Apache::loncommon::slot_reservations_link('Slot reservation history',$cnum,$cdom)));  
                         }  
                         $r->print(&Apache::lontemplate::item_functionslist(  
                             &Apache::loncommon::noteswrapper(&mt('Add Records'),$cnum,$cdom)));  
  }  
         $r->print(&Apache::lontemplate::end_functionslist());  
  }  
 #------Print Headtitle  #------Print Headtitle
   if ($target ne 'tex') {       if ($target ne 'tex') {
  $r->print('<div class="LC_ContentBoxSpecial">');          $r->print('<div class="LC_Box">');
  $r->print('<h2 class="LC_hcell">'.&Apache::loncommon::plainname($cnum,$cdom).'</h2>');          $r->print('<h2 class="LC_hcell">'.&Apache::loncommon::plainname($cnum,$cdom).'</h2>');
  $r->print('<div class="LC_BoxPadding">' );           if ($courseenv{'nickname'}) {
  if ($courseenv{'nickname'}) {                 $r->print('<h2>&quot;'.$courseenv{'nickname'}.'&quot;</h2>');
       $r->print('<h2>&quot;'.$courseenv{'nickname'}.'&quot;</h2>');          }
     }          $r->print('<h3>'.&Apache::lonnet::domain($cdom,'description').'</h3>');
  $r->print('<h3>'.&Apache::lonnet::domain($cdom,'description').'</h3>');       } else {
   }          $r->print('\noindent{\large\textbf{'.&Apache::loncommon::plainname($cnum,$cdom).'}}\\\\\\\\');
  else {          $r->print('\textbf{'.&Apache::lonnet::domain($cdom,'description').'}\\\\');
  $r->print('\noindent{\large\textbf{'.&Apache::loncommon::plainname($cnum,$cdom).'}}\\\\\\\\');      }
  $r->print('\textbf{'.&Apache::lonnet::domain($cdom,'description').'}\\\\');  
  }  
 # does this user have privileges to post, etc?  # does this user have privileges to post, etc?
   
   
  my $query_string;      my $query_string;
   
       if (($env{'form.uploaddoc.filename'}) &&      if (($env{'form.uploaddoc.filename'}) &&
           ($env{'form.storeupl'}) && ($allowed)) {            ($env{'form.storeupl'}) && ($allowed)) {
    if ($env{'form.uploaddoc.filename'}=~/\.(gif|jpg|png|jpeg)$/i) {          if ($env{'form.uploaddoc.filename'}=~/\.(gif|jpg|png|jpeg)$/i) {
       if ($syllabus{'uploaded.photourl'}) {              if ($syllabus{'uploaded.photourl'}) {
   &Apache::lonnet::removeuploadedurl($syllabus{'uploaded.photourl'});                  &Apache::lonnet::removeuploadedurl($syllabus{'uploaded.photourl'});
       }              }
       $syllabus{'uploaded.photourl'}=              $syllabus{'uploaded.photourl'}=
                  &Apache::lonnet::userphotoupload('uploaddoc','aboutme');                  &Apache::lonnet::userphotoupload('uploaddoc','aboutme');
    }           }
           $syllabus{'uploaded.lastmodified'}=time;          $syllabus{'uploaded.lastmodified'}=time;
           &Apache::lonnet::put('aboutme',\%syllabus,$cdom,$cnum);          &Apache::lonnet::put('aboutme',\%syllabus,$cdom,$cnum);
        }      }
     if ($allowed && $env{'form.delupl'}) {      if ($allowed && $env{'form.delupl'}) {
  if ($syllabus{'uploaded.photourl'}) {          if ($syllabus{'uploaded.photourl'}) {
     &Apache::lonnet::removeuploadedurl($syllabus{'uploaded.photourl'});              &Apache::lonnet::removeuploadedurl($syllabus{'uploaded.photourl'});
     delete($syllabus{'uploaded.photourl'});              delete($syllabus{'uploaded.photourl'});
     &Apache::lonnet::del('aboutme',['uploaded.photourl'],$cdom,$cnum);              &Apache::lonnet::del('aboutme',['uploaded.photourl'],$cdom,$cnum);
  }          }
     }      }
        if (($allowed) && ($env{'form.storesyl'})) {      if (($allowed) && ($env{'form.storesyl'})) {
    foreach my $syl_field (keys(%syllabusfields)) {          foreach my $syl_field (keys(%syllabusfields)) {
                my $field=$env{'form.'.$syl_field};              my $field=$env{'form.'.$syl_field};
                $field=~s/\s+$//s;              $field=~s/\s+$//s;
                $field=&Apache::lonfeedback::clear_out_html($field,              $field=&Apache::lonfeedback::clear_out_html($field,$env{'user.adv'});
                                                            $env{'user.adv'});              $syllabus{$syl_field}=$field;
        $syllabus{$syl_field}=$field;          }
            }          $syllabus{'uploaded.lastmodified'}=time;
            $syllabus{'uploaded.lastmodified'}=time;          &Apache::lonnet::put('aboutme',\%syllabus,$cdom,$cnum);
            &Apache::lonnet::put('aboutme',\%syllabus,$cdom,$cnum);      }
        }  
   
 my $image;      my $image;
 # ---------------------------------------------------------------- Get syllabus  # ---------------------------------------------------------------- Get syllabus
     if (($syllabus{'uploaded.lastmodified'}) || ($allowed)) {      if (($syllabus{'uploaded.lastmodified'}) || ($allowed)) {
        if ($syllabus{'uploaded.photourl'}) {          if ($syllabus{'uploaded.photourl'}) {
    &Apache::lonnet::allowuploaded('/adm/aboutme',              &Apache::lonnet::allowuploaded('/adm/aboutme',$syllabus{'uploaded.photourl'});
   $syllabus{'uploaded.photourl'});  
   
            #This call is to resize all "Personal Information" images in the LonCapa System. When its done, you can remove this line.             #This call is to resize all "Personal Information" images in the LonCapa System. When its done, you can remove this line.
    &Apache::lonnet::resizeImage(&Apache::lonnet::filelocation('',$syllabus{'uploaded.photourl'}));              &Apache::lonnet::resizeImage(&Apache::lonnet::filelocation('',$syllabus{'uploaded.photourl'}));
    #---End Resize---             #---End Resize---
   
               $image=qq|<img name="userPhoto" src="$syllabus{'uploaded.photourl'} " class="LC_AboutMe_Image" alt="Photo of the user" />|;
   
    $image=qq{<img name="userPhoto" src="$syllabus{'uploaded.photourl'} " class="LC_AboutMe_Image" />};              if ($target eq 'tex') {
                   $image=&Apache::lonxml::xmlparse($r,'tex',$image);
               }
   
    if ($target eq 'tex') {          }
        $image=&Apache::lonxml::xmlparse($r,'tex',$image);  
    }          if ($allowed) {
               $r->print(
        }                  '<form name="UploadPhoto" method="post" enctype="multipart/form-data" action="">'.
                   '<h3>'.&mt('Upload a Photo').'</h3>'.
        if ($allowed) {                  '<input type="file" name="uploaddoc" size="50" />'.
            $r->print(                  '<input type="submit" name="storeupl" value="'.&mt('Upload').'" />'.
  '<form method="post" enctype="multipart/form-data">'.                  '<input type="hidden" name="popup" value="'.$env{'form.popup'}.'" />'.
          '<h3>'.&mt('Upload a Photo').'</h3>'.                  '</form>');
          '<input type="file" name="uploaddoc" size="50" />'.              if ($syllabus{'uploaded.photourl'}) {
          '<input type="submit" name="storeupl" value="'.&mt('Upload').'" />'.                  $r->print('<form name="delPhoto" method="post" action="" ><input type="submit" name="delupl" value="'.&mt('Delete Photo').'" /> </form>')
          '<input type="hidden" name="popup" value="'.$env{'form.popup'}.'" />'.              }
  '</form>');              $r->print('<p></p>');
       if ($syllabus{'uploaded.photourl'}) {          }
               $r->print('<form method="post"><input type="submit" name="delupl" value="'.&mt('Delete Photo').'" /> </form>')  
           }          if($allowed) {
           $r->print('<p>');              $r->print('<form name="lonaboutmeFields" method="post" action="" >');
        }          }
   
  if($allowed) {          if ($target ne 'tex') { #print Image
  $r->print('<form method="post">');              $r->print($image);
  }  
           } #End Print Image
  if($target ne 'tex') #print Image  
       {         #Print Content eg. Contactinfo aboutme,...
  &Apache::lontemplate::start_ContentBox($r);          &Apache::lontemplate::print_aboutme_content_template($r,$allowed,$target,\%syllabusfields,\%syllabus);
  &Apache::lontemplate::end_ContentBox($r);         #End Print Content
  $r->print($image);  
           if ($target ne 'tex') { #Begin Print RSS and portfiles
  }#End Print Image              &print_portfiles_link($r,$is_course);
               if (&Apache::lonrss::advertisefeeds($cnum,$cdom) ne '') {
  #Print Content eg. Contactinfo aboutme,...                  &Apache::lontemplate::print_start_template($r,'RSS Feeds and Blogs','LC_Box');
  &Apache::lontemplate::print_aboutme_content_template($r,$allowed,$target,\%syllabusfields,\%syllabus);                  $r->print(&Apache::lonrss::advertisefeeds($cnum,$cdom));
         #End Print Content                  &Apache::lontemplate::print_end_template($r);
               }
        if($target ne 'tex') { #Begin Print RSS and portfiles  
  &print_portfiles_link($r,$is_course);          } #End  Print RSS and portfiles
  if (&Apache::lonrss::advertisefeeds($cnum,$cdom) ne '') {  
  &Apache::lontemplate::print_start_template($r,'RSS Feeds and Blogs','LC_ContentBoxSpecial');  
  $r->print(&Apache::lonrss::advertisefeeds($cnum,$cdom));          if ($allowed) {
  &Apache::lontemplate::print_end_template($r);              if ($env{'form.popup'}) {
  }                  $r->print('<input type="hidden" name="popup" value="'.
                       $env{'form.popup'}.'" />');
        } #End  Print RSS and portfiles              }
               $r->print('</form>');
           }
        if ($allowed) {          if ($target ne 'tex') {$r->print('<br />');} else {$r->print('\\\\');}
            if ($env{'form.popup'}) {  
                $r->print('<input type="hidden" name="popup" value="'.  
                          $env{'form.popup'}.'" />');  
            }  
    $r->print('</form>');  
        }  
        if ($target ne 'tex') {$r->print('<br />');} else {$r->print('\\\\');}  
     } else {      } else {
        $r->print('<p>'.&mt('No personal information provided').'.</p>');          $r->print('<p>'.&mt('No personal information provided').'.</p>');
     }      }
   
     if ($env{'request.course.id'}      if ($env{'request.course.id'}
  && &Apache::lonnet::allowed('srm',$env{'request.course.id'})          && &Apache::lonnet::allowed('srm',$env{'request.course.id'})
  && &in_course($cdom,$cnum)) {          && &in_course($cdom,$cnum)) {
  if ($target ne 'tex') {          if ($target ne 'tex') {
    $r->print('<a name="coursecomment" />');              $r->print('<a name="coursecomment" />');
    &Apache::lontemplate::print_start_template($r,&mt('User Notes, Records of Face-To-Face Discussions, and Critical Messages in Course'),'LC_ContentBoxSpecial');              &Apache::lontemplate::print_start_template($r,&mt('User Notes, Records of Face-To-Face Discussions, and Critical Messages in Course'),'LC_Box');
    $r->print('<span class="LC_info">');              $r->print('<span class="LC_info">');
    $r->print(&mt('Shared by course faculty and staff').&Apache::loncommon::help_open_topic("Course_Face_To_Face_Records,Course_Critical_Message"));              $r->print(&mt('Shared by course faculty and staff').&Apache::loncommon::help_open_topic("Course_Face_To_Face_Records,Course_Critical_Message"));
  $r->print('</span> <p>');              $r->print('</span>');
            &Apache::lonmsgdisplay::disfacetoface($r,$cnum,$cdom);              &Apache::lonmsgdisplay::disfacetoface($r,$cnum,$cdom);
    $r->print('</p>');              &Apache::lontemplate::print_end_template($r);
    &Apache::lontemplate::print_end_template($r);  
           } else {
  } else {              $r->print('\\\\\textbf{'.&mt('User Notes, Records of Face-To-Face Discussions, and Critical Messages in Course').'}\\\\'.&mt('Shared by course faculty and staff').'\\\\\\\\');
     $r->print('\\\\\textbf{'.&mt('User Notes, Records of Face-To-Face Discussions, and Critical Messages in Course').'}\\\\'.&mt('Shared by course faculty and staff').'\\\\\\\\');              &Apache::lonmsgdisplay::disfacetoface($r,$cnum,$cdom, 'tex');
     &Apache::lonmsgdisplay::disfacetoface($r,$cnum,$cdom);          }
  }  
     }      }
     if ($target ne 'tex') {      if ($target ne 'tex') {
  $r->print('</div>');          $r->print('</div>');
     $r->print('</div>');  
         if ($env{'form.popup'}) {          if ($env{'form.popup'}) {
             $r->print('<p><a href="javascript:window.close()">'.&mt('Close window').'</a>');              $r->print('<p><a href="javascript:window.close()">'.&mt('Close window').'</a>');
         }          }
  $r->print(&Apache::loncommon::end_page());          $r->print(&Apache::loncommon::end_page());
     } else {      } else {
  $r->print('\end{document}');          $r->print('\end{document}');
     }      }
   
   
Line 438  sub in_course { Line 454  sub in_course {
     my ($udom,$uname,$cdom,$cnum,$type) = @_;      my ($udom,$uname,$cdom,$cnum,$type) = @_;
     $type ||= 'any';      $type ||= 'any';
     if (!defined($cdom) || !defined($cnum)) {      if (!defined($cdom) || !defined($cnum)) {
  my $cid  = $env{'request.course.id'};          my $cid  = $env{'request.course.id'};
  $cdom = $env{'course.'.$cid.'.domain'};          $cdom = $env{'course.'.$cid.'.domain'};
  $cnum = $env{'course.'.$cid.'.num'};          $cnum = $env{'course.'.$cid.'.num'};
     }      }
     my %roles = &Apache::lonnet::dump('roles',$udom,$uname);      my %roles = &Apache::lonnet::dump('roles',$udom,$uname);
     my @course_roles = grep(m{^/\Q$cdom\E/\Q$cnum\E[/_]}, keys(%roles));      my @course_roles = grep(m{^/\Q$cdom\E/\Q$cnum\E[/_]}, keys(%roles));
Line 448  sub in_course { Line 464  sub in_course {
     return 1 if ($type eq 'any');      return 1 if ($type eq 'any');
     my $now = time();      my $now = time();
     foreach my $role (@course_roles) {      foreach my $role (@course_roles) {
  my (undef,$role_end,$role_start)=split(/\_/,$roles{$role});          my (undef,$role_end,$role_start)=split(/\_/,$roles{$role});
  my $status = 'active';          my $status = 'active';
  if ($role_start > 0 && $now < $role_start) {          if ($role_start > 0 && $now < $role_start) {
     $status = 'future';              $status = 'future';
  }          }
  if ($role_end > 0 && $now > $role_end) {          if ($role_end > 0 && $now > $role_end) {
     $status = 'previous';              $status = 'previous';
  }          }
  return 1 if ($status eq $type);          return 1 if ($status eq $type);
     }      }
     return 0;      return 0;
 }  }
Line 484  sub print_portfiles_link { Line 500  sub print_portfiles_link {
         'difl' => 'Display file listing',          'difl' => 'Display file listing',
     );      );
     if ($filecounts->{'both'} > 0) {      if ($filecounts->{'both'} > 0) {
  $output = '<div class="LC_ContentBoxSpecial"><h4 class="LC_hcell">';          $output = '<div class="LC_Box"><h4 class="LC_hcell">';
  $output .= ($is_course?$lt{'vgpf'}:$lt{'vpfi'}).'</h4><div class="LC_BoxPadding">';          $output .= ($is_course?$lt{'vgpf'}:$lt{'vpfi'}).'</h4>';
   
  #$output = '<h4>'.($is_course?$lt{'vgpf'}:$lt{'vpfi'}).'</h4>';         #$output = '<h4>'.($is_course?$lt{'vgpf'}:$lt{'vpfi'}).'</h4>';
         $output .= '<a href="/adm/'.$cdom.'/'.$cnum.'/aboutme/portfolio'.          $output .= '<a href="/adm/'.$cdom.'/'.$cnum.'/aboutme/portfolio'.
                    $query_string.'">'.$lt{'difl'}.              $query_string.'">'.$lt{'difl'}.
                    '</a><br /><br />';              '</a><br /><br />';
         if ($filecounts->{'both'} == 1) {          if ($filecounts->{'both'} == 1) {
             if ($is_course) {              if ($is_course) {
                 $output .= &mt('One group portfolio file is available.').'<ul>';                  $output .= &mt('One group portfolio file is available.').'<ul>';
Line 505  sub print_portfiles_link { Line 521  sub print_portfiles_link {
             }              }
         }          }
         if ($filecounts->{'withoutpass'}) {          if ($filecounts->{'withoutpass'}) {
     $output .= '<li>'.&mt('[quant,_1,file is,files are] publicly accessible.',$filecounts->{'withoutpass'}).'</li>';              $output .= '<li>'.&mt('[quant,_1,file is,files are] publicly accessible.',$filecounts->{'withoutpass'}).'</li>';
         }          }
         if ($filecounts->{'withpass'}) {          if ($filecounts->{'withpass'}) {
     $output .= '<li>'.&mt('[quant,_1,file requires,files require] a passphrase for access.',$filecounts->{'withpass'}).'</li>';              $output .= '<li>'.&mt('[quant,_1,file requires,files require] a passphrase for access.',$filecounts->{'withpass'}).'</li>';
         }          }
         $output .= '</ul>';          $output .= '</ul>';
  $output .='</p>';          $output .= '</div>';
  $output .='</div></div>';  
     }      }
     $r->print($output);      $r->print($output);
     return;      return;
Line 573  sub display_portfolio_header { Line 588  sub display_portfolio_header {
                 ({href=>"/adm/$cdom/$cnum/aboutme".$query_string,                  ({href=>"/adm/$cdom/$cnum/aboutme".$query_string,
                   text=>&mt('Personal Information Page - [_1]',$name),                    text=>&mt('Personal Information Page - [_1]',$name),
                   title=>&mt('Go to personal information page for [_1]', $name)},                    title=>&mt('Go to personal information page for [_1]', $name)},
  {href=>"/adm/$cdom/$cnum/aboutme/portfolio",           {href=>"/adm/$cdom/$cnum/aboutme/portfolio",
                   text=>&mt('Viewable files - [_1]', $name),                    text=>&mt('Viewable files - [_1]', $name),
                   title=>&mt('Viewable portfolio files for [_1]', $name)}                    title=>&mt('Viewable portfolio files for [_1]', $name)}
             );              );
Line 600  sub display_portfolio_files { Line 615  sub display_portfolio_files {
     }      }
   
     my $output = '<form action="'.&HTML::Entities::encode($r->uri,'<>&"')      my $output = '<form action="'.&HTML::Entities::encode($r->uri,'<>&"')
  .'" name="displaystatus" method="post">'.          .'" name="displaystatus" method="post">'.
  &mt('File access type: ').'<select name="portaccess">';          &mt('File access type: ').'<select name="portaccess">';
     foreach my $type ('withoutpass','withpass','both') {      foreach my $type ('withoutpass','withpass','both') {
         $output .= '<option value="'.$type.'" ';          $output .= '<option value="'.$type.'" ';
         if ($portaccess eq $type) {          if ($portaccess eq $type) {
Line 610  sub display_portfolio_files { Line 625  sub display_portfolio_files {
         $output .= '>'.$lt{$type}.'</option>';          $output .= '>'.$lt{$type}.'</option>';
     }      }
     $output .= '</select>'."\n".      $output .= '</select>'."\n".
                '<input type="submit" name="portaccessbutton" value="'.          '<input type="submit" name="portaccessbutton" value="'.
                &mt('Update display').'" />';          &mt('Update display').'" />';
     $output .= '</form><br /><br />';      $output .= '</form><br /><br />';
     $r->print($output);      $r->print($output);
     my $filecounts = &portfolio_files($r,'listfiles',\%lt,$is_course,      my $filecounts = &portfolio_files($r,'listfiles',\%lt,$is_course,
Line 638  sub portfolio_files { Line 653  sub portfolio_files {
                        both        => 0,                         both        => 0,
                      };                       };
     my $current_permissions =      my $current_permissions =
  &Apache::lonnet::get_portfile_permissions($cdom,$cnum);      &Apache::lonnet::get_portfile_permissions($cdom,$cnum);
     my %access_controls =      my %access_controls =
  &Apache::lonnet::get_access_controls($current_permissions);      &Apache::lonnet::get_access_controls($current_permissions);
     my $portaccess;      my $portaccess;
     if ($mode eq 'showlink') {      if ($mode eq 'showlink') {
         $portaccess = 'both';          $portaccess = 'both';
Line 693  sub build_hierarchy { Line 708  sub build_hierarchy {
         $allfileshash,$group) = @_;          $allfileshash,$group) = @_;
     foreach my $filename (sort(keys(%{$access_info}))) {      foreach my $filename (sort(keys(%{$access_info}))) {
         my $access_status =          my $access_status =
            &Apache::lonnet::get_portfolio_access($cdom,$cnum,$filename,$group,                                                 $$access_info{$filename});             &Apache::lonnet::get_portfolio_access($cdom,$cnum,$filename,$group,$$access_info{$filename});
         if ($portaccess eq 'both') {          if ($portaccess eq 'both') {
             if (($access_status ne 'ok') &&              if (($access_status ne 'ok') &&
                 ($access_status !~  /^[^:]+:guest_/)) {                  ($access_status !~  /^[^:]+:guest_/)) {
Line 751  sub parse_directory { Line 766  sub parse_directory {
                                                                 $group);                                                                  $group);
     my $getpropath = 1;      my $getpropath = 1;
     my %dirlist = map {      my %dirlist = map {
     ((split('&',$_,2))[0],1)          ((split('&',$_,2))[0],1)
  } &Apache::lonnet::dirlist($portfolio_root.$path,$cdom,$cnum,$getpropath);      } &Apache::lonnet::dirlist($portfolio_root.$path,$cdom,$cnum,$getpropath);
     foreach my $item (sort(keys(%{$currhash}))) {      foreach my $item (sort(keys(%{$currhash}))) {
         $output .= &Apache::loncommon::start_data_table_row();          $output .= &Apache::loncommon::start_data_table_row();
         $output .= '<td style="padding-left: '.($depth*25).'px">';          $output .= '<td style="padding-left: '.($depth*25).'px">';
         if (ref($currhash->{$item}) eq 'HASH') {          if (ref($currhash->{$item}) eq 'HASH') {
             my $title=&HTML::Entities::encode($item,'<>&"');              my $title=&HTML::Entities::encode($item,'<>&"');
             $output .= '<img src="'.&Apache::loncommon::lonhttpdurl("/adm/lonIcons/navmap.folder.open.gif").'" alt="'.&mt('Folder').' '.$title.'" class="LC_icon" />&nbsp;'.$title;              $output .= '<img src="'.&Apache::loncommon::lonhttpdurl("/adm/lonIcons/navmap.folder.open.gif").'" alt="'.&mt('Folder').' '.$title.'" class="LC_icon" />&nbsp;'.$title;
     $output .= '</td><td>&nbsp;</td>'              $output .= '</td><td>&nbsp;</td>'
                       .&Apache::loncommon::end_data_table_row();                        .&Apache::loncommon::end_data_table_row();
             $output .= &parse_directory($r,$depth,$currhash->{$item},              $output .= &parse_directory($r,$depth,$currhash->{$item},
  $path.'/'.$item,$is_course,$group);                      $path.'/'.$item,$is_course,$group);
         } else {          } else {
     my $file_name;              my $file_name;
     if ($currhash->{$item} =~ m|/([^/]+)$|) {              if ($currhash->{$item} =~ m|/([^/]+)$|) {
  $file_name = $1;                  $file_name = $1;
     } else {              } else {
  $file_name = $currhash->{$item};                  $file_name = $currhash->{$item};
     }              }
     my $have_meta = exists($dirlist{$file_name.'.meta'});              my $have_meta = exists($dirlist{$file_name.'.meta'});
             my $url;              my $url;
             if ($is_course) {              if ($is_course) {
                 $url = '/uploaded/'.$cdom.'/'.$cnum.'/groups/'.$group.                  $url = '/uploaded/'.$cdom.'/'.$cnum.'/groups/'.$group.
                        '/portfolio/'.$currhash->{$item};                      '/portfolio/'.$currhash->{$item};
             } else {              } else {
         $url = '/uploaded/'.$cdom.'/'.$cnum.'/portfolio/'.                  $url = '/uploaded/'.$cdom.'/'.$cnum.'/portfolio/'.$currhash->{$item};
        $currhash->{$item};  
             }              }
             my $showname;              my $showname;
     if ($have_meta) {              if ($have_meta) {
  $showname = &Apache::lonnet::metadata($url,'title');                  $showname = &Apache::lonnet::metadata($url,'title');
     }              }
     if ($showname eq '') {              if ($showname eq '') {
  $showname = $file_name;                  $showname = $file_name;
     } else {              } else {
  $showname = $file_name.' ('.$showname.')';                  $showname = $file_name.' ('.$showname.')';
     }              }
   
             $showname=&HTML::Entities::encode($showname,'<>&"');              $showname=&HTML::Entities::encode($showname,'<>&"');
             $output .= '<a href="'.$url.'">'.              $output .= '<a href="'.$url.'">'.
  '<img alt="" src="'.&Apache::loncommon::icon($currhash->{$item}).'" class="LC_icon" />'.                  '<img alt="" src="'.&Apache::loncommon::icon($currhash->{$item}).'" class="LC_icon" />'.
  '&nbsp;'.$showname.'</a>';                  '&nbsp;'.$showname.'</a>';
     $output.='</td><td>';              $output.='</td><td>';
     if ($have_meta) {              if ($have_meta) {
  $output.= '<a href="'.$url.'.meta"><img alt="'.&mt('Metadata').'" src="'.                  $output.= '<a href="'.$url.'.meta"><img alt="'.&mt('Metadata').'" src="'.
  &Apache::loncommon::lonhttpdurl('/res/adm/pages/catalog.gif').                      &Apache::loncommon::lonhttpdurl('/res/adm/pages/catalog.gif').
  '" class="LC_icon" /></a>';                      '" class="LC_icon" /></a>';
     }              }
     $output .= '</td>'              $output .= '</td>'
                       .&Apache::loncommon::end_data_table_row();                  .&Apache::loncommon::end_data_table_row();
         }          }
     }      } 
     return $output;      return $output;
 }  }
   
Line 817  sub aboutme_access { Line 831  sub aboutme_access {
     my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};      my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
     my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};      my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
     if (($cdom eq '') || ($cnum eq '')) {      if (($cdom eq '') || ($cnum eq '')) {
         my %coursehash = &coursedescription($env{'request.course.id'});          my %coursehash = &Apache::lonnet::coursedescription($env{'request.course.id'});
         $cdom = $coursehash{'domain'};          $cdom = $coursehash{'domain'};
         $cnum = $coursehash{'cnum'};          $cnum = $coursehash{'cnum'};
     }      }

Removed from v.1.130  
changed lines
  Added in v.1.142


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.