--- loncom/interface/lonaboutme.pm 2008/12/17 23:05:11 1.70.2.2 +++ loncom/interface/lonaboutme.pm 2010/11/01 13:35:42 1.70.4.4 @@ -1,7 +1,7 @@ # The LearningOnline Network # "About Me" Personal Information # -# $Id: lonaboutme.pm,v 1.70.2.2 2008/12/17 23:05:11 raeburn Exp $ +# $Id: lonaboutme.pm,v 1.70.4.4 2010/11/01 13:35:42 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -26,6 +26,52 @@ # http://www.lon-capa.org/ # +=pod + +=head1 NAME + +Apache::lonaboutme + +=head1 SYNOPSIS + +(empty) + +This is part of the LearningOnline Network with CAPA project +described at http://www.lon-capa.org. + +=head1 OVERVIEW + +(empty) + + +=head1 SUBROUTINES + +=over + +=item handler() + +=item in_course() + +=item aboutme_info() + +=item print_portfiles_link() + +=item build_query_string() + +=item display_portfolio_header() + +=item display_portfolio_files() + +=item portfolio_files() + +=item build_hierarchy() + +=item parse_directory() + +=back + +=cut + package Apache::lonaboutme; use strict; @@ -71,11 +117,11 @@ sub handler { if ($target eq 'tex') { $r->print('\noindent{\large\textbf{'.&mt('No user home page available').'}}\\\\\\\\'); } else { - $r->print(&Apache::loncommon::start_page("Personal Information")); - $r->print('

'.&mt('No user home page available') .'

'. + $r->print(&Apache::loncommon::start_page("Personal Information Page")); + $r->print('

'.&mt('No personal information page available') .'

'. &mt('This is a result of one of the following:').''); $r->print(&Apache::loncommon::end_page()); } @@ -87,7 +133,7 @@ sub handler { # --------------------------------------------------------- The syllabus fields my %syllabusfields=&Apache::lonlocal::texthash( 'aaa_contactinfo' => 'Contact Information', - 'bbb_aboutme' => 'About Me', + 'bbb_aboutme' => 'Personal Information', 'ccc_webreferences' => 'Web References'); # ------------------------------------------------------------ Get Query String @@ -105,7 +151,7 @@ sub handler { '
  • '.&mt('The domain has been configured to disable, by default, portfolio functionality for all users in the domain.').'
  • '. ''); } else { - my ($blocked,$blocktext) = + my ($blocked,$blocktext) = &Apache::loncommon::blocking_status('port',$cnum,$cdom); if (!$blocked) { &display_portfolio_files($r,$is_course); @@ -119,15 +165,18 @@ sub handler { if ($is_course) { if ($target ne 'tex') { + my $brcrum = [{href=>"/adm/navmaps",text=>"Navigate Course Contents"}, + {href=>"/adm/aboutme",text=>"Course Information"}]; my $start_page = &Apache::loncommon::start_page( "Course Information", undef, {'function' => $env{'forcestudent'}, 'domain' => $cdom, - 'force_register' => $env{'forceregister'},}); + 'force_register' => $env{'forceregister'}, + 'bread_crumbs' => $brcrum}); $r->print($start_page); - $r->print('

    '.&mt('Group files').'

    '); + $r->print('

    '.&mt('Group Portfolio').'

    '); &print_portfiles_link($r,$is_course); $r->print(&Apache::loncommon::end_page()); } @@ -152,9 +201,11 @@ sub handler { 'force_register' => $forceregister}; if ($env{'form.popup'}) { $args->{'no_nav_bar'} = 1; + } else { + $args->{'bread_crumbs'} = [{href=>"/adm/$cdom/$cnum/aboutme",text=>"Personal Information Page"}]; } my $start_page = - &Apache::loncommon::start_page("Personal Information",$rss_link,$args); + &Apache::loncommon::start_page("Personal Information Page",$rss_link,$args); $r->print($start_page); $r->print('

    '.&Apache::loncommon::plainname($cnum,$cdom).'

    '); } else { @@ -182,7 +233,7 @@ sub handler { if ($allowed) { my $query_string = &build_query_string({'forcestudent' => '1','popup' => $env{'form.popup'}}); - $r->print('

    '.&mt('Privacy Note').': '. + $r->print('

    '.&mt('Privacy Note:').' '. &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.'). '

    '. &Apache::loncommon::help_open_topic('Uploaded_Templates_TextBoxes',&mt('Help with filling in text boxes')).'

    '.&mt('Show Public View').''. @@ -298,10 +349,10 @@ sub handler { if ($target ne 'tex') { $r->print(''); $r->print('


    '. - &mt('User Notes, Records of Face-To-Face Discussions, and Critical Messages in Course').'

    '. + &mt('User Notes, Records of Face-To-Face Discussions, and Critical Messages in Course').''. &mt('Shared by course faculty and staff'). &Apache::loncommon::help_open_topic("Course_Face_To_Face_Records,Course_Critical_Message"). - '
    '); + '

    '); &Apache::lonmsgdisplay::disfacetoface($r,$cnum,$cdom); $r->print('
    '); if (&Apache::lonnet::allowed('vsa', @@ -313,13 +364,20 @@ sub handler { ('View recent activity by this student', $cnum,$cdom).(' 'x2)); } - $r->print(&Apache::loncommon::noteswrapper('Add Records',$cnum,$cdom)); + $r->print(&Apache::loncommon::noteswrapper(&mt('Add Records'),$cnum,$cdom)); } 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').'\\\\\\\\'); &Apache::lonmsgdisplay::disfacetoface($r,$cnum,$cdom); } } if ($target ne 'tex') { + if ($env{'request.course.id'}) { + if (&Apache::lonnet::allowed('vgr', $env{'request.course.id'}) || + &Apache::lonnet::allowed('vgr', $env{'request.course.id'}.'/'. + $env{'request.course.sec'})) { + $r->print('
    '.&Apache::loncommon::slot_reservations_link('Slot reservation history',$cnum,$cdom)); + } + } if ($env{'form.popup'}) { $r->print('

    '.&mt('Close window').''); } @@ -338,21 +396,19 @@ sub in_course { $cdom = $env{'course.'.$cid.'.domain'}; $cnum = $env{'course.'.$cid.'.num'}; } - my %roles = &Apache::lonnet::dump('roles',$udom,$uname); - my @course_roles = grep(m{^/\Q$cdom\E/\Q$cnum\E[/_]}, keys(%roles)); - return 0 if (!@course_roles); - return 1 if ($type eq 'any'); - my $now = time(); - foreach my $role (@course_roles) { - my (undef,$role_end,$role_start)=split(/\_/,$roles{$role}); - my $status = 'active'; - if ($role_start > 0 && $now < $role_start) { - $status = 'future'; - } - if ($role_end > 0 && $now > $role_end) { - $status = 'previous'; - } - return 1 if ($status eq $type); + my $typesref; + if ($type eq 'all') { + $typesref = ['active','previous','future']; + } elsif ($type eq 'previous' || $type eq 'future') { + $typesref = [$type]; + } + my %roles = &Apache::lonnet::get_my_roles($uname,$udom,'userroles', + $typesref,undef,[$cdom]); + my ($tmp) = keys(%roles); + return 0 if ($tmp =~ /^(con_lost|error|no_such_host)/i); + my @course_roles = grep(/^\Q$cnum\E:\Q$cdom\E:/, keys(%roles)); + if (@course_roles > 0) { + return 1; } return 0; } @@ -375,10 +431,10 @@ sub print_portfiles_link { my $query_string = &build_query_string(); my $output; my %lt = &Apache::lonlocal::texthash( - vpfi => 'Viewable portfolio files', - vgpf => 'Viewable group portfolio files', - difl => 'Display file listing', - ); + vpfi => 'Viewable portfolio files', + vgpf => 'Viewable group portfolio files', + difl => 'Display file listing', + ); if ($filecounts->{'both'} > 0) { $output = '

    '.($is_course?$lt{'vgpf'}:$lt{'vpfi'}).'

    '; $output .= '"Personal information - $name", - title=>"Go to personal information page for $name"}, {href=>"/adm/$cdom/$cnum/aboutme/portfolio", - text=>"Viewable files - $name", - title=>"Viewable portfolio files for $name"} + ({href => "/adm/$cdom/$cnum/aboutme".$query_string, + text => &mt('Personal information Page - [_1]',$name), + title => &mt('Go to personal information page for [_1]',$name)}, {href=>"/adm/$cdom/$cnum/aboutme/portfolio", + text => &mt('Viewable files - [_1]',$name), + title => &mt('Viewable portfolio files for [_1]',$name)} ); $output .= &Apache::lonhtmlcommon::breadcrumbs(&mt('Viewable portfolio files.')); } @@ -478,10 +534,11 @@ sub display_portfolio_header { sub display_portfolio_files { my ($r,$is_course) = @_; my ($cdom,$cnum,$name) = &aboutme_info($r,$is_course); - my %lt = ( withoutpass => 'passphrase not required', - withpass => 'passphrase protected', - both => 'all access types ',); - %lt = &Apache::lonlocal::texthash(%lt); + my %lt = &Apache::lonlocal::texthash( + withoutpass => 'passphrase not required', + withpass => 'passphrase protected', + both => 'all access types ', + ); my $portaccess = 'withoutpass'; if (exists($env{'form.portaccess'})) { @@ -697,7 +754,7 @@ sub parse_directory { ' '.$showname.''; $output.=''; if ($have_meta) { - $output.= ''.&mt('Catalog Information').''.&mt('Metadata').''; } @@ -718,7 +775,7 @@ sub aboutme_access { my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; if (($cdom eq '') || ($cnum eq '')) { - my %coursehash = &coursedescription($env{'request.course.id'}); + my %coursehash = &Apache::lonnet::coursedescription($env{'request.course.id'}); $cdom = $coursehash{'domain'}; $cnum = $coursehash{'cnum'}; }