--- loncom/interface/portfolio.pm 2006/07/19 10:26:43 1.121.2.6 +++ loncom/interface/portfolio.pm 2006/06/27 15:38:54 1.123 @@ -1,8 +1,3 @@ -# The LearningOnline Network -# portfolio browser -# -# $Id: portfolio.pm,v 1.121.2.6 2006/07/19 10:26:43 albertel Exp $ -# # Copyright Michigan State University Board of Trustees # # This file is part of the LearningOnline Network with CAPA (LON-CAPA). @@ -36,7 +31,6 @@ use Apache::lonfeedback; use Apache::lonlocal; use Apache::lonnet; use Apache::longroup; -use Apache::lonhtmlcommon; use HTML::Entities; use LONCAPA; @@ -225,7 +219,7 @@ sub display_directory { } my $fullpath = $current_path.$filename; $fullpath = &prepend_group($fullpath,$group); - if ($select_mode eq 'true') { + if ($select_mode eq 'true'){ $line='print(''); + $r->print($line); } - $r->print(''); - $r->print($line); - my $curr_access; - if ($select_mode ne 'true') { - my $pub_access = 0; - my $guest_access = 0; - my $cond_access = 0; - foreach my $key (sort(keys(%{$access_controls{$fullpath}}))) { - my ($num,$scope,$end,$start) = &unpack_acc_key($key); - if (($now > $start) && (!$end || $end > $now)) { - if ($scope eq 'public') { - $pub_access = 1; - } elsif ($scope eq 'guest') { - $guest_access = 1; - } else { - $cond_access = 1; - } - } - } - if (!$pub_access && !$guest_access && !$cond_access) { - $curr_access = &mt('Private'); - } else { - my @allaccesses; - if ($pub_access) { - push(@allaccesses,&mt('Public')); - } - if ($guest_access) { - push(@allaccesses,&mt('Passphrase-protected')); - } - if ($cond_access) { - push(@allaccesses,&mt('Conditional')); - } - $curr_access = join('+ ',@allaccesses); - } - } - $r->print(''); - $r->print(''. - $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.''); - } - $r->print(''.$/); + my $curr_access; + my $pub_access = 0; + my $guest_access = 0; + my $cond_access = 0; + foreach my $key (sort(keys(%{$access_controls{$fullpath}}))) { + my ($num,$scope,$end,$start) = &unpack_acc_key($key); + if (($now > $start) && (!$end || $end > $now)) { + if ($scope eq 'public') { + $pub_access = 1; + } elsif ($scope eq 'guest') { + $guest_access = 1; + } else { + $cond_access = 1; + } + } + } + if (!$pub_access && !$guest_access && !$cond_access) { + $curr_access = &mt('Private'); + } else { + my @allaccesses; + if ($pub_access) { + push(@allaccesses,&mt('Public')); + } + if ($guest_access) { + push(@allaccesses,&mt('Passphrase-protected')); + } + if ($cond_access) { + push(@allaccesses,&mt('Conditional')); + } + $curr_access = join('+ ',@allaccesses); + } + $r->print(''); + $r->print(''. + $filename.''); + $r->print(''.$size.''); + $r->print(''.&Apache::lonlocal::locallocaltime($mtime).''); + $r->print(''. + &mt($curr_access).'   '); + $r->print(''.$access_admin_text.''); + $r->print(''); } } } if ($select_mode eq 'true') { $r->print(' - - - + + +
@@ -527,7 +517,7 @@ sub rename_confirmed { } sub display_access { - my ($r,$url,$group,$can_setacl,$port_path) = @_; + my ($r,$url,$group,$can_setacl) = @_; my ($uname,$udom) = &get_name_dom($group); my $file_name = $env{'form.currentpath'}.$env{'form.access'}; $file_name = &prepend_group($file_name,$group); @@ -535,23 +525,8 @@ sub display_access { $uname); 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 portfolio 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 $header = '

'.&mt('Allowing others to retrieve portfolio file: [_1]',$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.').'
'; if ($can_setacl) { &open_form($r,$url); $r->print($header.$info); @@ -706,7 +681,7 @@ sub build_access_summary { sub update_access { - my ($r,$url,$group,$port_path) = @_; + my ($r,$url,$group) = @_; my $totalprocessed = 0; my %processing; my %title = ( @@ -732,7 +707,7 @@ sub update_access { } my $file_name = $env{'form.currentpath'}.$env{'form.selectfile'}; $r->print('

'.&mt('Allowing others to retrieve portfolio file: [_1]', - $port_path.$file_name).'

'."\n"); + $file_name).''."\n"); $file_name = &prepend_group($file_name,$group); my ($uname,$udom) = &get_name_dom($group); my ($errors,$outcome,$deloutcome,$new_values,$translation); @@ -828,10 +803,7 @@ sub update_access { } $r->print('
'. - &mt('Display all access settings for this file').''. - '     '. - ''.&mt('Return to directory listing').''); + &mt('Display all access settings for this file').''); } return; } @@ -1001,25 +973,24 @@ sub access_setting_table { $passwd.'" />'); $r->print(&Apache::loncommon::end_data_table_row()); $r->print(&Apache::loncommon::end_data_table()); - - #$r->print(' '); - #&access_element($r,'domains',\%acl_count,\@domains,$access_controls,$now,$then); - #$r->print(' '); - #&access_element($r,'users',\%acl_count,\@users,$access_controls,$now,$then); - #$r->print(''); - #if (@courses > 0 || @groups > 0) { - # $r->print(''); - #} else { - # $r->print(''); - #} - #&access_element($r,'course',\%acl_count,\@courses,$access_controls,$now,$then); - #$r->print(''); - #if (@courses > 0 || @groups > 0) { - # $r->print(' '); - #} else { - # $r->print(' '); - #} - #&access_element($r,'group',\%acl_count,\@groups,$access_controls,$now,$then); + $r->print(' '); + &access_element($r,'domains',\%acl_count,\@domains,$access_controls,$now,$then); + $r->print(' '); + &access_element($r,'users',\%acl_count,\@users,$access_controls,$now,$then); + $r->print(''); + if (@courses > 0 || @groups > 0) { + $r->print(''); + } else { + $r->print(''); + } + &access_element($r,'course',\%acl_count,\@courses,$access_controls,$now,$then); + $r->print(''); + if (@courses > 0 || @groups > 0) { + $r->print(' '); + } else { + $r->print(' '); + } + &access_element($r,'group',\%acl_count,\@groups,$access_controls,$now,$then); $r->print(''); } @@ -1428,7 +1399,11 @@ ENDSMP fileList = fileList + document.forms.checkselect.currentpath.value + document.forms.checkselect[i].value + "," ; } } - opener.document.forms.lonhomework.$env{'form.fieldname'}.value=fileList; + opener.document.forms.lonhomework. +ENDSMP + $javascript .= $env{'form.fieldname'}; + $javascript .= (< @@ -1449,14 +1424,6 @@ sub upload { my $fname=$env{'form.uploaddoc.filename'}; my $filesize = (length($env{'form.uploaddoc'})) / 1000; #express in k (1024?) my $disk_quota = 20000; # expressed in k - if (defined($group)) { - my $grp_quota = &get_group_quota($group); # quota expressed in k - if ($grp_quota ne '') { - $disk_quota = $grp_quota; - } else { - $disk_quota = 0; - } - } $fname=&Apache::lonnet::clean_filename($fname); my $portfolio_root=&get_portfolio_root($group); @@ -1508,7 +1475,6 @@ sub upload { } } } - sub lock_info { my ($r,$url,$group) = @_; my ($uname,$udom) = &get_name_dom($group); @@ -1591,23 +1557,6 @@ sub get_portfolio_root { return (&Apache::loncommon::propath($udom,$uname).$path); } -sub get_group_quota { - my ($group) = @_; - my $group_quota; - my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; - my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; - my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum,$group); - if (%curr_groups) { - my %group_info = &Apache::longroup::get_group_settings( - $curr_groups{$group}); - $group_quota = $group_info{'quota'}; #expressed in Mb - if ($group_quota) { - $group_quota = 1000 * $group_quota; #expressed in k - } - } - return $group_quota; -} - sub get_dir_list { my ($portfolio_root,$group) = @_; my ($uname,$udom) = &get_name_dom($group); @@ -1688,24 +1637,6 @@ sub missing_priv { return; } -sub coursegrp_portfolio_header { - my ($cdom,$cnum,$group,$grp_desc)=@_; - my $gpterm = &Apache::loncommon::group_term(); - my $ucgpterm = $gpterm; - $ucgpterm =~ s/^(\w)/uc($1)/e; - &Apache::lonhtmlcommon::add_breadcrumb - ({href=>"/adm/$cdom/$cnum/$group/smppg", - text=>"$ucgpterm: $grp_desc", - title=>"Go to group's home page"}, - {href=>"//?group=$group", - text=>"Group Portfolio", - title=>"Display group portfolio"},); - my $output = &Apache::lonhtmlcommon::breadcrumbs( - &mt('[_1] portfolio files - [_2]',$gpterm,$grp_desc)); - return $output; -} - - sub handler { # this handles file management my $r = shift; @@ -1713,7 +1644,7 @@ sub handler { ['selectfile','currentpath','meta','lockinfo','currentfile','action', 'fieldname','mode','rename','continue','group','access','setnum', 'cnum','cdom','type','setroles']); - my ($uname,$udom,$portfolio_root,$url,$group,$caller,$title,$grp_desc); + my ($uname,$udom,$portfolio_root,$url,$group,$caller,$title); if ($r->uri =~ m|^(/adm/)([^/]+)|) { $url = $1.$2; $caller = $2; @@ -1737,9 +1668,6 @@ sub handler { my %curr_groups = &Apache::longroup::coursegroups($udom,$uname, $group); if (%curr_groups) { - my %grp_content = &Apache::longroup::get_group_settings( - $curr_groups{$group}); - $grp_desc = &unescape($grp_content{'description'}); if (($view_permission) || (&Apache::lonnet::allowed('rgf', $env{'request.course.id'}.'/'.$group))) { $portfolio_root = &get_portfolio_root($group); @@ -1757,24 +1685,17 @@ sub handler { $earlyout = 1; } if ($earlyout) { return OK; } - if (&Apache::lonnet::allowed('mdg',$env{'request.course.id'})) { + if (&Apache::lonnet::allowed('agf',$env{'request.course.id'}.'/'.$group)) { + $can_setacl = 1; + } + if (&Apache::lonnet::allowed('ugf',$env{'request.course.id'}.'/'.$group)) { + $can_upload = 1; + } + if (&Apache::lonnet::allowed('mgf',$env{'request.course.id'}.'/'.$group)) { $can_modify = 1; + } + if (&Apache::lonnet::allowed('dgf',$env{'request.course.id'}.'/'.$group)) { $can_delete = 1; - $can_upload = 1; - $can_setacl = 1; - } else { - if (&Apache::lonnet::allowed('agf',$env{'request.course.id'}.'/'.$group)) { - $can_setacl = 1; - } - if (&Apache::lonnet::allowed('ugf',$env{'request.course.id'}.'/'.$group)) { - $can_upload = 1; - } - if (&Apache::lonnet::allowed('mgf',$env{'request.course.id'}.'/'.$group)) { - $can_modify = 1; - } - if (&Apache::lonnet::allowed('dgf',$env{'request.course.id'}.'/'.$group)) { - $can_delete = 1; - } } } else { ($uname,$udom) = &get_name_dom(); @@ -1786,7 +1707,6 @@ sub handler { $can_setacl = 1; } - my $port_path = &get_port_path($group); &Apache::loncommon::no_cache($r); &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; @@ -1864,10 +1784,10 @@ sub handler { } elsif ($env{'form.access'}) { $env{'form.selectfile'} = $env{'form.access'}; $env{'form.action'} = 'chgaccess'; - &display_access($r,$url,$group,$can_setacl,$port_path); + &display_access($r,$url,$group,$can_setacl); } elsif ($env{'form.action'} eq 'chgaccess') { if ($can_setacl) { - &update_access($r,$url,$group,$port_path); + &update_access($r,$url,$group); } else { &missing_priv($r,$url,'setacl',$group); } @@ -1890,10 +1810,6 @@ sub handler { if ($env{'form.currentpath'}) { $current_path = $env{'form.currentpath'}; } - if ($caller eq 'coursegrp_portfolio') { - &Apache::lonhtmlcommon::clear_breadcrumbs(); - $r->print(&coursegrp_portfolio_header($udom,$uname,$group,$grp_desc)); - } my @dir_list=&get_dir_list($portfolio_root,$group); if ($dir_list[0] eq 'no_such_dir'){ # two main reasons for this: