version 1.66, 2014/06/07 19:13:41
|
version 1.70, 2015/04/28 13:20:41
|
Line 463 sub handler {
|
Line 463 sub handler {
|
help => 'Course_Prefs_Display', |
help => 'Course_Prefs_Display', |
ordered => ['default_xml_style','pageseparators', |
ordered => ['default_xml_style','pageseparators', |
'disable_receipt_display','texengine', |
'disable_receipt_display','texengine', |
'tthoptions'], |
'tthoptions','uselcmath','usejsme'], |
itemtext => { |
itemtext => { |
default_xml_style => 'Default XML style file', |
default_xml_style => 'Default XML style file', |
pageseparators => 'Visibly Separate Items on Pages', |
pageseparators => 'Visibly Separate Items on Pages', |
disable_receipt_display => 'Disable display of problem receipts', |
disable_receipt_display => 'Disable display of problem receipts', |
texengine => 'Force use of a specific math rendering engine', |
texengine => 'Force use of a specific math rendering engine', |
tthoptions => 'Default set of options to pass to tth/m when converting TeX', |
tthoptions => 'Default set of options to pass to tth/m when converting TeX', |
|
uselcmath => 'Student formula entry uses inline preview, not DragMath pop-up', |
|
usejsme => 'Molecule editor uses JSME (HTML5) in place of JME (Java)', |
}, |
}, |
}, |
}, |
'grading' => |
'grading' => |
Line 1405 sub store_changes {
|
Line 1407 sub store_changes {
|
$displayval = &Apache::lonlocal::locallocaltime($displayval); |
$displayval = &Apache::lonlocal::locallocaltime($displayval); |
} elsif ($key eq 'categories') { |
} elsif ($key eq 'categories') { |
$displayval = $env{'form.categories_display'}; |
$displayval = $env{'form.categories_display'}; |
} elsif ($key eq 'canuse_pdfforms') { |
} elsif (($key eq 'canuse_pdfforms') || ($key eq 'usejsme') || ($key eq 'uselcmath')) { |
if ($changes->{$item}{$key} eq '1') { |
if ($changes->{$item}{$key} eq '1') { |
$displayval = &mt('Yes'); |
$displayval = &mt('Yes'); |
} elsif ($changes->{$item}{$key} eq '0') { |
} elsif ($changes->{$item}{$key} eq '0') { |
Line 2319 sub display_loncaparev_constraints {
|
Line 2321 sub display_loncaparev_constraints {
|
my (%fromparam,%rowspan,%bymap,%byresource,@scopeorder,%toshow,%allmaps, |
my (%fromparam,%rowspan,%bymap,%byresource,@scopeorder,%toshow,%allmaps, |
%byresponsetype,%bysubmission,%fromblocks); |
%byresponsetype,%bysubmission,%fromblocks); |
@scopeorder = ('all','section/group','user'); |
@scopeorder = ('all','section/group','user'); |
|
my $now = time; |
my $resourcedata = &Apache::lonparmset::readdata($cnum,$cdom); |
my $resourcedata = &Apache::lonparmset::readdata($cnum,$cdom); |
if (ref($resourcedata) eq 'HASH') { |
if (ref($resourcedata) eq 'HASH') { |
foreach my $key (keys(%{$resourcedata})) { |
foreach my $key (keys(%{$resourcedata})) { |
|
my %found; |
foreach my $item (keys(%Apache::lonrelrequtils::checkparms)) { |
foreach my $item (keys(%Apache::lonrelrequtils::checkparms)) { |
if ($key =~ /(\Q$item\E)$/) { |
if ($key =~ /(\Q$item\E)$/) { |
if (ref($Apache::lonrelrequtils::checkparms{$item}) eq 'ARRAY') { |
if (ref($Apache::lonrelrequtils::checkparms{$item}) eq 'ARRAY') { |
my $value = $resourcedata->{$key}; |
my $value = $resourcedata->{$key}; |
if ($item eq 'examcode') { |
if ($item eq 'examcode') { |
if (&Apache::lonnet::validCODE($value)) { |
if (&Apache::lonnet::validCODE($value)) { |
$value = 'valid'; |
$value = 'valid'; |
} else { |
} else { |
$value = ''; |
$value = ''; |
} |
} |
} |
} elsif ($item eq 'printstartdate') { |
my ($middle,$scope,$which,$level,$map,$resource); |
if ($value =~ /^\d+$/) { |
if (grep(/^\Q$value\E$/,@{$Apache::lonrelrequtils::checkparms{$item}})) { |
if ($value > $now) { |
my $stdtype = &Apache::lonparmset::standard_parameter_types($item); |
$value = 'future'; |
my $stdname = &Apache::lonparmset::standard_parameter_names($item); |
} |
my $valname = &get_param_description($stdtype,$value); |
} |
my $rev = $Apache::lonnet::needsrelease{'parameter:'.$item.':'.$value}; |
} elsif ($item eq 'printenddate') { |
my $start = $cid.'.'; |
if ($value =~ /^\d+$/) { |
if ($key =~ /^\Q$start\E(\[useropt\:($match_username\:$match_domain)\]\.)/) { |
if ($value < $now) { |
$middle = $1; |
$value = 'past'; |
$which = $2; |
} |
$scope = 'user'; |
} |
} elsif ($key =~ /^\Q$start\E(\[(\w+)\]\.)/) { |
} |
$middle = $1; |
if (grep(/^\Q$value\E$/,@{$Apache::lonrelrequtils::checkparms{$item}})) { |
$which = $2; |
my $stdtype = &Apache::lonparmset::standard_parameter_types($item); |
$scope = 'section/group'; |
$found{$item}{'valname'} = &get_param_description($stdtype,$value); |
} else { |
$found{$item}{'rev'} = $Apache::lonnet::needsrelease{'parameter:'.$item.':'.$value.':'}; |
$scope = 'all'; |
} |
} |
} |
my $what="$stdname=$valname"; |
} |
if ($key =~ /^\Q$start$middle\E\w+\.\Q$item\E$/) { |
} |
$level = 'general'; |
foreach my $item (keys(%Apache::lonrelrequtils::checkparmsmatch)) { |
if ($scope eq 'all') { |
if (ref($Apache::lonrelrequtils::checkparmsmatch{$item}) eq 'ARRAY') { |
if (ref($fromparam{$rev}{$scope}) eq 'ARRAY') { |
my $value = $resourcedata->{$key}; |
unless(grep(/^\Q$what\E$/,@{$fromparam{$rev}{$scope}})) { |
foreach my $valuematch (@{$Apache::lonrelrequtils::checkparmsmatch{$item}}) { |
push(@{$fromparam{$rev}{$scope}},$what); |
if ($value =~ /$valuematch/) { |
} |
my $stdtype = &Apache::lonparmset::standard_parameter_types($item); |
} else { |
$found{$item}{'valname'} = &get_param_description($stdtype,$value,1); |
push(@{$fromparam{$rev}{$scope}},$what); |
$found{$item}{'rev'} = |
} |
$Apache::lonnet::needsrelease{'parameter:'.$item.'::'.$valuematch}; |
} else { |
last; |
if (ref($fromparam{$rev}{$scope}{$which}) eq 'ARRAY') { |
} |
unless (grep(/^\Q$what\E$/,@{$fromparam{$rev}{$scope}{$which}})) { |
} |
push(@{$fromparam{$rev}{$scope}{$which}},$what); |
} |
} |
} |
} else { |
foreach my $item (keys(%found)) { |
push(@{$fromparam{$rev}{$scope}{$which}},$what); |
my $stdname = &Apache::lonparmset::standard_parameter_names($item); |
} |
my $rev = $found{$item}{'rev'}; |
} |
my $valname = $found{$item}{'valname'}; |
$rowspan{$rev} ++; |
my ($middle,$scope,$which,$level,$map,$resource); |
} elsif ($key =~ /^\Q$start$middle\E(.+)___\(all\).\w+\.\Q$item\E$/) { |
my $start = $cid.'.'; |
$level = 'folder'; |
if ($key =~ /^\Q$start\E(\[useropt\:($match_username\:$match_domain)\]\.)/) { |
$map = $1; |
$middle = $1; |
if ($scope eq 'all') { |
$which = $2; |
if (ref($bymap{$map}{$rev}{$scope}) eq 'ARRAY') { |
$scope = 'user'; |
unless(grep(/^\Q$what\E$/,@{$bymap{$map}{$rev}{$scope}})) { |
} elsif ($key =~ /^\Q$start\E(\[(\w+)\]\.)/) { |
push(@{$bymap{$map}{$rev}{$scope}},$what); |
$middle = $1; |
} |
$which = $2; |
} else { |
$scope = 'section/group'; |
push(@{$bymap{$map}{$rev}{$scope}},$what); |
} else { |
} |
$scope = 'all'; |
} else { |
} |
if (ref($bymap{$map}{$rev}{$scope}{$which}) eq 'ARRAY') { |
my $what="$stdname=$valname"; |
unless(grep(/^\Q$what\E$/,@{$bymap{$map}{$rev}{$scope}{$which}})) { |
if ($key =~ /^\Q$start$middle\E\w+\.\Q$item\E$/) { |
push(@{$bymap{$map}{$rev}{$scope}{$which}},$what); |
$level = 'general'; |
} |
if ($scope eq 'all') { |
} else { |
if (ref($fromparam{$rev}{$scope}) eq 'ARRAY') { |
push(@{$bymap{$map}{$rev}{$scope}{$which}},$what); |
unless(grep(/^\Q$what\E$/,@{$fromparam{$rev}{$scope}})) { |
} |
push(@{$fromparam{$rev}{$scope}},$what); |
} |
} |
} elsif ($key =~ /^\Q$start$middle\E(.+)\.\w+\.\Q$item\E$/) { |
} else { |
$level = 'resource'; |
push(@{$fromparam{$rev}{$scope}},$what); |
$resource = $1; |
} |
if ($scope eq 'all') { |
} else { |
if (ref($byresource{$resource}{$rev}{$scope}) eq 'ARRAY') { |
if (ref($fromparam{$rev}{$scope}{$which}) eq 'ARRAY') { |
unless(grep(/^\Q$what\E$/,@{$byresource{$resource}{$rev}{$scope}})) { |
unless (grep(/^\Q$what\E$/,@{$fromparam{$rev}{$scope}{$which}})) { |
push(@{$byresource{$resource}{$rev}{$scope}},$what); |
push(@{$fromparam{$rev}{$scope}{$which}},$what); |
} |
} |
} else { |
} else { |
push(@{$byresource{$resource}{$rev}{$scope}},$what); |
push(@{$fromparam{$rev}{$scope}{$which}},$what); |
} |
} |
} else { |
} |
if (ref($byresource{$resource}{$rev}{$scope}{$which}) eq 'ARRAY') { |
$rowspan{$rev} ++; |
unless (grep(/^\Q$what\E$/,@{$byresource{$resource}{$rev}{$scope}{$which}})) { |
} elsif ($key =~ /^\Q$start$middle\E(.+)___\(all\).\w+\.\Q$item\E$/) { |
push(@{$byresource{$resource}{$rev}{$scope}{$which}},$what); |
$level = 'folder'; |
} |
$map = $1; |
} else { |
if ($scope eq 'all') { |
push(@{$byresource{$resource}{$rev}{$scope}{$which}},$what); |
if (ref($bymap{$map}{$rev}{$scope}) eq 'ARRAY') { |
} |
unless(grep(/^\Q$what\E$/,@{$bymap{$map}{$rev}{$scope}})) { |
} |
push(@{$bymap{$map}{$rev}{$scope}},$what); |
} |
} |
|
} else { |
|
push(@{$bymap{$map}{$rev}{$scope}},$what); |
|
} |
|
} else { |
|
if (ref($bymap{$map}{$rev}{$scope}{$which}) eq 'ARRAY') { |
|
unless(grep(/^\Q$what\E$/,@{$bymap{$map}{$rev}{$scope}{$which}})) { |
|
push(@{$bymap{$map}{$rev}{$scope}{$which}},$what); |
|
} |
|
} else { |
|
push(@{$bymap{$map}{$rev}{$scope}{$which}},$what); |
|
} |
|
} |
|
} elsif ($key =~ /^\Q$start$middle\E(.+)\.\w+\.\Q$item\E$/) { |
|
$level = 'resource'; |
|
$resource = $1; |
|
if ($scope eq 'all') { |
|
if (ref($byresource{$resource}{$rev}{$scope}) eq 'ARRAY') { |
|
unless(grep(/^\Q$what\E$/,@{$byresource{$resource}{$rev}{$scope}})) { |
|
push(@{$byresource{$resource}{$rev}{$scope}},$what); |
|
} |
|
} else { |
|
push(@{$byresource{$resource}{$rev}{$scope}},$what); |
|
} |
|
} else { |
|
if (ref($byresource{$resource}{$rev}{$scope}{$which}) eq 'ARRAY') { |
|
unless (grep(/^\Q$what\E$/,@{$byresource{$resource}{$rev}{$scope}{$which}})) { |
|
push(@{$byresource{$resource}{$rev}{$scope}{$which}},$what); |
|
} |
|
} else { |
|
push(@{$byresource{$resource}{$rev}{$scope}{$which}},$what); |
} |
} |
} |
} |
} |
} |
Line 2611 sub display_loncaparev_constraints {
|
Line 2645 sub display_loncaparev_constraints {
|
} |
} |
foreach my $map (keys(%allmaps)) { |
foreach my $map (keys(%allmaps)) { |
my $mapres = $navmap->getResourceByUrl($map); |
my $mapres = $navmap->getResourceByUrl($map); |
my $mapsymb = $mapres->symb(); |
|
$toshow{$mapsymb} = 1; |
|
if (ref($mapres)) { |
if (ref($mapres)) { |
|
my $mapsymb = $mapres->symb(); |
|
$toshow{$mapsymb} = 1; |
my $pcslist = $mapres->map_hierarchy(); |
my $pcslist = $mapres->map_hierarchy(); |
if ($pcslist ne '') { |
if ($pcslist ne '') { |
foreach my $pc (split(/,/,$pcslist)) { |
foreach my $pc (split(/,/,$pcslist)) { |
Line 2836 sub releases_by_map {
|
Line 2870 sub releases_by_map {
|
} |
} |
|
|
sub get_param_description { |
sub get_param_description { |
my ($stdtype,$value) = @_; |
my ($stdtype,$value,$regexp) = @_; |
my $name = $value; |
my ($name,$parammatches,$paramstrings,@possibles); |
my $paramstrings = &Apache::lonparmset::standard_string_options($stdtype); |
$paramstrings = &Apache::lonparmset::standard_string_options($stdtype); |
unless (ref($paramstrings) eq 'ARRAY') { |
if ($regexp) { |
return $name; |
$parammatches = &Apache::lonparmset::standard_string_matches($stdtype); |
|
if (ref($parammatches) eq 'ARRAY') { |
|
@possibles = @{$parammatches}; |
|
} else { |
|
undef($regexp); |
|
$name = $value; |
|
} |
|
} |
|
unless ($regexp) { |
|
$name = $value; |
|
if (ref($paramstrings) eq 'ARRAY') { |
|
@possibles = @{$paramstrings}; |
|
} else { |
|
return $name; |
|
} |
} |
} |
foreach my $possibilities (@{$paramstrings}) { |
foreach my $possibilities (@possibles) { |
next unless (ref($possibilities) eq 'ARRAY'); |
next unless (ref($possibilities) eq 'ARRAY'); |
my ($thing, $description) = @{ $possibilities }; |
my $gotregexmatch = ''; |
if ($thing eq $value) { |
if ($regexp) { |
$name = $description; |
last if ($gotregexmatch); |
last; |
my ($item,$pattern) = @{ $possibilities }; |
|
if ($value =~ /$pattern/) { |
|
if (ref($paramstrings) eq 'ARRAY') { |
|
foreach my $possibles (@{$paramstrings}) { |
|
next unless (ref($possibles) eq 'ARRAY'); |
|
my ($thing,$description) = @{$possibles}; |
|
if ($thing eq $item) { |
|
$name = $description; |
|
$gotregexmatch = 1; |
|
last; |
|
} |
|
} |
|
last if ($gotregexmatch); |
|
} |
|
} |
|
} else { |
|
my ($thing,$description) = @{ $possibilities }; |
|
if ($thing eq $value) { |
|
$name = $description; |
|
last; |
|
} |
} |
} |
} |
} |
return $name; |
return $name; |
Line 3684 sub print_appearance {
|
Line 3752 sub print_appearance {
|
input => 'textbox', |
input => 'textbox', |
size => 40, |
size => 40, |
}, |
}, |
|
'uselcmath' => { |
|
text => '<b>'.&mt($itemtext->{'uselcmath'}).'</b>', |
|
input => 'radio', |
|
}, |
|
'usejsme' => { |
|
text => '<b>'.&mt($itemtext->{'usejsme'}).'</b>', |
|
input => 'radio', |
|
}, |
); |
); |
return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'appearance'); |
return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'appearance'); |
} |
} |
Line 3946 sub item_table_row_end {
|
Line 4022 sub item_table_row_end {
|
} |
} |
|
|
sub yesno_radio { |
sub yesno_radio { |
my ($item,$settings) = @_; |
my ($item,$settings,$unsetdefault,$valueyes,$valueno) = @_; |
my $itemon = ' '; |
my $itemon = ' '; |
my $itemoff = ' checked="checked" '; |
my $itemoff = ' checked="checked" '; |
|
if (($valueyes eq '') && ($valueno eq '')) { |
|
$valueyes = 'yes'; |
|
$valueno = ''; |
|
} |
if (ref($settings) eq 'HASH') { |
if (ref($settings) eq 'HASH') { |
if ($settings->{$item} eq 'yes') { |
if ($settings->{$item} eq $valueyes) { |
$itemon = $itemoff; |
$itemon = $itemoff; |
$itemoff = ' '; |
$itemoff = ' '; |
} |
} |
|
unless (exists($settings->{$item})) { |
|
if ($unsetdefault eq $valueyes) { |
|
$itemon = $itemoff; |
|
$itemoff = ' '; |
|
} |
|
} |
} |
} |
return '<span class="LC_nobreak"><label>'. |
return '<span class="LC_nobreak"><label>'. |
'<input type="radio" name="'.$item.'"'. |
'<input type="radio" name="'.$item.'"'. |
$itemon.' value="yes" />'.&mt('Yes').'</label> '. |
$itemon.' value="'.$valueyes.'" />'.&mt('Yes').'</label> '. |
'<label><input type="radio" name="'.$item.'"'. |
'<label><input type="radio" name="'.$item.'"'. |
$itemoff.' value="" />'.&mt('No').'</label></span>'; |
$itemoff.' value="'.$valueno.'" />'.&mt('No').'</label></span>'; |
} |
} |
|
|
sub select_from_options { |
sub select_from_options { |
Line 4044 sub make_item_rows {
|
Line 4130 sub make_item_rows {
|
&Apache::lonhtmlcommon::date_setter('display',$item, |
&Apache::lonhtmlcommon::date_setter('display',$item, |
$settings->{$item}); |
$settings->{$item}); |
} elsif ($items->{$item}{input} eq 'radio') { |
} elsif ($items->{$item}{input} eq 'radio') { |
$datatable .= &yesno_radio($item,$settings); |
my ($unsetdefault,$valueyes,$valueno); |
|
if (($item eq 'usejsme') || ($item eq 'uselcmath')) { |
|
my %domdefs = &Apache::lonnet::get_domain_defaults($cdom); |
|
unless ($domdefs{$item} eq '0') { |
|
$unsetdefault = 1; |
|
} |
|
$valueyes = "1"; |
|
$valueno = "0"; |
|
} |
|
$datatable .= &yesno_radio($item,$settings,$unsetdefault,$valueyes,$valueno); |
} elsif ($items->{$item}{input} eq 'selectbox') { |
} elsif ($items->{$item}{input} eq 'selectbox') { |
my $curr = $settings->{$item}; |
my $curr = $settings->{$item}; |
$datatable .= |
$datatable .= |
Line 4120 sub nothidepriv_row {
|
Line 4215 sub nothidepriv_row {
|
'<span class="LC_nobreak"><label>'. |
'<span class="LC_nobreak"><label>'. |
'<input type="radio" name="'.$item.'_'.$user.'"'. |
'<input type="radio" name="'.$item.'_'.$user.'"'. |
$hideon.' value="" />'.&mt('Hidden').'</label> '. |
$hideon.' value="" />'.&mt('Hidden').'</label> '. |
'<label><input type="radio" name="'.$item.'_'.$user.'"'. $hideoff.' value="yes" />'.&mt('Shown').'</label></span></td>'. |
'<label><input type="radio" name="'.$item.'_'.$user.'"'. |
|
$hideoff.' value="yes" />'.&mt('Shown').'</label></span></td>'. |
'</tr>'; |
'</tr>'; |
} |
} |
$datatable .= '</table>'; |
$datatable .= '</table>'; |