--- loncom/interface/domainprefs.pm 2016/10/24 04:01:16 1.160.6.73
+++ loncom/interface/domainprefs.pm 2015/06/09 21:22:55 1.265
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set domain-wide configuration settings
#
-# $Id: domainprefs.pm,v 1.160.6.73 2016/10/24 04:01:16 raeburn Exp $
+# $Id: domainprefs.pm,v 1.265 2015/06/09 21:22:55 damieng Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -216,13 +216,12 @@ sub handler {
'serverstatuses','requestcourses','helpsettings',
'coursedefaults','usersessions','loadbalancing',
'requestauthor','selfenrollment','inststatus'],$dom);
- 'selfenrollment','inststatus'],$dom);
my @prefs_order = ('rolecolors','login','defaults','quotas','autoenroll',
'autoupdate','autocreate','directorysrch','contacts',
'usercreation','selfcreation','usermodification','scantron',
'requestcourses','requestauthor','coursecategories',
- 'serverstatuses','helpsettings','coursedefaults',
- 'selfenrollment','usersessions');
+ 'serverstatuses','helpsettings',
+ 'coursedefaults','selfenrollment','usersessions');
my %existing;
if (ref($domconfig{'loadbalancing'}) eq 'HASH') {
%existing = %{$domconfig{'loadbalancing'}};
@@ -305,11 +304,9 @@ sub handler {
modify => \&modify_autocreate,
},
'directorysrch' =>
- { text => 'Directory searches',
+ { text => 'Institutional directory searches',
help => 'Domain_Configuration_InstDirectory_Search',
- header => [{col1 => 'Institutional Directory Setting',
- col2 => 'Value',},
- {col1 => 'LON-CAPA Directory Setting',
+ header => [{col1 => 'Setting',
col2 => 'Value',}],
print => \&print_directorysrch,
modify => \&modify_directorysrch,
@@ -415,12 +412,10 @@ sub handler {
modify => \&modify_serverstatuses,
},
'helpsettings' =>
- {text => 'Support settings',
+ {text => 'Help page settings',
help => 'Domain_Configuration_Help_Settings',
- header => [{col1 => 'Help Page Settings (logged-in users)',
- col2 => 'Value'},
- {col1 => 'Helpdesk Roles',
- col2 => 'Settings'},],
+ header => [{col1 => 'Help Settings (logged-in users)',
+ col2 => 'Value'}],
print => \&print_helpsettings,
modify => \&modify_helpsettings,
},
@@ -446,6 +441,14 @@ sub handler {
print => \&print_selfenrollment,
modify => \&modify_selfenrollment,
},
+ 'privacy' =>
+ {text => 'User Privacy',
+ help => 'Domain_Configuration_User_Privacy',
+ header => [{col1 => 'Setting',
+ col2 => 'Value',}],
+ print => \&print_privacy,
+ modify => \&modify_privacy,
+ },
'usersessions' =>
{text => 'User session hosting/offloading',
help => 'Domain_Configuration_User_Sessions',
@@ -654,22 +657,6 @@ sub print_config_box {
$output = &coursecategories_javascript($settings);
} elsif ($action eq 'defaults') {
$output = &defaults_javascript($settings);
- } elsif ($action eq 'helpsettings') {
- my (%privs,%levelscurrent);
- my %full=();
- my %levels=(
- course => {},
- domain => {},
- system => {},
- );
- my $context = 'domain';
- my $crstype = 'Course';
- my $formname = 'display';
- &Apache::lonuserutils::custom_role_privs(\%privs,\%full,\%levels,\%levelscurrent);
- my @templateroles = &Apache::lonuserutils::custom_template_roles($context,$crstype);
- $output =
- &Apache::lonuserutils::custom_roledefs_js($context,$crstype,$formname,\%full,
- \@templateroles);
}
$output .=
'
@@ -687,7 +674,6 @@ sub print_config_box {
my $colspan = '';
my $rightcolspan = '';
if (($action eq 'rolecolors') || ($action eq 'defaults') ||
- ($action eq 'directorysrch') ||
(($action eq 'login') && ($numheaders < 4))) {
$colspan = ' colspan="2"';
}
@@ -705,8 +691,7 @@ sub print_config_box {
$rowtotal ++;
if (($action eq 'autoupdate') || ($action eq 'usercreation') || ($action eq 'selfcreation') ||
($action eq 'usermodification') || ($action eq 'defaults') || ($action eq 'coursedefaults') ||
- ($action eq 'selfenrollment') || ($action eq 'usersessions') || ($action eq 'directorysrch') ||
- ($action eq 'helpsettings')) {
+ ($action eq 'selfenrollment') || ($action eq 'usersessions')) {
$output .= $item->{'print'}->('top',$dom,$settings,\$rowtotal);
} elsif ($action eq 'coursecategories') {
$output .= $item->{'print'}->('top',$dom,$item,$settings,\$rowtotal);
@@ -761,8 +746,7 @@ sub print_config_box {
}
$rowtotal ++;
} elsif (($action eq 'usermodification') || ($action eq 'coursedefaults') ||
- ($action eq 'defaults') || ($action eq 'directorysrch') ||
- ($action eq 'helpsettings')) {
+ ($action eq 'defaults')) {
$output .= $item->{'print'}->('bottom',$dom,$settings,\$rowtotal);
} elsif ($action eq 'login') {
if ($numheaders == 4) {
@@ -875,7 +859,7 @@ sub print_config_box {
';
- if ($action eq 'login') {
+ if (($action eq 'login') || ($action eq 'directorysrch')) {
$output .= '
'.&mt($item->{'header'}->[0]->{'col1'}).' ';
} elsif ($action eq 'serverstatuses') {
@@ -919,12 +903,13 @@ sub print_config_box {
$rowtotal ++;
if ($action eq 'quotas') {
$output .= &print_quotas($dom,$settings,\$rowtotal,$action);
- } elsif (($action eq 'autoenroll') || ($action eq 'autocreate') ||
- ($action eq 'contacts') || ($action eq 'serverstatuses') ||
- ($action eq 'loadbalancing')) {
+ } elsif (($action eq 'autoenroll') || ($action eq 'autocreate') || ($action eq 'directorysrch') ||
+ ($action eq 'contacts') || ($action eq 'serverstatuses') || ($action eq 'loadbalancing')) {
$output .= $item->{'print'}->($dom,$settings,\$rowtotal);
} elsif ($action eq 'scantron') {
$output .= &print_scantronformat($r,$dom,$confname,$settings,\$rowtotal);
+ } elsif ($action eq 'helpsettings') {
+ $output .= &print_helpsettings($dom,$confname,$settings,\$rowtotal);
}
}
$output .= '
@@ -2431,7 +2416,7 @@ ENDSCRIPT
sub print_autoenroll {
my ($dom,$settings,$rowtotal) = @_;
my $autorun = &Apache::lonnet::auto_run(undef,$dom),
- my ($defdom,$runon,$runoff,$coownerson,$coownersoff,$failsafe);
+ my ($defdom,$runon,$runoff,$coownerson,$coownersoff);
if (ref($settings) eq 'HASH') {
if (exists($settings->{'run'})) {
if ($settings->{'run'} eq '0') {
@@ -2465,9 +2450,6 @@ sub print_autoenroll {
if (exists($settings->{'sender_domain'})) {
$defdom = $settings->{'sender_domain'};
}
- if (exists($settings->{'autofailsafe'})) {
- $failsafe = $settings->{'autofailsafe'};
- }
} else {
if ($autorun) {
$runon = ' checked="checked" ';
@@ -2503,12 +2485,8 @@ sub print_autoenroll {
$coownerson.' value="1" />'.&mt('Yes').' '.
' '.&mt('No').' '.
- ' '.
- ''.&mt('Failsafe for no drops when institutional data missing').' '.
- ''.
- ' ';
- $$rowtotal += 4;
+ '';
+ $$rowtotal += 3;
return $datatable;
}
@@ -2637,149 +2615,115 @@ sub print_autocreate {
}
sub print_directorysrch {
- my ($position,$dom,$settings,$rowtotal) = @_;
- my $datatable;
- if ($position eq 'top') {
- my $instsrchon = ' ';
- my $instsrchoff = ' checked="checked" ';
- my ($exacton,$containson,$beginson);
- my $instlocalon = ' ';
- my $instlocaloff = ' checked="checked" ';
- if (ref($settings) eq 'HASH') {
- if ($settings->{'available'} eq '1') {
- $instsrchon = $instsrchoff;
- $instsrchoff = ' ';
- }
- if ($settings->{'localonly'} eq '1') {
- $instlocalon = $instlocaloff;
- $instlocaloff = ' ';
- }
- if (ref($settings->{'searchtypes'}) eq 'ARRAY') {
- foreach my $type (@{$settings->{'searchtypes'}}) {
- if ($type eq 'exact') {
- $exacton = ' checked="checked" ';
- } elsif ($type eq 'contains') {
- $containson = ' checked="checked" ';
- } elsif ($type eq 'begins') {
- $beginson = ' checked="checked" ';
- }
- }
- } else {
- if ($settings->{'searchtypes'} eq 'exact') {
- $exacton = ' checked="checked" ';
- } elsif ($settings->{'searchtypes'} eq 'contains') {
- $containson = ' checked="checked" ';
- } elsif ($settings->{'searchtypes'} eq 'specify') {
+ my ($dom,$settings,$rowtotal) = @_;
+ my $srchon = ' ';
+ my $srchoff = ' checked="checked" ';
+ my ($exacton,$containson,$beginson);
+ my $localon = ' ';
+ my $localoff = ' checked="checked" ';
+ if (ref($settings) eq 'HASH') {
+ if ($settings->{'available'} eq '1') {
+ $srchon = $srchoff;
+ $srchoff = ' ';
+ }
+ if ($settings->{'localonly'} eq '1') {
+ $localon = $localoff;
+ $localoff = ' ';
+ }
+ if (ref($settings->{'searchtypes'}) eq 'ARRAY') {
+ foreach my $type (@{$settings->{'searchtypes'}}) {
+ if ($type eq 'exact') {
$exacton = ' checked="checked" ';
+ } elsif ($type eq 'contains') {
$containson = ' checked="checked" ';
+ } elsif ($type eq 'begins') {
+ $beginson = ' checked="checked" ';
}
}
- }
- my ($searchtitles,$titleorder) = &sorted_searchtitles();
- my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom);
-
- my $numinrow = 4;
- my $cansrchrow = 0;
- $datatable=''.
- ''.&mt('Institutional directory search available?').' '.
- ''.
- ' '.&mt('Yes').' '.
- ' '.&mt('No').' '.
- ' '.
- ''.&mt('Other domains can search institution?').' '.
- ''.
- ' '.&mt('Yes').' '.
- ' '.&mt('No').' '.
- ' ';
- $$rowtotal += 2;
- if (ref($usertypes) eq 'HASH') {
- if (keys(%{$usertypes}) > 0) {
- $datatable .= &insttypes_row($settings,$types,$usertypes,$dom,
- $numinrow,$othertitle,'cansearch');
- $cansrchrow = 1;
+ } else {
+ if ($settings->{'searchtypes'} eq 'exact') {
+ $exacton = ' checked="checked" ';
+ } elsif ($settings->{'searchtypes'} eq 'contains') {
+ $containson = ' checked="checked" ';
+ } elsif ($settings->{'searchtypes'} eq 'specify') {
+ $exacton = ' checked="checked" ';
+ $containson = ' checked="checked" ';
}
}
- if ($cansrchrow) {
- $$rowtotal ++;
- $datatable .= '';
- } else {
- $datatable .= ' ';
+ }
+ my ($searchtitles,$titleorder) = &sorted_searchtitles();
+ my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom);
+
+ my $numinrow = 4;
+ my $cansrchrow = 0;
+ my $datatable=' '.
+ ''.&mt('Directory search available?').' '.
+ ''.
+ ' '.&mt('Yes').' '.
+ ' '.&mt('No').' '.
+ ' '.
+ ''.&mt('Other domains can search?').' '.
+ ''.
+ ' '.&mt('Yes').' '.
+ ' '.&mt('No').' '.
+ ' ';
+ $$rowtotal += 2;
+ if (ref($usertypes) eq 'HASH') {
+ if (keys(%{$usertypes}) > 0) {
+ $datatable .= &insttypes_row($settings,$types,$usertypes,$dom,
+ $numinrow,$othertitle,'cansearch');
+ $cansrchrow = 1;
}
- $datatable .= ''.&mt('Supported search methods').
- ' ';
+ $$rowtotal ++;
+ if ($cansrchrow) {
+ $datatable .= '';
} else {
- my $domsrchon = ' checked="checked" ';
- my $domsrchoff = ' ';
- my $domlocalon = ' ';
- my $domlocaloff = ' checked="checked" ';
- if (ref($settings) eq 'HASH') {
- if ($settings->{'lclocalonly'} eq '1') {
- $domlocalon = $domlocaloff;
- $domlocaloff = ' ';
- }
- if ($settings->{'lcavailable'} eq '0') {
- $domsrchoff = $domsrchon;
- $domsrchon = ' ';
- }
- }
- $datatable=' '.
- ''.&mt('LON-CAPA directory search available?').' '.
- ''.
- ' '.&mt('Yes').' '.
- ' '.&mt('No').' '.
- ' '.
- ''.&mt('Other domains can search LON-CAPA domain?').' '.
- ''.
- ' '.&mt('Yes').' '.
- ' '.&mt('No').' '.
- ' ';
- $$rowtotal += 2;
+ $datatable .= '';
}
+ $datatable .= ''.&mt('Search latitude').' '.
+ ''.
+ ''.
+ ' '.&mt('Exact match').
+ ' '.
+ ' '.&mt('Begins with').
+ ' '.
+ ' '.&mt('Contains').
+ ' ';
+ $$rowtotal ++;
return $datatable;
}
@@ -2883,92 +2827,18 @@ sub print_contacts {
}
sub print_helpsettings {
- my ($position,$dom,$settings,$rowtotal) = @_;
- my $confname = $dom.'-domainconfig';
+ my ($dom,$confname,$settings,$rowtotal) = @_;
my ($datatable,$itemcount);
- if ($position eq 'top') {
- $itemcount = 1;
- my (%choices,%defaultchecked,@toggles);
- $choices{'submitbugs'} = &mt('Display link to: [_1]?',
- &Apache::loncommon::modal_link('http://bugs.loncapa.org',
- &mt('LON-CAPA bug tracker'),600,500));
- %defaultchecked = ('submitbugs' => 'on');
- @toggles = ('submitbugs');
- ($datatable,$itemcount) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked,
- \%choices,$itemcount);
- $$rowtotal ++;
- } else {
- my $css_class;
- my %existing=&Apache::lonnet::dump('roles',$dom,$confname,'rolesdef_');
- my %customroles;
- foreach my $key (keys(%existing)) {
- if ($key=~/^rolesdef\_(\w+)$/) {
- my $rolename = $1;
- my %privs;
- ($privs{'system'},$privs{'domain'},$privs{'course'}) = split(/\_/,$existing{$key});
- $customroles{$rolename} = \%privs;
- }
- }
- my $count = 0;
- my $context = 'domprefs';
- my $crstype = 'Course';
- foreach my $role (sort(keys(%customroles))) {
- my $prefix = 'custhelp'.$count;
- my %full=();
- my %levels= (
- course => {},
- domain => {},
- system => {},
- );
- my %levelscurrent=(
- course => {},
- domain => {},
- system => {},
- );
- &Apache::lonuserutils::custom_role_privs($customroles{$role},\%full,\%levels,\%levelscurrent);
- my @templateroles = &Apache::lonuserutils::custom_template_roles($context,$crstype);
- $css_class = $itemcount%2?' class="LC_odd_row"':'';
- $datatable .= ''.
- ' '.
- ' '.
- &mt('Modify').' '.
- ''.&mt('Existing helpdesk role:').' '.
- ''.$role.' '.
- &Apache::lonuserutils::custom_role_header($context,$crstype,
- \@templateroles,$prefix).
- &Apache::lonuserutils::custom_role_table($crstype,\%full,\%levels,
- \%levelscurrent,$prefix).
- ' ';
- $count ++;
- $itemcount ++;
- }
- $css_class = $itemcount%2?' class="LC_odd_row"':'';
- my $newcust = 'custhelp'.$count;
- my (%privs,%levelscurrent);
- my %full=();
- my %levels= (
- course => {},
- domain => {},
- system => {},
- );
- &Apache::lonuserutils::custom_role_privs(\%privs,\%full,\%levels,\%levelscurrent);
- my @templateroles = &Apache::lonuserutils::custom_template_roles($context,$crstype);
- $datatable .= ''.
- ' '. &mt('Add').
- ' '.
- ''.
- ''.&mt('Name of new helpdesk role:').' '.
- ' '.
- ' '.
- &Apache::lonuserutils::custom_role_header($context,$crstype,
- \@templateroles,$newcust).
- &Apache::lonuserutils::custom_role_table('Course',\%full,\%levels,
- \%levelscurrent,$newcust).
- ' '.
- ' ';
- $count ++;
- $$rowtotal += $count;
- }
+ $itemcount = 1;
+ my (%choices,%defaultchecked,@toggles);
+ $choices{'submitbugs'} = &mt('Display link to: [_1]?',
+ &Apache::loncommon::modal_link('http://bugs.loncapa.org',
+ &mt('LON-CAPA bug tracker'),600,500));
+ %defaultchecked = ('submitbugs' => 'on');
+ @toggles = ('submitbugs',);
+
+ ($datatable,$itemcount) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked,
+ \%choices,$itemcount);
return $datatable;
}
@@ -3014,7 +2884,7 @@ sub radiobutton_prefs {
} else {
$datatable .= '';
}
- $datatable .=
+ $datatable .=
''.
' '.&mt('Yes').
@@ -3033,28 +2903,28 @@ sub print_coursedefaults {
my ($css_class,$datatable,%checkedon,%checkedoff,%defaultchecked,@toggles);
my $itemcount = 1;
my %choices = &Apache::lonlocal::texthash (
+ canuse_pdfforms => 'Course/Community users can create/upload PDF forms',
uploadquota => 'Default quota for files uploaded directly to course/community using Course Editor (MB)',
anonsurvey_threshold => 'Responder count needed before showing submissions for anonymous surveys',
coursecredits => 'Credits can be specified for courses',
uselcmath => 'Math preview uses LON-CAPA previewer (javascript) in place of DragMath (Java)',
usejsme => 'Molecule editor uses JSME (HTML5) in place of JME (Java)',
postsubmit => 'Disable submit button/keypress following student submission',
- canclone => "People who may clone a course (besides course's owner and coordinators)",
- mysqltables => 'Lifetime (s) of "Temporary" MySQL tables (student performance data) on homeserver',
+ canclone => "People who may clone a course (besides course's owner and coordinators)",
);
my %staticdefaults = (
anonsurvey_threshold => 10,
uploadquota => 500,
postsubmit => 60,
- mysqltables => 172800,
);
if ($position eq 'top') {
%defaultchecked = (
+ 'canuse_pdfforms' => 'off',
'uselcmath' => 'on',
'usejsme' => 'on',
- 'canclone' => 'none',
+ 'canclone' => 'none',
);
- @toggles = ('uselcmath','usejsme');
+ @toggles = ('canuse_pdfforms','uselcmath','usejsme');
($datatable,$itemcount) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked,
\%choices,$itemcount);
$css_class = $itemcount%2?' class="LC_odd_row"':'';
@@ -3091,7 +2961,7 @@ sub print_coursedefaults {
$currcanclone = $settings->{'canclone'};
}
}
- }
+ }
foreach my $option (@cloneoptions) {
my ($checked,$additional);
if ($currcanclone eq $option) {
@@ -3130,7 +3000,7 @@ sub print_coursedefaults {
$itemcount ++;
} else {
$css_class = $itemcount%2 ? ' class="LC_odd_row"' : '';
- my ($currdefresponder,%defcredits,%curruploadquota,%deftimeout,%currmysql);
+ my ($currdefresponder,%defcredits,%curruploadquota,%deftimeout);
my $currusecredits = 0;
my $postsubmitclient = 1;
my @types = ('official','unofficial','community','textbook');
@@ -3160,7 +3030,7 @@ sub print_coursedefaults {
foreach my $type (@types) {
if (ref($settings->{'postsubmit'}->{'timeout'}) eq 'HASH') {
if ($settings->{'postsubmit'}->{'timeout'}->{$type} =~ /^\d+$/) {
- $deftimeout{$type} = $settings->{'postsubmit'}->{'timeout'}->{$type};
+ $deftimeout{$type} = $settings->{'postsubmit'}->{'timeout'}->{$type};
} else {
$deftimeout{$type} = $staticdefaults{'postsubmit'};
}
@@ -3174,15 +3044,6 @@ sub print_coursedefaults {
$deftimeout{$type} = $staticdefaults{'postsubmit'};
}
}
- if (ref($settings->{'mysqltables'}) eq 'HASH') {
- foreach my $type (keys(%{$settings->{'mysqltables'}})) {
- $currmysql{$type} = $settings->{'mysqltables'}{$type};
- }
- } else {
- foreach my $type (@types) {
- $currmysql{$type} = $staticdefaults{'mysqltables'};
- }
- }
} else {
foreach my $type (@types) {
$deftimeout{$type} = $staticdefaults{'postsubmit'};
@@ -3260,27 +3121,13 @@ sub print_coursedefaults {
$additional .= '
'."\n";
%defaultchecked = ('postsubmit' => 'on');
@toggles = ('postsubmit');
- $current = {
- 'postsubmit' => $postsubmitclient,
- };
+ my $current = {
+ 'postsubmit' => $postsubmitclient,
+ };
($table,$itemcount) =
&radiobutton_prefs($current,\@toggles,\%defaultchecked,
\%choices,$itemcount,$onclick,$additional,'left');
$datatable .= $table;
- $css_class = $itemcount%2 ? ' class="LC_odd_row"' : '';
- $datatable .= ' '.
- $choices{'mysqltables'}.
- ' '.
- ''.
- ' '."\n";
- $itemcount ++;
-
}
$$rowtotal += $itemcount;
return $datatable;
@@ -3813,7 +3660,7 @@ sub spares_row {
'.
&mt('[_1] when busy, offloads to:'
,''.$server.' ').' '.
- ''."\n".
+ ''."\n".
' '.
' '.&mt('Switch active users on next access').' '.
"\n";
@@ -4708,8 +4555,7 @@ sub email_as_username {
sub captcha_choice {
my ($context,$settings,$itemcount) = @_;
- my ($keyentry,$currpub,$currpriv,%checked,$rowname,$pubtext,$privtext,
- $vertext,$currver);
+ my ($keyentry,$currpub,$currpriv,%checked,$rowname,$pubtext,$privtext);
my %lt = &captcha_phrases();
$keyentry = 'hidden';
if ($context eq 'cancreate') {
@@ -4727,11 +4573,6 @@ sub captcha_choice {
$pubtext = $lt{'pub'};
$privtext = $lt{'priv'};
$keyentry = 'text';
- $vertext = $lt{'ver'};
- $currver = $settings->{'recaptchaversion'};
- if ($currver ne '2') {
- $currver = 1;
- }
}
if (ref($settings->{'recaptchakeys'}) eq 'HASH') {
$currpub = $settings->{'recaptchakeys'}{'public'};
@@ -4765,11 +4606,7 @@ sub captcha_choice {
$currpub.'" size="40" /> '."\n".
''.$privtext.' '."\n".
' '.
- ''.$vertext.' '."\n".
- ' '.
- '
'."\n".
+ $currpriv.'" size="40" />'."\n".
'';
return $output;
}
@@ -5564,7 +5401,7 @@ sub serverstatus_pages {
sub defaults_javascript {
my ($settings) = @_;
- return unless (ref($settings) eq 'HASH');
+ return unless (ref($settings) eq 'HASH');
if ((ref($settings->{'inststatusorder'}) eq 'ARRAY') && (ref($settings->{'inststatustypes'}) eq 'HASH')) {
my $maxnum = scalar(@{$settings->{'inststatusorder'}});
if ($maxnum eq '') {
@@ -6306,7 +6143,6 @@ sub modify_login {
$errors .= ''.$puberror.' ';
if ((grep(/^\Q$lang\E$/,@currlangs)) &&
(!grep(/^\Q$lang\E$/,@delurls))) {
-
$loginhash{'login'}{'helpurl'}{$lang} = $domconfig{'login'}{'helpurl'}{$lang};
}
}
@@ -6330,7 +6166,7 @@ sub modify_login {
if ($domservers{$lonhost}) {
if (ref($domconfig{'login'}{'headtag'}{$lonhost}) eq 'HASH') {
$currheadtagurls{$lonhost} = $domconfig{'login'}{'headtag'}{$lonhost}{'url'};
- $currexempt{$lonhost} = $domconfig{'login'}{'headtag'}{$lonhost}{'exempt'};
+ $currexempt{$lonhost} = $domconfig{'login'}{'headtagexempt'}{$lonhost}{'exempt'}
}
}
}
@@ -6349,7 +6185,7 @@ sub modify_login {
} elsif ($currheadtagurls{$lonhost}) {
$loginhash{'login'}{'headtag'}{$lonhost}{'url'} = $currheadtagurls{$lonhost};
if ($currexempt{$lonhost}) {
- if ((!exists($possexempt{$lonhost})) || ($possexempt{$lonhost} ne $currexempt{$lonhost})) {
+ if ((!exists($possexempt{$lonhost})) || ($possexempt{$lonhost} ne $currexempt{$lonhost})) {
$changes{'headtag'}{$lonhost} = 1;
}
} elsif ($possexempt{$lonhost}) {
@@ -6400,7 +6236,6 @@ sub modify_login {
$errors .= ''.$error.' ';
}
}
-
&process_captcha('login',\%changes,$loginhash{'login'},$domconfig{'login'});
my $defaulthelpfile = '/adm/loginproblems.html';
@@ -6556,13 +6391,6 @@ sub modify_login {
$chgtxt .= '';
$resulttext .= ''.$chgtxt.' ';
}
- } elsif ($item eq 'recaptchaversion') {
- if (ref($loginhash{'login'}) eq 'HASH') {
- if ($loginhash{'login'}{'captcha'} eq 'recaptcha') {
- $resulttext .= ''.&mt('ReCAPTCHA for helpdesk form set to version [_1]',$loginhash{'login'}{'recaptchaversion'}).
- ' ';
- }
- }
} else {
$resulttext .= ''.&mt("$title{$item} set to $offon[$env{'form.'.$item}]").' ';
}
@@ -6582,6 +6410,7 @@ sub modify_login {
return $resulttext;
}
+
sub check_exempt_addresses {
my ($iplist) = @_;
$iplist =~ s/^\s+//;
@@ -7491,7 +7320,7 @@ sub modify_quotas {
my $newpos = $env{'form.'.$itemid};
$newpos =~ s/\D+//g;
foreach my $item ('subject','title','publisher','author') {
- next if ((($item eq 'author') || ($item eq 'publisher')) &&
+ next if ((($item eq 'author') || ($item eq 'publisher')) &&
($type eq 'templates'));
$confhash{$type}{$key}{$item} = $env{'form.'.$type.'_'.$item.'_'.$i};
if ($domconfig{$action}{$type}{$key}{$item} ne $confhash{$type}{$key}{$item}) {
@@ -7588,14 +7417,10 @@ sub modify_quotas {
if (@{$confhash{'validation'}{$item}} > 0) {
@{$confhash{'validation'}{$item}} = sort(@{$confhash{'validation'}{$item}});
}
- if (ref($domconfig{'requestcourses'}) eq 'HASH') {
- if (ref($domconfig{'requestcourses'}{'validation'}) eq 'HASH') {
- if (ref($domconfig{'requestcourses'}{'validation'}{$item}) eq 'ARRAY') {
- @changed = &Apache::loncommon::compare_arrays($confhash{'validation'}{$item},
- $domconfig{'requestcourses'}{'validation'}{$item});
- } else {
- @changed = @{$confhash{'validation'}{$item}};
- }
+ if (ref($domconfig{'requestcourses'}{'validation'}) eq 'HASH') {
+ if (ref($domconfig{'requestcourses'}{'validation'}{$item}) eq 'ARRAY') {
+ @changed = &Apache::loncommon::compare_arrays($confhash{'validation'}{$item},
+ $domconfig{'requestcourses'}{'validation'}{$item});
} else {
@changed = @{$confhash{'validation'}{$item}};
}
@@ -7616,15 +7441,9 @@ sub modify_quotas {
$env{'form.requestcourses_validation_'.$item} =~ s/[\n\r\f]+/\s/gs;
}
}
- if (ref($domconfig{'requestcourses'}) eq 'HASH') {
- if (ref($domconfig{'requestcourses'}{'validation'}) eq 'HASH') {
- if ($domconfig{'requestcourses'}{'validation'}{$item} ne $confhash{'validation'}{$item}) {
- $changes{'validation'}{$item} = $confhash{'validation'}{$item};
- }
- } else {
- if ($confhash{'validation'}{$item} ne '') {
- $changes{'validation'}{$item} = $confhash{'validation'}{$item};
- }
+ if (ref($domconfig{'requestcourses'}{'validation'}) eq 'HASH') {
+ if ($domconfig{'requestcourses'}{'validation'}{$item} ne $confhash{'validation'}{$item}) {
+ $changes{'validation'}{$item} = $confhash{'validation'}{$item};
}
} else {
if ($confhash{'validation'}{$item} ne '') {
@@ -7642,18 +7461,14 @@ sub modify_quotas {
}
}
if (ref($confhash{'validation'}) eq 'HASH') {
- if (ref($domconfig{'requestcourses'}) eq 'HASH') {
- if (ref($domconfig{'requestcourses'}{'validation'}) eq 'HASH') {
- if ($domconfig{'requestcourses'}{'validation'}{'dc'}) {
- unless ($confhash{'validation'}{'dc'} eq $domconfig{'requestcourses'}{'validation'}{'dc'}) {
- if ($confhash{'validation'}{'dc'} eq '') {
- $changes{'validation'}{'dc'} = &mt('None');
- } else {
- $changes{'validation'}{'dc'} = $confhash{'validation'}{'dc'};
- }
+ if (ref($domconfig{'requestcourses'}{'validation'}) eq 'HASH') {
+ if ($domconfig{'requestcourses'}{'validation'}{'dc'}) {
+ unless ($confhash{'validation'}{'dc'} eq $domconfig{'requestcourses'}{'validation'}{'dc'}) {
+ if ($confhash{'validation'}{'dc'} eq '') {
+ $changes{'validation'}{'dc'} = &mt('None');
+ } else {
+ $changes{'validation'}{'dc'} = $confhash{'validation'}{'dc'};
}
- } elsif ($confhash{'validation'}{'dc'} ne '') {
- $changes{'validation'}{'dc'} = $confhash{'validation'}{'dc'};
}
} elsif ($confhash{'validation'}{'dc'} ne '') {
$changes{'validation'}{'dc'} = $confhash{'validation'}{'dc'};
@@ -7661,13 +7476,9 @@ sub modify_quotas {
} elsif ($confhash{'validation'}{'dc'} ne '') {
$changes{'validation'}{'dc'} = $confhash{'validation'}{'dc'};
}
- } else {
- if (ref($domconfig{'requestcourses'}) eq 'HASH') {
- if (ref($domconfig{'requestcourses'}{'validation'}) eq 'HASH') {
- if ($domconfig{'requestcourses'}{'validation'}{'dc'}) {
- $changes{'validation'}{'dc'} = &mt('None');
- }
- }
+ } elsif (ref($domconfig{'requestcourses'}{'validation'}) eq 'HASH') {
+ if ($domconfig{'requestcourses'}{'validation'}{'dc'}) {
+ $changes{'validation'}{'dc'} = &mt('None');
}
}
}
@@ -8075,8 +7886,7 @@ sub modify_autoenroll {
my $autorun = &Apache::lonnet::auto_run(undef,$dom),
my %title = ( run => 'Auto-enrollment active',
sender => 'Sender for notification messages',
- coowners => 'Automatic assignment of co-ownership to instructors of record (institutional data)',
- failsafe => 'Failsafe for no drops if institutional data missing for a section');
+ coowners => 'Automatic assignment of co-ownership to instructors of record (institutional data)');
my @offon = ('off','on');
my $sender_uname = $env{'form.sender_uname'};
my $sender_domain = $env{'form.sender_domain'};
@@ -8086,17 +7896,11 @@ sub modify_autoenroll {
$sender_domain = '';
}
my $coowners = $env{'form.autoassign_coowners'};
- my $failsafe = $env{'form.autoenroll_failsafe'};
- $failsafe =~ s{^\s+|\s+$}{}g;
- if ($failsafe =~ /\D/) {
- undef($failsafe);
- }
my %autoenrollhash = (
autoenroll => { 'run' => $env{'form.autoenroll_run'},
'sender_uname' => $sender_uname,
'sender_domain' => $sender_domain,
'co-owners' => $coowners,
- 'autofailsafe' => $failsafe,
}
);
my $putresult = &Apache::lonnet::put_dom('configuration',\%autoenrollhash,
@@ -8123,10 +7927,7 @@ sub modify_autoenroll {
}
} elsif ($coowners) {
$changes{'coowners'} = 1;
- }
- if ($currautoenroll{'autofailsafe'} ne $failsafe) {
- $changes{'autofailsafe'} = 1;
- }
+ }
if (keys(%changes) > 0) {
$resulttext = &mt('Changes made:').'';
if ($changes{'run'}) {
@@ -8146,17 +7947,6 @@ sub modify_autoenroll {
$lastactref->{'domainconfig'} = 1;
}
}
- if ($changes{'autofailsafe'}) {
- if ($failsafe ne '') {
- $resulttext .= ''.&mt("$title{'failsafe'} set to [_1]",$failsafe).' ';
- } else {
- $resulttext .= ''.&mt("$title{'failsafe'} deleted");
- }
- &Apache::lonnet::get_domain_defaults($dom,1);
- if (ref($lastactref) eq 'HASH') {
- $lastactref->{'domdefaults'} = 1;
- }
- }
$resulttext .= ' ';
} else {
$resulttext = &mt('No changes made to auto-enrollment settings');
@@ -8437,10 +8227,8 @@ sub modify_directorysrch {
$currdirsrch{$key} = $domconfig{'directorysrch'}{$key};
}
}
- my %title = ( available => 'Institutional directory search available',
- localonly => 'Other domains can search institution',
- lcavailable => 'LON-CAPA directory search available',
- lclocalonly => 'Other domains can search LON-CAPA domain',
+ my %title = ( available => 'Directory search available',
+ localonly => 'Other domains can search',
searchby => 'Search types',
searchtypes => 'Search latitude');
my @offon = ('off','on');
@@ -8514,9 +8302,7 @@ sub modify_directorysrch {
my %dirsrch_hash = (
directorysrch => { available => $env{'form.dirsrch_available'},
cansearch => \@cansearch,
- localonly => $env{'form.dirsrch_instlocalonly'},
- lclocalonly => $env{'form.dirsrch_domlocalonly'},
- lcavailable => $env{'form.dirsrch_domavailable'},
+ localonly => $env{'form.dirsrch_localonly'},
searchby => \@searchby,
searchtypes => \@searchtypes,
}
@@ -8533,47 +8319,24 @@ sub modify_directorysrch {
$changes{'available'} = 1;
}
}
- if (exists($currdirsrch{'lcavailable'})) {
- if ($currdirsrch{'lcavailable'} ne $env{'form.dirsrch_domavailable'}) {
- $changes{'lcavailable'} = 1;
- }
- } else {
- if ($env{'form.dirsrch_lcavailable'} eq '1') {
- $changes{'lcavailable'} = 1;
- }
- }
if (exists($currdirsrch{'localonly'})) {
- if ($currdirsrch{'localonly'} ne $env{'form.dirsrch_instlocalonly'}) {
- $changes{'localonly'} = 1;
- }
+ if ($currdirsrch{'localonly'} ne $env{'form.dirsrch_localonly'}) {
+ $changes{'localonly'} = 1;
+ }
} else {
- if ($env{'form.dirsrch_instlocalonly'} eq '1') {
+ if ($env{'form.dirsrch_localonly'} eq '1') {
$changes{'localonly'} = 1;
}
}
- if (exists($currdirsrch{'lclocalonly'})) {
- if ($currdirsrch{'lclocalonly'} ne $env{'form.dirsrch_domlocalonly'}) {
- $changes{'lclocalonly'} = 1;
- }
- } else {
- if ($env{'form.dirsrch_domlocalonly'} eq '1') {
- $changes{'lclocalonly'} = 1;
- }
- }
if (keys(%changes) > 0) {
$resulttext = &mt('Changes made:').'';
if ($changes{'available'}) {
$resulttext .= ''.&mt("$title{'available'} set to: $offon[$env{'form.dirsrch_available'}]").' ';
}
- if ($changes{'lcavailable'}) {
- $resulttext .= ''.&mt("$title{'lcavailable'} set to: $offon[$env{'form.dirsrch_domavailable'}]").' ';
- }
if ($changes{'localonly'}) {
- $resulttext .= ''.&mt("$title{'localonly'} set to: $otherdoms[$env{'form.dirsrch_instlocalonly'}]").' ';
- }
- if ($changes{'lclocalonly'}) {
- $resulttext .= ''.&mt("$title{'lclocalonly'} set to: $otherdoms[$env{'form.dirsrch_domlocalonly'}]").' ';
+ $resulttext .= ''.&mt("$title{'localonly'} set to: $otherdoms[$env{'form.dirsrch_localonly'}]").' ';
}
+
if (ref($changes{'cansearch'}) eq 'ARRAY') {
my $chgtext;
if (ref($usertypes) eq 'HASH') {
@@ -8624,7 +8387,7 @@ sub modify_directorysrch {
}
$resulttext .= ' ';
} else {
- $resulttext = &mt('No changes made to directory search settings');
+ $resulttext = &mt('No changes made to institution directory search settings');
}
} else {
$resulttext = ''.
@@ -8811,8 +8574,7 @@ sub modify_usercreation {
if (ref($domconfig{'usercreation'}{$key}) eq 'HASH') {
foreach my $item (keys(%{$domconfig{'usercreation'}{$key}})) {
if (($item eq 'selfcreate') || ($item eq 'statustocreate') ||
- ($item eq 'captcha') || ($item eq 'recaptchakeys') ||
- ($item eq 'recaptchaversion')) {
+ ($item eq 'captcha') || ($item eq 'recaptchakeys')) {
$save_usercreate{$key}{$item} = $domconfig{'usercreation'}{$key}{$item};
} else {
$curr_usercreation{$key}{$item} = $domconfig{'usercreation'}{$key}{$item};
@@ -9036,7 +8798,6 @@ sub modify_selfcreation {
foreach my $item (keys(%{$domconfig{'usercreation'}{$key}})) {
if (($item eq 'selfcreate') || ($item eq 'statustocreate') ||
($item eq 'captcha') || ($item eq 'recaptchakeys') ||
- ($item eq 'recaptchaversion') ||
($item eq 'emailusername') || ($item eq 'notify') ||
($item eq 'selfcreateprocessing') || ($item eq 'shibenv')) {
$curr_usercreation{$key}{$item} = $domconfig{'usercreation'}{$key}{$item};
@@ -9366,7 +9127,6 @@ sub modify_selfcreation {
#
$save_usercreate{'cancreate'}{'captcha'} = $savecaptcha{'captcha'};
$save_usercreate{'cancreate'}{'recaptchakeys'} = $savecaptcha{'recaptchakeys'};
- $save_usercreate{'cancreate'}{'recaptchaversion'} = $savecaptcha{'recaptchaversion'};
$save_usercreate{'cancreate'}{'selfcreate'} = $cancreate{'selfcreate'};
if (ref($cancreate{'notify'}) eq 'HASH') {
$save_usercreate{'cancreate'}{'notify'} = $cancreate{'notify'};
@@ -9528,10 +9288,6 @@ sub modify_selfcreation {
$chgtext .= ''.&mt('Private key set to [_1]',$pubkey).' ';
}
$chgtext .= '';
- } elsif ($type eq 'recaptchaversion') {
- if ($savecaptcha{'captcha'} eq 'recaptcha') {
- $chgtext .= &mt('ReCAPTCHA set to version [_1]',$savecaptcha{$type});
- }
} elsif ($type eq 'emailusername') {
if (ref($cancreate{'emailusername'}) eq 'HASH') {
if (ref($types) eq 'ARRAY') {
@@ -9652,7 +9408,7 @@ sub process_captcha {
$changes->{'captcha'} = 1;
}
}
- my ($newpub,$newpriv,$currpub,$currpriv,$newversion,$currversion);
+ my ($newpub,$newpriv,$currpub,$currpriv);
if ($newsettings->{'captcha'} eq 'recaptcha') {
$newpub = $env{'form.'.$container.'_recaptchapub'};
$newpriv = $env{'form.'.$container.'_recaptchapriv'};
@@ -9662,12 +9418,6 @@ sub process_captcha {
public => $newpub,
private => $newpriv,
};
- $newversion = $env{'form.'.$container.'_recaptchaversion'};
- $newversion =~ s/\D//g;
- if ($newversion ne '2') {
- $newversion = 1;
- }
- $newsettings->{'recaptchaversion'} = $newversion;
}
if (ref($current->{'recaptchakeys'}) eq 'HASH') {
$currpub = $current->{'recaptchakeys'}{'public'};
@@ -9679,23 +9429,6 @@ sub process_captcha {
}
}
}
- if ($current->{'captcha'} eq 'recaptcha') {
- $currversion = $current->{'recaptchaversion'};
- if ($currversion ne '2') {
- $currversion = 1;
- }
- }
- if ($currversion ne $newversion) {
- if ($container eq 'cancreate') {
- if (ref($changes->{'cancreate'}) eq 'ARRAY') {
- push(@{$changes->{'cancreate'}},'recaptchaversion');
- } elsif (!defined($changes->{'cancreate'})) {
- $changes->{'cancreate'} = ['recaptchaversion'];
- }
- } else {
- $changes->{'recaptchaversion'} = 1;
- }
- }
if (($newpub ne $currpub) || ($newpriv ne $currpriv)) {
if ($container eq 'cancreate') {
if (ref($changes->{'cancreate'}) eq 'ARRAY') {
@@ -10533,76 +10266,30 @@ sub modify_helpsettings {
my %defaultchecked = ('submitbugs' => 'on');
my @offon = ('off','on');
my @toggles = ('submitbugs');
- my %current = ('submitbugs' => '');
if (ref($domconfig{'helpsettings'}) eq 'HASH') {
- %current = %{$domconfig{'helpsettings'}};
- }
- foreach my $item (@toggles) {
- if ($defaultchecked{$item} eq 'on') {
- if ($current{$item} eq '') {
- if ($env{'form.'.$item} eq '0') {
+ foreach my $item (@toggles) {
+ if ($defaultchecked{$item} eq 'on') {
+ if ($domconfig{'helpsettings'}{$item} eq '') {
+ if ($env{'form.'.$item} eq '0') {
+ $changes{$item} = 1;
+ }
+ } elsif ($domconfig{'helpsettings'}{$item} ne $env{'form.'.$item}) {
$changes{$item} = 1;
}
- } elsif ($current{$item} ne $env{'form.'.$item}) {
- $changes{$item} = 1;
- }
- } elsif ($defaultchecked{$item} eq 'off') {
- if ($current{$item} eq '') {
- if ($env{'form.'.$item} eq '1') {
+ } elsif ($defaultchecked{$item} eq 'off') {
+ if ($domconfig{'helpsettings'}{$item} eq '') {
+ if ($env{'form.'.$item} eq '1') {
+ $changes{$item} = 1;
+ }
+ } elsif ($domconfig{'helpsettings'}{$item} ne $env{'form.'.$item}) {
$changes{$item} = 1;
}
- } elsif ($current{$item} ne $env{'form.'.$item}) {
- $changes{$item} = 1;
}
- }
- if (($env{'form.'.$item} eq '0') || ($env{'form.'.$item} eq '1')) {
- $helphash{'helpsettings'}{$item} = $env{'form.'.$item};
- }
- }
-
- my @modify = &Apache::loncommon::get_env_multiple('form.modifycusthelp');
- my $confname = $dom.'-domainconfig';
- my %existing=&Apache::lonnet::dump('roles',$dom,$confname,'rolesdef_');
- if (@modify) {
- foreach my $num (@modify) {
- my $rolename = $env{'form.custhelprole'.$num};
- if ($rolename ne '') {
- if (exists($existing{'rolesdef_'.$rolename})) {
- my $prefix = 'custhelp'.$num;
- my %newprivs = &Apache::lonuserutils::custom_role_update($rolename,$prefix);
- my %currprivs;
- ($currprivs{'s'},$currprivs{'d'},$currprivs{'c'}) =
- split(/\_/,$existing{'rolesdef_'.$rolename});
- foreach my $level ('c','d','s') {
- if ($newprivs{$level} ne $currprivs{$level}) {
- $changes{'customrole'}{$rolename} = 1;
- my $result = &Apache::lonnet::definerole($rolename,$newprivs{'s'},$newprivs{'d'},
- $newprivs{'c'},$confname,$dom);
- last;
- }
- }
- }
+ if (($env{'form.'.$item} eq '0') || ($env{'form.'.$item} eq '1')) {
+ $helphash{'helpsettings'}{$item} = $env{'form.'.$item};
}
}
}
- if ($env{'form.newcusthelp'} ne '') {
- my $prefix = 'custhelp'.$env{'form.newcusthelp'};
- my $rolename = $env{'form.newcusthelpname'};
- $rolename=~s/[^A-Za-z0-9]//gs;
- if ($rolename ne '') {
- unless(exists($existing{'rolesdef_'.$rolename})) {
- my $errmsg;
- my $result = &Apache::lonuserutils::store_custom_role($rolename,$prefix,
- $confname,$dom);
- if ($result eq 'ok') {
- $changes{'newcustomrole'} = $rolename;
- } else {
- $errmsg = ': '.$result;
- }
- }
- }
- }
-
my $putresult;
if (keys(%changes) > 0) {
$putresult = &Apache::lonnet::put_dom('configuration',\%helphash,$dom);
@@ -10613,16 +10300,6 @@ sub modify_helpsettings {
$resulttext .= ''.&mt('Display link to: [_1] set to "'.$offon[$env{'form.'.$item}].'".',
&Apache::loncommon::modal_link('http://bugs.loncapa.org',
&mt('LON-CAPA bug tracker'),600,500)).' ';
- } elsif ($item eq 'customrole') {
- if (ref($changes{'customrole'}) eq 'HASH') {
- foreach my $role (sort(keys(%{$changes{'customrole'}}))) {
- $resulttext .= ''.&mt('Existing custom role modified: [_1]',
- $role).' ';
- }
- }
- } elsif ($item eq 'newcustomrole') {
- $resulttext .= ''.&mt('New custom role added: [_1]',
- $changes{'newcustomrole'}).' ';
}
}
$resulttext .= '';
@@ -10644,19 +10321,18 @@ sub modify_coursedefaults {
my ($dom,$lastactref,%domconfig) = @_;
my ($resulttext,$errors,%changes,%defaultshash);
my %defaultchecked = (
+ 'canuse_pdfforms' => 'off',
'uselcmath' => 'on',
'usejsme' => 'on'
);
- my @toggles = ('uselcmath','usejsme');
+ my @toggles = ('canuse_pdfforms','uselcmath','usejsme');
my @numbers = ('anonsurvey_threshold','uploadquota_official','uploadquota_unofficial',
- 'uploadquota_community','uploadquota_textbook','mysqltables_official',
- 'mysqltables_unofficial','mysqltables_community','mysqltables_textbook');
+ 'uploadquota_community','uploadquota_textbook');
my @types = ('official','unofficial','community','textbook');
my %staticdefaults = (
anonsurvey_threshold => 10,
uploadquota => 500,
postsubmit => 60,
- mysqltables => 172800,
);
$defaultshash{'coursedefaults'} = {};
@@ -10697,12 +10373,12 @@ sub modify_coursedefaults {
}
$defaultshash{'coursedefaults'}{$item} = $newdef;
} else {
- my ($setting,$type) = ($item =~ /^(uploadquota|mysqltables)_(\w+)$/);
- if (ref($domconfig{'coursedefaults'}{$setting}) eq 'HASH') {
- $currdef = $domconfig{'coursedefaults'}{$setting}{$type};
+ my ($type) = ($item =~ /^\Quploadquota_\E(\w+)$/);
+ if (ref($domconfig{'coursedefaults'}{'uploadquota'}) eq 'HASH') {
+ $currdef = $domconfig{'coursedefaults'}{'uploadquota'}{$type};
}
$newdef =~ s/[^\w.\-]//g;
- $defaultshash{'coursedefaults'}{$setting}{$type} = $newdef;
+ $defaultshash{'coursedefaults'}{'uploadquota'}{$type} = $newdef;
}
if ($currdef ne $newdef) {
my $staticdef;
@@ -10710,10 +10386,9 @@ sub modify_coursedefaults {
unless (($currdef eq '') && ($newdef == $staticdefaults{$item})) {
$changes{$item} = 1;
}
- } elsif ($item =~ /^(uploadquota|mysqltables)_/) {
- my $setting = $1;
- unless (($currdef eq '') && ($newdef == $staticdefaults{$setting})) {
- $changes{$setting} = 1;
+ } else {
+ unless (($currdef eq '') && ($newdef == $staticdefaults{'uploadquota'})) {
+ $changes{'uploadquota'} = 1;
}
}
}
@@ -10726,7 +10401,7 @@ sub modify_coursedefaults {
}
}
my $newclone;
- if ($env{'form.canclone'} =~ /^(none|domain|instcode)$/) {
+ if ($env{'form.canclone'} =~ /^(none|domain|instcode)$/) {
$newclone = $env{'form.canclone'};
}
if ($newclone eq 'instcode') {
@@ -10749,8 +10424,8 @@ sub modify_coursedefaults {
$newclone eq '';
}
} elsif ($newclone ne '') {
- $defaultshash{'coursedefaults'}{'canclone'} = $newclone;
- }
+ $defaultshash{'coursedefaults'}{'canclone'} = $newclone;
+ }
if ($newclone ne $currclone) {
$changes{'canclone'} = 1;
}
@@ -10768,10 +10443,10 @@ sub modify_coursedefaults {
$defaultshash{'coursedefaults'}{'coursecredits'}{$type} = $credits{$type};
}
} else {
- if ($env{'form.coursecredits'} eq '1') {
+ if ($env{'form.coursecredits'} eq '1') {
foreach my $type (@types) {
unless ($type eq 'community') {
- if ($domconfig{'coursedefaults'}{'coursecredits'}{$type} ne $credits{$type}) {
+ if ($domconfig{'coursedefaults'}{'coursecredits'}{$type} ne $credits{$type}) {
$changes{'coursecredits'} = 1;
}
$defaultshash{'coursedefaults'}{'coursecredits'}{$type} = $credits{$type};
@@ -10814,7 +10489,7 @@ sub modify_coursedefaults {
}
if (exists($currtimeout{$type})) {
if ($timeout ne $currtimeout{$type}) {
- $changes{'postsubmit'} = 1;
+ $changes{'postsubmit'} = 1;
}
} elsif ($timeout ne '') {
$changes{'postsubmit'} = 1;
@@ -10836,14 +10511,14 @@ sub modify_coursedefaults {
if ($putresult eq 'ok') {
if (keys(%changes) > 0) {
my %domdefaults = &Apache::lonnet::get_domain_defaults($dom,1);
- if (($changes{'uploadquota'}) || ($changes{'postsubmit'}) ||
+ if (($changes{'canuse_pdfforms'}) || ($changes{'uploadquota'}) || ($changes{'postsubmit'}) ||
($changes{'coursecredits'}) || ($changes{'uselcmath'}) || ($changes{'usejsme'}) ||
- ($changes{'canclone'}) || ($changes{'mysqltables'})) {
- foreach my $item ('uselcmath','usejsme') {
+ ($changes{'canclone'})) {
+ foreach my $item ('canuse_pdfforms','uselcmath','usejsme') {
if ($changes{$item}) {
$domdefaults{$item}=$defaultshash{'coursedefaults'}{$item};
}
- }
+ }
if ($changes{'coursecredits'}) {
if (ref($defaultshash{'coursedefaults'}{'coursecredits'}) eq 'HASH') {
foreach my $type (keys(%{$defaultshash{'coursedefaults'}{'coursecredits'}})) {
@@ -10890,7 +10565,13 @@ sub modify_coursedefaults {
}
$resulttext = &mt('Changes made:').'';
foreach my $item (sort(keys(%changes))) {
- if ($item eq 'uselcmath') {
+ if ($item eq 'canuse_pdfforms') {
+ if ($env{'form.'.$item} eq '1') {
+ $resulttext .= ''.&mt("Course/Community users can create/upload PDF forms set to 'on'").' ';
+ } else {
+ $resulttext .= ''.&mt('Course/Community users can create/upload PDF forms set to "off"').' ';
+ }
+ } elsif ($item eq 'uselcmath') {
if ($env{'form.'.$item} eq '1') {
$resulttext .= ''.&mt('Math preview uses LON-CAPA previewer (javascript), if supported by browser.').' ';
} else {
@@ -10900,7 +10581,7 @@ sub modify_coursedefaults {
if ($env{'form.'.$item} eq '1') {
$resulttext .= ''.&mt('Molecule editor uses JSME (HTML5), if supported by browser.').' ';
} else {
- $resulttext .= ''.&mt('Molecule editor uses JME (Java), if supported by client OS.').' ';
+ $resulttext .= ''.&mt('Molecule editor uses JME (Java), if supported by client OS.').' ';
}
} elsif ($item eq 'anonsurvey_threshold') {
$resulttext .= ''.&mt('Responder count required for display of anonymous survey submissions set to [_1].',$defaultshash{'coursedefaults'}{'anonsurvey_threshold'}).' ';
@@ -10917,24 +10598,12 @@ sub modify_coursedefaults {
} else {
$resulttext .= ''.&mt('Default quota for content uploaded via Course Editor remains default: [_1] MB',$staticdefaults{'uploadquota'}).' ';
}
- } elsif ($item eq 'mysqltables') {
- if (ref($defaultshash{'coursedefaults'}{'mysqltables'}) eq 'HASH') {
- $resulttext .= ''.&mt('Lifetime of "Temporary" MySQL tables (student performance data) on homeserver').''.
- ''.&mt('Official courses: [_1] s',''.$defaultshash{'coursedefaults'}{'mysqltables'}{'official'}.' ').' '.
- ''.&mt('Unofficial courses: [_1] s',''.$defaultshash{'coursedefaults'}{'mysqltables'}{'unofficial'}.' ').' '.
- ''.&mt('Textbook courses: [_1] s',''.$defaultshash{'coursedefaults'}{'mysqltables'}{'textbook'}.' ').' '.
- ''.&mt('Communities: [_1] s',''.$defaultshash{'coursedefaults'}{'mysqltables'}{'community'}.' ').' '.
- ' '.
- ' ';
- } else {
- $resulttext .= ''.&mt('Lifetime of "Temporary" MySQL tables (student performance data) on homeserver remains default: [_1] s',$staticdefaults{'uploadquota'}).' ';
- }
} elsif ($item eq 'postsubmit') {
if ($domdefaults{'postsubmit'} eq 'off') {
$resulttext .= ''.&mt('Submit button(s) remain enabled on page after student makes submission.');
} else {
$resulttext .= ' '.&mt('Submit button(s) disabled on page after student makes submission').'; ';
- if (ref($defaultshash{'coursedefaults'}{'postsubmit'}) eq 'HASH') {
+ if (ref($defaultshash{'coursedefaults'}{'postsubmit'}) eq 'HASH') {
$resulttext .= &mt('durations:').'';
foreach my $type (@types) {
$resulttext .= '';
@@ -10963,7 +10632,7 @@ sub modify_coursedefaults {
}
$resulttext .= ' ';
}
- $resulttext .= ' ';
+ $resulttext .= '';
}
} elsif ($item eq 'coursecredits') {
if (ref($defaultshash{'coursedefaults'}{'coursecredits'}) eq 'HASH') {
@@ -10991,7 +10660,7 @@ sub modify_coursedefaults {
} elsif ($defaultshash{'coursedefaults'}{'canclone'} eq 'domain') {
$resulttext .= ''.&mt('By default, a course requester can clone any course from his/her domain.').' ';
} else {
- $resulttext .= ''.&mt('By default, only course owner and coordinators may clone a course.').' ';
+ $resulttext .= ''.&mt('By default, only course owner and coordinators may clone a course.').' ';
}
}
}
@@ -11446,7 +11115,7 @@ sub modify_usersessions {
}
}
unless ($changes{'offloadnow'}) {
- foreach my $lonhost (keys(%{$defaultshash{'usersessions'}{'offloadnow'}})) {
+ foreach my $lonhost (keys(%{$defaultshash{'usersessions'}{'offloadnow'}})) {
unless ($domconfig{'usersessions'}{'offloadnow'}{$lonhost}) {
$changes{'offloadnow'} = 1;
last;
@@ -11671,7 +11340,7 @@ sub modify_loadbalancing {
}
if ($rule eq 'specific') {
my $specifiedhost = $env{'form.loadbalancing_singleserver_'.$i.'_'.$type};
- if (exists($servers{$specifiedhost})) {
+ if (exists($servers{$specifiedhost})) {
$rule = $specifiedhost;
}
}
@@ -11747,7 +11416,7 @@ sub modify_loadbalancing {
if ($rule eq '') {
$balancetext = $ruletitles{'default'};
} elsif (($rule eq 'homeserver') || ($rule eq 'externalbalancer') ||
- ($type eq '_LC_ipchange') || ($type eq '_LC_ipchangesso')) {
+ ($type eq '_LC_ipchange') || ($type eq '_LC_ipchangesso')) {
if (($type eq '_LC_ipchange') || ($type eq '_LC_ipchangesso')) {
foreach my $sparetype (@sparestypes) {
if (ref($defaultshash{'loadbalancing'}{$balancer}{'targets'}{$sparetype}) eq 'ARRAY') {
@@ -12447,8 +12116,6 @@ function updateCaptcha(caller,context) {
var pubitem;
var privtext;
var pubtext;
- var versionitem;
- var versiontext;
if (document.getElementById(context+'_recaptchapub')) {
pubitem = document.getElementById(context+'_recaptchapub');
} else {
@@ -12469,16 +12136,6 @@ function updateCaptcha(caller,context) {
} else {
return;
}
- if (document.getElementById(context+'_recaptchaversion')) {
- versionitem = document.getElementById(context+'_recaptchaversion');
- } else {
- return;
- }
- if (document.getElementById(context+'_recaptchavertxt')) {
- versiontext = document.getElementById(context+'_recaptchavertxt');
- } else {
- return;
- }
if (caller.checked) {
if (caller.value == 'recaptcha') {
pubitem.type = 'text';
@@ -12487,16 +12144,11 @@ function updateCaptcha(caller,context) {
privitem.size = '40';
pubtext.innerHTML = "$lt{'pub'}";
privtext.innerHTML = "$lt{'priv'}";
- versionitem.type = 'text';
- versionitem.size = '3';
- versiontext.innerHTML = "$lt{'ver'}";
} else {
pubitem.type = 'hidden';
privitem.type = 'hidden';
- versionitem.type = 'hidden';
pubtext.innerHTML = '';
privtext.innerHTML = '';
- versiontext.innerHTML = '';
}
}
return;
@@ -12562,7 +12214,6 @@ sub captcha_phrases {
original => 'original (CAPTCHA)',
recaptcha => 'successor (ReCAPTCHA)',
notused => 'unused',
- ver => 'ReCAPTCHA version (1 or 2)',
);
}