version 1.160.6.30, 2013/12/27 16:40:08
|
version 1.216, 2013/12/24 19:15:10
|
Line 211 sub handler {
|
Line 211 sub handler {
|
'quotas','autoenroll','autoupdate','autocreate', |
'quotas','autoenroll','autoupdate','autocreate', |
'directorysrch','usercreation','usermodification', |
'directorysrch','usercreation','usermodification', |
'contacts','defaults','scantron','coursecategories', |
'contacts','defaults','scantron','coursecategories', |
'serverstatuses','requestcourses','coursedefaults', |
'serverstatuses','requestcourses','helpsettings', |
'usersessions','loadbalancing','requestauthor'],$dom); |
'coursedefaults','usersessions','loadbalancing', |
|
'requestauthor'],$dom); |
my @prefs_order = ('rolecolors','login','defaults','quotas','autoenroll', |
my @prefs_order = ('rolecolors','login','defaults','quotas','autoenroll', |
'autoupdate','autocreate','directorysrch','contacts', |
'autoupdate','autocreate','directorysrch','contacts', |
'usercreation','usermodification','scantron', |
'usercreation','usermodification','scantron', |
'requestcourses','requestauthor','coursecategories', |
'requestcourses','requestauthor','coursecategories', |
'serverstatuses','coursedefaults','usersessions'); |
'serverstatuses','helpsettings', |
|
'coursedefaults','usersessions'); |
my %existing; |
my %existing; |
if (ref($domconfig{'loadbalancing'}) eq 'HASH') { |
if (ref($domconfig{'loadbalancing'}) eq 'HASH') { |
%existing = %{$domconfig{'loadbalancing'}}; |
%existing = %{$domconfig{'loadbalancing'}}; |
Line 356 sub handler {
|
Line 358 sub handler {
|
col3 => 'Specific IPs', |
col3 => 'Specific IPs', |
}], |
}], |
}, |
}, |
'coursedefaults' => |
'helpsettings' => |
|
{text => 'Help page settings', |
|
help => 'Domain_Configuration_Help_Settings', |
|
header => [{col1 => 'Help Settings (logged-in users)', |
|
col2 => 'Value'}], |
|
}, |
|
'coursedefaults' => |
{text => 'Course/Community defaults', |
{text => 'Course/Community defaults', |
help => 'Domain_Configuration_Course_Defaults', |
help => 'Domain_Configuration_Course_Defaults', |
header => [{col1 => 'Defaults which can be overridden for each course by a DC', |
header => [{col1 => 'Defaults which can be overridden in each course by a CC', |
|
col2 => 'Value',}, |
|
{col1 => 'Defaults which can be overridden for each course by a DC', |
col2 => 'Value',},], |
col2 => 'Value',},], |
}, |
}, |
|
'privacy' => |
|
{text => 'User Privacy', |
|
help => 'Domain_Configuration_User_Privacy', |
|
header => [{col1 => 'Setting', |
|
col2 => 'Value',}], |
|
}, |
'usersessions' => |
'usersessions' => |
{text => 'User session hosting/offloading', |
{text => 'User session hosting/offloading', |
help => 'Domain_Configuration_User_Sessions', |
help => 'Domain_Configuration_User_Sessions', |
Line 538 sub process_changes {
|
Line 554 sub process_changes {
|
$output = &modify_quotas($r,$dom,$action,$lastactref,%domconfig); |
$output = &modify_quotas($r,$dom,$action,$lastactref,%domconfig); |
} elsif ($action eq 'requestauthor') { |
} elsif ($action eq 'requestauthor') { |
$output = &modify_quotas($r,$dom,$action,$lastactref,%domconfig); |
$output = &modify_quotas($r,$dom,$action,$lastactref,%domconfig); |
|
} elsif ($action eq 'helpsettings') { |
|
$output = &modify_helpsettings($r,$dom,$confname,%domconfig); |
} elsif ($action eq 'coursedefaults') { |
} elsif ($action eq 'coursedefaults') { |
$output = &modify_coursedefaults($dom,$lastactref,%domconfig); |
$output = &modify_coursedefaults($dom,$lastactref,%domconfig); |
} elsif ($action eq 'usersessions') { |
} elsif ($action eq 'usersessions') { |
Line 609 sub print_config_box {
|
Line 627 sub print_config_box {
|
$output .= &print_usersessions('top',$dom,$settings,\$rowtotal); |
$output .= &print_usersessions('top',$dom,$settings,\$rowtotal); |
} elsif ($action eq 'rolecolors') { |
} elsif ($action eq 'rolecolors') { |
$output .= &print_rolecolors($phase,'student',$dom,$confname,$settings,\$rowtotal); |
$output .= &print_rolecolors($phase,'student',$dom,$confname,$settings,\$rowtotal); |
|
} elsif ($action eq 'coursedefaults') { |
|
$output .= &print_coursedefaults('top',$dom,$settings,\$rowtotal); |
} |
} |
$output .= ' |
$output .= ' |
</table> |
</table> |
Line 709 sub print_config_box {
|
Line 729 sub print_config_box {
|
<td class="LC_right_item">'.&mt($item->{'header'}->[2]->{'col2'}).'</td> </tr>'. |
<td class="LC_right_item">'.&mt($item->{'header'}->[2]->{'col2'}).'</td> </tr>'. |
&print_usersessions('bottom',$dom,$settings,\$rowtotal); |
&print_usersessions('bottom',$dom,$settings,\$rowtotal); |
$rowtotal ++; |
$rowtotal ++; |
|
} elsif ($action eq 'coursedefaults') { |
|
$output .= &print_coursedefaults('bottom',$dom,$settings,\$rowtotal); |
} elsif ($action eq 'rolecolors') { |
} elsif ($action eq 'rolecolors') { |
$output .= &print_rolecolors($phase,'coordinator',$dom,$confname,$settings,\$rowtotal).' |
$output .= &print_rolecolors($phase,'coordinator',$dom,$confname,$settings,\$rowtotal).' |
</table> |
</table> |
Line 805 sub print_config_box {
|
Line 827 sub print_config_box {
|
$output .= &print_helpsettings($dom,$confname,$settings,\$rowtotal); |
$output .= &print_helpsettings($dom,$confname,$settings,\$rowtotal); |
} elsif ($action eq 'loadbalancing') { |
} elsif ($action eq 'loadbalancing') { |
$output .= &print_loadbalancing($dom,$settings,\$rowtotal); |
$output .= &print_loadbalancing($dom,$settings,\$rowtotal); |
} elsif ($action eq 'coursedefaults') { |
|
$output .= &print_coursedefaults('bottom',$dom,$settings,\$rowtotal); |
|
} |
} |
} |
} |
$output .= ' |
$output .= ' |
Line 2002 sub print_requestmail {
|
Line 2022 sub print_requestmail {
|
sub print_studentcode { |
sub print_studentcode { |
my ($settings,$rowtotal) = @_; |
my ($settings,$rowtotal) = @_; |
my $rownum = 0; |
my $rownum = 0; |
my ($output,%current); |
my %choices; |
my @crstypes = ('official','unofficial','community','textbook'); |
$choices{'uniquecode'} = &mt('Generate unique six character code as course identifier?'); |
if (ref($settings->{'uniquecode'}) eq 'HASH') { |
my @toggles = ('uniquecode'); |
foreach my $type (@crstypes) { |
my %defaultchecked = ('uniquecode' => 'off'); |
$current{$type} = $settings->{'uniquecode'}{$type}; |
(my $reports,$rownum) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked, |
} |
\%choices,$rownum); |
} |
$$rowtotal += $rownum; |
$output .= '<tr>'. |
return $reports; |
'<td class="LC_left_item">'.&mt('Generate unique six character code as course identifier?').'</td>'. |
|
'<td class="LC_left_item">'; |
|
foreach my $type (@crstypes) { |
|
my $check = ' '; |
|
if ($current{$type}) { |
|
$check = ' checked="checked" '; |
|
} |
|
$output .= '<span class="LC_nobreak"><label>'. |
|
'<input type="checkbox" name="uniquecode" value="'.$type.'"'.$check.'/>'. |
|
&mt($type).'</label></span>'.(' 'x2).' '; |
|
} |
|
$output .= '</td></tr>'; |
|
$$rowtotal ++; |
|
return $output; |
|
} |
} |
|
|
sub print_textbookcourses { |
sub print_textbookcourses { |
Line 2048 sub print_textbookcourses {
|
Line 2054 sub print_textbookcourses {
|
my $confname = $dom.'-domainconfig'; |
my $confname = $dom.'-domainconfig'; |
my $switchserver = &check_switchserver($dom,$confname); |
my $switchserver = &check_switchserver($dom,$confname); |
my $maxnum = scalar(keys(%ordered)); |
my $maxnum = scalar(keys(%ordered)); |
my $datatable = &textbookcourses_javascript(\%ordered); |
my $datatable; |
if (keys(%ordered)) { |
if (keys(%ordered)) { |
my @items = sort { $a <=> $b } keys(%ordered); |
my @items = sort { $a <=> $b } keys(%ordered); |
for (my $i=0; $i<@items; $i++) { |
for (my $i=0; $i<@items; $i++) { |
Line 2068 sub print_textbookcourses {
|
Line 2074 sub print_textbookcourses {
|
$imgsrc = '<img src="'.$imagethumb.'" alt="'.&mt('Textbook image').'" />'; |
$imgsrc = '<img src="'.$imagethumb.'" alt="'.&mt('Textbook image').'" />'; |
} |
} |
} |
} |
my $chgstr = ' onchange="javascript:reorderBooks(this.form,'."'$key'".');"'; |
my $chgstr = ' onchange="javascript:reorderBooks(this.form,'."'','$key','$i'".');"'; |
$datatable .= '<tr '.$css_class.'><td><span class="LC_nobreak">' |
$datatable .= '<tr '.$css_class.'><td><span class="LC_nobreak">' |
.'<select name="'.$key.'"'.$chgstr.'>'; |
.'<select name="'.$key.'"'.$chgstr.'>'; |
for (my $k=0; $k<=$maxnum; $k++) { |
for (my $k=0; $k<=$maxnum; $k++) { |
Line 2109 sub print_textbookcourses {
|
Line 2115 sub print_textbookcourses {
|
} |
} |
} |
} |
$css_class = $itemcount%2?' class="LC_odd_row"':''; |
$css_class = $itemcount%2?' class="LC_odd_row"':''; |
my $chgstr = ' onchange="javascript:reorderBooks(this.form,'."'addbook_pos'".');"'; |
my $chgstr = ' onchange="javascript:reorderBooks(this.form,'."'','addbook_pos','$maxnum'".');"'; |
$datatable .= '<tr '.$css_class.'><td><span class="LC_nobreak">'."\n". |
$datatable .= '<tr '.$css_class.'><td><span class="LC_nobreak">'."\n". |
'<input type="hidden" name="book_maxnum" value="'.$maxnum.'" />'."\n". |
'<input type="hidden" name="book_maxnum" value="'.$maxnum.'" />'."\n". |
'<select name="addbook_pos"'.$chgstr.'>'; |
'<select name="addbook_pos"'.$chgstr.'>'; |
Line 2148 sub print_textbookcourses {
|
Line 2154 sub print_textbookcourses {
|
return $datatable; |
return $datatable; |
} |
} |
|
|
sub textbookcourses_javascript { |
|
my ($textbooks) = @_; |
|
return unless(ref($textbooks) eq 'HASH'); |
|
my $num = scalar(keys(%{$textbooks})); |
|
my @jsarray; |
|
foreach my $item (sort {$a <=> $b } (keys(%{$textbooks}))) { |
|
push(@jsarray,$textbooks->{$item}); |
|
} |
|
my $jstext = ' var textbooks = Array('."'".join("','",@jsarray)."'".');'."\n"; |
|
return <<"ENDSCRIPT"; |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
function reorderBooks(form,item) { |
|
var changedVal; |
|
$jstext |
|
var newpos = 'addbook_pos'; |
|
var current = new Array; |
|
var maxh = 1 + $num; |
|
var current = new Array; |
|
var newitemVal = form.elements[newpos].options[form.elements[newpos].selectedIndex].value; |
|
if (item == newpos) { |
|
changedVal = newitemVal; |
|
} else { |
|
changedVal = form.elements[item].options[form.elements[item].selectedIndex].value; |
|
current[newitemVal] = newpos; |
|
} |
|
for (var i=0; i<textbooks.length; i++) { |
|
var elementName = textbooks[i]; |
|
if (elementName != item) { |
|
if (form.elements[elementName]) { |
|
var currVal = form.elements[elementName].options[form.elements[elementName].selectedIndex].value; |
|
current[currVal] = elementName; |
|
} |
|
} |
|
} |
|
var oldVal; |
|
for (var j=0; j<maxh; j++) { |
|
if (current[j] == undefined) { |
|
oldVal = j; |
|
} |
|
} |
|
if (oldVal < changedVal) { |
|
for (var k=oldVal+1; k<=changedVal ; k++) { |
|
var elementName = current[k]; |
|
form.elements[elementName].selectedIndex = form.elements[elementName].selectedIndex - 1; |
|
} |
|
} else { |
|
for (var k=changedVal; k<oldVal; k++) { |
|
var elementName = current[k]; |
|
form.elements[elementName].selectedIndex = form.elements[elementName].selectedIndex + 1; |
|
} |
|
} |
|
return; |
|
} |
|
|
|
// ]]> |
|
</script> |
|
|
|
ENDSCRIPT |
|
} |
|
|
|
sub print_autoenroll { |
sub print_autoenroll { |
my ($dom,$settings,$rowtotal) = @_; |
my ($dom,$settings,$rowtotal) = @_; |
my $autorun = &Apache::lonnet::auto_run(undef,$dom), |
my $autorun = &Apache::lonnet::auto_run(undef,$dom), |
Line 6103 sub modify_quotas {
|
Line 6048 sub modify_quotas {
|
my @approvalnotify = &Apache::loncommon::get_env_multiple('form.reqapprovalnotify'); |
my @approvalnotify = &Apache::loncommon::get_env_multiple('form.reqapprovalnotify'); |
@approvalnotify = sort(@approvalnotify); |
@approvalnotify = sort(@approvalnotify); |
$confhash{'notify'}{'approval'} = join(',',@approvalnotify); |
$confhash{'notify'}{'approval'} = join(',',@approvalnotify); |
my @crstypes = ('official','unofficial','community','textbook'); |
if ($env{'form.uniquecode'}) { |
my @hasuniquecode = &Apache::loncommon::get_env_multiple('form.uniquecode'); |
$confhash{'uniquecode'} = 1; |
foreach my $type (@hasuniquecode) { |
} else { |
if (grep(/^\Q$type\E$/,@crstypes)) { |
$confhash{'uniquecode'} = ''; |
$confhash{'uniquecode'}{$type} = 1; |
|
} |
|
} |
} |
my ($newbook,@allpos); |
my ($newbook,@allpos); |
if ($context eq 'requestcourses') { |
if ($context eq 'requestcourses') { |
Line 6143 sub modify_quotas {
|
Line 6086 sub modify_quotas {
|
$changes{'notify'}{'approval'} = 1; |
$changes{'notify'}{'approval'} = 1; |
} |
} |
} |
} |
if (ref($domconfig{$action}{'uniquecode'}) eq 'HASH') { |
if ($domconfig{$action}{'uniquecode'}) { |
if (ref($confhash{'uniquecode'}) eq 'HASH') { |
unless ($confhash{'uniquecode'}) { |
foreach my $crstype (keys(%{$domconfig{$action}{'uniquecode'}})) { |
$changes{'uniquecode'} = 1; |
unless ($confhash{'uniquecode'}{$crstype}) { |
} |
$changes{'uniquecode'} = 1; |
} else { |
} |
if ($confhash{'uniquecode'}) { |
} |
$changes{'uniquecode'} = 1; |
unless ($changes{'uniquecode'}) { |
} |
foreach my $crstype (keys(%{$confhash{'uniquecode'}})) { |
|
unless ($domconfig{$action}{'uniquecode'}{$crstype}) { |
|
$changes{'uniquecode'} = 1; |
|
} |
|
} |
|
} |
|
} else { |
|
$changes{'uniquecode'} = 1; |
|
} |
|
} elsif (ref($confhash{'uniquecode'}) eq 'HASH') { |
|
$changes{'uniquecode'} = 1; |
|
} |
} |
if ($context eq 'requestcourses') { |
if ($context eq 'requestcourses') { |
if (ref($domconfig{$action}{'textbooks'}) eq 'HASH') { |
if (ref($domconfig{$action}{'textbooks'}) eq 'HASH') { |
Line 6223 sub modify_quotas {
|
Line 6155 sub modify_quotas {
|
if ($confhash{'notify'}{'approval'}) { |
if ($confhash{'notify'}{'approval'}) { |
$changes{'notify'}{'approval'} = 1; |
$changes{'notify'}{'approval'} = 1; |
} |
} |
if (ref($confhash{'uniquecode'} eq 'HASH')) { |
if ($confhash{'uniquecode'}) { |
$changes{'uniquecode'} = 1; |
$changes{'uniquecode'} = 1; |
} |
} |
} |
} |
Line 6551 sub modify_quotas {
|
Line 6483 sub modify_quotas {
|
if ($action eq 'requestcourses') { |
if ($action eq 'requestcourses') { |
my @offon = ('off','on'); |
my @offon = ('off','on'); |
if ($changes{'uniquecode'}) { |
if ($changes{'uniquecode'}) { |
if (ref($confhash{'uniquecode'}) eq 'HASH') { |
$resulttext .= '<li>'. |
my $codestr = join(' ',map{ &mt($_); } sort(keys(%{$confhash{'uniquecode'}}))); |
&mt('Generation of six character code as course identifier for distribution to students set to '. |
$resulttext .= '<li>'. |
$offon[$env{'form.uniquecode'}]). |
&mt('Generation of six character code as course identifier for distribution to students set to on for: [_1].','<b>'.$codestr.'</b>'). |
'</li>'; |
'</li>'; |
|
} else { |
|
$resulttext .= '<li>'.&mt('Generation of six character code as course identifier for distribution to students set to off.'). |
|
'</li>'; |
|
} |
|
} |
} |
if (ref($changes{'textbooks'}) eq 'HASH') { |
if (ref($changes{'textbooks'}) eq 'HASH') { |
$resulttext .= '<li>'.&mt('Available textbooks updated').'<ul>'; |
$resulttext .= '<li>'.&mt('Available textbooks updated').'<ul>'; |