--- loncom/interface/courseprefs.pm 2015/06/09 21:22:55 1.72
+++ loncom/interface/courseprefs.pm 2016/03/23 02:19:09 1.77
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set configuration settings for a course
#
-# $Id: courseprefs.pm,v 1.72 2015/06/09 21:22:55 damieng Exp $
+# $Id: courseprefs.pm,v 1.77 2016/03/23 02:19:09 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -419,6 +419,7 @@ sub handler {
{ text => 'Discussion and Chat',
help => 'Course_Prefs_Discussions',
ordered => ['pch.roles.denied','pch.users.denied',
+ 'pac.roles.denied','pac.users.denied',
'plc.roles.denied','plc.users.denied',
'allow_limited_html_in_feedback',
'allow_discussion_post_editing',
@@ -428,9 +429,11 @@ sub handler {
'pch.users.denied' => 'No Resource Discussion',
'plc.roles.denied' => 'No Chat room use',
'plc.users.denied' => 'No Chat room use',
+ 'pac.roles.denied' => 'No Anonymous Resource Discussion',
+ 'pac.users.denied' => 'No Anonymous Resource Discussion',
allow_limited_html_in_feedback => 'Allow limited HTML in discussion',
allow_discussion_post_editing => 'Users can edit/delete own discussion posts',
- discussion_post_fonts => 'Discussion post fonts based on likes/unlikes',
+ discussion_post_fonts => 'Discussion post fonts based on likes/unlikes',
},
},
'classlists' =>
@@ -1021,7 +1024,8 @@ sub process_changes {
}
}
}
- } elsif (($entry eq 'plc.roles.denied') || ($entry eq 'pch.roles.denied')) {
+ } elsif (($entry eq 'plc.roles.denied') || ($entry eq 'pch.roles.denied') ||
+ ($entry eq 'pac.roles.denied')) {
my @denied = &Apache::loncommon::get_env_multiple('form.'.$entry);
@denied = sort(@denied);
my $deniedstr = '';
@@ -1029,7 +1033,8 @@ sub process_changes {
$deniedstr = join(',',@denied);
}
$newvalues{$entry} = $deniedstr;
- } elsif (($entry eq 'plc.users.denied') || ($entry eq 'pch.users.denied')) {
+ } elsif (($entry eq 'plc.users.denied') || ($entry eq 'pch.users.denied') ||
+ ($entry eq 'pac.users.denied')) {
my $total = $env{'form.'.$entry.'_total'};
my $userstr = '';
my @denied;
@@ -2557,7 +2562,7 @@ sub display_loncaparev_constraints {
if (grep(/^\Q$value\E$/,@{$Apache::lonrelrequtils::checkparms{$item}})) {
my $stdtype = &Apache::lonparmset::standard_parameter_types($item);
$found{$item}{'valname'} = &get_param_description($stdtype,$value);
- $found{$item}{'rev'} = $Apache::lonnet::needsrelease{'parameter:'.$item.':'.$value.':'};
+ $found{$item}{'rev'} = $Apache::lonnet::needsrelease{'parameter:'.$item.':'.$value.'::'};
}
}
}
@@ -2568,18 +2573,41 @@ sub display_loncaparev_constraints {
foreach my $valuematch (@{$Apache::lonrelrequtils::checkparmsmatch{$item}}) {
if ($value =~ /$valuematch/) {
my $stdtype = &Apache::lonparmset::standard_parameter_types($item);
- $found{$item}{'valname'} = &get_param_description($stdtype,$value,1);
+ $found{$item}{'valname'} = &get_param_description($stdtype,$value,1);
$found{$item}{'rev'} =
- $Apache::lonnet::needsrelease{'parameter:'.$item.'::'.$valuematch};
+ $Apache::lonnet::needsrelease{'parameter:'.$item.'::'.$valuematch.':'};
last;
}
}
}
}
+ foreach my $item (keys(%Apache::lonrelrequtils::checkparmnamesmatch)) {
+ my $regexp;
+ if ($item eq 'maplevelrecurse') {
+ $regexp = '\.(?:sequence|page)___\(rec\)\.';
+ }
+ if ($regexp ne '') {
+ if ($key =~ /$regexp.*\.(\w+)$/) {
+ my $name = $1;
+ my $value = $resourcedata->{$key};
+ if ($name eq 'type') {
+ last unless (($value eq 'problem') || ($value eq 'practice') || ($value eq 'exam') ||
+ ($value eq 'survey') || ($value eq 'surveycred') || ($value eq 'anonsurvey') ||
+ ($value eq 'anonsurveycred') || ($value eq 'randomizetry') || ($value eq 'library'));
+ }
+ my $stdtype = &Apache::lonparmset::standard_parameter_types($name);
+ $found{$name}{'valname'} = &get_param_description($stdtype,$value);
+ $found{$name}{'extra'} = &mt('Recursive into sub-folders');
+ $found{$name}{'rev'} =
+ $Apache::lonnet::needsrelease{'parameter::::'.$item};
+ }
+ }
+ }
foreach my $item (keys(%found)) {
my $stdname = &Apache::lonparmset::standard_parameter_names($item);
my $rev = $found{$item}{'rev'};
my $valname = $found{$item}{'valname'};
+ my $extra = $found{$item}{'extra'};
my ($middle,$scope,$which,$level,$map,$resource);
my $start = $cid.'.';
if ($key =~ /^\Q$start\E(\[useropt\:($match_username\:$match_domain)\]\.)/) {
@@ -2594,6 +2622,9 @@ sub display_loncaparev_constraints {
$scope = 'all';
}
my $what="$stdname=$valname";
+ if ($extra) {
+ $what .= "
$extra
";
+ }
if ($key =~ /^\Q$start$middle\E\w+\.\Q$item\E$/) {
$level = 'general';
if ($scope eq 'all') {
@@ -2614,7 +2645,7 @@ sub display_loncaparev_constraints {
}
}
$rowspan{$rev} ++;
- } elsif ($key =~ /^\Q$start$middle\E(.+)___\(all\).\w+\.\Q$item\E$/) {
+ } elsif ($key =~ /^\Q$start$middle\E(.+)___\((all|rec)\).\w+\.\Q$item\E$/) {
$level = 'folder';
$map = $1;
if ($scope eq 'all') {
@@ -2703,7 +2734,7 @@ sub display_loncaparev_constraints {
if (keys(%comm_blocks) > 0) {
foreach my $block (keys(%comm_blocks)) {
if ($block =~ /^firstaccess____(.+)$/) {
- my $rev = $Apache::lonnet::needsrelease{'course:commblock:timer'};
+ my $rev = $Apache::lonnet::needsrelease{'course:commblock:timer:'};
if (ref($comm_blocks{$block}) eq 'HASH') {
push(@{$fromblocks{'timer'}{$rev}},&unescape($comm_blocks{$block}{'event'}).
' '.&mt('set by [_1]',
@@ -2718,14 +2749,14 @@ sub display_loncaparev_constraints {
if (ref($comm_blocks{$block}{'blocks'}) eq 'HASH') {
if (ref($comm_blocks{$block}{'blocks'}{'docs'}) eq 'HASH') {
if (keys(%{$comm_blocks{$block}{'blocks'}{'docs'}}) > 0) {
- my $rev = $Apache::lonnet::needsrelease{'course:commblock:docs'};
+ my $rev = $Apache::lonnet::needsrelease{'course:commblock:docs:'};
push(@{$fromblocks{'docs'}{$rev}},&unescape($comm_blocks{$block}{'event'}).
' '.
&mt('set by [_1]',
&Apache::loncommon::plainname(split(/:/,$comm_blocks{$block}{'setter'}))));
}
} elsif ($comm_blocks{$block}{'blocks'}{'printout'} eq 'on') {
- my $rev = $Apache::lonnet::needsrelease{'course:commblock:printout'};
+ my $rev = $Apache::lonnet::needsrelease{'course:commblock:printout:'};
push(@{$fromblocks{'printout'}{$rev}},&unescape($comm_blocks{$block}{'event'}).
' '.
&mt('set by [_1]',
@@ -2769,9 +2800,9 @@ sub display_loncaparev_constraints {
if (defined($navmap)) {
my %anonsubms=&Apache::lonnet::dump('nohist_anonsurveys',$cdom,$cnum);
- my $rev_anonsurv=$Apache::lonnet::needsrelease{'parameter:type:anonsurvey'};
+ my $rev_anonsurv=$Apache::lonnet::needsrelease{'parameter:type:anonsurvey::'};
my %randtrysubms=&Apache::lonnet::dump('nohist_randomizetry',$cdom,$cnum);
- my $rev_randtry=$Apache::lonnet::needsrelease{'parameter:type:randomizetry'};
+ my $rev_randtry=$Apache::lonnet::needsrelease{'parameter:type:randomizetry::'};
my $stdtype=&Apache::lonparmset::standard_parameter_types('type');
my $stdname=&Apache::lonparmset::standard_parameter_names('type');
my $valanon=&get_param_description($stdtype,'anonsurvey');
@@ -3044,8 +3075,13 @@ sub show_contents_view {
sub releases_by_map {
my ($r,$bymap,$url,$scopeorder,$lt) = @_;
return unless ((ref($bymap) eq 'HASH') && (ref($scopeorder) eq 'ARRAY'));
+ my $newrow = 0;
if (ref($bymap->{$url}) eq 'HASH') {
foreach my $rev (sort(keys(%{$bymap->{$url}}))) {
+ if ($newrow) {
+ $r->print(&Apache::loncommon::end_data_table_row().
+ &Apache::loncommon::continue_data_table_row());
+ }
$r->print('