'.
+ &mt('This is a result of one of the following:').'
'.
+ '
'.&mt('The administrator of this domain has disabled portfolio functionality for this specific user.').'
'.
+ '
'.&mt('The domain has been configured to disable, by default, portfolio functionality for all users in the domain.').'
'.
+ '
');
+ } else {
+ my ($blocked,$blocktext) =
+ &Apache::loncommon::blocking_status('port',$cnum,$cdom);
+ if (!$blocked) {
+ &display_portfolio_files($r,$is_course);
+ } else {
+ $r->print($blocktext);
+ }
+ }
+ $r->print(&Apache::loncommon::end_page());
+ return OK;
+ }
+
+ if ($is_course) {
+ if ($target ne 'tex') {
+ my $args = {'function' => $env{'forcestudent'},
+ 'domain' => $cdom};
+ if ($env{'form.register'}) {
+ $args->{'force_register'} = $env{'form.register'};
+ } else {
+ my %coursedescription =
+ &Apache::lonnet::coursedescription($cdom.'_'.$cnum);
+ my $cdescr = $coursedescription{'description'};
+ my $brcrum = [{href=>"/adm/$cdom/$cnum/aboutme",
+ text=>&mt('Course Information - [_1]',$cdescr),
+ no_mt=>1}
+ ];
+ $args->{'bread_crumbs'} = $brcrum;
+ }
+ my $start_page = &Apache::loncommon::start_page(
+ "Course Information",undef,$args);
+ $r->print($start_page);
+ $r->print('
'.&mt('Group Portfolio').'
');
+ &print_portfiles_link($r,$is_course);
+ $r->print(&Apache::loncommon::end_page());
+ }
+ return OK;
+ }
+
# --------------------------------------------------------------- Force Student
my $forcestudent='';
if ($env{'form.forcestudent'}) { $forcestudent='student'; };
-
-# --------------------------------------- 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 $start_page =
- &Apache::loncommon::start_page("Personal Information",undef,
- {'function' => $forcestudent,
- 'domain' => $cdom,
- 'force_register' =>
- $env{'form.register'},});
- $r->print($start_page);
- $r->print('
'.&Apache::loncommon::plainname($cnum,$cdom).'
');
- } else {
- $r->print('\noindent{\large\textbf{'.&Apache::loncommon::plainname($cnum,$cdom).'}}\\\\\\\\');
+ my $rss_link = &Apache::lonrss::rss_link($cnum,$cdom);
+ my $args = {'function' => undef,
+ 'domain' => $cdom,
+ 'force_register' => $env{'form.register'},
+ };
+ if ($env{'form.popup'}) { # Don't show breadcrumbs in popup window
+ $args->{'no_nav_bar'} = 1;
+ } elsif (!$env{'form.register'}) { #Don't show breadcrumbs twice, when this page is part of course content and you call it
+ $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(
+ ''
+ .&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));
}
- if ($courseenv{'nickname'}) {
- $r->print(
- '
"'.$courseenv{'nickname'}.
- '"
');
+
+# Print Privacy Note
+ if ($target ne 'tex') {
+ #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
+
if ($target ne 'tex') {
- $r->print('
'.$Apache::lonnet::domaindescription{$cdom}.'
'.
- '
'.&Apache::loncommon::messagewrapper('Send me a message',$cnum,$cdom).'
');
+ }
+ }
+#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')));
+ }
}
- my %syllabus=&Apache::lonnet::dump('aboutme',$cdom,$cnum);
- my $allowed=0;
+#------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) {
- $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','Help with filling in text boxes').'
Show Public View'.
- &Apache::loncommon::help_open_topic('Uploaded_Templates_PublicView').'
');
- }
- 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::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 (($allowed) && ($env{'form.storesyl'})) {
- foreach (keys %syllabusfields) {
- my $field=$env{'form.'.$_};
- $field=~s/\s+$//s;
- $field=&Apache::lonfeedback::clear_out_html($field,
- $env{'user.adv'});
- $syllabus{$_}=$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 ($env{'request.course.id'}) {
- if (&Apache::lonnet::allowed('srm',$env{'request.course.id'})) {
- 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);
- }
+ if ($syllabus{'uploaded.photourl'}) {
+ &Apache::lonnet::allowuploaded('/adm/aboutme',$syllabus{'uploaded.photourl'});
+
+ $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('');
+ &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);
+ &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, 'tex');
}
}
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;
-}
+}
+
+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 $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;
+}
+
+sub aboutme_info {
+ my ($r,$is_course) = @_;
+ my (undef,undef,$cdom,$cnum)=split(/\//,$r->uri);
+ my $name;
+ if (!$is_course) {
+ $name = &Apache::loncommon::plainname($cnum,$cdom);
+ }
+ return ($cdom,$cnum,$name);
+}
+
+sub print_portfiles_link {
+ my ($r,$is_course) = @_;
+ my ($cdom,$cnum,$name) = &aboutme_info($r,$is_course);
+ my $filecounts = &portfolio_files($r,'showlink',undef,$is_course,
+ $cdom,$cnum,$name);
+ 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',
+ );
+ 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 = &Apache::lonnet::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.