--- loncom/interface/lonaboutme.pm 2008/12/17 14:51:11 1.89
+++ loncom/interface/lonaboutme.pm 2009/06/08 18:04:45 1.137
@@ -1,7 +1,7 @@
# The LearningOnline Network
-# "About Me" Personal Information
+# Personal Information Page
#
-# $Id: lonaboutme.pm,v 1.89 2008/12/17 14:51:11 harmsja Exp $
+# $Id: lonaboutme.pm,v 1.137 2009/06/08 18:04:45 bisitz Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -86,6 +86,7 @@ use Apache::lonlocal;
use Apache::lonmsgdisplay();
use Apache::lontemplate;
use HTML::Entities();
+use Image::Magick;
sub handler {
my $r = shift;
@@ -95,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);
@@ -117,14 +118,14 @@ sub handler {
}
if (!$candisplay) {
if ($target eq 'tex') {
- $r->print('\noindent{\large\textbf{'.&mt('No user home page available').'}}\\\\\\\\');
+ $r->print('\noindent{\large\textbf{'.&mt('No user personal information page available').'}}\\\\\\\\');
} else {
- $r->print(&Apache::loncommon::start_page("Personal Information"));
- $r->print('
'.&mt('No user home page available') .'
'.
- &mt('This is a result of one of the following:').''.
- '- '.&mt('The administrator of this domain has disabled home page functionality for this specific user.').'
'.
- '- '.&mt('The domain has been configured to disable, by default, home page functionality for all users in the domain.').'
'.
- '
');
+ $r->print(&Apache::loncommon::start_page("Personal Information Page"));
+ $r->print(''.&mt('No user personal information page available') .'
'.
+ &mt('This is a result of one of the following:').''.
+ '- '.&mt('The administrator of this domain has disabled personal information page functionality for this specific user.').'
'.
+ '- '.&mt('The domain has been configured to disable, by default, personal information page functionality for all users in the domain.').'
'.
+ '
');
$r->print(&Apache::loncommon::end_page());
}
return OK;
@@ -135,25 +136,25 @@ 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
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
- ['forceedit','forcestudent',
- 'register','popup']);
+ ['forceedit','forcestudent',
+ 'register','popup']);
-# ----------------------------------------------- Available Portfolio file display
+# ----------------------------------------------- Available Portfolio file display
if (($target ne 'tex') && ($action eq 'portfolio')) {
&display_portfolio_header($r,$is_course);
if ((!$is_course) && (!&Apache::lonnet::usertools_access($cnum,$cdom,'portfolio'))) {
$r->print(''.&mt('No user portfolio available') .'
'.
- &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.').'
'.
- '
');
+ &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) =
+ my ($blocked,$blocktext) =
&Apache::loncommon::blocking_status('port',$cnum,$cdom);
if (!$blocked) {
&display_portfolio_files($r,$is_course);
@@ -167,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",
@@ -178,7 +179,7 @@ sub handler {
'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());
}
@@ -193,202 +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 $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('');
+ $r->print(&mt('Last updated').': '.$lastmod . '');
+ $r->print('
');
}
- $args->{'bread_crumbs'} = [{href=>"/adm/fhwfdev/$cnum/aboutme",text=>"Personal Information"}];
- my $start_page =
- &Apache::loncommon::start_page("Personal Information",$rss_link,$args);
- $r->print($start_page);
- $r->print(''.&Apache::loncommon::plainname($cnum,$cdom).'
');
- } else {
- $r->print('\noindent{\large\textbf{'.&Apache::loncommon::plainname($cnum,$cdom).'}}\\\\\\\\');
- }
- if ($courseenv{'nickname'}) {
- $r->print(
- '"'.$courseenv{'nickname'}.
- '"
');
}
+#Print Help Text
if ($target ne 'tex') {
- $r->print(''.&Apache::lonnet::domain($cdom,'description').'
');#OLD SendMessage POS
- } 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; }
- my $query_string;
- if ($allowed) {
- $query_string = &build_query_string({'forcestudent' => '1','popup' => $env{'form.popup'}});
- $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.').
- '
'.&mt('Show Public View').''.
- &Apache::loncommon::help_open_topic('Uploaded_Templates_PublicView').'
'.
- &Apache::loncommon::help_open_topic('Uploaded_Templates_TextBoxes',&mt('Help with filling in text boxes')).'');
- } elsif ($privleged && $target ne 'tex') {
- $query_string = &build_query_string({'forceedit' => '1','popup' => $env{'form.popup'}});
- $r->print('
'.
- &mt('Edit').'
');
- }
- 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::userphotoupload('uploaddoc','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 $lastmod;
-my $image;
+ my $image;
# ---------------------------------------------------------------- Get syllabus
if (($syllabus{'uploaded.lastmodified'}) || ($allowed)) {
- $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'});
- $image=qq{
![]($syllabus{'uploaded.photourl'})
};
-
- if ($target eq 'tex') {
- $image=&Apache::lonxml::xmlparse($r,'tex',$image);
- }
- # $r->print($image); #Print old Image
- }
- if ($allowed) {
- $r->print(
- '
-');
-
- }
-
- if($allowed) {
- $r->print('
');
- }
- if ($target ne 'tex') {$r->print('
');} else {$r->print('\\\\');}
- } else {
- &Apache::lontemplate::send_message($r,$cnum,$cdom);
- $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); #old Print files
+ #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{
![]($syllabus{'uploaded.photourl'} )
};
+
+ 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::lonmsgdisplay::disfacetoface($r,$cnum,$cdom);
+ $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('
');
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}');
}
-
-
+
+
return OK;
}
@@ -396,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));
@@ -406,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;
}
@@ -437,18 +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 = '
';
- $output .= ($is_course?$lt{'vgpf'}:$lt{'vpfi'}).'
';
-
- #$output = '
'.($is_course?$lt{'vgpf'}:$lt{'vpfi'}).'
';
+ $output = '
';
+ $output .= ($is_course?$lt{'vgpf'}:$lt{'vpfi'}).'
';
+
+ #$output = '
'.($is_course?$lt{'vgpf'}:$lt{'vpfi'}).'
';
$output .= '
'.$lt{'difl'}.
- '';
+ $query_string.'">'.$lt{'difl'}.
+ '
';
if ($filecounts->{'both'} == 1) {
if ($is_course) {
$output .= &mt('One group portfolio file is available.').'
';
@@ -463,14 +496,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;
@@ -479,11 +511,11 @@ sub print_portfiles_link {
sub build_query_string {
my ($new_items) = @_;
my $query_string;
- my @formelements = ('register');
+ my @formelements = ('register');
my $new = 0;
if (ref($new_items) eq 'HASH') {
$new = 1;
- if (!defined($new_items->{'forceedit'}) &&
+ if (!defined($new_items->{'forceedit'}) &&
!defined($new_items->{'forcestudent'})) {
push(@formelements,('forceedit','forcestudent'));
}
@@ -516,7 +548,7 @@ sub display_portfolio_header {
my $output;
if ($is_course) {
- $output =
+ $output =
&Apache::loncommon::start_page('Viewable group portfolio files',undef,
{'function' => $forcestudent,
'domain' => $cdom,});
@@ -529,10 +561,11 @@ sub display_portfolio_header {
if (!($env{'user.name'} eq 'public' && $env{'user.domain'} eq 'public')) {
&Apache::lonhtmlcommon::add_breadcrumb
({href=>"/adm/$cdom/$cnum/aboutme".$query_string,
- text=>"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"}
+ 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.'));
}
@@ -545,10 +578,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'})) {
@@ -556,8 +590,8 @@ sub display_portfolio_files {
}
my $output = '
';
$r->print($output);
my $filecounts = &portfolio_files($r,'listfiles',\%lt,$is_course,
@@ -594,9 +628,9 @@ sub portfolio_files {
both => 0,
};
my $current_permissions =
- &Apache::lonnet::get_portfile_permissions($cdom,$cnum);
- my %access_controls =
- &Apache::lonnet::get_access_controls($current_permissions);
+ &Apache::lonnet::get_portfile_permissions($cdom,$cnum);
+ my %access_controls =
+ &Apache::lonnet::get_access_controls($current_permissions);
my $portaccess;
if ($mode eq 'showlink') {
$portaccess = 'both';
@@ -612,7 +646,7 @@ sub portfolio_files {
my %files_by_group;
foreach my $filename (sort(keys(%access_controls))) {
my ($group,$path) = split('/',$filename,2);
- $files_by_group{$group}{$path} = $access_controls{$filename};
+ $files_by_group{$group}{$path} = $access_controls{$filename};
}
foreach my $group (sort(keys(%files_by_group))) {
my %fileshash;
@@ -636,7 +670,7 @@ sub portfolio_files {
} else {
my $access_text;
if (ref($lt) eq 'HASH') {
- $access_text = $lt->{$portaccess};
+ $access_text = $lt->{$portaccess};
}
$r->print(&mt('There are no available files of the specified access type: [_1]',$access_text));
}
@@ -644,26 +678,12 @@ sub portfolio_files {
return $filecounts;
}
-{
- my $count=0;
- sub portfolio_table_start {
- $count=0;
- return '';
- }
- sub portfolio_row_start {
- $count++;
- my $class = ($count%2)?'LC_odd_row'
- :'LC_even_row';
- return '';
- }
-}
-
sub build_hierarchy {
my ($r,$cdom,$cnum,$portaccess,$is_course,$filecounts,$mode,$access_info,
$allfileshash,$group) = @_;
foreach my $filename (sort(keys(%{$access_info}))) {
my $access_status =
- &Apache::lonnet::get_portfolio_access($cdom,$cnum,$filename,$group, $$access_info{$filename});
+ &Apache::lonnet::get_portfolio_access($cdom,$cnum,$filename,$group,$$access_info{$filename});
if ($portaccess eq 'both') {
if (($access_status ne 'ok') &&
($access_status !~ /^[^:]+:guest_/)) {
@@ -702,10 +722,10 @@ sub build_hierarchy {
my $output;
if ($mode eq 'listfiles') {
if ($filecounts->{'both'} > 0) {
- $output = &portfolio_table_start();
+ $output = &Apache::loncommon::start_data_table();
$output .= &parse_directory($r,0,$allfileshash,'',$is_course,
$group);
- $output .= '
';
+ $output .= &Apache::loncommon::end_data_table();
}
}
return $output;
@@ -721,56 +741,57 @@ sub parse_directory {
$group);
my $getpropath = 1;
my %dirlist = map {
- ((split('&',$_,2))[0],1)
- } &Apache::lonnet::dirlist($portfolio_root.$path,$cdom,$cnum,$getpropath);
+ ((split('&',$_,2))[0],1)
+ } &Apache::lonnet::dirlist($portfolio_root.$path,$cdom,$cnum,$getpropath);
foreach my $item (sort(keys(%{$currhash}))) {
- $output .= &portfolio_row_start();
+ $output .= &Apache::loncommon::start_data_table_row();
$output .= '';
if (ref($currhash->{$item}) eq 'HASH') {
my $title=&HTML::Entities::encode($item,'<>&"');
$output .= ' '.$title;
- $output .= ' | | ';
+ $output .= ' | '
+ .&Apache::loncommon::end_data_table_row();
$output .= &parse_directory($r,$depth,$currhash->{$item},
- $path.'/'.$item,$is_course,$group);
+ $path.'/'.$item,$is_course,$group);
} else {
- my $file_name;
- if ($currhash->{$item} =~ m|/([^/]+)$|) {
- $file_name = $1;
- } else {
- $file_name = $currhash->{$item};
- }
- my $have_meta = exists($dirlist{$file_name.'.meta'});
+ my $file_name;
+ if ($currhash->{$item} =~ m|/([^/]+)$|) {
+ $file_name = $1;
+ } else {
+ $file_name = $currhash->{$item};
+ }
+ my $have_meta = exists($dirlist{$file_name.'.meta'});
my $url;
if ($is_course) {
$url = '/uploaded/'.$cdom.'/'.$cnum.'/groups/'.$group.
- '/portfolio/'.$currhash->{$item};
- } else {
- $url = '/uploaded/'.$cdom.'/'.$cnum.'/portfolio/'.
- $currhash->{$item};
+ '/portfolio/'.$currhash->{$item};
+ } else {
+ $url = '/uploaded/'.$cdom.'/'.$cnum.'/portfolio/'.$currhash->{$item};
}
my $showname;
- if ($have_meta) {
- $showname = &Apache::lonnet::metadata($url,'title');
- }
- if ($showname eq '') {
- $showname = $file_name;
- } else {
- $showname = $file_name.' ('.$showname.')';
- }
+ if ($have_meta) {
+ $showname = &Apache::lonnet::metadata($url,'title');
+ }
+ if ($showname eq '') {
+ $showname = $file_name;
+ } else {
+ $showname = $file_name.' ('.$showname.')';
+ }
$showname=&HTML::Entities::encode($showname,'<>&"');
$output .= ''.
- '
'.
- ' '.$showname.'';
- $output.='';
- if ($have_meta) {
- $output.= ' ';
- }
- $output .= ' | ';
+ '
'.
+ ' '.$showname.'';
+ $output.='';
+ if ($have_meta) {
+ $output.= ' ';
+ }
+ $output .= ' | '
+ .&Apache::loncommon::end_data_table_row();
}
- }
+ }
return $output;
}
@@ -789,7 +810,7 @@ sub aboutme_access {
$cdom = $coursehash{'domain'};
$cnum = $coursehash{'cnum'};
}
- if ((&Apache::lonnet::allowed('srm',$privcheck)) ||
+ if ((&Apache::lonnet::allowed('srm',$privcheck)) ||
(&Apache::lonnet::allowed('dff',$privcheck))) {
if (&in_course($uname,$udom,$cnum,$cdom)) {
return 1;
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.