--- loncom/interface/courseprefs.pm 2015/09/13 19:55:34 1.73
+++ loncom/interface/courseprefs.pm 2016/03/04 21:43:15 1.76
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set configuration settings for a course
#
-# $Id: courseprefs.pm,v 1.73 2015/09/13 19:55:34 raeburn Exp $
+# $Id: courseprefs.pm,v 1.76 2016/03/04 21:43:15 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -2557,7 +2557,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 +2568,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 +2617,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 +2640,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 +2729,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 +2744,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 +2795,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');
@@ -3083,9 +3109,17 @@ sub releases_by_map {
sub get_param_description {
my ($stdtype,$value,$regexp) = @_;
my ($name,$parammatches,$paramstrings,@possibles);
- $paramstrings = &Apache::lonparmset::standard_string_options($stdtype);
+ if ($stdtype =~ /^string/) {
+ $paramstrings = &Apache::lonparmset::standard_string_options($stdtype);
+ } elsif ($stdtype eq 'date_interval') {
+ $paramstrings = &Apache::lonparmset::standard_interval_options($stdtype);
+ }
if ($regexp) {
- $parammatches = &Apache::lonparmset::standard_string_matches($stdtype);
+ if ($stdtype =~ /^string/) {
+ $parammatches = &Apache::lonparmset::standard_string_matches($stdtype);
+ } elsif ($stdtype eq 'date_interval') {
+ $parammatches = &Apache::lonparmset::standard_interval_matches($stdtype);
+ }
if (ref($parammatches) eq 'ARRAY') {
@possibles = @{$parammatches};
} else {
@@ -3098,6 +3132,13 @@ sub get_param_description {
if (ref($paramstrings) eq 'ARRAY') {
@possibles = @{$paramstrings};
} else {
+ if (($stdtype eq 'date_start') || ($stdtype eq 'date_end')) {
+ if ($name == 0) {
+ $name = &mt('Never');
+ } elsif (($name ne '') && ($name !~ /\D/)) {
+ $name = &Apache::lonlocal::locallocaltime($name);
+ }
+ }
return $name;
}
}
@@ -3951,11 +3992,10 @@ sub print_appearance {
input => 'selectbox',
options => {
MathJax => 'MathJax',
- jsMath => 'jsMath',
mimetex => &mt('Convert to Images'),
tth => &mt('TeX to HTML'),
},
- order => ['MathJax','jsMath','mimetex','tth'],
+ order => ['MathJax','mimetex','tth'],
nullval => $mathdef,
},
'tthoptions' => {