');
&print_portfiles_link($r,$is_course);
$r->print(&Apache::loncommon::end_page());
}
@@ -110,181 +194,234 @@ sub handler {
if ($forcestudent eq '') {
$forceregister = $env{'form.register'};
}
-
-# --------------------------------------- There is such a user, get environment
+
+#------------Get rights
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));
+ 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 $start_page =
- &Apache::loncommon::start_page("Personal Information", $rss_link,
- {'function' => $forcestudent,
- 'domain' => $cdom,
- 'force_register' =>
- $forceregister,});
- $r->print($start_page);
- $r->print('
');
+ my $rss_link = &Apache::lonrss::rss_link($cnum,$cdom);
+ my $args = {'function' => $forcestudent,
+ 'domain' => $cdom,
+ 'force_register' => $forceregister};
+ if ($env{'form.popup'}) {
+ $args->{'no_nav_bar'} = 1;
+ } 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 Privacy Note
+ if ($allowed) {
+ $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.')
+ .'
'
+ );
+ }
+
+#Print last modified
+
+ my $lastmod;
+ if (($syllabus{'uploaded.lastmodified'}) || ($allowed)) {
+ $lastmod=$syllabus{'uploaded.lastmodified'};
+ $lastmod=($lastmod?&Apache::lonlocal::locallocaltime($lastmod):&mt('never'));
+ $r->print('
');
+ }
}
+#Print Help Text
if ($target ne 'tex') {
- $r->print('
'.&Apache::lonnet::domain($cdom,'description').'
'.
- '
'.&Apache::loncommon::messagewrapper(&mt('Send me a message'),$cnum,$cdom).'
'.&Apache::lonrss::advertisefeeds($cnum,$cdom));
- } else {
- $r->print('\textbf{'.&Apache::lonnet::domain($cdom,'description').'}\\\\');
+ if($allowed){
+ $r->print(&Apache::loncommon::help_open_topic('Uploaded_Templates_TextBoxes',&mt('Help with filling in text boxes')));
+ }
}
- my %syllabus=&Apache::lonnet::dump('aboutme',$cdom,$cnum);
- my $allowed=0;
+#----------------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());
+ }
+#------Print Headtitle
+ 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 $privleged=$allowed=(($env{'user.name'} eq $cnum) &&
- ($env{'user.domain'} eq $cdom));
- if ($forcestudent or $target eq 'tex') { $allowed=0; }
-
- if ($allowed) {
- my $query_string = &build_query_string({'forcestudent' => '1',});
- $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')).'
');
- }
- if (($env{'form.uploaddoc.filename'}) &&
+
+ 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::userfileupload('uploaddoc',undef,'aboutme');
- }
- $syllabus{'uploaded.lastmodified'}=time;
- &Apache::lonnet::put('aboutme',\%syllabus,$cdom,$cnum);
- }
+ 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');
+ }
+ $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 (($allowed) && ($env{'form.storesyl'})) {
- 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{'uploaded.lastmodified'}=time;
- &Apache::lonnet::put('aboutme',\%syllabus,$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)) {
+ 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{'uploaded.lastmodified'}=time;
+ &Apache::lonnet::put('aboutme',\%syllabus,$cdom,$cnum);
+ }
+ my $image;
# ---------------------------------------------------------------- Get syllabus
if (($syllabus{'uploaded.lastmodified'}) || ($allowed)) {
- my $lastmod=$syllabus{'uploaded.lastmodified'};
- $lastmod=($lastmod?&Apache::lonlocal::locallocaltime($lastmod):&mt('never'));
- $r->print(&mt('Last updated').': '.$lastmod);
- if ($syllabus{'uploaded.photourl'}) {
- &Apache::lonnet::allowuploaded('/adm/aboutme',
- $syllabus{'uploaded.photourl'});
- my $image=
- qq{};
- if ($target eq 'tex') {
- $image=&Apache::lonxml::xmlparse($r,'tex',$image);
- }
- $r->print($image);
- }
- if ($allowed) {
- $r->print(
- ''.
- '');
- }
- if ($target ne 'tex') {$r->print(' ');} else {$r->print('\\\\');}
- } else {
- $r->print('
'.&mt('No personal information provided').'.
');
- }
+ if ($syllabus{'uploaded.photourl'}) {
+ &Apache::lonnet::allowuploaded('/adm/aboutme',$syllabus{'uploaded.photourl'});
- if ($target ne 'tex') {
- &print_portfiles_link($r,$is_course);
+ #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---
+
+ $image=qq{};
+
+ if ($target eq 'tex') {
+ $image=&Apache::lonxml::xmlparse($r,'tex',$image);
+ }
+
+ }
+
+ if ($allowed) {
+ $r->print(
+ '');
+ if ($syllabus{'uploaded.photourl'}) {
+ $r->print('')
+ }
+ $r->print('
');
+ }
+
+ if($allowed) {
+ $r->print('
');
+ }
+ if ($target ne 'tex') {$r->print(' ');} else {$r->print('\\\\');}
+ } else {
+ $r->print('
'.&mt('No personal information provided').'.
');
}
if ($env{'request.course.id'}
- && &Apache::lonnet::allowed('srm',$env{'request.course.id'})
- && &in_course($cdom,$cnum)) {
- if ($target ne 'tex') {
- $r->print('');
- $r->print('
'.
- &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',
- $env{'request.course.id'}) ||
- &Apache::lonnet::allowed('vsa',
- $env{'request.course.id'}.'/'.
- $env{'request.course.sec'})) {
- $r->print(&Apache::loncommon::track_student_link
- ('View recent activity by this student',
- $cnum,$cdom).(' 'x2));
- }
- $r->print(&Apache::loncommon::noteswrapper('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);
- }
+ && &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::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);
+ }
}
if ($target ne 'tex') {
- $r->print(&Apache::loncommon::end_page());
+ $r->print('
');
+ if ($env{'form.popup'}) {
+ $r->print('
'.&mt('Close window').'');
+ }
+ $r->print(&Apache::loncommon::end_page());
} else {
- $r->print('\end{document}');
+ $r->print('\end{document}');
}
+
+
+
return OK;
}
@@ -292,9 +429,9 @@ sub in_course {
my ($udom,$uname,$cdom,$cnum,$type) = @_;
$type ||= 'any';
if (!defined($cdom) || !defined($cnum)) {
- my $cid = $env{'request.course.id'};
- $cdom = $env{'course.'.$cid.'.domain'};
- $cnum = $env{'course.'.$cid.'.num'};
+ my $cid = $env{'request.course.id'};
+ $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));
@@ -302,15 +439,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;
}
@@ -333,15 +470,18 @@ 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 = '
'
+ .&Apache::loncommon::end_data_table_row();
}
- }
+ }
return $output;
}
+sub aboutme_access {
+ my ($uname,$udom) = @_;
+ my $privcheck = $env{'request.course.id'};
+ my $sec;
+ if ($env{'request.course.sec'} ne '') {
+ $sec = $env{'request.course.sec'};
+ $privcheck .= '/'.$sec;
+ }
+ 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'});
+ $cdom = $coursehash{'domain'};
+ $cnum = $coursehash{'cnum'};
+ }
+ if ((&Apache::lonnet::allowed('srm',$privcheck)) ||
+ (&Apache::lonnet::allowed('dff',$privcheck))) {
+ if (&in_course($uname,$udom,$cnum,$cdom)) {
+ return 1;
+ }
+ }
+ return;
+}
+
1;
__END__
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.