--- loncom/interface/portfolio.pm 2024/09/07 03:48:34 1.254.2.6.2.4
+++ loncom/interface/portfolio.pm 2019/08/07 16:08:04 1.260
@@ -1,7 +1,7 @@
# The LearningOnline Network
# portfolio browser
#
-# $Id: portfolio.pm,v 1.254.2.6.2.4 2024/09/07 03:48:34 raeburn Exp $
+# $Id: portfolio.pm,v 1.260 2019/08/07 16:08:04 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -122,7 +122,7 @@ END
.''
.$groupitem
.''
- .''
+ .''
.''
.''
.''
@@ -237,7 +237,7 @@ sub display_directory_line {
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);
+ my ($fname,$version,$extension) = &Apache::lonnet::file_name_version_ext($fullpath);
$fname =~ s|^/||;
$anchor_fields{'showversions'} = $fname.'.'.$extension;
}
@@ -267,16 +267,13 @@ sub display_directory_line {
sub display_directory {
my ($r,$url,$current_path,$is_empty,$dir_list,$group,$can_upload,
- $can_modify,$can_delete,$can_setacl,$can_viewacl,$caller)=@_;
+ $can_modify,$can_delete,$can_setacl)=@_;
my $iconpath= $r->dir_config('lonIconsURL') . "/";
my $select_mode;
my $checked_files;
my $port_path = &get_port_path();
my ($uname,$udom) = &get_name_dom($group);
- my $access_admin_text;
- if ($can_viewacl) {
- $access_admin_text = &mt('View Status');
- }
+ my $access_admin_text = &mt('View Status');
if ($can_setacl) {
$access_admin_text = &mt('View/Change Status');
}
@@ -314,18 +311,6 @@ sub display_directory {
&mt('Using the portfolio file list'))
.'
'
);
- my ($acl_helpfile,$acl_helplink);
- if ($can_setacl) {
- $acl_helpfile = 'Portfolio ShareFile';
- } elsif ($caller eq 'coursegrp_portfolio') {
- $acl_helpfile = 'Portfolio ShareFile Group';
- }
- unless ($can_setacl || $can_viewacl) {
- $acl_helpfile = 'Portfolio ShareFile Off';
- }
- if ($acl_helpfile) {
- $acl_helplink = &Apache::loncommon::help_open_topic($acl_helpfile);
- }
$r->print(&Apache::loncommon::start_data_table()
.&Apache::loncommon::start_data_table_header_row()
.''.&mt('Actions'). &Apache::loncommon::help_open_topic('Portfolio FileAction').' | '
@@ -335,7 +320,7 @@ sub display_directory {
.''.&mt('Size').' | '
.''.&mt('Last Modified').' | '
.' | '
- .''.&mt('Current Access Status').$acl_helplink.' | '
+ .''.&mt('Current Access Status').&Apache::loncommon::help_open_topic('Portfolio ShareFile').' | '
.&Apache::loncommon::end_data_table_header_row());
}
@@ -385,7 +370,7 @@ sub display_directory {
} (@{$dir_list})) {
my ($filename,$dom,undef,$testdir,undef,undef,undef,undef,$size,undef,$mtime,undef,undef,undef,$obs,undef)=split(/\&/,$dir_line,16);
$filename =~ s/\s+$//;
- my ($fname,$version,$extension) = &Apache::grades::file_name_version_ext($filename);
+ my ($fname,$version,$extension) = &Apache::lonnet::file_name_version_ext($filename);
if ($version) {
my $fullpath = &prepend_group($current_path.$fname.'.'.$extension);
push(@{ $versioned{$fullpath} },
@@ -398,7 +383,7 @@ sub display_directory {
my $zerobyte;
foreach my $dir_line (@dir_lines) {
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::lonnet::file_name_version_ext($filename);
if (($filename ne '.') && ($filename ne '..') && ($filename !~ /\.meta$/ ) && ($filename !~ /(.*)\.(\d+)\.([^\.]*)$/)) {
my $version_flag;
my $show_versions;
@@ -502,7 +487,6 @@ sub display_directory {
my $cond_access = 0;
foreach my $key (sort(keys(%{$access_controls{$fullpath}}))) {
my ($num,$scope,$end,$start) = &unpack_acc_key($key);
- next if ($scope eq 'ip');
if (($now > $start) && (!$end || $end > $now)) {
if ($scope eq 'public') {
$pub_access = 1;
@@ -530,7 +514,7 @@ sub display_directory {
}
}
&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);
if ($show_versions) {
foreach my $dir_line (@{ $versioned{$fullpath} }) {
@@ -903,7 +887,7 @@ sub access_for_renamed {
}
sub display_access {
- my ($r,$url,$group,$can_setacl,$can_viewacl,$port_path,$action) = @_;
+ my ($r,$url,$group,$can_setacl,$port_path,$action) = @_;
my ($uname,$udom) = &get_name_dom($group);
my $file_name = $env{'form.currentpath'}.$env{'form.access'};
$file_name = &prepend_group($file_name);
@@ -913,8 +897,6 @@ sub display_access {
my $aclcount = keys(%access_controls);
my ($header,$info);
if ($action eq 'chgaccess') {
- my $uhome = &Apache::lonnet::homeserver($uname,$udom);
- my $prefix = &Apache::lonnet::url_prefix($r,$udom,$uhome,'web');
$header =
''
.&mt('Allowing others to retrieve file: [_1]'
@@ -927,13 +909,13 @@ sub display_access {
$info .= '
'.&mt('Passphrase-protected files do not require log-in, but will require the viewer to enter the passphrase you set.');
$info .= ''.&explain_conditionals();
$info .= ''.
- &mt('A listing of files viewable without log-in is available at: ')."$prefix/adm/$udom/$uname/aboutme/portfolio.
";
+ &mt('A listing of files viewable without log-in is available at: ')."".&Apache::lonnet::absolute_url($ENV{'SERVER_NAME'})."/adm/$udom/$uname/aboutme/portfolio.
";
if ($group eq '') {
$info .= &mt("For logged in users a 'Display file listing' link will also appear (when there are viewable files) on your personal information page:");
} else {
$info .= &mt("For logged in users a 'Display file listing' link will also appear (when there are viewable files) on the course information page:");
}
- $info .= "
$prefix/adm/$udom/$uname/aboutme
";
+ $info .= "
".&Apache::lonnet::absolute_url($ENV{'SERVER_NAME'})."/adm/$udom/$uname/aboutme
";
if ($group ne '') {
$info .= &mt("Users with course editing rights may add a 'Group Portfolio' item using the Course Editor (Collaboration tab), to provide access to viewable group portfolio files.").'
';
}
@@ -954,21 +936,13 @@ sub display_access {
'cancel' => &mt('Return to directory'),
};
&close_form($r,$url,$button_text);
- } elsif ($can_viewacl) {
+ } else {
$r->print($header);
if ($aclcount) {
$r->print($info);
}
&view_access_settings($r,$url,$access_controls{$file_name},$aclcount);
- } else {
- $r->print($header);
- $r->print(&mt('You do not have sufficient privileges to view access controls').'
');
}
- my %anchor_fields = (
- 'currentpath' => $env{'form.currentpath'}
- );
- $r->print('
'.&make_anchor($url, \%anchor_fields, &mt('Return to directory')));
- return;
}
sub explain_conditionals {
@@ -1018,9 +992,9 @@ sub build_access_summary {
domains => 'Conditional: domain-based',
users => 'Conditional: user-based',
course => 'Conditional: course/community-based',
- userip => 'Conditional: IP-based',
+ ip => 'Conditional: IP-based',
);
- my @allscopes = ('public','guest','domains','users','course','userip');
+ my @allscopes = ('public','guest','domains','users','course','ip');
foreach my $scope (@allscopes) {
if ((!(exists($todisplay{$scope}))) || (ref($todisplay{$scope}) ne 'HASH')) {
next;
@@ -1097,8 +1071,8 @@ sub build_access_summary {
} elsif ($scope eq 'users') {
my $curr_user_list = &sort_users($content->{'users'});
$r->print(&mt('Users: ').$curr_user_list);
- } elsif ($scope eq 'userip') {
- my $curr_ips_list = &sort_ips($content->{'userip'});
+ } elsif ($scope eq 'ip') {
+ my $curr_ips_list = &sort_ips($content->{'ip'});
$r->print(&mt('IP(s):').' '.$curr_ips_list);
} else {
$r->print(' ');
@@ -1208,7 +1182,7 @@ sub update_access {
my $totalnew = 0;
my $status = 'new';
my ($firstitem,$lastitem);
- my @types = ('course','domains','users','userip');
+ my @types = ('course','domains','users','ip');
foreach my $newitem (@types) {
$allnew += $env{'form.new'.$newitem};
}
@@ -1220,7 +1194,7 @@ sub update_access {
course => 'course/community',
domains => 'domain',
users => 'user',
- userip => 'IP',
+ ip => 'IP',
);
foreach my $newitem (@types) {
next if ($env{'form.new'.$newitem} <= 0);
@@ -1324,7 +1298,7 @@ sub build_access_record {
'udom' => $udom
});
}
- } elsif ($scope eq 'userip') {
+ } elsif ($scope eq 'ip') {
my $ipslist = $env{'form.ips_'.$num};
$ipslist =~ s/\s+//sg;
my %ipshash = map { ($_,1) } (split(/,/,$ipslist));
@@ -1395,7 +1369,7 @@ sub access_setting_table {
push(@domains,$key);
} elsif ($scope eq 'users') {
push(@users,$key);
- } elsif ($scope eq 'userip') {
+ } elsif ($scope eq 'ip') {
push(@ips,$key);
}
}
@@ -1457,7 +1431,7 @@ sub standard_settings {
my $numconditionals = 0;
my $conditionstext;
my %cond_status;
- foreach my $scope ('domains','users','course','userip') {
+ foreach my $scope ('domains','users','course','ip') {
$numconditionals += $acl_count->{$scope};
if ($acl_count->{$scope} > 0) {
if ($conditionstext ne 'Active') {
@@ -1504,7 +1478,7 @@ sub condition_setting {
$r->print(' |
');
&access_element($r,'course',$acl_count,$courses,$access_controls,$now,$then);
$r->print(' | | ');
- &access_element($r,'userip',$acl_count,$ips,$access_controls,$now,$then);
+ &access_element($r,'ip',$acl_count,$ips,$access_controls,$now,$then);
$r->print(' |
');
}
@@ -1525,7 +1499,7 @@ sub access_element {
domains => 'Domain',
users => 'User',
course => 'Course/Community',
- userip => 'IP',
+ ip => 'IP',
);
$r->print('