--- loncom/interface/portfolio.pm 2006/06/26 22:23:27 1.121
+++ loncom/interface/portfolio.pm 2006/07/03 04:25:08 1.121.2.5
@@ -1,3 +1,8 @@
+# The LearningOnline Network
+# portfolio browser
+#
+# $Id: portfolio.pm,v 1.121.2.5 2006/07/03 04:25:08 albertel Exp $
+#
# Copyright Michigan State University Board of Trustees
#
# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
@@ -219,7 +224,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);
}
- 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(' ');
+ $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(' '.$/);
}
}
}
if ($select_mode eq 'true') {
$r->print('
-
-
-
+
+
+
@@ -526,7 +535,20 @@ 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 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.').''.&mt('Public files are available to anyone without the need for login.').' '.&mt('Passphrase-protected files do not require log-in, but will require the viewer to enter the passphrase you set.').' '.&mt('Conditional files are accessible to logged-in users with accounts in the LON-CAPA network, who satisfy the conditions you set.').' '.&mt('The conditions can include affiliation with a particular course or group, or a user account in a specific domain.').' '.&mt('Alternatively access can be granted to people with specific LON-CAPA usernames and domains.').' ';
+ 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.').
+ ''.
+ &mt('Public files are available to anyone without the need for login.').
+ ' '.
+ &mt('Passphrase-protected files do not require log-in, but will require the viewer to enter the passphrase you set.').
+ ' '.
+ #''.
+ #&mt('Conditional files are accessible to logged-in users with accounts in the LON-CAPA network, who satisfy the conditions you set.').
+ #' '.
+ #&mt('The conditions can include affiliation with a particular course or group, or a user account in a specific domain.').
+ #' '.
+ #&mt('Alternatively access can be granted to people with specific LON-CAPA usernames and domains.').
+ ' ';
if ($can_setacl) {
&open_form($r,$url);
$r->print($header.$info);
@@ -973,24 +995,25 @@ 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(' ');
}
@@ -1399,11 +1422,7 @@ ENDSMP
fileList = fileList + document.forms.checkselect.currentpath.value + document.forms.checkselect[i].value + "," ;
}
}
- opener.document.forms.lonhomework.
-ENDSMP
- $javascript .= $env{'form.fieldname'};
- $javascript .= (<
@@ -1424,6 +1443,14 @@ 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);
@@ -1475,6 +1502,7 @@ sub upload {
}
}
}
+
sub lock_info {
my ($r,$url,$group) = @_;
my ($uname,$udom) = &get_name_dom($group);
@@ -1557,6 +1585,23 @@ 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);
@@ -1685,17 +1730,24 @@ sub handler {
$earlyout = 1;
}
if ($earlyout) { return OK; }
- 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)) {
+ if (&Apache::lonnet::allowed('mdg',$env{'request.course.id'})) {
$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();