version 1.46, 2006/08/02 20:23:33
|
version 1.51, 2006/08/08 17:24:07
|
Line 48 sub handler {
|
Line 48 sub handler {
|
if ($target eq 'tex') { |
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)=split(/\//,$r->uri); |
my (undef,undef,$cdom,$cnum,undef,$action)=split(/\//,$r->uri); |
# Is this even a user? |
# Is this even a user? |
if (&Apache::lonnet::homeserver($cnum,$cdom) eq 'no_host') { |
if (&Apache::lonnet::homeserver($cnum,$cdom) eq 'no_host') { |
&Apache::loncommon::simple_error_page($r,'No info', |
&Apache::loncommon::simple_error_page($r,'No info', |
Line 62 sub handler {
|
Line 62 sub handler {
|
'ccc_webreferences' => 'Web References'); |
'ccc_webreferences' => 'Web References'); |
|
|
# ------------------------------------------------------------ Get Query String |
# ------------------------------------------------------------ Get Query String |
&Apache::loncommon::get_unprocessed_cgi |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
($ENV{'QUERY_STRING'},['forceedit','forcestudent','register','action']); |
['forceedit','forcestudent', |
|
'register']); |
|
|
# ----------------------------------------------- Available Portfolio file display |
# ----------------------------------------------- Available Portfolio file display |
if (($target ne 'tex') && ($env{'form.action'} eq 'portfolio')) { |
if (($target ne 'tex') && ($action eq 'portfolio')) { |
my %lt = &Apache::lonlocal::texthash ( |
|
withoutpass => 'passphrase not required', |
|
withpass => 'passphrase protected', |
|
both => 'all access types ', |
|
); |
|
&display_portfolio_header($r); |
&display_portfolio_header($r); |
&display_portfolio_files($r,\%lt); |
&display_portfolio_files($r); |
$r->print(&Apache::loncommon::end_page()); |
$r->print(&Apache::loncommon::end_page()); |
return OK; |
return OK; |
} |
} |
Line 93 sub handler {
|
Line 89 sub handler {
|
my $start_page = |
my $start_page = |
&Apache::loncommon::start_page("Personal Information",undef, |
&Apache::loncommon::start_page("Personal Information",undef, |
{'function' => $forcestudent, |
{'function' => $forcestudent, |
'domain' => $cdom, |
'domain' => $cdom, |
'force_register' => |
'force_register' => |
$forceregister,}); |
$forceregister,}); |
$r->print($start_page); |
$r->print($start_page); |
Line 274 sub print_portfiles_link {
|
Line 270 sub print_portfiles_link {
|
my ($r) = @_; |
my ($r) = @_; |
my ($cdom,$cnum,$name) = &aboutme_info($r); |
my ($cdom,$cnum,$name) = &aboutme_info($r); |
my $filecounts = &portfolio_files($r,'showlink'); |
my $filecounts = &portfolio_files($r,'showlink'); |
my $query_string = &build_query_string({'action' => 'portfolio',}); |
my $query_string = &build_query_string(); |
my $output; |
my $output; |
if ($filecounts->{'both'} > 0) { |
if ($filecounts->{'both'} > 0) { |
$output = &mt('<h3>Viewable portfolio files</h3>'); |
$output = &mt('<h3>Viewable portfolio files</h3>'); |
$output .= '<a href="/adm/'.$cdom.'/'.$cnum.'/aboutme'. |
$output .= '<a href="/adm/'.$cdom.'/'.$cnum.'/aboutme/portfolio'. |
$query_string.'">'.&mt('Display file listing'). |
$query_string.'">'.&mt('Display file listing'). |
'</a><br /><br />'; |
'</a><br /><br />'; |
$output .= &mt('A total of [quant,_1,portfolio file] owned by [_2] are available.',$filecounts->{'both'},$name).'<ul>'; |
$output .= &mt('A total of [quant,_1,portfolio file] owned by [_2] are available.',$filecounts->{'both'},$name).'<ul>'; |
Line 298 sub build_query_string {
|
Line 294 sub build_query_string {
|
my ($new_items) = @_; |
my ($new_items) = @_; |
my $query_string; |
my $query_string; |
my @formelements = ('register'); |
my @formelements = ('register'); |
my $nonew = 1; |
my $new = 0; |
if (ref($new_items) eq 'HASH') { |
if (ref($new_items) eq 'HASH') { |
$nonew = 0; |
$new = 1; |
if (!defined($new_items->{'forceedit'}) && |
if (!defined($new_items->{'forceedit'}) && |
!defined($new_items->{'forcestudent'})) { |
!defined($new_items->{'forcestudent'})) { |
push(@formelements,('forceedit','forcestudent')); |
push(@formelements,('forceedit','forcestudent')); |
Line 310 sub build_query_string {
|
Line 306 sub build_query_string {
|
} |
} |
foreach my $element (@formelements) { |
foreach my $element (@formelements) { |
if (exists($env{'form.'.$element})) { |
if (exists($env{'form.'.$element})) { |
if (($nonew) || (!defined($new_items->{$element}))) { |
if ((!$new) || (!defined($new_items->{$element}))) { |
$query_string .= '&'.$element.'='.$env{'form.'.$element}; |
$query_string .= '&'.$element.'='.$env{'form.'.$element}; |
} |
} |
} |
} |
} |
} |
if (!$nonew) { |
if ($new) { |
foreach my $key (keys(%{$new_items})) { |
foreach my $key (keys(%{$new_items})) { |
$query_string .= '&'.$key.'='.$new_items->{$key}; |
$query_string .= '&'.$key.'='.$new_items->{$key}; |
} |
} |
Line 339 sub display_portfolio_header {
|
Line 335 sub display_portfolio_header {
|
({href=>"/adm/$cdom/$cnum/aboutme".$query_string, |
({href=>"/adm/$cdom/$cnum/aboutme".$query_string, |
text=>"Personal information - $name", |
text=>"Personal information - $name", |
title=>"Go to personal information page for $name"}, |
title=>"Go to personal information page for $name"}, |
{href=>"/adm/$cdom/$cnum/aboutme?action=portfolio", |
{href=>"/adm/$cdom/$cnum/aboutme/portfolio", |
text=>"Viewable files - $name", |
text=>"Viewable files - $name", |
title=>"Viewable portfolio files for $name"} |
title=>"Viewable portfolio files for $name"} |
); |
); |
Line 350 sub display_portfolio_header {
|
Line 346 sub display_portfolio_header {
|
} |
} |
|
|
sub display_portfolio_files { |
sub display_portfolio_files { |
my ($r,$lt) = @_; |
my ($r) = @_; |
my ($cdom,$cnum,$name) = &aboutme_info($r); |
my ($cdom,$cnum,$name) = &aboutme_info($r); |
|
my %lt = ( withoutpass => 'passphrase not required', |
|
withpass => 'passphrase protected', |
|
both => 'all access types ',); |
|
%lt = &Apache::lonlocal::texthash(%lt); |
|
|
my $portaccess = 'withoutpass'; |
my $portaccess = 'withoutpass'; |
if (exists($env{'form.portaccess'})) { |
if (exists($env{'form.portaccess'})) { |
$portaccess = $env{'form.portaccess'}; |
$portaccess = $env{'form.portaccess'}; |
} |
} |
|
|
my $output = '<form action="'.&HTML::Entities::encode($r->uri,'<>&"') |
my $output = '<form action="'.&HTML::Entities::encode($r->uri,'<>&"') |
.'" name="displaystatus" method="post">'. |
.'" name="displaystatus" method="post">'. |
&mt('File access type: ').'<select name="portaccess">'; |
&mt('File access type: ').'<select name="portaccess">'; |
Line 364 sub display_portfolio_files {
|
Line 366 sub display_portfolio_files {
|
if ($portaccess eq $type) { |
if ($portaccess eq $type) { |
$output .= 'selected="selected"'; |
$output .= 'selected="selected"'; |
} |
} |
$output .= '>'.$lt->{$type}.'</option>'; |
$output .= '>'.&mt($type).'</option>'; |
} |
} |
$output .= '</select>'."\n". |
$output .= '</select>'."\n". |
'<input type="submit" name="portaccessbutton" value="'. |
'<input type="submit" name="portaccessbutton" value="'. |
&mt('Update display').'" />'. |
&mt('Update display').'" />'; |
'<input type="hidden" name="action" value="'. |
|
$env{'form.action'}.'" />'; |
|
$output .= '</form><br /><br />'; |
$output .= '</form><br /><br />'; |
$r->print($output); |
$r->print($output); |
my $filecounts = &portfolio_files($r,'listfiles',$lt); |
my $filecounts = &portfolio_files($r,'listfiles',\%lt); |
my $query_string = &build_query_string(); |
my $query_string = &build_query_string(); |
$r->print('<br /><br /><a href="/adm/'.$cdom.'/'.$cnum. |
$r->print('<br /><br /><a href="/adm/'.$cdom.'/'.$cnum. |
'/aboutme'.$query_string.'">'. |
'/aboutme'.$query_string.'">'. |
Line 447 sub portfolio_files {
|
Line 447 sub portfolio_files {
|
my $output; |
my $output; |
if (keys(%allfileshash) > 0) { |
if (keys(%allfileshash) > 0) { |
$output = &portfolio_table_start(); |
$output = &portfolio_table_start(); |
$output .= &parse_directory($r,0,\%allfileshash); |
$output .= &parse_directory($r,0,\%allfileshash,''); |
$output .= '</table>'; |
$output .= '</table>'; |
} else { |
} else { |
my $access_text; |
my $access_text; |
Line 476 sub portfolio_files {
|
Line 476 sub portfolio_files {
|
} |
} |
|
|
sub parse_directory { |
sub parse_directory { |
my ($r,$depth,$currhash) = @_; |
my ($r,$depth,$currhash,$path) = @_; |
my ($cdom,$cnum,$name) = &aboutme_info($r); |
my ($cdom,$cnum,$name) = &aboutme_info($r); |
$depth++; |
$depth++; |
my $output; |
my $output; |
|
|
|
my $portfolio_root = &Apache::portfolio::get_portfolio_root($cdom,$cnum); |
|
my %dirlist = map { |
|
((split('&',$_,2))[0],1) |
|
} &Apache::lonnet::dirlist($path,$cdom,$cnum,$portfolio_root); |
foreach my $item (sort(keys(%{$currhash}))) { |
foreach my $item (sort(keys(%{$currhash}))) { |
$output .= &portfolio_row_start(); |
$output .= &portfolio_row_start(); |
$output .= '<td style="padding-left: '.($depth*25).'px">'; |
$output .= '<td style="padding-left: '.($depth*25).'px">'; |
if (ref($currhash->{$item}) eq 'HASH') { |
if (ref($currhash->{$item}) eq 'HASH') { |
my $title=&HTML::Entities::encode($item,'<>&"'); |
my $title=&HTML::Entities::encode($item,'<>&"'); |
$output .= '<img src="'.&Apache::loncommon::lonhttpdurl("/adm/lonIcons/navmap.folder.open.gif").'" alt="'.&mt('Folder').' '.$title.'" class="LC_icon" /> '.$title; |
$output .= '<img src="'.&Apache::loncommon::lonhttpdurl("/adm/lonIcons/navmap.folder.open.gif").'" alt="'.&mt('Folder').' '.$title.'" class="LC_icon" /> '.$title; |
$output .= '</td></tr>'; |
$output .= '</td><td></td></tr>'; |
$output .= &parse_directory($r,$depth,$currhash->{$item}); |
$output .= &parse_directory($r,$depth,$currhash->{$item}, |
|
$path.'/'.$item); |
} else { |
} 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 $url = '/uploaded/'.$cdom.'/'.$cnum.'/portfolio/'. |
|
$currhash->{$item}; |
|
|
my $showname; |
my $showname; |
if ($currhash->{$item} =~ m|/([^/]+)$|) { |
if ($have_meta) { |
$showname = $1; |
$showname = &Apache::lonnet::metadata($url,'title'); |
} else { |
} |
$showname = $currhash->{$item}; |
if ($showname eq '') { |
} |
$showname = $file_name; |
|
} else { |
|
$showname = $file_name.' ('.$showname.')'; |
|
} |
|
|
$showname=&HTML::Entities::encode($showname,'<>&"'); |
$showname=&HTML::Entities::encode($showname,'<>&"'); |
$output .= '<img alt="" src="'.&Apache::loncommon::icon($currhash->{$item}).'" class="LC_icon" /> <a href="/uploaded/'.$cdom.'/'.$cnum.'/portfolio/'.$currhash->{$item}.'">'.$showname.'</a>'; |
$output .= '<a href="'.$url.'">'. |
|
'<img alt="" src="'.&Apache::loncommon::icon($currhash->{$item}).'" class="LC_icon" />'. |
|
' '.$showname.'</a>'; |
|
$output.='</td><td>'; |
|
if ($have_meta) { |
|
$output.= '<a href="'.$url.'.meta"><img alt="'.&mt('Catalog Information').'" src="'. |
|
&Apache::loncommon::lonhttpdurl('/res/adm/pages/catalog.gif'). |
|
'" class="LC_icon" /></a>'; |
|
} |
$output .= '</td></tr>'; |
$output .= '</td></tr>'; |
} |
} |
} |
} |