--- loncom/interface/portfolio.pm 2006/06/28 19:52:43 1.124
+++ loncom/interface/portfolio.pm 2006/07/04 23:52:10 1.129
@@ -1,3 +1,8 @@
+# The LearningOnline Network
+# portfolio browser
+#
+# $Id: portfolio.pm,v 1.129 2006/07/04 23:52:10 banghart Exp $
+#
# Copyright Michigan State University Board of Trustees
#
# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
@@ -191,7 +196,7 @@ sub display_directory {
$filename =~ s/\s+$//;
my ($fname,$version,$extension) = &Apache::grades::file_name_version_ext($filename);
if ($version) {
- $versioned{$fname} .= $version.",";
+ $versioned{$fname.'.'.$extension} .= $version.",";
}
push(@dir_lines, [$filename,$dom,$testdir,$size,$mtime,$obs]);
}
@@ -199,6 +204,12 @@ sub display_directory {
my ($filename,$dom,$testdir,$size,$mtime,$obs) = @$line;
my ($fname,$version,$extension) = &Apache::grades::file_name_version_ext($filename);
if (($filename ne '.') && ($filename ne '..') && ($filename !~ /\.meta$/ ) && ($filename !~ /(.*)\.(\d+)\.([^\.]*)$/)) {
+ my $version_flag;
+ if (exists($versioned{$filename})) {
+ $version_flag = ' (*) ';
+ } else {
+ $version_flag = '';
+ }
if ($dirptr&$testdir) {
my $colspan='colspan="2"';
if ($select_mode eq 'true'){
@@ -206,18 +217,12 @@ sub display_directory {
}
$r->print('
!['.&mt('closed folder').']('.$iconpath.'folder_closed.gif) | ');
$r->print('Go to ... | ');
- $r->print(''.&make_anchor($url,$filename.'/',$current_path.$filename.'/',$env{'form.mode'},$env{"form.fieldname"},$env{'form.continue'},$group).' | ');
+ $r->print(''.&make_anchor($url,$filename.'/',$current_path.$filename.'/',$env{'form.mode'},$env{"form.fieldname"},$env{'form.continue'},$group).$version_flag.' | ');
$r->print('
');
} else {
my $css_class = 'LC_browser_file';
my $line;
- my $version_flag;
- if (exists($versioned{$fname})) {
- $version_flag = "*";
- } else {
- $version_flag = "";
- }
- my $fullpath = $current_path.$filename;
+ my $fullpath = $current_path.$filename;
$fullpath = &prepend_group($fullpath,$group);
if ($select_mode eq 'true') {
$line='';
$line .= 'Rename';
- $line .= ' | '.$cat.'';
+ $line .= ' | '.$cat.''.$version_flag;
}
$line .= ' | ';
}
@@ -284,7 +289,7 @@ sub display_directory {
}
$r->print('![]('.&Apache::loncommon::icon($filename).') | ');
$r->print(''.
- $filename.' | ');
+ $filename.''.$version_flag.'');
$r->print(''.$size.' | ');
$r->print(''.&Apache::lonlocal::locallocaltime($mtime).' | ');
if ($select_mode ne 'true') {
@@ -292,17 +297,17 @@ sub display_directory {
&mt($curr_access).' ');
$r->print(''.$access_admin_text.'');
+ '">'.$access_admin_text.'');
}
- $r->print(''.$/);
+ $r->print(''.$/);
}
}
}
if ($select_mode eq 'true') {
$r->print('
-
-
-
+
+
+
@@ -1403,11 +1408,7 @@ ENDSMP
fileList = fileList + document.forms.checkselect.currentpath.value + document.forms.checkselect[i].value + "," ;
}
}
- opener.document.forms.lonhomework.
-ENDSMP
- $javascript .= $env{'form.fieldname'};
- $javascript .= (<
@@ -1428,6 +1429,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);
@@ -1479,6 +1488,7 @@ sub upload {
}
}
}
+
sub lock_info {
my ($r,$url,$group) = @_;
my ($uname,$udom) = &get_name_dom($group);
@@ -1561,6 +1571,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);
@@ -1689,17 +1716,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();