--- loncom/interface/lonaboutme.pm 2009/05/15 13:43:46 1.133 +++ loncom/interface/lonaboutme.pm 2009/10/12 08:01:08 1.139 @@ -1,7 +1,7 @@ # The LearningOnline Network # Personal Information Page # -# $Id: lonaboutme.pm,v 1.133 2009/05/15 13:43:46 amueller Exp $ +# $Id: lonaboutme.pm,v 1.139 2009/10/12 08:01:08 amueller Exp $ # # Copyright Michigan State University Board of Trustees # @@ -96,14 +96,14 @@ sub handler { my $target=$env{'form.grade_target'}; # ------------------------------------------------------------ Print the screen 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 $is_course; # Is this even a user? if (&Apache::lonnet::homeserver($cnum,$cdom) eq 'no_host') { - &Apache::loncommon::simple_error_page($r,'No info', - 'No user information available'); + &Apache::loncommon::simple_error_page($r,'No info', + 'No user information available'); return OK; } else { $is_course = &Apache::lonnet::is_course($cdom,$cnum); @@ -141,8 +141,8 @@ sub handler { # ------------------------------------------------------------ Get Query String &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, - ['forceedit','forcestudent', - 'register','popup']); + ['forceedit','forcestudent', + 'register','popup']); # ----------------------------------------------- Available Portfolio file display if (($target ne 'tex') && ($action eq 'portfolio')) { @@ -168,8 +168,8 @@ 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 $brcrum = [{href=>"/adm/navmaps",text=>"Navigate Course Contents"}, + {href=>"/adm/aboutme",text=>"Course Information"}]; my $start_page = &Apache::loncommon::start_page( "Course Information", @@ -196,29 +196,84 @@ sub handler { } #------------Get rights - my %courseenv=&Apache::lonnet::dump('environment',$cdom,$cnum); - my %syllabus=&Apache::lonnet::dump('aboutme',$cdom,$cnum); + my %courseenv=&Apache::lonnet::dump('environment',$cdom,$cnum); + my %syllabus=&Apache::lonnet::dump('aboutme',$cdom,$cnum); my $allowed=0; - my $privleged=$allowed=(($env{'user.name'} eq $cnum) && - ($env{'user.domain'} eq $cdom)); + my $privleged=$allowed=(($env{'user.name'} eq $cnum) && + ($env{'user.domain'} eq $cdom)); if ($forcestudent or $target eq 'tex') { $allowed=0; } - # --------------------------------------- There is such a user, get environment if ($target ne 'tex') { - my $rss_link = &Apache::lonrss::rss_link($cnum,$cdom); - my $args = {'function' => $forcestudent, + my $rss_link = &Apache::lonrss::rss_link($cnum,$cdom); + my $args = {'function' => undef, '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'}) { $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); + 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( + '' + .&mt('Show Public View').'' + .&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( + '' + .&mt('Edit').''); + } + $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)); + } + $functions.=&Apache::lonhtmlcommon::end_funclist(); + $r->print(&Apache::loncommon::head_subbox($functions)); + } +# Print Privacy Note + if ($target ne 'tex') { #Print Privacy Note if ($allowed) { $r->print('
'); + $r->print('
'); } - if($allowed) { - $r->print(''); + $r->print(''); } if ($target ne 'tex') {$r->print(''); - &Apache::lonmsgdisplay::disfacetoface($r,$cnum,$cdom); - $r->print('
'); - &Apache::lontemplate::print_end_template($r); + && &Apache::lonnet::allowed('srm',$env{'request.course.id'}) + && &in_course($cdom,$cnum)) { + if ($target ne 'tex') { + $r->print(''); + &Apache::lontemplate::print_start_template($r,&mt('User Notes, Records of Face-To-Face Discussions, and Critical Messages in Course'),'LC_Box'); + $r->print(''); + $r->print(&mt('Shared by course faculty and staff').&Apache::loncommon::help_open_topic("Course_Face_To_Face_Records,Course_Critical_Message")); + $r->print(''); + &Apache::lonmsgdisplay::disfacetoface($r,$cnum,$cdom,'tex'); + &Apache::lontemplate::print_end_template($r); - } 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); - } + } 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') { - $r->print(''.&mt('Close window').''); } - $r->print(&Apache::loncommon::end_page()); + $r->print(&Apache::loncommon::end_page()); } else { - $r->print('\end{document}'); + $r->print('\end{document}'); } @@ -434,8 +455,8 @@ sub in_course { $type ||= 'any'; if (!defined($cdom) || !defined($cnum)) { my $cid = $env{'request.course.id'}; - $cdom = $env{'course.'.$cid.'.domain'}; - $cnum = $env{'course.'.$cid.'.num'}; + $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)); @@ -443,15 +464,15 @@ sub in_course { 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 (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); } return 0; } @@ -479,10 +500,10 @@ sub print_portfiles_link { 'difl' => 'Display file listing', ); if ($filecounts->{'both'} > 0) { - $output = '