--- loncom/interface/domainprefs.pm 2019/07/07 16:02:20 1.160.6.91
+++ loncom/interface/domainprefs.pm 2014/10/06 00:48:39 1.254
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set domain-wide configuration settings
#
-# $Id: domainprefs.pm,v 1.160.6.91 2019/07/07 16:02:20 raeburn Exp $
+# $Id: domainprefs.pm,v 1.254 2014/10/06 00:48:39 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -19,8 +19,7 @@
#
# You should have received a copy of the GNU General Public License
# along with LON-CAPA; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA#
# /home/httpd/html/adm/gpl.txt
#
# http://www.lon-capa.org/
@@ -221,8 +220,8 @@ sub handler {
'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'}};
@@ -251,8 +250,6 @@ sub handler {
header => [{col1 => 'Log-in Page Items',
col2 => '',},
{col1 => 'Log-in Help',
- col2 => 'Value'},
- {col1 => 'Custom HTML in document head',
col2 => 'Value'}],
print => \&print_login,
modify => \&modify_login,
@@ -262,8 +259,6 @@ sub handler {
help => 'Domain_Configuration_LangTZAuth',
header => [{col1 => 'Setting',
col2 => 'Value'},
- {col1 => 'Internal Authentication',
- col2 => 'Value'},
{col1 => 'Institutional user types',
col2 => 'Assignable to e-mail usernames'}],
print => \&print_defaults,
@@ -307,24 +302,18 @@ 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,
},
'contacts' =>
- { text => 'E-mail addresses and helpform',
+ { text => 'Contact Information',
help => 'Domain_Configuration_Contact_Info',
- header => [{col1 => 'Default e-mail addresses',
- col2 => 'Value',},
- {col1 => 'Recipient(s) for notifications',
- col2 => 'Value',},
- {col1 => 'Ask helpdesk form settings',
- col2 => 'Value',},],
+ header => [{col1 => 'Setting',
+ col2 => 'Value',}],
print => \&print_contacts,
modify => \&modify_contacts,
},
@@ -421,12 +410,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,
},
@@ -452,6 +439,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',
@@ -464,7 +459,7 @@ sub handler {
print => \&print_usersessions,
modify => \&modify_usersessions,
},
- 'loadbalancing' =>
+ 'loadbalancing' =>
{text => 'Dedicated Load Balancer(s)',
help => 'Domain_Configuration_Load_Balancing',
header => [{col1 => 'Balancers',
@@ -484,8 +479,6 @@ sub handler {
{col1 => 'Log-in Page Items',
col2 => ''},
{col1 => 'Log-in Help',
- col2 => 'Value'},
- {col1 => 'Custom HTML in document head',
col2 => 'Value'}],
print => \&print_login,
modify => \&modify_login,
@@ -528,9 +521,6 @@ $javascript_validations
$coursebrowserjs
END
}
- if (grep(/^contacts$/,@actions)) {
- $js .= &contacts_javascript();
- }
&Apache::lonconfigsettings::display_settings($r,$dom,$phase,$context,\@prefs_order,\%prefs,\%domconfig,$confname,$js);
} else {
# check if domconfig user exists for the domain.
@@ -620,7 +610,7 @@ sub process_changes {
} elsif ($action eq 'autocreate') {
$output = &modify_autocreate($dom,%domconfig);
} elsif ($action eq 'directorysrch') {
- $output = &modify_directorysrch($dom,$lastactref,%domconfig);
+ $output = &modify_directorysrch($dom,%domconfig);
} elsif ($action eq 'usercreation') {
$output = &modify_usercreation($dom,%domconfig);
} elsif ($action eq 'selfcreation') {
@@ -642,7 +632,7 @@ sub process_changes {
} elsif ($action eq 'requestauthor') {
$output = &modify_quotas($r,$dom,$action,$lastactref,%domconfig);
} elsif ($action eq 'helpsettings') {
- $output = &modify_helpsettings($r,$dom,$confname,$lastactref,%domconfig);
+ $output = &modify_helpsettings($r,$dom,$confname,%domconfig);
} elsif ($action eq 'coursedefaults') {
$output = &modify_coursedefaults($dom,$lastactref,%domconfig);
} elsif ($action eq 'selfenrollment') {
@@ -663,22 +653,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 .=
'
-
-
- ';
- if ($numheaders == 4) {
- $output .= '
- '.&mt($item->{'header'}->[3]->{'col1'}).'
- '.&mt($item->{'header'}->[3]->{'col2'}).'
- ';
- } else {
- $output .= '
- '.&mt($item->{'header'}->[2]->{'col1'}).'
- '.&mt($item->{'header'}->[2]->{'col2'}).'
- ';
- }
- $rowtotal ++;
- $output .= &print_login('headtag',$dom,$confname,$phase,$settings,\$rowtotal);
} elsif ($action eq 'requestcourses') {
$output .= &print_requestmail($dom,$action,$settings,\$rowtotal);
$rowtotal ++;
@@ -885,7 +834,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') {
@@ -929,11 +878,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 '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 .= '
@@ -1230,57 +1181,6 @@ sub print_login {
$itemcount ++;
}
$datatable .= &captcha_choice('login',$settings,$itemcount);
- } elsif ($caller eq 'headtag') {
- my %domservers = &Apache::lonnet::get_servers($dom);
- my $choice = $choices{'headtag'};
- $css_class = ' class="LC_odd_row"';
- $datatable .= ' '.$choice.' '.
- ' ';
}
return $datatable;
}
@@ -1314,9 +1214,6 @@ sub login_choices {
link => "Link",
alink => "Active link",
vlink => "Visited link",
- headtag => "Custom markup",
- action => "Action",
- current => "Current",
);
return %choices;
}
@@ -1438,7 +1335,7 @@ sub display_color_options {
my $datatable = ''.
''.$choices->{'font'}.' ';
if (!$is_custom->{'font'}) {
- $datatable .= ''.&mt('Default in use:').' '.$defaults->{'font'}.' ';
+ $datatable .= ''.&mt('Default in use:').' '.$defaults->{'font'}.' ';
} else {
$datatable .= ' ';
}
@@ -1447,12 +1344,12 @@ sub display_color_options {
$datatable .= ''.
' '.
- ' ';
+ ' ';
unless ($role eq 'login') {
$datatable .= ''.
''.$choices->{'fontmenu'}.' ';
if (!$is_custom->{'fontmenu'}) {
- $datatable .= ''.&mt('Default in use:').' '.$defaults->{'fontmenu'}.' ';
+ $datatable .= ''.&mt('Default in use:').' '.$defaults->{'fontmenu'}.' ';
} else {
$datatable .= ' ';
}
@@ -1462,7 +1359,7 @@ sub display_color_options {
' '.
- ' ';
+ ' ';
}
my $switchserver = &check_switchserver($dom,$confname);
foreach my $img (@{$images}) {
@@ -1521,8 +1418,7 @@ sub display_color_options {
if ($fullwidth ne '' && $fullheight ne '') {
if ($fullwidth > $width && $fullheight > $height) {
my $size = $width.'x'.$height;
- my @args = ('convert','-sample',$size,$input,$output);
- system({$args[0]} @args);
+ system("convert -sample $size $input $output");
$showfile = "/$imgdir/tn-".$filename;
}
}
@@ -1580,7 +1476,7 @@ sub display_color_options {
my $bgs_def;
foreach my $item (@{$bgs}) {
if (!$is_custom->{$item}) {
- $bgs_def .= ''.$choices->{$item}.' '.$defaults->{'bgs'}{$item}.' ';
+ $bgs_def .= ''.$choices->{$item}.' '.$defaults->{'bgs'}{$item}.' ';
}
}
if ($bgs_def) {
@@ -1608,7 +1504,7 @@ sub display_color_options {
my $links_def;
foreach my $item (@{$links}) {
if (!$is_custom->{$item}) {
- $links_def .= ''.$choices->{$item}.''.$defaults->{'links'}{$item}.' ';
+ $links_def .= ''.$choices->{$item}.''.$defaults->{'links'}{$item}.' ';
}
}
if ($links_def) {
@@ -1694,15 +1590,17 @@ sub image_changes {
my ($is_custom,$alt_text,$img_import,$showfile,$fullsize,$role,$img,$imgfile,$logincolors) = @_;
my $output;
if ($img eq 'login') {
- $output = ''.$logincolors; # suppress image for Log-in header
+ # suppress image for Log-in header
} elsif (!$is_custom) {
if ($img ne 'domlogo') {
- $output = &mt('Default image:').' ';
+ $output .= &mt('Default image:').' ';
} else {
- $output = &mt('Default in use:').' ';
+ $output .= &mt('Default in use:').' ';
}
}
- if ($img ne 'login') {
+ if ($img eq 'login') { # suppress image for Log-in header
+ $output .= ' '.$logincolors;
+ } else {
if ($img_import) {
$output .= ' ';
}
@@ -2313,7 +2211,7 @@ sub print_textbookcourses {
$datatable .= ''.$vpos.' ';
}
$datatable .= ' '."\n".
- ' '.&mt('Add').' '."\n".
+ ' '.&mt('Add').''."\n".
''.
''.&mt('Subject:').' '."\n".
(' 'x2).
@@ -2330,13 +2228,13 @@ sub print_textbookcourses {
} else {
$datatable .= ' ';
}
- $datatable .= ''."\n";
}
- $datatable .= ''.&mt('LON-CAPA course:').' '.
+ $datatable .= ' '."\n".
+ ''.&mt('LON-CAPA course:').' '.
&Apache::loncommon::select_dom_form($env{'request.role.domain'},$type.'_addbook_cdom').
' '.
&Apache::loncommon::selectcourse_link
- ('display',$type.'_addbook_cnum',$type.'_addbook_cdom',undef,undef,undef,'Course').
+ ('display',$type.'_addbook_cnum',$type.'_addbook_cdom',undef,undef,undef,'Course');
' '."\n".
''."\n";
$itemcount ++;
@@ -2439,7 +2337,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') {
@@ -2473,9 +2371,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" ';
@@ -2511,12 +2406,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;
}
@@ -2645,791 +2536,236 @@ 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;
}
sub print_contacts {
- my ($position,$dom,$settings,$rowtotal) = @_;
+ my ($dom,$settings,$rowtotal) = @_;
my $datatable;
my @contacts = ('adminemail','supportemail');
- my (%checked,%to,%otheremails,%bccemails,%includestr,%includeloc,%currfield,
- $maxsize,$fields,$fieldtitles,$fieldoptions,$possoptions,@mailings);
- if ($position eq 'top') {
- if (ref($settings) eq 'HASH') {
- foreach my $item (@contacts) {
- if (exists($settings->{$item})) {
- $to{$item} = $settings->{$item};
- }
- }
- }
- } elsif ($position eq 'middle') {
- @mailings = ('errormail','packagesmail','lonstatusmail','requestsmail',
- 'updatesmail','idconflictsmail','hostipmail');
- foreach my $type (@mailings) {
- $otheremails{$type} = '';
- }
- } else {
- @mailings = ('helpdeskmail','otherdomsmail');
- foreach my $type (@mailings) {
- $otheremails{$type} = '';
- }
- $bccemails{'helpdeskmail'} = '';
- $bccemails{'otherdomsmail'} = '';
- $includestr{'helpdeskmail'} = '';
- $includestr{'otherdomsmail'} = '';
- ($fields,$fieldtitles,$fieldoptions,$possoptions) = &helpform_fields();
+ my (%checked,%to,%otheremails,%bccemails);
+ my @mailings = ('errormail','packagesmail','lonstatusmail','helpdeskmail',
+ 'requestsmail','updatesmail','idconflictsmail');
+ foreach my $type (@mailings) {
+ $otheremails{$type} = '';
}
+ $bccemails{'helpdeskmail'} = '';
if (ref($settings) eq 'HASH') {
- unless ($position eq 'top') {
- foreach my $type (@mailings) {
- if (exists($settings->{$type})) {
- if (ref($settings->{$type}) eq 'HASH') {
- foreach my $item (@contacts) {
- if ($settings->{$type}{$item}) {
- $checked{$type}{$item} = ' checked="checked" ';
- }
- }
- $otheremails{$type} = $settings->{$type}{'others'};
- if (($type eq 'helpdeskmail') || ($type eq 'otherdomsmail')) {
- $bccemails{$type} = $settings->{$type}{'bcc'};
- if ($settings->{$type}{'include'} ne '') {
- ($includeloc{$type},$includestr{$type}) = split(/:/,$settings->{$type}{'include'},2);
- $includestr{$type} = &unescape($includestr{$type});
- }
- }
- }
- } elsif ($type eq 'lonstatusmail') {
- $checked{'lonstatusmail'}{'adminemail'} = ' checked="checked" ';
- }
+ foreach my $item (@contacts) {
+ if (exists($settings->{$item})) {
+ $to{$item} = $settings->{$item};
}
}
- if ($position eq 'bottom') {
- foreach my $type (@mailings) {
- $bccemails{$type} = $settings->{$type}{'bcc'};
- if ($settings->{$type}{'include'} ne '') {
- ($includeloc{$type},$includestr{$type}) = split(/:/,$settings->{$type}{'include'},2);
- $includestr{$type} = &unescape($includestr{$type});
- }
- }
- if (ref($settings->{'helpform'}) eq 'HASH') {
- if (ref($fields) eq 'ARRAY') {
- foreach my $field (@{$fields}) {
- $currfield{$field} = $settings->{'helpform'}{$field};
+ foreach my $type (@mailings) {
+ if (exists($settings->{$type})) {
+ if (ref($settings->{$type}) eq 'HASH') {
+ foreach my $item (@contacts) {
+ if ($settings->{$type}{$item}) {
+ $checked{$type}{$item} = ' checked="checked" ';
+ }
}
- }
- if (exists($settings->{'helpform'}{'maxsize'})) {
- $maxsize = $settings->{'helpform'}{'maxsize'};
- } else {
- $maxsize = '1.0';
- }
- } else {
- if (ref($fields) eq 'ARRAY') {
- foreach my $field (@{$fields}) {
- $currfield{$field} = 'yes';
+ $otheremails{$type} = $settings->{$type}{'others'};
+ if ($type eq 'helpdeskmail') {
+ $bccemails{$type} = $settings->{$type}{'bcc'};
}
}
- $maxsize = '1.0';
+ } elsif ($type eq 'lonstatusmail') {
+ $checked{'lonstatusmail'}{'adminemail'} = ' checked="checked" ';
}
}
} else {
- if ($position eq 'top') {
- $to{'supportemail'} = $Apache::lonnet::perlvar{'lonSupportEMail'};
- $to{'adminemail'} = $Apache::lonnet::perlvar{'lonAdmEMail'};
- $checked{'errormail'}{'adminemail'} = ' checked="checked" ';
- $checked{'packagesmail'}{'adminemail'} = ' checked="checked" ';
- $checked{'lonstatusmail'}{'adminemail'} = ' checked="checked" ';
- $checked{'requestsmail'}{'adminemail'} = ' checked="checked" ';
- $checked{'updatesmail'}{'adminemail'} = ' checked="checked" ';
- $checked{'idconflictsmail'}{'adminemail'} = ' checked="checked" ';
- $checked{'hostipmail'}{'adminemail'} = ' checked="checked" ';
- } elsif ($position eq 'bottom') {
- $checked{'helpdeskmail'}{'supportemail'} = ' checked="checked" ';
- $checked{'otherdomsmail'}{'supportemail'} = ' checked="checked" ';
- if (ref($fields) eq 'ARRAY') {
- foreach my $field (@{$fields}) {
- $currfield{$field} = 'yes';
- }
- }
- $maxsize = '1.0';
- }
+ $to{'supportemail'} = $Apache::lonnet::perlvar{'lonSupportEMail'};
+ $to{'adminemail'} = $Apache::lonnet::perlvar{'lonAdmEMail'};
+ $checked{'errormail'}{'adminemail'} = ' checked="checked" ';
+ $checked{'packagesmail'}{'adminemail'} = ' checked="checked" ';
+ $checked{'helpdeskmail'}{'supportemail'} = ' checked="checked" ';
+ $checked{'lonstatusmail'}{'adminemail'} = ' checked="checked" ';
+ $checked{'requestsmail'}{'adminemail'} = ' checked="checked" ';
+ $checked{'updatesmail'}{'adminemail'} = ' checked="checked" ';
+ $checked{'idconflictsmail'}{'adminemail'} = ' checked="checked" ';
}
my ($titles,$short_titles) = &contact_titles();
my $rownum = 0;
my $css_class;
- if ($position eq 'top') {
- foreach my $item (@contacts) {
- $css_class = $rownum%2?' class="LC_odd_row"':'';
- $datatable .= ''.
- ''.$titles->{$item}.
- ' '.
- ' ';
- $rownum ++;
- }
- } else {
- foreach my $type (@mailings) {
- $css_class = $rownum%2?' class="LC_odd_row"':'';
- $datatable .= ''.
- ''.
- $titles->{$type}.': '.
- '';
- if (($type eq 'helpdeskmail') || ($type eq 'otherdomsmail')) {
- $datatable .= ''.&mt('E-mail recipient(s)').' ';
- }
- $datatable .= '';
- foreach my $item (@contacts) {
- $datatable .= ''.
- ' '.$short_titles->{$item}.
- ' ';
- }
- $datatable .= ' '.&mt('Others').': '.
- ' ';
- my %locchecked;
- if (($type eq 'helpdeskmail') || ($type eq 'otherdomsmail')) {
- foreach my $loc ('s','b') {
- if ($includeloc{$type} eq $loc) {
- $locchecked{$loc} = ' checked="checked"';
- last;
- }
- }
- $datatable .= ' '.&mt('Bcc:').(' 'x6).
- ' '.
- ''.&mt('Optional added text').' '.
- &mt('Text automatically added to e-mail:').' '.
- ' '.
- ''.&mt('Location:').' '.
- ' '.&mt('in subject').' '.
- (' 'x2).
- ' '.&mt('in body').' '.
- ' ';
- }
- $datatable .= ' '."\n";
- $rownum ++;
- }
+ foreach my $item (@contacts) {
+ $css_class = $rownum%2?' class="LC_odd_row"':'';
+ $datatable .= ''.
+ ''.$titles->{$item}.
+ ' '.
+ ' ';
+ $rownum ++;
}
- if ($position eq 'middle') {
- my %choices;
- $choices{'reporterrors'} = &mt('E-mail error reports to [_1]',
- &Apache::loncommon::modal_link('http://loncapa.org/core.html',
- &mt('LON-CAPA core group - MSU'),600,500));
- $choices{'reportupdates'} = &mt('E-mail record of completed LON-CAPA updates to [_1]',
- &Apache::loncommon::modal_link('http://loncapa.org/core.html',
- &mt('LON-CAPA core group - MSU'),600,500));
- my @toggles = ('reporterrors','reportupdates');
- my %defaultchecked = ('reporterrors' => 'on',
- 'reportupdates' => 'on');
- (my $reports,$rownum) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked,
- \%choices,$rownum);
- $datatable .= $reports;
- } elsif ($position eq 'bottom') {
+ foreach my $type (@mailings) {
$css_class = $rownum%2?' class="LC_odd_row"':'';
$datatable .= ''.
- ''.&mt('Extra helpdesk form fields:').' '.
- &mt('(e-mail, subject, and description always shown)').
- ' ';
- if ((ref($fields) eq 'ARRAY') && (ref($fieldtitles) eq 'HASH') &&
- (ref($fieldoptions) eq 'HASH') && (ref($possoptions) eq 'HASH')) {
- $datatable .= '';
+ ' '.
+ $titles->{$type}.': '.
+ ''.
+ '';
+ foreach my $item (@contacts) {
+ $datatable .= ''.
+ ' '.$short_titles->{$item}.
+ ' ';
+ }
+ $datatable .= ' '.&mt('Others').': '.
+ ' ';
+ if ($type eq 'helpdeskmail') {
+ $datatable .= ' '.&mt('Bcc:').(' 'x6).
+ ' ';
}
$datatable .= ' '."\n";
$rownum ++;
}
+ my %choices;
+ $choices{'reporterrors'} = &mt('E-mail error reports to [_1]',
+ &Apache::loncommon::modal_link('http://loncapa.org/core.html',
+ &mt('LON-CAPA core group - MSU'),600,500));
+ $choices{'reportupdates'} = &mt('E-mail record of completed LON-CAPA updates to [_1]',
+ &Apache::loncommon::modal_link('http://loncapa.org/core.html',
+ &mt('LON-CAPA core group - MSU'),600,500));
+ my @toggles = ('reporterrors','reportupdates');
+ my %defaultchecked = ('reporterrors' => 'on',
+ 'reportupdates' => 'on');
+ (my $reports,$rownum) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked,
+ \%choices,$rownum);
+ $datatable .= $reports;
$$rowtotal += $rownum;
return $datatable;
}
-sub contacts_javascript {
- return <<"ENDSCRIPT";
-
-
-
-ENDSCRIPT
-}
-
sub print_helpsettings {
- my ($position,$dom,$settings,$rowtotal) = @_;
- my $confname = $dom.'-domainconfig';
- my $formname = 'display';
+ 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,%ordered,%current);
- if (ref($settings) eq 'HASH') {
- if (ref($settings->{'adhoc'}) eq 'HASH') {
- %current = %{$settings->{'adhoc'}};
- }
- }
- my $count = 0;
- foreach my $key (sort(keys(%existing))) {
- if ($key=~/^rolesdef\_(\w+)$/) {
- my $rolename = $1;
- my (%privs,$order);
- ($privs{'system'},$privs{'domain'},$privs{'course'}) = split(/\_/,$existing{$key});
- $customroles{$rolename} = \%privs;
- if (ref($current{$rolename}) eq 'HASH') {
- $order = $current{$rolename}{'order'};
- }
- if ($order eq '') {
- $order = $count;
- }
- $ordered{$order} = $rolename;
- $count++;
- }
- }
- my $maxnum = scalar(keys(%ordered));
- my @roles_by_num = ();
- foreach my $item (sort {$a <=> $b } (keys(%ordered))) {
- push(@roles_by_num,$item);
- }
- my $context = 'domprefs';
- my $crstype = 'Course';
- my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom);
- my @accesstypes = ('all','dh','da','none');
- my ($numstatustypes,@jsarray);
- if (ref($types) eq 'ARRAY') {
- if (@{$types} > 0) {
- $numstatustypes = scalar(@{$types});
- push(@accesstypes,'status');
- @jsarray = ('bystatus');
- }
- }
- my %domhelpdesk = &Apache::lonnet::get_active_domroles($dom,['dh','da']);
- if (keys(%domhelpdesk)) {
- push(@accesstypes,('inc','exc'));
- push(@jsarray,('notinc','notexc'));
- }
- my $hiddenstr = join("','",@jsarray);
- $datatable .= &helpsettings_javascript(\@roles_by_num,$maxnum,$hiddenstr,$formname);
- my $context = 'domprefs';
- my $crstype = 'Course';
- my $prefix = 'helproles_';
- my $add_class = 'LC_hidden';
- foreach my $num (@roles_by_num) {
- my $role = $ordered{$num};
- my ($desc,$access,@statuses);
- if (ref($current{$role}) eq 'HASH') {
- $desc = $current{$role}{'desc'};
- $access = $current{$role}{'access'};
- if (ref($current{$role}{'insttypes'}) eq 'ARRAY') {
- @statuses = @{$current{$role}{'insttypes'}};
- }
- }
- if ($desc eq '') {
- $desc = $role;
- }
- my $identifier = 'custhelp'.$num;
- 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"':'';
- my $chgstr = ' onchange="javascript:reorderHelpRoles(this.form,'."'helproles_".$num."_pos'".');"';
- $datatable .= ''.$role.' '.
- '';
- for (my $k=0; $k<=$maxnum; $k++) {
- my $vpos = $k+1;
- my $selstr;
- if ($k == $num) {
- $selstr = ' selected="selected" ';
- }
- $datatable .= ''.$vpos.' ';
- }
- $datatable .= ' '.(' 'x2).
- ' '.
- ' '.
- ''.&mt('Role name').' '.
- &mt('Name shown to users:').
- ' '.
- ' '.
- &helpdeskroles_access($dom,$prefix,$num,$add_class,$current{$role},\@accesstypes,
- $othertitle,$usertypes,$types,\%domhelpdesk).
- ''.
- ''.&mt('Role privileges').&adhocbutton($prefix,$num,'privs','show').' '.
- &Apache::lonuserutils::custom_role_table($crstype,\%full,\%levels,
- \%levelscurrent,$identifier,
- 'LC_hidden',$prefix.$num.'_privs').
- ' ';
- $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);
- my $chgstr = ' onchange="javascript:reorderHelpRoles(this.form,'."'helproles_".$count."_pos'".');"';
- $datatable .= ''.
- ' '."\n".
- '';
- for (my $k=0; $k<$maxnum+1; $k++) {
- my $vpos = $k+1;
- my $selstr;
- if ($k == $maxnum) {
- $selstr = ' selected="selected" ';
- }
- $datatable .= ''.$vpos.' ';
- }
- $datatable .= ' '."\n".
- ' '. &mt('Add').
- ' '.
- ''.&mt('Role name').' '.
- ''.
- &mt('Internal name:').
- ' '.
- ' '.(' 'x4).
- ''.
- &mt('Name shown to users:').
- ' '.
- ' '.
- &helpdeskroles_access($dom,$prefix,$count,'',undef,\@accesstypes,$othertitle,
- $usertypes,$types,\%domhelpdesk).
- ''.&mt('Role privileges').' '.
- &Apache::lonuserutils::custom_role_header($context,$crstype,
- \@templateroles,$newcust).
- &Apache::lonuserutils::custom_role_table('Course',\%full,\%levels,
- \%levelscurrent,$newcust).
- ' '.
- &helpsettings_javascript(\@roles_by_num,$maxnum,$hiddenstr,$formname).
- ' ';
- $count ++;
- $$rowtotal += $count;
- }
- return $datatable;
-}
-
-sub adhocbutton {
- my ($prefix,$num,$field,$visibility) = @_;
- my %lt = &Apache::lonlocal::texthash(
- show => 'Show details',
- hide => 'Hide details',
- );
- return ''.(' 'x10).
- ' '.(' 'x2).' '.(' 'x2);
-}
-
-sub helpsettings_javascript {
- my ($roles_by_num,$total,$hiddenstr,$formname) = @_;
- return unless(ref($roles_by_num) eq 'ARRAY');
- my %html_js_lt = &Apache::lonlocal::texthash(
- show => 'Show details',
- hide => 'Hide details',
- );
- &html_escape(\%html_js_lt);
- my $jstext = ' var helproles = Array('."'".join("','",@{$roles_by_num})."'".');'."\n";
- return <<"ENDSCRIPT";
-
-
-ENDSCRIPT
-}
+ $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',);
-sub helpdeskroles_access {
- my ($dom,$prefix,$num,$add_class,$current,$accesstypes,$othertitle,
- $usertypes,$types,$domhelpdesk) = @_;
- return unless ((ref($accesstypes) eq 'ARRAY') && (ref($domhelpdesk) eq 'HASH'));
- my %lt = &Apache::lonlocal::texthash(
- 'rou' => 'Role usage',
- 'whi' => 'Which helpdesk personnel may use this role?',
- 'all' => 'All with domain helpdesk or helpdesk assistant role',
- 'dh' => 'All with domain helpdesk role',
- 'da' => 'All with domain helpdesk assistant role',
- 'none' => 'None',
- 'status' => 'Determined based on institutional status',
- 'inc' => 'Include all, but exclude specific personnel',
- 'exc' => 'Exclude all, but include specific personnel',
- );
- my %usecheck = (
- all => ' checked="checked"',
- );
- my %displaydiv = (
- status => 'none',
- inc => 'none',
- exc => 'none',
- priv => 'block',
- );
- my $output;
- if (ref($current) eq 'HASH') {
- if (($current->{'access'} ne '') && ($current->{'access'} ne 'all')) {
- if (grep(/^\Q$current->{access}\E$/,@{$accesstypes})) {
- $usecheck{$current->{access}} = $usecheck{'all'};
- delete($usecheck{'all'});
- if ($current->{access} =~ /^(status|inc|exc)$/) {
- my $access = $1;
- $displaydiv{$access} = 'inline';
- } elsif ($current->{access} eq 'none') {
- $displaydiv{'priv'} = 'none';
- }
- }
- }
- }
- $output = ''.$lt{'rou'}.' '.
- ''.$lt{'whi'}.'
';
- foreach my $access (@{$accesstypes}) {
- $output .= ' '.
- $lt{$access}.' ';
- if ($access eq 'status') {
- $output .= '
'.
- &Apache::lonuserutils::adhoc_status_types($dom,$prefix,$num,$current->{$access},
- $othertitle,$usertypes,$types).
- '
';
- } elsif (($access eq 'inc') && (keys(%{$domhelpdesk}) > 0)) {
- $output .= ''.
- &Apache::lonuserutils::adhoc_staff($access,$prefix,$num,$current->{$access},$domhelpdesk).
- '
';
- } elsif (($access eq 'exc') && (keys(%{$domhelpdesk}) > 0)) {
- $output .= ''.
- &Apache::lonuserutils::adhoc_staff($access,$prefix,$num,$current->{$access},$domhelpdesk).
- '
';
- }
- $output .= '';
- }
- $output .= ' ';
- return $output;
+ ($datatable,$itemcount) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked,
+ \%choices,$itemcount);
+ return $datatable;
}
sub radiobutton_prefs {
my ($settings,$toggles,$defaultchecked,$choices,$itemcount,$onclick,
- $additional,$align) = @_;
+ $additional) = @_;
return unless ((ref($toggles) eq 'ARRAY') && (ref($defaultchecked) eq 'HASH') &&
(ref($choices) eq 'HASH'));
@@ -3463,14 +2799,8 @@ sub radiobutton_prefs {
$datatable .=
''.
''.$choices->{$item}.
- ' ';
- if ($align eq 'left') {
- $datatable .= '';
- } else {
- $datatable .= ' ';
- }
- $datatable .=
- ''.
+ ' '.
+ ''.
' '.&mt('Yes').
' '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)',
- texengine => 'Default method to display mathematics',
- 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',
);
my %staticdefaults = (
anonsurvey_threshold => 10,
uploadquota => 500,
- postsubmit => 60,
- mysqltables => 172800,
);
if ($position eq 'top') {
- %defaultchecked = (
- 'uselcmath' => 'on',
- 'usejsme' => 'on',
- 'canclone' => 'none',
- );
- @toggles = ('uselcmath','usejsme');
- my $deftex = $Apache::lonnet::deftex;
- if (ref($settings) eq 'HASH') {
- if ($settings->{'texengine'}) {
- if ($settings->{'texengine'} =~ /^(MathJax|mimetex|tth)$/) {
- $deftex = $settings->{'texengine'};
- }
- }
- }
- $css_class = $itemcount%2?' class="LC_odd_row"':'';
- my $mathdisp = ''.
- ''.$choices{'texengine'}.
- ' '.
- ''."\n";
- my %texoptions = (
- MathJax => 'MathJax',
- mimetex => &mt('Convert to Images'),
- tth => &mt('TeX to HTML'),
- );
- foreach my $renderer ('MathJax','mimetex','tth') {
- my $selected = '';
- if ($renderer eq $deftex) {
- $selected = ' selected="selected"';
- }
- $mathdisp .= ''.$texoptions{$renderer}.' '."\n";
- }
- $mathdisp .= ' '."\n";
- $itemcount ++;
+ %defaultchecked = ('canuse_pdfforms' => 'off');
+ @toggles = ('canuse_pdfforms');
($datatable,$itemcount) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked,
- \%choices,$itemcount);
- $datatable = $mathdisp.$datatable;
- $css_class = $itemcount%2?' class="LC_odd_row"':'';
- $datatable .=
- ''.
- ''.$choices{'canclone'}.
- ' ';
- my $currcanclone = 'none';
- my $onclick;
- my @cloneoptions = ('none','domain');
- my %clonetitles = (
- none => 'No additional course requesters',
- domain => "Any course requester in course's domain",
- instcode => 'Course requests for official courses ...',
- );
- my (%codedefaults,@code_order,@posscodes);
- if (&Apache::lonnet::auto_instcode_defaults($dom,\%codedefaults,
- \@code_order) eq 'ok') {
- if (@code_order > 0) {
- push(@cloneoptions,'instcode');
- $onclick = ' onclick="toggleDisplay(this.form,'."'cloneinstcode'".');"';
- }
- }
- if (ref($settings) eq 'HASH') {
- if ($settings->{'canclone'}) {
- if (ref($settings->{'canclone'}) eq 'HASH') {
- if (ref($settings->{'canclone'}{'instcode'}) eq 'ARRAY') {
- if (@code_order > 0) {
- $currcanclone = 'instcode';
- @posscodes = @{$settings->{'canclone'}{'instcode'}};
- }
- }
- } elsif ($settings->{'canclone'} eq 'domain') {
- $currcanclone = $settings->{'canclone'};
- }
- }
- }
- foreach my $option (@cloneoptions) {
- my ($checked,$additional);
- if ($currcanclone eq $option) {
- $checked = ' checked="checked"';
- }
- if ($option eq 'instcode') {
- if (@code_order) {
- my $show = 'none';
- if ($checked) {
- $show = 'block';
- }
- $additional = '
'.
- &mt('Institutional codes for new and cloned course have identical:').
- ' ';
- foreach my $item (@code_order) {
- my $codechk;
- if ($checked) {
- if (grep(/^\Q$item\E$/,@posscodes)) {
- $codechk = ' checked="checked"';
- }
- }
- $additional .= ''.
- ' '.
- $item.' ';
- }
- $additional .= (' 'x2).'('.&mt('check as many as needed').')';
- }
- }
- $datatable .=
- ' '.$clonetitles{$option}.
- ' '.$additional.' ';
- }
- $datatable .= ' '.
- ' ';
- $itemcount ++;
+ \%choices,$itemcount);
} else {
$css_class = $itemcount%2 ? ' class="LC_odd_row"' : '';
- my ($currdefresponder,%defcredits,%curruploadquota,%deftimeout,%currmysql);
+ my ($currdefresponder,$def_official_credits,$def_unofficial_credits,$def_textbook_credits,
+ %curruploadquota);
my $currusecredits = 0;
- my $postsubmitclient = 1;
my @types = ('official','unofficial','community','textbook');
if (ref($settings) eq 'HASH') {
$currdefresponder = $settings->{'anonsurvey_threshold'};
@@ -3626,51 +2846,14 @@ sub print_coursedefaults {
}
}
if (ref($settings->{'coursecredits'}) eq 'HASH') {
- foreach my $type (@types) {
- next if ($type eq 'community');
- $defcredits{$type} = $settings->{'coursecredits'}->{$type};
- if ($defcredits{$type} ne '') {
- $currusecredits = 1;
- }
- }
- }
- if (ref($settings->{'postsubmit'}) eq 'HASH') {
- if ($settings->{'postsubmit'}->{'client'} eq 'off') {
- $postsubmitclient = 0;
- foreach my $type (@types) {
- $deftimeout{$type} = $staticdefaults{'postsubmit'};
- }
- } else {
- foreach my $type (@types) {
- if (ref($settings->{'postsubmit'}->{'timeout'}) eq 'HASH') {
- if ($settings->{'postsubmit'}->{'timeout'}->{$type} =~ /^\d+$/) {
- $deftimeout{$type} = $settings->{'postsubmit'}->{'timeout'}->{$type};
- } else {
- $deftimeout{$type} = $staticdefaults{'postsubmit'};
- }
- } else {
- $deftimeout{$type} = $staticdefaults{'postsubmit'};
- }
- }
- }
- } else {
- foreach my $type (@types) {
- $deftimeout{$type} = $staticdefaults{'postsubmit'};
+ $def_official_credits = $settings->{'coursecredits'}->{'official'};
+ $def_unofficial_credits = $settings->{'coursecredits'}->{'unofficial'};
+ $def_textbook_credits = $settings->{'coursecredits'}->{'textbook'};
+ if (($def_official_credits ne '') || ($def_unofficial_credits ne '') ||
+ ($def_textbook_credits ne '')) {
+ $currusecredits = 1;
}
}
- 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'};
- }
}
if (!$currdefresponder) {
$currdefresponder = $staticdefaults{'anonsurvey_threshold'};
@@ -3710,14 +2893,21 @@ sub print_coursedefaults {
$display = 'block';
}
my $additional = ''.
- '
'.&mt('Default credits').' '."\n";
+ ''.
+ &mt('Default credits for official courses [_1]',
+ ' ').
+ ' '.
+ ''.
+ &mt('Default credits for unofficial courses [_1]',
+ ' ').
+ ' '.
+ ''.
+ &mt('Default credits for textbook courses [_1]',
+ ' ').
+ ' '."\n";
%defaultchecked = ('coursecredits' => 'off');
@toggles = ('coursecredits');
my $current = {
@@ -3725,46 +2915,9 @@ sub print_coursedefaults {
};
(my $table,$itemcount) =
&radiobutton_prefs($current,\@toggles,\%defaultchecked,
- \%choices,$itemcount,$onclick,$additional,'left');
+ \%choices,$itemcount,$onclick,$additional);
$datatable .= $table;
- $onclick = "toggleDisplay(this.form,'studentsubmission');";
- my $display = 'none';
- if ($postsubmitclient) {
- $display = 'block';
- }
- $additional = ''.
- &mt('Number of seconds submit is disabled').'
'.
- '
'.&mt('Enter 0 to remain disabled until page reload.').' '.
- '
'."\n";
- %defaultchecked = ('postsubmit' => 'on');
- @toggles = ('postsubmit');
- $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;
@@ -3958,7 +3111,7 @@ sub print_validation_rows {
' ';
}
} elsif ($item eq 'markup') {
- $datatable .= ' ';
$rownum ++;
}
- } elsif ($position eq 'middle') {
- my @items = ('intauth_cost','intauth_check','intauth_switch');
- my %defaults;
- if (ref($settings) eq 'HASH') {
- %defaults = %{$settings};
- if ($defaults{'intauth_cost'} !~ /^\d+$/) {
- $defaults{'intauth_cost'} = 10;
- }
- if ($defaults{'intauth_check'} !~ /^(0|1|2)$/) {
- $defaults{'intauth_check'} = 0;
- }
- if ($defaults{'intauth_switch'} !~ /^(0|1|2)$/) {
- $defaults{'intauth_switch'} = 0;
- }
- } else {
- %defaults = (
- 'intauth_cost' => 10,
- 'intauth_check' => 0,
- 'intauth_switch' => 0,
- );
- }
- foreach my $item (@items) {
- if ($rownum%2) {
- $css_class = '';
- } else {
- $css_class = ' class="LC_odd_row" ';
- }
- $datatable .= ''.
- ''.$titles->{$item}.
- ' ';
- if ($item eq 'intauth_switch') {
- my @options = (0,1,2);
- my %optiondesc = &Apache::lonlocal::texthash (
- 0 => 'No',
- 1 => 'Yes',
- 2 => 'Yes, and copy existing passwd file to passwd.bak file',
- );
- $datatable .= '';
- } elsif ($item eq 'intauth_check') {
- my @options = (0,1,2);
- my %optiondesc = &Apache::lonlocal::texthash (
- 0 => 'No',
- 1 => 'Yes, allow login then update passwd file using default cost (if higher)',
- 2 => 'Yes, disallow login if stored cost is less than domain default',
- );
- $datatable .= '';
- } else {
- $datatable .= ' ';
- }
- $datatable .= ' ';
- $rownum ++;
- }
} else {
- my %defaults;
+ my (%defaults);
if (ref($settings) eq 'HASH') {
if ((ref($settings->{'inststatusorder'}) eq 'ARRAY') && (ref($settings->{'inststatustypes'}) eq 'HASH') &&
(ref($settings->{'inststatusguest'}) eq 'ARRAY')) {
@@ -5646,7 +4637,7 @@ sub print_defaults {
$datatable .= ''.$vpos.' ';
}
$datatable .= ' '.&mt('Internal ID:').
- ' '.
+ ' '.
' '.&mt('(new)').
''.
&mt('Name displayed:').
@@ -5685,9 +4676,6 @@ sub defaults_titles {
'timezone_def' => 'Default timezone',
'datelocale_def' => 'Default locale for dates',
'portal_def' => 'Portal/Default URL',
- 'intauth_cost' => 'Encryption cost for bcrypt (positive integer)',
- 'intauth_check' => 'Check bcrypt cost if authenticated',
- 'intauth_switch' => 'Existing crypt-based switched to bcrypt on authentication',
);
if ($dom) {
my $uprimary_id = &Apache::lonnet::domain($dom,'primary');
@@ -5917,7 +4905,7 @@ sub print_coursecategories {
' '.$lt{$type}.' ';
}
- $datatable .= ' ';
+ $datatable .= '';
$itemcount ++;
}
$$rowtotal += $itemcount;
@@ -6128,7 +5116,7 @@ sub print_coursecategories {
$datatable .= &initialize_categories($itemcount);
}
} else {
- $datatable .= ''.$hdritem->{'header'}->[1]->{'col2'}.' '
+ $datatable .= ''.$hdritem->{'header'}->[1]->{'col2'}.' '
.&initialize_categories($itemcount);
}
$$rowtotal += $itemcount;
@@ -6176,7 +5164,7 @@ sub print_serverstatuses {
''.
' '.
- ' '."\n";
+ ''."\n";
}
$$rowtotal += $rownum;
return $datatable;
@@ -6186,40 +5174,12 @@ sub serverstatus_pages {
return ('userstatus','lonstatus','loncron','server-status','codeversions',
'checksums','clusterstatus','metadata_keywords','metadata_harvest',
'takeoffline','takeonline','showenv','toggledebug','ping','domconf',
- 'uniquecodes','diskusage','coursecatalog');
+ 'uniquecodes','diskusage');
}
sub defaults_javascript {
my ($settings) = @_;
- my $intauthcheck = &mt('Warning: disallowing login for an authenticated user if the stored cost is less than the default will require a password reset by/for the user.');
- my $intauthcost = &mt('Warning: bcrypt encryption cost for internal authentication must be an integer.');
- &js_escape(\$intauthcheck);
- &js_escape(\$intauthcost);
- my $intauthjs = <<"ENDSCRIPT";
-
-function warnIntAuth(field) {
- if (field.name == 'intauth_check') {
- if (field.value == '2') {
- alert('$intauthcheck');
- }
- }
- if (field.name == 'intauth_cost') {
- field.value.replace(/\s/g,'');
- if (field.value != '') {
- var regexdigit=/^\\d+\$/;
- if (!regexdigit.test(field.value)) {
- alert('$intauthcost');
- }
- }
- }
- return;
-}
-
-ENDSCRIPT
-
- if (ref($settings) ne 'HASH') {
- return &Apache::lonhtmlcommon::scripttag($intauthjs);
- }
+ 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 '') {
@@ -6273,14 +5233,10 @@ $jstext
return;
}
-$intauthjs
-
// ]]>
ENDSCRIPT
- } else {
- return &Apache::lonhtmlcommon::scripttag($intauthjs);
}
}
@@ -6308,10 +5264,7 @@ sub coursecategories_javascript {
}
my $instcode_reserved = &mt('The name: [_1] is a reserved category.','"instcode"');
my $communities_reserved = &mt('The name: [_1] is a reserved category.','"communities"');
- my $choose_again = "\n".&mt('Please use a different name for the new top level category.');
- &js_escape(\$instcode_reserved);
- &js_escape(\$communities_reserved);
- &js_escape(\$choose_again);
+ my $choose_again = '\\n'.&mt('Please use a different name for the new top level category.');
$output = <<"ENDSCRIPT";