--- loncom/interface/courseprefs.pm 2015/06/09 21:22:55 1.72 +++ 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.72 2015/06/09 21:22:55 damieng 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'); @@ -3044,8 +3070,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(''.$rev.''); if (ref($bymap->{$url}{$rev}) eq 'HASH') { $r->print(''); @@ -3067,6 +3098,7 @@ sub releases_by_map { $r->print('
'); } $r->print(''); + $newrow = 1; } } else { $r->print(' '); @@ -3077,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 { @@ -3092,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; } } @@ -3945,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' => {