--- loncom/interface/lonaboutme.pm 2010/03/11 16:35:12 1.144
+++ loncom/interface/lonaboutme.pm 2011/10/17 12:41:30 1.148
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Personal Information Page
#
-# $Id: lonaboutme.pm,v 1.144 2010/03/11 16:35:12 droeschl Exp $
+# $Id: lonaboutme.pm,v 1.148 2011/10/17 12:41:30 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -168,16 +168,22 @@ sub handler {
if ($is_course) {
if ($target ne 'tex') {
- my $brcrum = [{href=>"/adm/navmaps",text=>"Course Contents"},
- {href=>"/adm/aboutme",text=>"Course Information"}];
- my $start_page =
- &Apache::loncommon::start_page(
- "Course Information",
- undef,
- {'function' => $env{'forcestudent'},
- 'domain' => $cdom,
- 'force_register' => $env{'forceregister'},
- 'bread_crumbs' => $brcrum});
+ 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);
@@ -190,11 +196,6 @@ sub handler {
my $forcestudent='';
if ($env{'form.forcestudent'}) { $forcestudent='student'; };
- my $forceregister = '';
- if ($forcestudent eq '') {
- $forceregister = $env{'form.register'};
- }
-
#------------Get rights
my %courseenv=&Apache::lonnet::dump('environment',$cdom,$cnum);
my %syllabus=&Apache::lonnet::dump('aboutme',$cdom,$cnum);
@@ -209,18 +210,13 @@ sub handler {
my $rss_link = &Apache::lonrss::rss_link($cnum,$cdom);
my $args = {'function' => undef,
'domain' => $cdom,
-# 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'}) {
+ 'force_register' => $env{'form.register'},
+ };
+ if ($env{'form.popup'}) { # Don't show breadcrumbs in popup window
$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"}];
+ } 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);
@@ -385,7 +381,7 @@ sub handler {
}
if ($target ne 'tex') { #print Image
- $r->print($image);
+ $r->print($image.'');
} #End Print Image
@@ -456,21 +452,19 @@ sub in_course {
$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));
- return 0 if (!@course_roles);
- 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 $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;
}
@@ -526,6 +520,8 @@ sub print_portfiles_link {
}
$output .= '';
$output .= '';
+ } elsif ($is_course) {
+ $output .= ''.&mt('There are currently no publicly accessible or password protected group portfolio files.').'
';
}
$r->print($output);
return;
@@ -565,34 +561,47 @@ sub display_portfolio_header {
my ($r,$is_course) = @_;
my ($cdom,$cnum,$name) = &aboutme_info($r,$is_course);
my $query_string = &build_query_string();
- &Apache::lonhtmlcommon::clear_breadcrumbs();
- my $forcestudent='';
- if ($env{'form.forcestudent'}) { $forcestudent='student'; };
-
+ my $args = {'domain' => $cdom};
+ if ($env{'form.forcestudent'}) {
+ $args->{'function'} = 'student';
+ }
my $output;
if ($is_course) {
- $output =
- &Apache::loncommon::start_page('Viewable group portfolio files',undef,
- {'function' => $forcestudent,
- 'domain' => $cdom,});
- $output .= ''.&mt('Group Portfolio files').'
';
- } else {
- $output =
- &Apache::loncommon::start_page('Viewable portfolio files',undef,
- {'function' => $forcestudent,
- 'domain' => $cdom,});
- if (!($env{'user.name'} eq 'public' && $env{'user.domain'} eq 'public')) {
- &Apache::lonhtmlcommon::add_breadcrumb
- ({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",
- text=>&mt('Viewable files - [_1]', $name),
- title=>&mt('Viewable portfolio files for [_1]', $name)}
- );
- $output .= &Apache::lonhtmlcommon::breadcrumbs(&mt('Viewable portfolio files.'));
+ if (($env{'request.course.id'} eq $cdom.'_'.$cnum) &&
+ ($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".$query_string,
+ text=>&mt('Course Information - [_1]',$cdescr),
+ no_mt=>1},
+ {href=>"/adm/$cdom/$cnum/aboutme/portfolio".$query_string,
+ text=>'Viewable group portfolio files'}
+ ];
+ $args->{bread_crumbs} = $brcrum;
}
- $output .= ''.&mt('Portfolio files for [_1]',$name).'
';
+ $output = &Apache::loncommon::start_page('Viewable group portfolio files',undef,$args).
+ ''.&mt('Group Portfolio files').'
';
+ } else {
+ if ($env{'request.course.id'} && $env{'form.register'}) {
+ $args->{force_register} = $env{'form.register'};
+ } else {
+ my $brcrum = [{href => "/adm/$cdom/$cnum/aboutme".$query_string,
+ text => &mt('Personal Information Page - [_1]',$name),
+ title => &mt('Go to personal information page for [_1]',$name),
+ no_mt => 1},
+ {href => "/adm/$cdom/$cnum/aboutme/portfolio".$query_string,
+ text => 'Viewable files',
+ title => &mt('Viewable portfolio files for [_1]',$name),
+ no_mt => 1}
+ ];
+ $args->{bread_crumbs} = $brcrum;
+ }
+ $output =
+ &Apache::loncommon::start_page('Viewable portfolio files',
+ undef,$args).
+ ''.&mt('Portfolio files for [_1]',$name).'
';
}
$r->print($output);
return;
@@ -622,23 +631,28 @@ sub display_portfolio_files {
}
$output .= '>'.$lt{$type}.'';
}
- $output .= ''."\n".
- '';
- $output .= '
';
+ $output .= ''."\n";
+ if ($env{'form.register'}) {
+ $output .= ''."\n";
+ }
+ $output .= ''.
+ '
';
$r->print($output);
my $filecounts = &portfolio_files($r,'listfiles',\%lt,$is_course,
$cdom,$cnum,$name);
if (!($env{'user.name'} eq 'public' && $env{'user.domain'} eq 'public')) {
- my $query_string = &build_query_string();
- $r->print('
');
- if ($is_course) {
- $r->print(&mt('Course Information page'));
- } else {
- $r->print(&mt('Information about [_1]',$name));
+ if ($env{'request.course.id'} && $env{'form.register'}) {
+ my $query_string = &build_query_string();
+ $r->print('
');
+ if ($is_course) {
+ $r->print(&mt('Course Information page'));
+ } else {
+ $r->print(&mt('Information about [_1]',$name));
+ }
+ $r->print('');
}
- $r->print('');
}
return;
}
@@ -763,9 +777,12 @@ sub parse_directory {
my $portfolio_root = &Apache::portfolio::get_portfolio_root($cdom,$cnum,
$group);
my $getpropath = 1;
- my %dirlist = map {
- ((split('&',$_,2))[0],1)
- } &Apache::lonnet::dirlist($portfolio_root.$path,$cdom,$cnum,$getpropath);
+ my ($listref,$listerror) =
+ &Apache::lonnet::dirlist($portfolio_root.$path,$cdom,$cnum,$getpropath);
+ my %dirlist;
+ if (ref($listref) eq 'ARRAY') {
+ %dirlist = map { ((split('&',$_,2))[0],1) } @{$listref};
+ }
foreach my $item (sort(keys(%{$currhash}))) {
$output .= &Apache::loncommon::start_data_table_row();
$output .= '';
|