--- loncom/interface/portfolio.pm 2006/08/08 19:36:54 1.149 +++ loncom/interface/portfolio.pm 2006/08/12 22:41:53 1.155 @@ -1,7 +1,7 @@ # The LearningOnline Network # portfolio browser # -# $Id: portfolio.pm,v 1.149 2006/08/08 19:36:54 banghart Exp $ +# $Id: portfolio.pm,v 1.155 2006/08/12 22:41:53 banghart Exp $ # # Copyright Michigan State University Board of Trustees # @@ -72,7 +72,7 @@ sub make_anchor { foreach my $field_name (keys(%$anchor_fields)) { $anchor .= $field_name.'='.$$anchor_fields{$field_name}.'&'; } - $anchor =~ s\&$\\; + $anchor =~ s/&$//; $anchor .= &group_args(); $anchor .= '">'.$inner_text.''; return $anchor; @@ -132,8 +132,7 @@ sub display_common { TABLE } my @tree = split (/\//,$current_path); - my %anchor_fields = (); - %anchor_fields = ( + my %anchor_fields = ( 'selectfile' => $port_path, 'currentpath' => '/', 'mode' => $env{"form.mode"}, @@ -145,8 +144,7 @@ TABLE my $newCurrentPath = ''; for (my $i = 1; $i< @tree; $i++){ $newCurrentPath .= $tree[$i].'/'; - my %anchor_fields = (); - %anchor_fields = ( + my %anchor_fields = ( 'selectfile' => $tree[$i], 'currentpath' => '/', 'mode' => $env{"form.mode"}, @@ -171,18 +169,47 @@ sub display_directory_line { $href_location, $url, $current_path, $access_admin_text, $versions)=@_; # my ($filename,$dom,undef,$testdir,undef,undef,undef,undef,$size,undef,$mtime,undef,undef,undef,$obs,undef)=split(/\&/,$line,16); $r->print(''); - $r->print($line); - $r->print(''); - $r->print(''.$$version_flag{$filename}.''. - $filename.''); + $r->print($line); # contains first two cells of table + $filename = $filename; + $filename = &prepend_group($filename); + my $lock_info; + if ($$version_flag{$filename}) { # versioned can't be versioned, so TRUE when root file + $r->print(''); + $r->print(''.$$version_flag{$filename}.''); + } else { # this is a graded or handed back file + my ($user,$domain) = &get_name_dom(); + my $permissions_hash = &Apache::lonnet::get_portfile_permissions($domain,$user); + if (defined($filename) && defined($$permissions_hash{'/'.$filename})) { + foreach my $array_item (@{$$permissions_hash{'/'.$filename}}) { + if (ref($array_item) eq 'ARRAY') { + if ($$array_item[(@$array_item - 1)] eq 'handback') { + $lock_info = 'Handback'; + } elsif ($$array_item[(@$array_item - 1)] eq 'graded') { + $lock_info = 'Graded'; + } + } + } + } + if ($lock_info) { + my %anchor_fields = ( + 'lockinfo' => '/'.$filename + ); + $lock_info = &make_anchor(undef,\%anchor_fields,$lock_info); + } + $r->print(''.$lock_info.''); + } + # $r->print(''.$$version_flag{$filename}.''); + $r->print(''.&make_anchor($href_location.$filename,undef,$filename).''); $r->print(''.$size.''); $r->print(''.&Apache::lonlocal::locallocaltime($mtime).''); if ($select_mode ne 'true') { $r->print(''. &mt($curr_access).'   '); - $r->print(''.$access_admin_text.''); + my %anchor_fields = ( + 'access' => $filename, + 'currentpath' => $current_path + ); + $r->print(&make_anchor($url, \%anchor_fields, $access_admin_text).''); } $r->print(''.$/); } @@ -268,10 +295,18 @@ sub display_directory { $show_versions = 'true'; } if (exists($versioned{$filename})) { + my %anchor_fields = ( + 'selectfile' => $filename, + 'continue' => 'false', + 'currentpath' => $current_path, + ); if ($show_versions) { - $version_flag{$filename} = ''.&mt('opened folder').''; + $version_flag{$filename} = &make_anchor('portfolio',\%anchor_fields, + ''.&mt('opened folder').''); } else { - $version_flag{$filename} = ''.&mt('closed folder').''; + $anchor_fields{'showversions'} = $filename; + $version_flag{$filename} = &make_anchor('portfolio',\%anchor_fields, + ''.&mt('closed folder').''); } } else { $version_flag{$filename} = ' '; @@ -283,8 +318,7 @@ sub display_directory { } $r->print(''.&mt('closed folder').''); $r->print('Go to ...'); - my %anchor_fields = (); - %anchor_fields = ( + my %anchor_fields = ( 'selectfile' => $filename.'/', 'currentpath' => $current_path.$filename.'/', 'mode' => $env{"form.mode"}, @@ -306,7 +340,10 @@ sub display_directory { $line.=' />'; } else { if (exists $locked_files{$fullpath}) { - $line.='Locked'; + my %anchor_fields = ( + 'lockinfo' => $current_path.$filename + ); + $line.=''.&make_anchor($url,\%anchor_fields,'Locked').''; $css_class= 'LC_browser_file_locked'; } else { if (!$can_modify) { @@ -320,8 +357,13 @@ sub display_directory { if ($can_modify) { my $cat=''.&mt('Catalog Information').
                             ''; - $line .= 'Rename'; - $line .= ''.''.$cat.''; + my %anchor_fields = ( + 'rename' => $filename, + currentpath => $current_path + ); + $line .= &make_anchor($url,\%anchor_fields,'Rename'); + $line .= ''.&make_anchor($href_edit_location.$filename.'.meta',undef,$cat); + # ''.$cat.''; } $line .= ''; } @@ -459,12 +501,12 @@ sub done { unless (defined $message) { $message='Done'; } - my $result = '

'.&mt($message).'

'; + my %anchor_fields = ( + 'currentpath' => $env{'form.currentpath'}, + 'fieldname' => $env{'form.fieldname'}, + 'mode' => $env{'form.mode'} + ); + my $result = '

'.&make_anchor($url,\%anchor_fields,&mt($message)).'

'; return $result; } @@ -600,8 +642,12 @@ sub display_access { my %access_controls = &Apache::lonnet::get_access_controls($current_permissions,$group,$file_name); my $aclcount = keys(%access_controls); my $header = '

'.&mt('Allowing others to retrieve file: [_1]',$port_path.$env{'form.currentpath'}.$env{'form.access'}).'

'; - my $info .= &mt('Access to this file by others can be set to be one or more of the following types: public, passphrase-protected or conditional.').'
'; - + my $info .= &mt('Access to this file by others can be set to be one or more of the following types: public, passphrase-protected or conditional.'); + $info .= '
'; if ($group eq '') { $info .= (&mt("Direct others to the 'Display file listing' link (shown when there are viewable files) on your personal information page:
http://$ENV{'SERVER_NAME'}/adm/$udom/$uname/aboutme")); } @@ -646,8 +692,10 @@ sub view_access_settings { } else { $r->print(&mt('No access control settings currently exist for this file.
' )); } - $r->print('
'.&mt('Return to directory listing').''); + my %anchor_fields = ( + 'currentpath' => $env{'form.currentpath'} + ); + $r->print('
'.&make_anchor($url, \%anchor_fields, &mt('Return to directory listing'))); return; } @@ -871,12 +919,13 @@ sub update_access { } &close_form($r,$url); } else { - $r->print('
'. - &mt('Display all access settings for this file').''. - '     '. - ''.&mt('Return to directory listing').''); + my %anchor_fields = ( + 'currentpath' => $env{'form.currentpath'}, + 'access' => $env{'form.selectfile'} + ); + $r->print('
'.&make_anchor($url, \%anchor_fields, &mt('Display all access settings for this file'))); + delete $anchor_fields{'access'}; + $r->print('     '.&make_anchor($url,\%anchor_fields,&mt('Return to directory listing'))); } return; } @@ -1568,13 +1617,24 @@ sub lock_info { } else { $filetext = ''.$file_name.''; } - $r->print(&mt('[_1] was submitted in response to problem: ', + if ($$array_item[(@$array_item - 1)] eq 'graded') { + $r->print(&mt('[_1] was submitted in response to problem: ', + $filetext). + ''.&Apache::lonnet::gettitle($$array_item[0]). + '
'); + my %course_description = &Apache::lonnet::coursedescription($$array_item[1]); + $r->print(&mt('In the course: [_1]
', + $course_description{'description'})); + } elsif ($$array_item[(@$array_item - 1)] eq 'handback') { + $r->print(&mt('[_1] was handed back in response to problem: ', $filetext). ''.&Apache::lonnet::gettitle($$array_item[0]). '
'); - my %course_description = &Apache::lonnet::coursedescription($$array_item[1]); - $r->print(&mt('In the course: [_1]
', + my %course_description = &Apache::lonnet::coursedescription($$array_item[1]); + $r->print(&mt('In the course: [_1]
', $course_description{'description'})); + + } # $r->print('the third is '.$$array_item[2].'
'); # $r->print("item is $$array_item[0]
and $$array_item[0]"); }