version 1.154, 2006/08/12 06:18:44
|
version 1.163, 2006/09/19 14:02:42
|
Line 164 TABLE
|
Line 164 TABLE
|
} |
} |
|
|
sub display_directory_line { |
sub display_directory_line { |
my ($r,$select_mode,$fullpath, $filename, $mtime, $size, $css_class, |
my ($r,$select_mode, $filename, $mtime, $size, $css_class, |
$line, $access_controls, $curr_access, $now, $version_flag, |
$line, $access_controls, $curr_access, $now, $version_flag, |
$href_location, $url, $current_path, $access_admin_text, $versions)=@_; |
$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); |
|
|
my $fullpath = &prepend_group($current_path.$filename); |
$r->print('<tr class="'.$css_class.'">'); |
$r->print('<tr class="'.$css_class.'">'); |
$r->print($line); # contains first two cells of table |
$r->print($line); # contains first two cells of table |
if ($$version_flag{$filename}) { # versioned can't be versioned, so TRUE when root file |
my $lock_info; |
|
if ($version_flag) { # versioned can't be versioned, so TRUE when root file |
$r->print('<td><img alt="" src="'.&Apache::loncommon::icon($filename).'" /></td>'); |
$r->print('<td><img alt="" src="'.&Apache::loncommon::icon($filename).'" /></td>'); |
$r->print('<td>'.$$version_flag{$filename}.'</td>'); |
$r->print('<td>'.$version_flag.'</td>'); |
} else { # this is a graded or handed back file |
} else { # this is a graded or handed back file |
my ($user,$domain) = &get_name_dom(); |
my ($user,$domain) = &get_name_dom(); |
my $permissions_hash = &Apache::lonnet::get_portfile_permissions($domain,$user); |
my $permissions_hash = &Apache::lonnet::get_portfile_permissions($domain,$user); |
my $lock_info; |
if (defined($$permissions_hash{$fullpath})) { |
foreach my $key (keys(%$permissions_hash)) { |
foreach my $array_item (@{$$permissions_hash{$fullpath}}) { |
$key =~ s|^/||; |
if (ref($array_item) eq 'ARRAY') { |
if ($key =~ /$filename/) { |
if ($$array_item[-1] eq 'handback') { |
&Apache::lonnet::logthis("filename match"); |
$lock_info = 'Handback'; |
my $value = $$permissions_hash{$key}; |
} elsif ($$array_item[-1] eq 'graded') { |
if (ref($value) eq 'ARRAY') { |
$lock_info = 'Graded'; |
my $info = pop(@$value); |
|
my $info2 = pop(@$info); |
|
&Apache::lonnet::logthis("the info2 is $info2"); |
|
$lock_info = $info2; |
|
#foreach my $key2(keys(%hash)){ |
|
# &Apache::lonnet::logthis("a key2 is $key2"); |
|
#} |
|
foreach my $value_element (@$value) { |
|
#&Apache::lonnet::logthis("and the array element is $value_element"); |
|
foreach my $sub_value (@$value_element) { |
|
#&Apache::lonnet::logthis("subvalue is $sub_value"); |
|
} |
|
} |
} |
} |
} |
} |
} |
} |
} |
$r->print('<td colspan="2">'.$lock_info.'</td>'); |
if ($lock_info) { |
|
my %anchor_fields = ('lockinfo' => $fullpath); |
|
if ($versions) { # hold the folder open |
|
my ($fname,$version,$extension) = &Apache::grades::file_name_version_ext($fullpath); |
|
$fname =~ s|^/||; |
|
$anchor_fields{'showversions'} = $fname.'.'.$extension; |
|
} |
|
$lock_info = &make_anchor(undef,\%anchor_fields,$lock_info); |
|
} |
|
$r->print('<td colspan="2">'.$lock_info.'</td>'); |
} |
} |
# $r->print('<td>'.$$version_flag{$filename}.'</td><td>'); |
# $r->print('<td>'.$$version_flag{$filename}.'</td><td>'); |
$r->print('<td>'.&make_anchor($href_location.$filename,undef,$filename).'</td>'); |
$r->print('<td>'.&make_anchor($href_location.$filename,undef,$filename).'</td>'); |
Line 268 sub display_directory {
|
Line 267 sub display_directory {
|
my $href_location="/uploaded/$udom/$uname/$port_path".$current_path; |
my $href_location="/uploaded/$udom/$uname/$port_path".$current_path; |
my $href_edit_location="/editupload/$udom/$uname/$port_path".$current_path; |
my $href_edit_location="/editupload/$udom/$uname/$port_path".$current_path; |
my @dir_lines; |
my @dir_lines; |
my @version_lines; |
|
my %versioned; |
my %versioned; |
foreach my $dir_line (sort |
foreach my $dir_line (sort |
{ |
{ |
Line 282 sub display_directory {
|
Line 280 sub display_directory {
|
$filename =~ s/\s+$//; |
$filename =~ s/\s+$//; |
my ($fname,$version,$extension) = &Apache::grades::file_name_version_ext($filename); |
my ($fname,$version,$extension) = &Apache::grades::file_name_version_ext($filename); |
if ($version) { |
if ($version) { |
push(@version_lines, [$filename,$dom,$testdir,$size,$mtime,$obs]); |
my $fullpath = &prepend_group($current_path.$fname.'.'.$extension); |
$versioned{$fname.'.'.$extension} .= $version.","; |
push(@{ $versioned{$fullpath} }, |
|
[$filename,$dom,$testdir,$size,$mtime,$obs,]); |
} else { |
} else { |
push(@dir_lines, [$filename,$dom,$testdir,$size,$mtime,$obs]); |
push(@dir_lines, [$filename,$dom,$testdir,$size,$mtime,$obs]); |
} |
} |
Line 292 sub display_directory {
|
Line 291 sub display_directory {
|
my ($filename,$dom,$testdir,$size,$mtime,$obs) = @$dir_line; |
my ($filename,$dom,$testdir,$size,$mtime,$obs) = @$dir_line; |
my ($fname,$version,$extension) = &Apache::grades::file_name_version_ext($filename); |
my ($fname,$version,$extension) = &Apache::grades::file_name_version_ext($filename); |
if (($filename ne '.') && ($filename ne '..') && ($filename !~ /\.meta$/ ) && ($filename !~ /(.*)\.(\d+)\.([^\.]*)$/)) { |
if (($filename ne '.') && ($filename ne '..') && ($filename !~ /\.meta$/ ) && ($filename !~ /(.*)\.(\d+)\.([^\.]*)$/)) { |
my %version_flag; |
my $version_flag; |
my $show_versions; |
my $show_versions; |
if ($env{'form.showversions'} eq $filename) { |
my $fullpath = &prepend_group($current_path.$filename); |
|
if ($env{'form.showversions'} =~ /$filename/) { |
$show_versions = 'true'; |
$show_versions = 'true'; |
} |
} |
if (exists($versioned{$filename})) { |
if (exists($versioned{$fullpath})) { |
my %anchor_fields = ( |
my %anchor_fields = ( |
'selectfile' => $filename, |
'selectfile' => $fullpath, |
'continue' => 'false', |
'continue' => 'false', |
'currentpath' => $current_path, |
'currentpath' => $current_path, |
); |
); |
if ($show_versions) { |
if ($show_versions) { |
$version_flag{$filename} = &make_anchor('portfolio',\%anchor_fields, |
# Must preserve other possible showversion files |
|
my $version_remainder = $env{'form.showversions'}; |
|
$version_remainder =~ s/$filename//g; |
|
$anchor_fields{'showversions'} = $version_remainder; |
|
$version_flag = &make_anchor('portfolio',\%anchor_fields, |
'<img class="LC_icon" alt="'.&mt('opened folder').'" src="'.$iconpath.'folder_pointer_opened.gif" />'); |
'<img class="LC_icon" alt="'.&mt('opened folder').'" src="'.$iconpath.'folder_pointer_opened.gif" />'); |
} else { |
} else { |
$anchor_fields{'showversions'} = $filename; |
# allow multiple files to show versioned |
$version_flag{$filename} = &make_anchor('portfolio',\%anchor_fields, |
$anchor_fields{'showversions'} = $env{'form.showversions'}.','.$filename; |
|
$version_flag = &make_anchor('portfolio',\%anchor_fields, |
'<img class="LC_icon" alt="'.&mt('closed folder').'" src="'.$iconpath.'folder_pointer_closed.gif" />'); |
'<img class="LC_icon" alt="'.&mt('closed folder').'" src="'.$iconpath.'folder_pointer_closed.gif" />'); |
} |
} |
} else { |
} else { |
$version_flag{$filename} = ' '; |
$version_flag = ' '; |
} |
} |
if ($dirptr&$testdir) { |
if ($dirptr&$testdir) { |
my $colspan='colspan="2"'; |
my $colspan='colspan="2"'; |
Line 328 sub display_directory {
|
Line 333 sub display_directory {
|
'fieldname' => $env{"form.fieldname"}, |
'fieldname' => $env{"form.fieldname"}, |
'continue' => $env{"form.continue"} |
'continue' => $env{"form.continue"} |
); |
); |
$r->print('<td>'.$version_flag{$filename}.'</td><td>'.&make_anchor($url,\%anchor_fields,$filename.'/').'</td>'); |
$r->print('<td>'.$version_flag.'</td><td>'.&make_anchor($url,\%anchor_fields,$filename.'/').'</td>'); |
$r->print('</tr>'); |
$r->print('</tr>'); |
} else { |
} else { |
my $css_class = 'LC_browser_file'; |
my $css_class = 'LC_browser_file'; |
my $line; |
my $line; |
my $fullpath = $current_path.$filename; |
|
$fullpath = &prepend_group($fullpath); |
|
if ($select_mode eq 'true') { |
if ($select_mode eq 'true') { |
$line='<td><input type="checkbox" name="checkfile" value="'.$filename.'"'; |
$line='<td><input type="checkbox" name="checkfile" value="'.$filename.'"'; |
if ($$checked_files{$filename} eq 'selected') { |
if ($$checked_files{$filename} eq 'selected') { |
Line 344 sub display_directory {
|
Line 347 sub display_directory {
|
} else { |
} else { |
if (exists $locked_files{$fullpath}) { |
if (exists $locked_files{$fullpath}) { |
my %anchor_fields = ( |
my %anchor_fields = ( |
'lockinfo' => $current_path.$filename |
'lockinfo' => $fullpath |
); |
); |
$line.='<td colspan="2">'.&make_anchor($url,\%anchor_fields,'Locked').'</td>'; |
$line.='<td colspan="2">'.&make_anchor($url,\%anchor_fields,'Locked').'</td>'; |
$css_class= 'LC_browser_file_locked'; |
$css_class= 'LC_browser_file_locked'; |
Line 365 sub display_directory {
|
Line 368 sub display_directory {
|
currentpath => $current_path |
currentpath => $current_path |
); |
); |
$line .= &make_anchor($url,\%anchor_fields,'Rename'); |
$line .= &make_anchor($url,\%anchor_fields,'Rename'); |
$line .= '</td><td>'.&make_anchor($href_edit_location.$filename.'.meta',undef,$cat); |
$line .= '</td><td>'.&make_anchor($href_edit_location.$filename.'.meta',\%anchor_fields,$cat); |
# '<a href="'.$href_edit_location.$filename.'.meta">'.$cat.'</a>'; |
# '<a href="'.$href_edit_location.$filename.'.meta">'.$cat.'</a>'; |
} |
} |
$line .= '</td>'; |
$line .= '</td>'; |
Line 404 sub display_directory {
|
Line 407 sub display_directory {
|
$curr_access = join('+ ',@allaccesses); |
$curr_access = join('+ ',@allaccesses); |
} |
} |
} |
} |
&display_directory_line($r,$select_mode,$fullpath, $filename, $mtime, $size, $css_class, $line, |
&display_directory_line($r,$select_mode, $filename, $mtime, $size, $css_class, $line, |
\%access_controls, $curr_access,$now, \%version_flag, $href_location, |
\%access_controls, $curr_access,$now, $version_flag, $href_location, |
$url, $current_path, $access_admin_text); |
$url, $current_path, $access_admin_text); |
if ($show_versions) { |
if ($show_versions) { |
foreach my $dir_line (@version_lines) { |
foreach my $dir_line (@{ $versioned{$fullpath} }) { |
my ($v_filename,$dom,$testdir,$size,$mtime,$obs) = @$dir_line; |
my ($v_filename,$dom,$testdir,$size,$mtime,$obs) = |
my ($v_fname,$version,$v_extension) = &Apache::grades::file_name_version_ext($v_filename); |
@$dir_line; |
$line = '<td colspan="2"> </td>'; |
$line = '<td colspan="2"> </td>'; |
if (($v_fname eq $fname)&&($v_extension eq $extension)) { |
&display_directory_line($r,$select_mode, $v_filename, $mtime, $size, |
&display_directory_line($r,$select_mode,$fullpath, $v_filename, $mtime, $size, |
$css_class, $line, \%access_controls, $curr_access, $now, |
$css_class, $line, \%access_controls, $curr_access, $now, |
undef, $href_location, $url, $current_path, $access_admin_text, 1); |
\%version_flag, $href_location, $url, $current_path, $access_admin_text, 1); |
|
} |
|
} |
} |
} |
} |
} |
} |
Line 505 sub done {
|
Line 506 sub done {
|
$message='Done'; |
$message='Done'; |
} |
} |
my %anchor_fields = ( |
my %anchor_fields = ( |
|
'showversions' => $env{'form.showversions'}, |
'currentpath' => $env{'form.currentpath'}, |
'currentpath' => $env{'form.currentpath'}, |
'fieldname' => $env{'form.fieldname'}, |
'fieldname' => $env{'form.fieldname'}, |
'mode' => $env{'form.mode'} |
'mode' => $env{'form.mode'} |
Line 645 sub display_access {
|
Line 647 sub display_access {
|
my %access_controls = &Apache::lonnet::get_access_controls($current_permissions,$group,$file_name); |
my %access_controls = &Apache::lonnet::get_access_controls($current_permissions,$group,$file_name); |
my $aclcount = keys(%access_controls); |
my $aclcount = keys(%access_controls); |
my $header = '<h3>'.&mt('Allowing others to retrieve file: [_1]',$port_path.$env{'form.currentpath'}.$env{'form.access'}).'</h3>'; |
my $header = '<h3>'.&mt('Allowing others to retrieve file: [_1]',$port_path.$env{'form.currentpath'}.$env{'form.access'}).'</h3>'; |
my $info .= &mt('Access to this file by others can be set to be one or '); |
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 .= &mt('more of the following types: public, passphrase-protected or conditional.'); |
|
$info .= '<br /><ul><li>'.&mt('Public files are available to anyone without the need for login.'); |
$info .= '<br /><ul><li>'.&mt('Public files are available to anyone without the need for login.'); |
$info .= '</li><li>'.&mt('Passphrase-protected files do not require log-in, but will require '); |
$info .= '</li><li>'.&mt('Passphrase-protected files do not require log-in, but will require the viewer to enter the passphrase you set.'); |
$info .= &mt('the viewer to enter the passphrase you set.'); |
$info .= '</li><li>'.&mt('Conditional files are accessible to logged-in users with accounts in the LON-CAPA network, who satisfy the conditions you set.').'<br />'; |
$info .= '</li><li>'.&mt('Conditional files are accessible to logged-in users with accounts '); |
$info .= &mt('The conditions can include affiliation with a particular course or group, or a user account in a specific domain.').'<br />'; |
$info .= &mt('in the LON-CAPA network, who satisfy the conditions you set.').'<br />'; |
|
$info .= &mt('The conditions can include affiliation with a particular course or group, '); |
|
$info .= &mt('or a user account in a specific domain.').'<br />'; |
|
$info .= &mt('Alternatively access can be granted to people with specific LON-CAPA usernames and domains.').'</li></ul>'; |
$info .= &mt('Alternatively access can be granted to people with specific LON-CAPA usernames and domains.').'</li></ul>'; |
if ($group eq '') { |
if ($group eq '') { |
$info .= (&mt("Direct others to the 'Display file listing' link (shown when there are viewable files) on your personal information page:<br /><a href='/adm/$udom/$uname/aboutme'>http://$ENV{'SERVER_NAME'}/adm/$udom/$uname/aboutme</a>")); |
$info .= (&mt("A listing of files viewable without log-in is available at: <a href='/adm/$udom/$uname/aboutme/portfolio'>http://$ENV{'SERVER_NAME'}/adm/$udom/$uname/aboutme/portfolio</a>.<br />For logged in users a 'Display file listing' link will also appear (when there are viewable files) on your personal information page:<br /><a href='/adm/$udom/$uname/aboutme'>http://$ENV{'SERVER_NAME'}/adm/$udom/$uname/aboutme</a><br />")); |
} |
} |
|
|
if ($can_setacl) { |
if ($can_setacl) { |
Line 1616 sub lock_info {
|
Line 1614 sub lock_info {
|
$file_name = &prepend_group($file_name); |
$file_name = &prepend_group($file_name); |
if (defined($file_name) && defined($$current_permissions{$file_name})) { |
if (defined($file_name) && defined($$current_permissions{$file_name})) { |
foreach my $array_item (@{$$current_permissions{$file_name}}) { |
foreach my $array_item (@{$$current_permissions{$file_name}}) { |
if (ref($array_item) eq 'ARRAY') { |
next if (ref($array_item) ne 'ARRAY'); |
my $filetext; |
|
if (defined($group)) { |
my $filetext; |
$filetext = '<strong>'.$env{'form.lockinfo'}. |
if (defined($group)) { |
'</strong> (group: '.$group.')'; |
$filetext = '<strong>'.$env{'form.lockinfo'}. |
} else { |
'</strong> (group: '.$group.')'; |
$filetext = '<strong>'.$file_name.'</strong>'; |
} else { |
} |
$filetext = '<strong>'.$file_name.'</strong>'; |
$r->print(&mt('[_1] was submitted in response to problem: ', |
} |
$filetext). |
|
'<strong>'.&Apache::lonnet::gettitle($$array_item[0]). |
my $title ='<strong>'.&Apache::lonnet::gettitle($$array_item[0]). |
'</strong><br />'); |
'</strong><br />'; |
my %course_description = &Apache::lonnet::coursedescription($$array_item[1]); |
if ($$array_item[-1] eq 'graded') { |
$r->print(&mt('In the course: <strong>[_1]</strong><br />', |
$r->print(&mt('[_1] was submitted in response to problem: [_2]', |
$course_description{'description'})); |
$filetext,$title)); |
# $r->print('the third is '.$$array_item[2].'<br>'); |
} elsif ($$array_item[-1] eq 'handback') { |
# $r->print("item is $$array_item[0]<br> and $$array_item[0]"); |
$r->print(&mt('[_1] was handed back in response to problem: [_2]', |
} |
$filetext,$title)); |
|
} else { |
|
# submission style lock |
|
$r->print(&mt('[_1] was submitted in response to problem: [_2]', |
|
$filetext,$title)); |
|
} |
|
my %course_description = |
|
&Apache::lonnet::coursedescription($$array_item[1]); |
|
if ( $course_description{'description'} ne '') { |
|
$r->print(&mt('In the course: <strong>[_1]</strong><br />', |
|
$course_description{'description'})); |
|
} |
} |
} |
} |
} |
$r->print(&done('Back',$url)); |
$r->print(&done('Back',$url)); |
Line 1679 sub createdir {
|
Line 1688 sub createdir {
|
} |
} |
|
|
sub get_portfolio_root { |
sub get_portfolio_root { |
my ($uname,$udom) = &get_name_dom(); |
my ($udom,$uname,$group) = @_; |
my $path; |
if (!(defined($udom)) || !(defined($uname))) { |
if (defined($env{'form.group'})) { |
($uname,$udom) = &get_name_dom(); |
$path = '/userfiles/groups/'.$env{'form.group'}.'/portfolio'; |
} |
} else { |
my $path = '/userfiles/portfolio'; |
$path = '/userfiles/portfolio'; |
if (!defined($group)) { |
|
if (defined($env{'form.group'})) { |
|
$group = $env{'form.group'}; |
|
} |
} |
} |
|
if (defined($group)) { |
|
$path = '/userfiles/groups/'.$group.'/portfolio'; |
|
} |
return (&Apache::loncommon::propath($udom,$uname).$path); |
return (&Apache::loncommon::propath($udom,$uname).$path); |
} |
} |
|
|