--- loncom/interface/lonaboutme.pm 2009/05/15 13:43:46 1.133
+++ loncom/interface/lonaboutme.pm 2010/03/18 08:56:00 1.145
@@ -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.145 2010/03/18 08:56:00 wenzelju 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=>"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('
'
@@ -226,100 +281,71 @@ sub handler {
.&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.')
.'
'
);
- }
+ }
+ }
#Print last modified
- my $lastmod;
+ if ($target ne 'tex') {
+ my $lastmod;
if (($syllabus{'uploaded.lastmodified'}) || ($allowed)) {
$lastmod=$syllabus{'uploaded.lastmodified'};
$lastmod=($lastmod?&Apache::lonlocal::locallocaltime($lastmod):&mt('never'));
- $r->print('');
- $r->print(&mt('Last updated').': '.$lastmod . '');
- $r->print('
');
+ $r->print('');
+ $r->print(&mt('Last updated').': '.$lastmod . '');
+ $r->print('
');
}
}
#Print Help Text
- if ($target ne 'tex') {
- if($allowed){
- $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(
- ''.&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'}});
- $r->print(&Apache::lontemplate::item_functionslist(
- ''. &mt('Edit').''));
- }
- $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());
+ if ($target ne 'tex') {
+ if($allowed){
+ $r->print(&Apache::loncommon::help_open_topic('Uploaded_Templates_TextBoxes',&mt('Help with filling in text boxes')));
+ }
}
+
#------Print Headtitle
- if ($target ne 'tex') {
- $r->print('');
- $r->print('
'.&Apache::loncommon::plainname($cnum,$cdom).'
');
- $r->print('
' );
- if ($courseenv{'nickname'}) {
- $r->print('
"'.$courseenv{'nickname'}.'"
');
- }
- $r->print('
'.&Apache::lonnet::domain($cdom,'description').'
');
- } else {
- $r->print('\noindent{\large\textbf{'.&Apache::loncommon::plainname($cnum,$cdom).'}}\\\\\\\\');
- $r->print('\textbf{'.&Apache::lonnet::domain($cdom,'description').'}\\\\');
- }
+ if ($target ne 'tex') {
+ $r->print('
');
+ $r->print('
'.&Apache::loncommon::plainname($cnum,$cdom).'
');
+ if ($courseenv{'nickname'}) {
+ $r->print('
"'.$courseenv{'nickname'}.'"
');
+ }
+ $r->print('
'.&Apache::lonnet::domain($cdom,'description').'
');
+ } else {
+ $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?
- my $query_string;
+ my $query_string;
if (($env{'form.uploaddoc.filename'}) &&
($env{'form.storeupl'}) && ($allowed)) {
if ($env{'form.uploaddoc.filename'}=~/\.(gif|jpg|png|jpeg)$/i) {
- if ($syllabus{'uploaded.photourl'}) {
- &Apache::lonnet::removeuploadedurl($syllabus{'uploaded.photourl'});
- }
- $syllabus{'uploaded.photourl'}=
- &Apache::lonnet::userphotoupload('uploaddoc','aboutme');
- }
+ if ($syllabus{'uploaded.photourl'}) {
+ &Apache::lonnet::removeuploadedurl($syllabus{'uploaded.photourl'});
+ }
+ $syllabus{'uploaded.photourl'}=
+ &Apache::lonnet::userfileupload('uploaddoc',undef,'aboutme',
+ undef,undef,undef,undef,undef,undef,undef,'400','500');
+ }
$syllabus{'uploaded.lastmodified'}=time;
&Apache::lonnet::put('aboutme',\%syllabus,$cdom,$cnum);
}
if ($allowed && $env{'form.delupl'}) {
- if ($syllabus{'uploaded.photourl'}) {
- &Apache::lonnet::removeuploadedurl($syllabus{'uploaded.photourl'});
- delete($syllabus{'uploaded.photourl'});
- &Apache::lonnet::del('aboutme',['uploaded.photourl'],$cdom,$cnum);
- }
+ if ($syllabus{'uploaded.photourl'}) {
+ &Apache::lonnet::removeuploadedurl($syllabus{'uploaded.photourl'});
+ delete($syllabus{'uploaded.photourl'});
+ &Apache::lonnet::del('aboutme',['uploaded.photourl'],$cdom,$cnum);
+ }
}
if (($allowed) && ($env{'form.storesyl'})) {
- foreach my $syl_field (keys(%syllabusfields)) {
+ foreach my $syl_field (keys(%syllabusfields)) {
my $field=$env{'form.'.$syl_field};
$field=~s/\s+$//s;
$field=&Apache::lonfeedback::clear_out_html($field,$env{'user.adv'});
- $syllabus{$syl_field}=$field;
+ $syllabus{$syl_field}=$field;
}
$syllabus{'uploaded.lastmodified'}=time;
&Apache::lonnet::put('aboutme',\%syllabus,$cdom,$cnum);
@@ -329,56 +355,51 @@ sub handler {
# ---------------------------------------------------------------- Get syllabus
if (($syllabus{'uploaded.lastmodified'}) || ($allowed)) {
if ($syllabus{'uploaded.photourl'}) {
- &Apache::lonnet::allowuploaded('/adm/aboutme',$syllabus{'uploaded.photourl'});
-
- #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'}));
- #---End Resize---
+ &Apache::lonnet::allowuploaded('/adm/aboutme',$syllabus{'uploaded.photourl'});
- $image=qq{
};
-
- if ($target eq 'tex') {
- $image=&Apache::lonxml::xmlparse($r,'tex',$image);
- }
+ $image=qq|
|;
+ if ($target eq 'tex') {
+ $image=&Apache::lonxml::xmlparse($r,'tex',$image);
+ }
}
if ($allowed) {
$r->print(
- '
');
- if ($syllabus{'uploaded.photourl'}) {
- $r->print('
')
+ '');
+ if ($syllabus{'uploaded.photourl'}) {
+ $r->print('
')
}
- $r->print('
');
+ $r->print('
');
}
- if($allowed) {
- $r->print('
');
+ $r->print('');
}
if ($target ne 'tex') {$r->print('
');} else {$r->print('\\\\');}
} else {
@@ -396,32 +417,30 @@ sub handler {
}
if ($env{'request.course.id'}
- && &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_ContentBoxSpecial');
- $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::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);
- $r->print('
');
- &Apache::lontemplate::print_end_template($r);
+ &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, 'tex');
+ }
}
if ($target ne 'tex') {
- $r->print('
');
- $r->print('
');
+ $r->print('
');
if ($env{'form.popup'}) {
$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 +453,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 +462,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 +498,10 @@ sub print_portfiles_link {
'difl' => 'Display file listing',
);
if ($filecounts->{'both'} > 0) {
- $output = '
';
- $output .= ($is_course?$lt{'vgpf'}:$lt{'vpfi'}).'
';
+ $output = '
';
+ $output .= ($is_course?$lt{'vgpf'}:$lt{'vpfi'}).'
';
- #$output = '
'.($is_course?$lt{'vgpf'}:$lt{'vpfi'}).'
';
+ #$output = '
'.($is_course?$lt{'vgpf'}:$lt{'vpfi'}).'
';
$output .= '
'.$lt{'difl'}.
'';
@@ -500,14 +519,13 @@ sub print_portfiles_link {
}
}
if ($filecounts->{'withoutpass'}) {
- $output .= '
'.&mt('[quant,_1,file is,files are] publicly accessible.',$filecounts->{'withoutpass'}).'';
+ $output .= '
'.&mt('[quant,_1,file is,files are] publicly accessible.',$filecounts->{'withoutpass'}).'';
}
if ($filecounts->{'withpass'}) {
- $output .= '
'.&mt('[quant,_1,file requires,files require] a passphrase for access.',$filecounts->{'withpass'}).'';
+ $output .= '
'.&mt('[quant,_1,file requires,files require] a passphrase for access.',$filecounts->{'withpass'}).'';
}
$output .= '';
- $output .='';
- $output .='
';
+ $output .= '
';
}
$r->print($output);
return;
@@ -568,7 +586,7 @@ sub display_portfolio_header {
({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",
+ {href=>"/adm/$cdom/$cnum/aboutme/portfolio",
text=>&mt('Viewable files - [_1]', $name),
title=>&mt('Viewable portfolio files for [_1]', $name)}
);
@@ -595,8 +613,8 @@ sub display_portfolio_files {
}
my $output = '