version 1.160.6.102.2.3, 2020/02/12 23:06:16
|
version 1.160.6.102.2.11, 2021/03/07 00:32:21
|
Line 349 sub handler {
|
Line 349 sub handler {
|
col2 => 'Value',}, |
col2 => 'Value',}, |
{col1 => 'Recipient(s) for notifications', |
{col1 => 'Recipient(s) for notifications', |
col2 => 'Value',}, |
col2 => 'Value',}, |
|
{col1 => 'Nightly status check e-mail', |
|
col2 => 'Settings',}, |
{col1 => 'Ask helpdesk form settings', |
{col1 => 'Ask helpdesk form settings', |
col2 => 'Value',},], |
col2 => 'Value',},], |
print => \&print_contacts, |
print => \&print_contacts, |
Line 726 sub print_config_box {
|
Line 728 sub print_config_box {
|
$output = |
$output = |
&Apache::lonuserutils::custom_roledefs_js($context,$crstype,$formname,\%full, |
&Apache::lonuserutils::custom_roledefs_js($context,$crstype,$formname,\%full, |
\@templateroles); |
\@templateroles); |
|
} elsif ($action eq 'ltitools') { |
|
$output .= <itools_javascript($settings); |
} |
} |
$output .= |
$output .= |
'<table class="LC_nested_outer"> |
'<table class="LC_nested_outer"> |
Line 823 sub print_config_box {
|
Line 827 sub print_config_box {
|
</tr>'."\n"; |
</tr>'."\n"; |
if ($action eq 'coursecategories') { |
if ($action eq 'coursecategories') { |
$output .= &print_coursecategories('bottom',$dom,$item,$settings,\$rowtotal); |
$output .= &print_coursecategories('bottom',$dom,$item,$settings,\$rowtotal); |
} elsif ($action eq 'passwords') { |
} elsif (($action eq 'contacts') || ($action eq 'passwords')) { |
$output .= $item->{'print'}->('lower',$dom,$confname,$settings,\$rowtotal).' |
if ($action eq 'passwords') { |
|
$output .= $item->{'print'}->('lower',$dom,$confname,$settings,\$rowtotal); |
|
} else { |
|
$output .= $item->{'print'}->('lower',$dom,$settings,\$rowtotal); |
|
} |
|
$output .= ' |
</tr> |
</tr> |
</table> |
</table> |
</td> |
</td> |
Line 834 sub print_config_box {
|
Line 843 sub print_config_box {
|
<table class="LC_nested"> |
<table class="LC_nested"> |
<tr class="LC_info_row"> |
<tr class="LC_info_row"> |
<td class="LC_left_item"'.$colspan.'>'.&mt($item->{'header'}->[3]->{'col1'}).'</td> |
<td class="LC_left_item"'.$colspan.'>'.&mt($item->{'header'}->[3]->{'col1'}).'</td> |
<td class="LC_right_item"'.$colspan.'>'.&mt($item->{'header'}->[3]->{'col2'}).'</td></tr>'."\n". |
<td class="LC_right_item"'.$colspan.'>'.&mt($item->{'header'}->[3]->{'col2'}).'</td></tr>'."\n"; |
$item->{'print'}->('bottom',$dom,$confname,$settings,\$rowtotal).' |
if ($action eq 'passwords') { |
|
$output .= $item->{'print'}->('bottom',$dom,$confname,$settings,\$rowtotal); |
|
} else { |
|
$output .= $item->{'print'}->('bottom',$dom,$settings,\$rowtotal); |
|
} |
|
$output .= ' |
</table> |
</table> |
</td> |
</td> |
</tr> |
</tr> |
Line 2525 ENDSCRIPT
|
Line 2539 ENDSCRIPT
|
|
|
sub ltitools_javascript { |
sub ltitools_javascript { |
my ($settings) = @_; |
my ($settings) = @_; |
return unless(ref($settings) eq 'HASH'); |
my $togglejs = <itools_toggle_js(); |
|
unless (ref($settings) eq 'HASH') { |
|
return $togglejs; |
|
} |
my (%ordered,$total,%jstext); |
my (%ordered,$total,%jstext); |
$total = 0; |
$total = 0; |
foreach my $item (keys(%{$settings})) { |
foreach my $item (keys(%{$settings})) { |
Line 2543 sub ltitools_javascript {
|
Line 2560 sub ltitools_javascript {
|
return <<"ENDSCRIPT"; |
return <<"ENDSCRIPT"; |
<script type="text/javascript"> |
<script type="text/javascript"> |
// <![CDATA[ |
// <![CDATA[ |
function reorderLTI(form,item) { |
function reorderLTITools(form,item) { |
var changedVal; |
var changedVal; |
$jstext |
$jstext |
var newpos = 'ltitools_add_pos'; |
var newpos = 'ltitools_add_pos'; |
Line 2588 $jstext
|
Line 2605 $jstext
|
// ]]> |
// ]]> |
</script> |
</script> |
|
|
|
$togglejs |
|
|
|
ENDSCRIPT |
|
} |
|
|
|
sub ltitools_toggle_js { |
|
return <<"ENDSCRIPT"; |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
|
|
function toggleLTITools(form,setting,item) { |
|
var radioname = ''; |
|
var divid = ''; |
|
if (setting == 'user') { |
|
divid = 'ltitools_'+setting+'_div_'+item; |
|
var checkid = 'ltitools_'+setting+'_field_'+item; |
|
if (document.getElementById(divid)) { |
|
if (document.getElementById(checkid)) { |
|
if (document.getElementById(checkid).checked) { |
|
document.getElementById(divid).style.display = 'inline-block'; |
|
} else { |
|
document.getElementById(divid).style.display = 'none'; |
|
} |
|
} |
|
} |
|
} |
|
return; |
|
} |
|
// ]]> |
|
</script> |
|
|
ENDSCRIPT |
ENDSCRIPT |
} |
} |
|
|
Line 2952 sub print_contacts {
|
Line 3000 sub print_contacts {
|
my $datatable; |
my $datatable; |
my @contacts = ('adminemail','supportemail'); |
my @contacts = ('adminemail','supportemail'); |
my (%checked,%to,%otheremails,%bccemails,%includestr,%includeloc,%currfield, |
my (%checked,%to,%otheremails,%bccemails,%includestr,%includeloc,%currfield, |
$maxsize,$fields,$fieldtitles,$fieldoptions,$possoptions,@mailings); |
$maxsize,$fields,$fieldtitles,$fieldoptions,$possoptions,@mailings,%lonstatus); |
if ($position eq 'top') { |
if ($position eq 'top') { |
if (ref($settings) eq 'HASH') { |
if (ref($settings) eq 'HASH') { |
foreach my $item (@contacts) { |
foreach my $item (@contacts) { |
Line 2967 sub print_contacts {
|
Line 3015 sub print_contacts {
|
foreach my $type (@mailings) { |
foreach my $type (@mailings) { |
$otheremails{$type} = ''; |
$otheremails{$type} = ''; |
} |
} |
|
} elsif ($position eq 'lower') { |
|
if (ref($settings) eq 'HASH') { |
|
if (ref($settings->{'lonstatus'}) eq 'HASH') { |
|
%lonstatus = %{$settings->{'lonstatus'}}; |
|
} |
|
} |
} else { |
} else { |
@mailings = ('helpdeskmail','otherdomsmail'); |
@mailings = ('helpdeskmail','otherdomsmail'); |
foreach my $type (@mailings) { |
foreach my $type (@mailings) { |
Line 2979 sub print_contacts {
|
Line 3033 sub print_contacts {
|
($fields,$fieldtitles,$fieldoptions,$possoptions) = &helpform_fields(); |
($fields,$fieldtitles,$fieldoptions,$possoptions) = &helpform_fields(); |
} |
} |
if (ref($settings) eq 'HASH') { |
if (ref($settings) eq 'HASH') { |
unless ($position eq 'top') { |
unless (($position eq 'top') || ($position eq 'lower')) { |
foreach my $type (@mailings) { |
foreach my $type (@mailings) { |
if (exists($settings->{$type})) { |
if (exists($settings->{$type})) { |
if (ref($settings->{$type}) eq 'HASH') { |
if (ref($settings->{$type}) eq 'HASH') { |
Line 3112 sub print_contacts {
|
Line 3166 sub print_contacts {
|
$datatable .= '</td></tr>'."\n"; |
$datatable .= '</td></tr>'."\n"; |
$rownum ++; |
$rownum ++; |
} |
} |
unless ($position eq 'top') { |
unless (($position eq 'top') || ($position eq 'lower')) { |
foreach my $type (@mailings) { |
foreach my $type (@mailings) { |
$css_class = $rownum%2?' class="LC_odd_row"':''; |
$css_class = $rownum%2?' class="LC_odd_row"':''; |
$datatable .= '<tr'.$css_class.'>'. |
$datatable .= '<tr'.$css_class.'>'. |
Line 3159 sub print_contacts {
|
Line 3213 sub print_contacts {
|
} |
} |
if ($position eq 'middle') { |
if ($position eq 'middle') { |
my %choices; |
my %choices; |
$choices{'reporterrors'} = &mt('E-mail error reports to [_1]', |
my $corelink = &core_link_msu(); |
&Apache::loncommon::modal_link('http://loncapa.org/core.html', |
$choices{'reporterrors'} = &mt('E-mail error reports to [_1]',$corelink); |
&mt('LON-CAPA core group - MSU'),600,500)); |
|
$choices{'reportupdates'} = &mt('E-mail record of completed LON-CAPA updates to [_1]', |
$choices{'reportupdates'} = &mt('E-mail record of completed LON-CAPA updates to [_1]', |
&Apache::loncommon::modal_link('http://loncapa.org/core.html', |
$corelink); |
&mt('LON-CAPA core group - MSU'),600,500)); |
$choices{'reportstatus'} = &mt('E-mail status if errors above threshold to [_1]',$corelink); |
my @toggles = ('reporterrors','reportupdates'); |
my @toggles = ('reporterrors','reportupdates','reportstatus'); |
my %defaultchecked = ('reporterrors' => 'on', |
my %defaultchecked = ('reporterrors' => 'on', |
'reportupdates' => 'on'); |
'reportupdates' => 'on', |
|
'reportstatus' => 'on'); |
(my $reports,$rownum) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked, |
(my $reports,$rownum) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked, |
\%choices,$rownum); |
\%choices,$rownum); |
$datatable .= $reports; |
$datatable .= $reports; |
|
} elsif ($position eq 'lower') { |
|
my (%current,%excluded,%weights); |
|
my ($defaults,$names) = &Apache::loncommon::lon_status_items(); |
|
if ($lonstatus{'threshold'} =~ /^\d+$/) { |
|
$current{'errorthreshold'} = $lonstatus{'threshold'}; |
|
} else { |
|
$current{'errorthreshold'} = $defaults->{'threshold'}; |
|
} |
|
if ($lonstatus{'sysmail'} =~ /^\d+$/) { |
|
$current{'errorsysmail'} = $lonstatus{'sysmail'}; |
|
} else { |
|
$current{'errorsysmail'} = $defaults->{'sysmail'}; |
|
} |
|
if (ref($lonstatus{'weights'}) eq 'HASH') { |
|
foreach my $type ('E','W','N','U') { |
|
if ($lonstatus{'weights'}{$type} =~ /^\d+$/) { |
|
$weights{$type} = $lonstatus{'weights'}{$type}; |
|
} else { |
|
$weights{$type} = $defaults->{$type}; |
|
} |
|
} |
|
} else { |
|
foreach my $type ('E','W','N','U') { |
|
$weights{$type} = $defaults->{$type}; |
|
} |
|
} |
|
if (ref($lonstatus{'excluded'}) eq 'ARRAY') { |
|
if (@{$lonstatus{'excluded'}} > 0) { |
|
map {$excluded{$_} = 1; } @{$lonstatus{'excluded'}}; |
|
} |
|
} |
|
foreach my $item ('errorthreshold','errorsysmail') { |
|
$css_class = $rownum%2?' class="LC_odd_row"':''; |
|
$datatable .= '<tr'.$css_class.'>'. |
|
'<td class="LC_left_item"><span class="LC_nobreak">'. |
|
$titles->{$item}. |
|
'</span></td><td class="LC_left_item">'. |
|
'<input type="text" name="'.$item.'" value="'. |
|
$current{$item}.'" size="5" /></td></tr>'; |
|
$rownum ++; |
|
} |
|
$css_class = $rownum%2?' class="LC_odd_row"':''; |
|
$datatable .= '<tr'.$css_class.'>'. |
|
'<td class="LC_left_item">'. |
|
'<span class="LC_nobreak">'.$titles->{'errorweights'}. |
|
'</span></td><td class="LC_left_item"><table><tr>'; |
|
foreach my $type ('E','W','N','U') { |
|
$datatable .= '<td>'.$names->{$type}.'<br />'. |
|
'<input type="text" name="errorweights_'.$type.'" value="'. |
|
$weights{$type}.'" size="5" /></td>'; |
|
} |
|
$datatable .= '</tr></table></tr>'; |
|
$rownum ++; |
|
$css_class = $rownum%2?' class="LC_odd_row"':''; |
|
$datatable .= '<tr'.$css_class.'><td class="LC_left_item">'. |
|
$titles->{'errorexcluded'}.'</td>'. |
|
'<td class="LC_left_item"><table>'; |
|
my $numinrow = 4; |
|
my @ids = sort(values(%Apache::lonnet::serverhomeIDs)); |
|
for (my $i=0; $i<@ids; $i++) { |
|
my $rem = $i%($numinrow); |
|
if ($rem == 0) { |
|
if ($i > 0) { |
|
$datatable .= '</tr>'; |
|
} |
|
$datatable .= '<tr>'; |
|
} |
|
my $check; |
|
if ($excluded{$ids[$i]}) { |
|
$check = ' checked="checked" '; |
|
} |
|
$datatable .= '<td class="LC_left_item">'. |
|
'<span class="LC_nobreak"><label>'. |
|
'<input type="checkbox" name="errorexcluded" '. |
|
'value="'.$ids[$i].'"'.$check.' />'. |
|
$ids[$i].'</label></span></td>'; |
|
} |
|
my $colsleft = $numinrow - @ids%($numinrow); |
|
if ($colsleft > 1 ) { |
|
$datatable .= '<td colspan="'.$colsleft.'" class="LC_left_item">'. |
|
' </td>'; |
|
} elsif ($colsleft == 1) { |
|
$datatable .= '<td class="LC_left_item"> </td>'; |
|
} |
|
$datatable .= '</tr></table></td></tr>'; |
|
$rownum ++; |
} elsif ($position eq 'bottom') { |
} elsif ($position eq 'bottom') { |
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); |
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); |
my (@posstypes,%usertypeshash); |
my (@posstypes,%usertypeshash); |
Line 3244 sub print_contacts {
|
Line 3384 sub print_contacts {
|
return $datatable; |
return $datatable; |
} |
} |
|
|
|
sub core_link_msu { |
|
return &Apache::loncommon::modal_link('http://loncapa.org/core.html', |
|
&mt('LON-CAPA core group - MSU'),600,500); |
|
} |
|
|
sub overridden_helpdesk { |
sub overridden_helpdesk { |
my ($checked,$otheremails,$bccemails,$includeloc,$includestr,$type,$rowid, |
my ($checked,$otheremails,$bccemails,$includeloc,$includestr,$type,$rowid, |
$typetitle,$css_class,$rowstyle,$contacts,$short_titles) = @_; |
$typetitle,$css_class,$rowstyle,$contacts,$short_titles) = @_; |
Line 3816 sub print_ltitools {
|
Line 3961 sub print_ltitools {
|
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 = <itools_javascript($settings); |
my $datatable; |
my %lt = <itools_names(); |
my %lt = <itools_names(); |
my @courseroles = ('cc','in','ta','ep','st'); |
my @courseroles = ('cc','in','ta','ep','st'); |
my @ltiroles = qw(Instructor ContentDeveloper TeachingAssistant Learner); |
my @ltiroles = qw(Instructor ContentDeveloper TeachingAssistant Learner); |
my @fields = ('fullname','firstname','lastname','email','user','roles'); |
my @fields = ('fullname','firstname','lastname','email','roles','user'); |
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++) { |
$css_class = $itemcount%2?' class="LC_odd_row"':''; |
$css_class = $itemcount%2?' class="LC_odd_row"':''; |
my $item = $ordered{$items[$i]}; |
my $item = $ordered{$items[$i]}; |
my ($title,$key,$secret,$url,$imgsrc,$version); |
my ($title,$key,$secret,$url,$lifetime,$imgsrc,%sigsel); |
if (ref($settings->{$item}) eq 'HASH') { |
if (ref($settings->{$item}) eq 'HASH') { |
$title = $settings->{$item}->{'title'}; |
$title = $settings->{$item}->{'title'}; |
$url = $settings->{$item}->{'url'}; |
$url = $settings->{$item}->{'url'}; |
$key = $settings->{$item}->{'key'}; |
$key = $settings->{$item}->{'key'}; |
$secret = $settings->{$item}->{'secret'}; |
$secret = $settings->{$item}->{'secret'}; |
|
$lifetime = $settings->{$item}->{'lifetime'}; |
my $image = $settings->{$item}->{'image'}; |
my $image = $settings->{$item}->{'image'}; |
if ($image ne '') { |
if ($image ne '') { |
$imgsrc = '<img src="'.$image.'" alt="'.&mt('Tool Provider icon').'" />'; |
$imgsrc = '<img src="'.$image.'" alt="'.&mt('Tool Provider icon').'" />'; |
} |
} |
|
if ($settings->{$item}->{'sigmethod'} eq 'HMAC-256') { |
|
$sigsel{'HMAC-256'} = ' selected="selected"'; |
|
} else { |
|
$sigsel{'HMAC-SHA1'} = ' selected="selected"'; |
|
} |
} |
} |
my $chgstr = ' onchange="javascript:reorderLTI(this.form,'."'ltitools_".$item."'".');"'; |
my $chgstr = ' onchange="javascript:reorderLTITools(this.form,'."'ltitools_".$item."'".');"'; |
$datatable .= '<tr '.$css_class.'><td><span class="LC_nobreak">' |
$datatable .= '<tr '.$css_class.'><td><span class="LC_nobreak">' |
.'<select name="ltitools_'.$item.'"'.$chgstr.'>'; |
.'<select name="ltitools_'.$item.'"'.$chgstr.'>'; |
for (my $k=0; $k<=$maxnum; $k++) { |
for (my $k=0; $k<=$maxnum; $k++) { |
Line 3853 sub print_ltitools {
|
Line 4004 sub print_ltitools {
|
&mt('Delete?').'</label></span></td>'. |
&mt('Delete?').'</label></span></td>'. |
'<td colspan="2">'. |
'<td colspan="2">'. |
'<fieldset><legend>'.&mt('Required settings').'</legend>'. |
'<fieldset><legend>'.&mt('Required settings').'</legend>'. |
'<span class="LC_nobreak">'.$lt{'title'}.':<input type="text" size="30" name="ltitools_title_'.$i.'" value="'.$title.'" /></span> '. |
'<span class="LC_nobreak">'.$lt{'title'}.':<input type="text" size="20" name="ltitools_title_'.$i.'" value="'.$title.'" /></span> '. |
(' 'x2). |
(' 'x2). |
'<span class="LC_nobreak">'.$lt{'version'}.':<select name="ltitools_version_'.$i.'">'. |
'<span class="LC_nobreak">'.$lt{'version'}.':<select name="ltitools_version_'.$i.'">'. |
'<option value="LTI-1p0" selected="selected">1.1</option></select></span> '. |
'<option value="LTI-1p0" selected="selected">1.1</option></select></span> '. |
(' 'x2). |
(' 'x2). |
'<span class="LC_nobreak">'.$lt{'msgtype'}.':<select name="ltitools_msgtype_'.$i.'">'. |
'<span class="LC_nobreak">'.$lt{'msgtype'}.':<select name="ltitools_msgtype_'.$i.'">'. |
'<option value="basic-lti-launch-request" selected="selected">Launch</option></select></span> '. |
'<option value="basic-lti-launch-request" selected="selected">Launch</option></select></span> '. |
|
(' 'x2). |
|
'<span class="LC_nobreak">'.$lt{'sigmethod'}.':<select name="ltitools_sigmethod_'.$i.'">'. |
|
'<option value="HMAC-SHA1"'.$sigsel{'HMAC-SHA1'}.'>HMAC-SHA1</option>'. |
|
'<option value="HMAC-SHA256"'.$sigsel{'HMAC-SHA256'}.'>HMAC-SHA256</option></select></span>'. |
'<br /><br />'. |
'<br /><br />'. |
'<span class="LC_nobreak">'.$lt{'url'}.':<input type="text" size="30" name="ltitools_url_'.$i.'"'. |
'<span class="LC_nobreak">'.$lt{'url'}.':<input type="text" size="40" name="ltitools_url_'.$i.'"'. |
' value="'.$url.'" /></span>'. |
' value="'.$url.'" /></span>'. |
(' 'x2). |
(' 'x2). |
'<span class="LC_nobreak">'.$lt{'key'}. |
'<span class="LC_nobreak">'.$lt{'key'}.':'. |
'<input type="text" size="25" name="ltitools_key_'.$i.'" value="'.$key.'" /></span> '. |
'<input type="text" size="25" name="ltitools_key_'.$i.'" value="'.$key.'" /></span> '. |
(' 'x2). |
(' 'x2). |
|
'<span class="LC_nobreak">'.$lt{'lifetime'}.':'. |
|
'<input type="text" size="5" name="ltitools_lifetime_'.$i.'" value="'.$lifetime.'" /></span> '. |
|
(' 'x2). |
'<span class="LC_nobreak">'.$lt{'secret'}.':'. |
'<span class="LC_nobreak">'.$lt{'secret'}.':'. |
'<input type="password" size="20" name="ltitools_secret_'.$i.'" value="'.$secret.'" />'. |
'<input type="password" size="20" name="ltitools_secret_'.$i.'" value="'.$secret.'" />'. |
'<label><input type="checkbox" name="visible" onclick="if (this.checked) { this.form.ltitools_secret_'.$i.'.type='."'text'".' } else { this.form.ltitools_secret_'.$i.'.type='."'password'".' }" />'.&mt('Visible input').'</label>'. |
'<label><input type="checkbox" name="visible" onclick="if (this.checked) { this.form.ltitools_secret_'.$i.'.type='."'text'".' } else { this.form.ltitools_secret_'.$i.'.type='."'password'".' }" />'.&mt('Visible input').'</label>'. |
Line 3904 sub print_ltitools {
|
Line 4062 sub print_ltitools {
|
'<input type="text" name="ltitools_'.$dimen.'_'.$i.'" size="5" value="'.$currdisp{$dimen}.'" /></label>'. |
'<input type="text" name="ltitools_'.$dimen.'_'.$i.'" size="5" value="'.$currdisp{$dimen}.'" /></label>'. |
(' 'x2); |
(' 'x2); |
} |
} |
$datatable .= '<br />'. |
$datatable .= '</span><br />'. |
'<div class="LC_left_float">'.$lt{'linktext'}.'<br />'. |
'<div class="LC_left_float">'.$lt{'linktext'}.'<br />'. |
'<input type="text" name="ltitools_linktext_'.$i.'" size="25" value="'.$currdisp{'linktext'}.'" /></label></div>'. |
'<input type="text" name="ltitools_linktext_'.$i.'" size="25" value="'.$currdisp{'linktext'}.'" /></div>'. |
'<div class="LC_left_float">'.$lt{'explanation'}.'<br />'. |
'<div class="LC_left_float">'.$lt{'explanation'}.'<br />'. |
'<textarea name="ltitools_explanation_'.$i.'" rows="5" cols="40">'.$currdisp{'explanation'}. |
'<textarea name="ltitools_explanation_'.$i.'" rows="5" cols="40">'.$currdisp{'explanation'}. |
'</textarea></div><div style=""></div><br />'; |
'</textarea></div><div style=""></div>'. |
$datatable .= '<br />'; |
'<div style="padding:0;clear:both;margin:0;border:0"></div>'; |
foreach my $extra ('passback','roster') { |
$datatable .= '<span class="LC_nobreak">'.$lt{'icon'}.': '; |
my $checkedon = ''; |
|
my $checkedoff = ' checked="checked"'; |
|
if ($settings->{$item}->{$extra}) { |
|
$checkedon = $checkedoff; |
|
$checkedoff = ''; |
|
} |
|
$datatable .= $lt{$extra}.' '. |
|
'<label><input type="radio" name="ltitools_'.$extra.'_'.$i.'" value="1"'.$checkedon.' />'. |
|
&mt('Yes').'</label>'.(' 'x2). |
|
'<label><input type="radio" name="ltitools_'.$extra.'_'.$i.'" value="0"'.$checkedoff.' />'. |
|
&mt('No').'</label>'.(' 'x4); |
|
} |
|
$datatable .= '<br /><br /><span class="LC_nobreak">'.$lt{'icon'}.': '; |
|
if ($imgsrc) { |
if ($imgsrc) { |
$datatable .= $imgsrc. |
$datatable .= $imgsrc. |
'<label><input type="checkbox" name="ltitools_image_del"'. |
'<label><input type="checkbox" name="ltitools_image_del"'. |
Line 3939 sub print_ltitools {
|
Line 4084 sub print_ltitools {
|
$datatable .= '<input type="file" name="ltitools_image_'.$i.'" value="" />'; |
$datatable .= '<input type="file" name="ltitools_image_'.$i.'" value="" />'; |
} |
} |
$datatable .= '</span></fieldset>'; |
$datatable .= '</span></fieldset>'; |
my (%checkedfields,%rolemaps); |
my (%checkedfields,%rolemaps,$userincdom); |
if (ref($settings->{$item}) eq 'HASH') { |
if (ref($settings->{$item}) eq 'HASH') { |
if (ref($settings->{$item}->{'fields'}) eq 'HASH') { |
if (ref($settings->{$item}->{'fields'}) eq 'HASH') { |
%checkedfields = %{$settings->{$item}->{'fields'}}; |
%checkedfields = %{$settings->{$item}->{'fields'}}; |
} |
} |
|
$userincdom = $settings->{$item}->{'incdom'}; |
if (ref($settings->{$item}->{'roles'}) eq 'HASH') { |
if (ref($settings->{$item}->{'roles'}) eq 'HASH') { |
%rolemaps = %{$settings->{$item}->{'roles'}}; |
%rolemaps = %{$settings->{$item}->{'roles'}}; |
$checkedfields{'roles'} = 1; |
$checkedfields{'roles'} = 1; |
Line 3951 sub print_ltitools {
|
Line 4097 sub print_ltitools {
|
} |
} |
$datatable .= '<fieldset><legend>'.&mt('User data sent on launch').'</legend>'. |
$datatable .= '<fieldset><legend>'.&mt('User data sent on launch').'</legend>'. |
'<span class="LC_nobreak">'; |
'<span class="LC_nobreak">'; |
|
my $userfieldstyle = 'display:none;'; |
|
my $seluserdom = ''; |
|
my $unseluserdom = ' selected="selected"'; |
foreach my $field (@fields) { |
foreach my $field (@fields) { |
my $checked; |
my ($checked,$onclick,$id,$spacer); |
if ($checkedfields{$field}) { |
if ($checkedfields{$field}) { |
$checked = ' checked="checked"'; |
$checked = ' checked="checked"'; |
} |
} |
|
if ($field eq 'user') { |
|
$id = ' id="ltitools_user_field_'.$i.'"'; |
|
$onclick = ' onclick="toggleLTITools(this.form,'."'$field','$i'".')"'; |
|
if ($checked) { |
|
$userfieldstyle = 'display:inline-block'; |
|
if ($userincdom) { |
|
$seluserdom = $unseluserdom; |
|
$unseluserdom = ''; |
|
} |
|
} |
|
} else { |
|
$spacer = (' ' x2); |
|
} |
$datatable .= '<label>'. |
$datatable .= '<label>'. |
'<input type="checkbox" name="ltitools_fields_'.$i.'" value="'.$field.'"'.$checked.' />'. |
'<input type="checkbox" name="ltitools_fields_'.$i.'" value="'.$field.'"'.$id.$checked.$onclick.' />'. |
$lt{$field}.'</label>'.(' ' x2); |
$lt{$field}.'</label>'.$spacer; |
} |
} |
$datatable .= '</span></fieldset>'. |
$datatable .= '</span>'; |
|
$datatable .= '<div style="'.$userfieldstyle.'" id="ltitools_user_div_'.$i.'">'. |
|
'<span class="LC_nobreak"> : '. |
|
'<select name="ltitools_userincdom_'.$i.'">'. |
|
'<option value="">'.&mt('Select').'</option>'. |
|
'<option value="0"'.$unseluserdom.'>'.&mt('username').'</option>'. |
|
'<option value="1"'.$seluserdom.'>'.&mt('username:domain').'</option>'. |
|
'</select></span></div>'; |
|
$datatable .= '</fieldset>'. |
'<fieldset><legend>'.&mt('Role mapping').'</legend><table><tr>'; |
'<fieldset><legend>'.&mt('Role mapping').'</legend><table><tr>'; |
foreach my $role (@courseroles) { |
foreach my $role (@courseroles) { |
my ($selected,$selectnone); |
my ($selected,$selectnone); |
Line 3991 sub print_ltitools {
|
Line 4161 sub print_ltitools {
|
} |
} |
} |
} |
$datatable .= '<fieldset><legend>'.&mt('Configurable in course').'</legend><span class="LC_nobreak">'; |
$datatable .= '<fieldset><legend>'.&mt('Configurable in course').'</legend><span class="LC_nobreak">'; |
foreach my $item ('label','title','target','linktext','explanation') { |
foreach my $item ('label','title','target','linktext','explanation','append') { |
my $checked; |
my $checked; |
if ($courseconfig{$item}) { |
if ($courseconfig{$item}) { |
$checked = ' checked="checked"'; |
$checked = ' checked="checked"'; |
Line 4024 sub print_ltitools {
|
Line 4194 sub print_ltitools {
|
} |
} |
} |
} |
$css_class = $itemcount%2?' class="LC_odd_row"':''; |
$css_class = $itemcount%2?' class="LC_odd_row"':''; |
my $chgstr = ' onchange="javascript:reorderLTI(this.form,'."'ltitools_add_pos'".');"'; |
my $chgstr = ' onchange="javascript:reorderLTITools(this.form,'."'ltitools_add_pos'".');"'; |
$datatable .= '<tr '.$css_class.'><td><span class="LC_nobreak">'."\n". |
$datatable .= '<tr '.$css_class.'><td><span class="LC_nobreak">'."\n". |
'<input type="hidden" name="ltitools_maxnum" value="'.$maxnum.'" />'."\n". |
'<input type="hidden" name="ltitools_maxnum" value="'.$maxnum.'" />'."\n". |
'<select name="ltitools_add_pos"'.$chgstr.'>'; |
'<select name="ltitools_add_pos"'.$chgstr.'>'; |
Line 4037 sub print_ltitools {
|
Line 4207 sub print_ltitools {
|
$datatable .= '<option value="'.$k.'"'.$selstr.'>'.$vpos.'</option>'; |
$datatable .= '<option value="'.$k.'"'.$selstr.'>'.$vpos.'</option>'; |
} |
} |
$datatable .= '</select> '."\n". |
$datatable .= '</select> '."\n". |
'<input type="checkbox" name="ltitools_add" value="1" />'.&mt('Add').'</td>'."\n". |
'<input type="checkbox" name="ltitools_add" value="1" />'.&mt('Add').'</span></td>'."\n". |
'<td colspan="2">'. |
'<td colspan="2">'. |
'<fieldset><legend>'.&mt('Required settings').'</legend>'. |
'<fieldset><legend>'.&mt('Required settings').'</legend>'. |
'<span class="LC_nobreak">'.$lt{'title'}.':<input type="text" size="30" name="ltitools_add_title" value="" /></span> '."\n". |
'<span class="LC_nobreak">'.$lt{'title'}.':<input type="text" size="20" name="ltitools_add_title" value="" /></span> '."\n". |
(' 'x2). |
(' 'x2). |
'<span class="LC_nobreak">'.$lt{'version'}.':<select name="ltitools_add_version">'. |
'<span class="LC_nobreak">'.$lt{'version'}.':<select name="ltitools_add_version">'. |
'<option value="LTI-1p0" selected="selected">1.1</option></select></span> '."\n". |
'<option value="LTI-1p0" selected="selected">1.1</option></select></span> '."\n". |
(' 'x2). |
(' 'x2). |
'<span class="LC_nobreak">'.$lt{'msgtype'}.':<select name="ltitools_add_msgtype">'. |
'<span class="LC_nobreak">'.$lt{'msgtype'}.':<select name="ltitools_add_msgtype">'. |
'<option value="basic-lti-launch-request" selected="selected">Launch</option></select></span> '. |
'<option value="basic-lti-launch-request" selected="selected">Launch</option></select></span> '. |
|
'<span class="LC_nobreak">'.$lt{'sigmethod'}.':<select name="ltitools_add_sigmethod">'. |
|
'<option value="HMAC-SHA1" selected="selected">HMAC-SHA1</option>'. |
|
'<option value="HMAC-SHA256">HMAC-SHA256</option></select></span>'. |
'<br />'. |
'<br />'. |
'<span class="LC_nobreak">'.$lt{'url'}.':<input type="text" size="30" name="ltitools_add_url" value="" /></span> '."\n". |
'<span class="LC_nobreak">'.$lt{'url'}.':<input type="text" size="40" name="ltitools_add_url" value="" /></span> '."\n". |
(' 'x2). |
(' 'x2). |
'<span class="LC_nobreak">'.$lt{'key'}.':<input type="text" size="25" name="ltitools_add_key" value="" /></span> '."\n". |
'<span class="LC_nobreak">'.$lt{'key'}.':<input type="text" size="25" name="ltitools_add_key" value="" /></span> '."\n". |
(' 'x2). |
(' 'x2). |
|
'<span class="LC_nobreak">'.$lt{'lifetime'}.':<input type="text" size="5" name="ltitools_add_lifetime" value="300" /></span> '."\n". |
|
(' 'x2). |
'<span class="LC_nobreak">'.$lt{'secret'}.':<input type="password" size="20" name="ltitools_add_secret" value="" />'. |
'<span class="LC_nobreak">'.$lt{'secret'}.':<input type="password" size="20" name="ltitools_add_secret" value="" />'. |
'<label><input type="checkbox" name="visible" onclick="if (this.checked) { this.form.ltitools_add_secret.type='."'text'".' } else { this.form.ltitools_add_secret.type='."'password'".' }" />'.&mt('Visible input').'</label></span> '."\n". |
'<label><input type="checkbox" name="visible" onclick="if (this.checked) { this.form.ltitools_add_secret.type='."'text'".' } else { this.form.ltitools_add_secret.type='."'password'".' }" />'.&mt('Visible input').'</label></span> '."\n". |
'</fieldset>'. |
'</fieldset>'. |
Line 4069 sub print_ltitools {
|
Line 4244 sub print_ltitools {
|
'<input type="text" name="ltitools_add_'.$dimen.'" size="5" /></label>'. |
'<input type="text" name="ltitools_add_'.$dimen.'" size="5" /></label>'. |
(' 'x2); |
(' 'x2); |
} |
} |
$datatable .= '<br />'. |
$datatable .= '</span><br />'. |
'<div class="LC_left_float">'.$lt{'linktext'}.'<br />'. |
'<div class="LC_left_float">'.$lt{'linktext'}.'<br />'. |
'<input type="text" name="ltitools_add_linktext" size="5" /></label></div>'. |
'<input type="text" name="ltitools_add_linktext" size="5" /></div>'. |
'<div class="LC_left_float">'.$lt{'explanation'}.'<br />'. |
'<div class="LC_left_float">'.$lt{'explanation'}.'<br />'. |
'<textarea name=ltitools_add_explanation" rows="5" cols="40"></textarea>'. |
'<textarea name="ltitools_add_explanation" rows="5" cols="40"></textarea>'. |
'</div><div style=""></div><br />'; |
'</div><div style=""></div>'. |
foreach my $extra ('passback','roster') { |
'<div style="padding:0;clear:both;margin:0;border:0"></div>'; |
$datatable .= $lt{$extra}.' '. |
$datatable .= '<span class="LC_nobreak">'.$lt{'icon'}.': '. |
'<label><input type="radio" name="ltitools_add_'.$extra.'" value="1" />'. |
|
&mt('Yes').'</label>'.(' 'x2). |
|
'<label><input type="radio" name="ltitools_add_'.$extra.'" value="0" checked="checked" />'. |
|
&mt('No').'</label>'.(' 'x4); |
|
} |
|
$datatable .= '<br /><br /><span class="LC_nobreak">'.$lt{'icon'}.': '. |
|
'('.&mt('if larger than 21x21 pixels, image will be scaled').') '; |
'('.&mt('if larger than 21x21 pixels, image will be scaled').') '; |
if ($switchserver) { |
if ($switchserver) { |
$datatable .= &mt('Upload to library server: [_1]',$switchserver); |
$datatable .= &mt('Upload to library server: [_1]',$switchserver); |
Line 4093 sub print_ltitools {
|
Line 4262 sub print_ltitools {
|
'<fieldset><legend>'.&mt('User data sent on launch').'</legend>'. |
'<fieldset><legend>'.&mt('User data sent on launch').'</legend>'. |
'<span class="LC_nobreak">'; |
'<span class="LC_nobreak">'; |
foreach my $field (@fields) { |
foreach my $field (@fields) { |
|
my ($id,$onclick,$spacer); |
|
if ($field eq 'user') { |
|
$id = ' id="ltitools_user_field_add"'; |
|
$onclick = ' onclick="toggleLTITools(this.form,'."'$field','add'".')"'; |
|
} else { |
|
$spacer = (' ' x2); |
|
} |
$datatable .= '<label>'. |
$datatable .= '<label>'. |
'<input type="checkbox" name="ltitools_add_fields" value="'.$field.'" />'. |
'<input type="checkbox" name="ltitools_add_fields" value="'.$field.'"'.$id.$onclick.' />'. |
$lt{$field}.'</label>'.(' ' x2); |
$lt{$field}.'</label>'.$spacer; |
} |
} |
$datatable .= '</span></fieldset>'. |
$datatable .= '</span>'. |
'<fieldset><legend>'.&mt('Role mapping').'</legend><table><tr>'; |
'<div style="display:none;" id="ltitools_user_div_add">'. |
|
'<span class="LC_nobreak"> : '. |
|
'<select name="ltitools_userincdom_add">'. |
|
'<option value="" selected="selected">'.&mt('Select').'</option>'. |
|
'<option value="0">'.&mt('username').'</option>'. |
|
'<option value="1">'.&mt('username:domain').'</option>'. |
|
'</select></span></div></fieldset>'; |
|
$datatable .= '<fieldset><legend>'.&mt('Role mapping').'</legend><table><tr>'; |
foreach my $role (@courseroles) { |
foreach my $role (@courseroles) { |
my ($checked,$checkednone); |
my ($checked,$checkednone); |
$datatable .= '<td align="center">'. |
$datatable .= '<td align="center">'. |
Line 4112 sub print_ltitools {
|
Line 4295 sub print_ltitools {
|
} |
} |
$datatable .= '</tr></table></fieldset>'. |
$datatable .= '</tr></table></fieldset>'. |
'<fieldset><legend>'.&mt('Configurable in course').'</legend><span class="LC_nobreak">'; |
'<fieldset><legend>'.&mt('Configurable in course').'</legend><span class="LC_nobreak">'; |
foreach my $item ('label','title','target','linktext','explanation') { |
foreach my $item ('label','title','target','linktext','explanation','append') { |
$datatable .= '<label>'. |
$datatable .= '<label>'. |
'<input type="checkbox" name="ltitools_courseconfig" value="'.$item.'" checked="checked" />'. |
'<input type="checkbox" name="ltitools_courseconfig" value="'.$item.'" checked="checked" />'. |
$lt{'crs'.$item}.'</label>'.(' ' x2)."\n"; |
$lt{'crs'.$item}.'</label>'.(' ' x2)."\n"; |
Line 4124 sub print_ltitools {
|
Line 4307 sub print_ltitools {
|
'<label><input type="checkbox" name="ltitools_add_custom" value="1" />'. |
'<label><input type="checkbox" name="ltitools_add_custom" value="1" />'. |
&mt('Add').'</label></span></td><td><input type="text" name="ltitools_add_custom_name" />'. |
&mt('Add').'</label></span></td><td><input type="text" name="ltitools_add_custom_name" />'. |
'</td><td><input type="text" name="ltitools_add_custom_value" /></td></tr>'. |
'</td><td><input type="text" name="ltitools_add_custom_value" /></td></tr>'. |
'</table></fieldset></td></tr>'."\n". |
'</table></fieldset>'."\n". |
'</td>'."\n". |
'</td>'."\n". |
'</tr>'."\n"; |
'</tr>'."\n"; |
$itemcount ++; |
$itemcount ++; |
Line 4136 sub ltitools_names {
|
Line 4319 sub ltitools_names {
|
'title' => 'Title', |
'title' => 'Title', |
'version' => 'Version', |
'version' => 'Version', |
'msgtype' => 'Message Type', |
'msgtype' => 'Message Type', |
|
'sigmethod' => 'Signature Method', |
'url' => 'URL', |
'url' => 'URL', |
'key' => 'Key', |
'key' => 'Key', |
|
'lifetime' => 'Nonce lifetime (s)', |
'secret' => 'Secret', |
'secret' => 'Secret', |
'icon' => 'Icon', |
'icon' => 'Icon', |
'user' => 'Username:domain', |
'user' => 'User', |
'fullname' => 'Full Name', |
'fullname' => 'Full Name', |
'firstname' => 'First Name', |
'firstname' => 'First Name', |
'lastname' => 'Last Name', |
'lastname' => 'Last Name', |
Line 4153 sub ltitools_names {
|
Line 4338 sub ltitools_names {
|
'width' => 'Width', |
'width' => 'Width', |
'linktext' => 'Default Link Text', |
'linktext' => 'Default Link Text', |
'explanation' => 'Default Explanation', |
'explanation' => 'Default Explanation', |
'passback' => 'Tool can return grades:', |
|
'roster' => 'Tool can retrieve roster:', |
|
'crstarget' => 'Display target', |
'crstarget' => 'Display target', |
'crslabel' => 'Course label', |
'crslabel' => 'Course label', |
'crstitle' => 'Course title', |
'crstitle' => 'Course title', |
'crslinktext' => 'Link Text', |
'crslinktext' => 'Link Text', |
'crsexplanation' => 'Explanation', |
'crsexplanation' => 'Explanation', |
|
'crsappend' => 'Provider URL', |
); |
); |
|
|
return %lt; |
return %lt; |
Line 4231 sub print_coursedefaults {
|
Line 4415 sub print_coursedefaults {
|
my $currcanclone = 'none'; |
my $currcanclone = 'none'; |
my $onclick; |
my $onclick; |
my @cloneoptions = ('none','domain'); |
my @cloneoptions = ('none','domain'); |
my %clonetitles = ( |
my %clonetitles = &Apache::lonlocal::texthash ( |
none => 'No additional course requesters', |
none => 'No additional course requesters', |
domain => "Any course requester in course's domain", |
domain => "Any course requester in course's domain", |
instcode => 'Course requests for official courses ...', |
instcode => 'Course requests for official courses ...', |
Line 5113 sub print_usersessions {
|
Line 5297 sub print_usersessions {
|
if ($position eq 'top') { |
if ($position eq 'top') { |
if (keys(%serverhomes) > 1) { |
if (keys(%serverhomes) > 1) { |
my %spareid = ¤t_offloads_to($dom,$settings,\%servers); |
my %spareid = ¤t_offloads_to($dom,$settings,\%servers); |
my $curroffloadnow; |
my ($curroffloadnow,$curroffloadoth); |
if (ref($settings) eq 'HASH') { |
if (ref($settings) eq 'HASH') { |
if (ref($settings->{'offloadnow'}) eq 'HASH') { |
if (ref($settings->{'offloadnow'}) eq 'HASH') { |
$curroffloadnow = $settings->{'offloadnow'}; |
$curroffloadnow = $settings->{'offloadnow'}; |
} |
} |
|
if (ref($settings->{'offloadoth'}) eq 'HASH') { |
|
$curroffloadoth = $settings->{'offloadoth'}; |
|
} |
} |
} |
$datatable .= &spares_row($dom,\%servers,\%spareid,\%serverhomes,\%altids,$curroffloadnow,$rowtotal); |
my $other_insts = scalar(keys(%by_location)); |
|
$datatable .= &spares_row($dom,\%servers,\%spareid,\%serverhomes,\%altids, |
|
$other_insts,$curroffloadnow,$curroffloadoth,$rowtotal); |
} else { |
} else { |
$datatable .= '<tr'.$css_class.'><td colspan="2">'. |
$datatable .= '<tr'.$css_class.'><td colspan="2">'. |
&mt('Nothing to set here, as the cluster to which this domain belongs only contains one server.'); |
&mt('Nothing to set here, as the cluster to which this domain belongs only contains one server.'); |
Line 5369 sub current_offloads_to {
|
Line 5558 sub current_offloads_to {
|
} |
} |
|
|
sub spares_row { |
sub spares_row { |
my ($dom,$servers,$spareid,$serverhomes,$altids,$curroffloadnow,$rowtotal) = @_; |
my ($dom,$servers,$spareid,$serverhomes,$altids,$other_insts, |
|
$curroffloadnow,$curroffloadoth,$rowtotal) = @_; |
my $css_class; |
my $css_class; |
my $numinrow = 4; |
my $numinrow = 4; |
my $itemcount = 1; |
my $itemcount = 1; |
Line 5389 sub spares_row {
|
Line 5579 sub spares_row {
|
} |
} |
} |
} |
next unless (ref($spareid->{$server}) eq 'HASH'); |
next unless (ref($spareid->{$server}) eq 'HASH'); |
my $checkednow; |
my ($checkednow,$checkedoth); |
if (ref($curroffloadnow) eq 'HASH') { |
if (ref($curroffloadnow) eq 'HASH') { |
if ($curroffloadnow->{$server}) { |
if ($curroffloadnow->{$server}) { |
$checkednow = ' checked="checked"'; |
$checkednow = ' checked="checked"'; |
} |
} |
} |
} |
|
if (ref($curroffloadoth) eq 'HASH') { |
|
if ($curroffloadoth->{$server}) { |
|
$checkedoth = ' checked="checked"'; |
|
} |
|
} |
$css_class = $itemcount%2 ? ' class="LC_odd_row"' : ''; |
$css_class = $itemcount%2 ? ' class="LC_odd_row"' : ''; |
$datatable .= '<tr'.$css_class.'> |
$datatable .= '<tr'.$css_class.'> |
<td rowspan="2"> |
<td rowspan="2"> |
Line 5403 sub spares_row {
|
Line 5598 sub spares_row {
|
,'<b>'.$server.'</b>').'</span><br />'. |
,'<b>'.$server.'</b>').'</span><br />'. |
'<span class="LC_nobreak">'."\n". |
'<span class="LC_nobreak">'."\n". |
'<label><input type="checkbox" name="offloadnow" value="'.$server.'"'.$checkednow.' />'. |
'<label><input type="checkbox" name="offloadnow" value="'.$server.'"'.$checkednow.' />'. |
' '.&mt('Switch active users on next access').'</label></span>'. |
' '.&mt('Switch any active user on next access').'</label></span>'. |
|
"\n"; |
|
if ($other_insts) { |
|
$datatable .= '<br />'. |
|
'<span class="LC_nobreak">'."\n". |
|
'<label><input type="checkbox" name="offloadoth" value="'.$server.'"'.$checkedoth.' />'. |
|
' '.&mt('Switch other institutions on next access').'</label></span>'. |
"\n"; |
"\n"; |
|
} |
my (%current,%canselect); |
my (%current,%canselect); |
my @choices = |
my @choices = |
&possible_newspares($server,$spareid->{$server},$serverhomes,$altids); |
&possible_newspares($server,$spareid->{$server},$serverhomes,$altids); |
Line 5923 sub contact_titles {
|
Line 6125 sub contact_titles {
|
'updatesmail' => 'E-mail from nightly check of LON-CAPA module integrity/updates', |
'updatesmail' => 'E-mail from nightly check of LON-CAPA module integrity/updates', |
'idconflictsmail' => 'E-mail from bi-nightly check for multiple users sharing same student/employee ID', |
'idconflictsmail' => 'E-mail from bi-nightly check for multiple users sharing same student/employee ID', |
'hostipmail' => 'E-mail from nightly check of hostname/IP network changes', |
'hostipmail' => 'E-mail from nightly check of hostname/IP network changes', |
|
'errorthreshold' => 'Error count threshold for status e-mail to admin(s)', |
|
'errorsysmail' => 'Error count threshold for e-mail to developer group', |
|
'errorweights' => 'Weights used to compute error count', |
|
'errorexcluded' => 'Servers with unsent updates excluded from count', |
); |
); |
my %short_titles = &Apache::lonlocal::texthash ( |
my %short_titles = &Apache::lonlocal::texthash ( |
adminemail => 'Admin E-mail address', |
adminemail => 'Admin E-mail address', |
Line 6965 sub print_defaults {
|
Line 7171 sub print_defaults {
|
$datatable .= '</select> '.&mt('Internal ID:').' <b>'.$item.'</b> '. |
$datatable .= '</select> '.&mt('Internal ID:').' <b>'.$item.'</b> '. |
'<input type="checkbox" name="inststatus_delete" value="'.$item.'" />'. |
'<input type="checkbox" name="inststatus_delete" value="'.$item.'" />'. |
&mt('delete').'</span></td>'. |
&mt('delete').'</span></td>'. |
'<td class="LC_left_item"><span class="LC_nobreak">'.&mt('Name displayed:'). |
'<td class="LC_left_item"><span class="LC_nobreak">'.&mt('Name displayed').':'. |
'<input type="text" size="20" name="inststatus_title_'.$item.'" value="'.$title.'" />'. |
'<input type="text" size="20" name="inststatus_title_'.$item.'" value="'.$title.'" />'. |
'</span></td></tr>'; |
'</span></td></tr>'; |
} |
} |
Line 6985 sub print_defaults {
|
Line 7191 sub print_defaults {
|
'<input type="text" size="10" name="addinststatus" value="" />'. |
'<input type="text" size="10" name="addinststatus" value="" />'. |
' '.&mt('(new)'). |
' '.&mt('(new)'). |
'</span></td><td class="LC_left_item"><span class="LC_nobreak">'. |
'</span></td><td class="LC_left_item"><span class="LC_nobreak">'. |
&mt('Name displayed:'). |
&mt('Name displayed').':'. |
'<input type="text" size="20" name="addinststatus_title" value="" /></span></td>'. |
'<input type="text" size="20" name="addinststatus_title" value="" /></span></td>'. |
'</tr>'."\n"; |
'</tr>'."\n"; |
$rownum ++; |
$rownum ++; |
Line 7955 ENDSCRIPT
|
Line 8161 ENDSCRIPT
|
sub initialize_categories { |
sub initialize_categories { |
my ($itemcount) = @_; |
my ($itemcount) = @_; |
my ($datatable,$css_class,$chgstr); |
my ($datatable,$css_class,$chgstr); |
my %default_names = ( |
my %default_names = &Apache::lonlocal::texthash ( |
instcode => 'Official courses (with institutional codes)', |
instcode => 'Official courses (with institutional codes)', |
communities => 'Communities', |
communities => 'Communities', |
); |
); |
Line 10368 sub modify_ltitools {
|
Line 10574 sub modify_ltitools {
|
$allpos[$position] = $newid; |
$allpos[$position] = $newid; |
} |
} |
$changes{$newid} = 1; |
$changes{$newid} = 1; |
foreach my $item ('title','url','key','secret') { |
foreach my $item ('title','url','key','secret','lifetime') { |
$env{'form.ltitools_add_'.$item} =~ s/(`)/'/g; |
$env{'form.ltitools_add_'.$item} =~ s/(`)/'/g; |
|
if ($item eq 'lifetime') { |
|
$env{'form.ltitools_add_'.$item} =~ s/[^\d.]//g; |
|
} |
if ($env{'form.ltitools_add_'.$item}) { |
if ($env{'form.ltitools_add_'.$item}) { |
if (($item eq 'key') || ($item eq 'secret')) { |
if (($item eq 'key') || ($item eq 'secret')) { |
$encconfig{$newid}{$item} = $env{'form.ltitools_add_'.$item}; |
$encconfig{$newid}{$item} = $env{'form.ltitools_add_'.$item}; |
Line 10384 sub modify_ltitools {
|
Line 10593 sub modify_ltitools {
|
if ($env{'form.ltitools_add_msgtype'} eq 'basic-lti-launch-request') { |
if ($env{'form.ltitools_add_msgtype'} eq 'basic-lti-launch-request') { |
$confhash{$newid}{'msgtype'} = $env{'form.ltitools_add_msgtype'}; |
$confhash{$newid}{'msgtype'} = $env{'form.ltitools_add_msgtype'}; |
} |
} |
|
if ($env{'form.ltitools_add_sigmethod'} eq 'HMAC-SHA256') { |
|
$confhash{$newid}{'sigmethod'} = $env{'form.ltitools_add_sigmethod'}; |
|
} else { |
|
$confhash{$newid}{'sigmethod'} = 'HMAC-SHA1'; |
|
} |
foreach my $item ('width','height','linktext','explanation') { |
foreach my $item ('width','height','linktext','explanation') { |
$env{'form.ltitools_add_'.$item} =~ s/^\s+//; |
$env{'form.ltitools_add_'.$item} =~ s/^\s+//; |
$env{'form.ltitools_add_'.$item} =~ s/\s+$//; |
$env{'form.ltitools_add_'.$item} =~ s/\s+$//; |
Line 10404 sub modify_ltitools {
|
Line 10618 sub modify_ltitools {
|
} else { |
} else { |
$confhash{$newid}{'display'}{'target'} = 'iframe'; |
$confhash{$newid}{'display'}{'target'} = 'iframe'; |
} |
} |
foreach my $item ('passback','roster') { |
|
if ($env{'form.ltitools_add_'.$item}) { |
|
$confhash{$newid}{$item} = 1; |
|
} |
|
} |
|
if ($env{'form.ltitools_add_image.filename'} ne '') { |
if ($env{'form.ltitools_add_image.filename'} ne '') { |
my ($imageurl,$error) = |
my ($imageurl,$error) = |
&process_ltitools_image($r,$dom,$confname,'ltitools_add_image',$newid, |
&process_ltitools_image($r,$dom,$confname,'ltitools_add_image',$newid, |
Line 10439 sub modify_ltitools {
|
Line 10648 sub modify_ltitools {
|
} |
} |
} |
} |
} |
} |
|
if (ref($confhash{$newid}{'fields'}) eq 'HASH') { |
|
if ($confhash{$newid}{'fields'}{'user'}) { |
|
if ($env{'form.ltitools_userincdom_add'}) { |
|
$confhash{$newid}{'incdom'} = 1; |
|
} |
|
} |
|
} |
my @courseconfig = &Apache::loncommon::get_env_multiple('form.ltitools_courseconfig'); |
my @courseconfig = &Apache::loncommon::get_env_multiple('form.ltitools_courseconfig'); |
foreach my $item (@courseconfig) { |
foreach my $item (@courseconfig) { |
$confhash{$newid}{'crsconf'}{$item} = 1; |
$confhash{$newid}{'crsconf'}{$item} = 1; |
Line 10485 sub modify_ltitools {
|
Line 10701 sub modify_ltitools {
|
} else { |
} else { |
my $newpos = $env{'form.ltitools_'.$itemid}; |
my $newpos = $env{'form.ltitools_'.$itemid}; |
$newpos =~ s/\D+//g; |
$newpos =~ s/\D+//g; |
foreach my $item ('title','url') { |
foreach my $item ('title','url','lifetime') { |
$confhash{$itemid}{$item} = $env{'form.ltitools_'.$item.'_'.$i}; |
$confhash{$itemid}{$item} = $env{'form.ltitools_'.$item.'_'.$i}; |
if ($domconfig{$action}{$itemid}{$item} ne $confhash{$itemid}{$item}) { |
if ($domconfig{$action}{$itemid}{$item} ne $confhash{$itemid}{$item}) { |
$changes{$itemid} = 1; |
$changes{$itemid} = 1; |
Line 10503 sub modify_ltitools {
|
Line 10719 sub modify_ltitools {
|
if ($env{'form.ltitools_msgtype_'.$i} eq 'basic-lti-launch-request') { |
if ($env{'form.ltitools_msgtype_'.$i} eq 'basic-lti-launch-request') { |
$confhash{$itemid}{'msgtype'} = $env{'form.ltitools_msgtype_'.$i}; |
$confhash{$itemid}{'msgtype'} = $env{'form.ltitools_msgtype_'.$i}; |
} |
} |
|
if ($env{'form.ltitools_sigmethod_'.$i} eq 'HMAC-SHA256') { |
|
$confhash{$itemid}{'sigmethod'} = $env{'form.ltitools_sigmethod_'.$i}; |
|
} else { |
|
$confhash{$itemid}{'sigmethod'} = 'HMAC-SHA1'; |
|
} |
|
if ($domconfig{$action}{$itemid}{'sigmethod'} eq '') { |
|
if ($confhash{$itemid}{'sigmethod'} ne 'HMAC-SHA1') { |
|
$changes{$itemid} = 1; |
|
} |
|
} elsif ($domconfig{$action}{$itemid}{'sigmethod'} ne $confhash{$itemid}{'sigmethod'}) { |
|
$changes{$itemid} = 1; |
|
} |
foreach my $size ('width','height') { |
foreach my $size ('width','height') { |
$env{'form.ltitools_'.$size.'_'.$i} =~ s/^\s+//; |
$env{'form.ltitools_'.$size.'_'.$i} =~ s/^\s+//; |
$env{'form.ltitools_'.$size.'_'.$i} =~ s/\s+$//; |
$env{'form.ltitools_'.$size.'_'.$i} =~ s/\s+$//; |
Line 10553 sub modify_ltitools {
|
Line 10781 sub modify_ltitools {
|
} else { |
} else { |
$changes{$itemid} = 1; |
$changes{$itemid} = 1; |
} |
} |
foreach my $extra ('passback','roster') { |
|
if ($env{'form.ltitools_'.$extra.'_'.$i}) { |
|
$confhash{$itemid}{$extra} = 1; |
|
} |
|
if ($domconfig{$action}{$itemid}{$extra} ne $confhash{$itemid}{$extra}) { |
|
$changes{$itemid} = 1; |
|
} |
|
} |
|
my @courseconfig = &Apache::loncommon::get_env_multiple('form.ltitools_courseconfig_'.$i); |
my @courseconfig = &Apache::loncommon::get_env_multiple('form.ltitools_courseconfig_'.$i); |
foreach my $item ('label','title','target','linktext','explanation') { |
foreach my $item ('label','title','target','linktext','explanation','append') { |
if (grep(/^\Q$item\E$/,@courseconfig)) { |
if (grep(/^\Q$item\E$/,@courseconfig)) { |
$confhash{$itemid}{'crsconf'}{$item} = 1; |
$confhash{$itemid}{'crsconf'}{$item} = 1; |
if (ref($domconfig{$action}{$itemid}{'crsconf'}) eq 'HASH') { |
if (ref($domconfig{$action}{$itemid}{'crsconf'}) eq 'HASH') { |
Line 10606 sub modify_ltitools {
|
Line 10826 sub modify_ltitools {
|
} |
} |
} |
} |
} |
} |
|
if (ref($confhash{$itemid}{'fields'}) eq 'HASH') { |
|
if ($confhash{$itemid}{'fields'}{'user'}) { |
|
if ($env{'form.ltitools_userincdom_'.$i}) { |
|
$confhash{$itemid}{'incdom'} = 1; |
|
} |
|
if ($domconfig{$action}{$itemid}{'incdom'} ne $confhash{$itemid}{'incdom'}) { |
|
$changes{$itemid} = 1; |
|
} |
|
} |
|
} |
$allpos[$newpos] = $itemid; |
$allpos[$newpos] = $itemid; |
} |
} |
if ($imgdeletions{$itemid}) { |
if ($imgdeletions{$itemid}) { |
Line 10739 sub modify_ltitools {
|
Line 10969 sub modify_ltitools {
|
$resulttext .= '</li><ul>'; |
$resulttext .= '</li><ul>'; |
my $position = $pos + 1; |
my $position = $pos + 1; |
$resulttext .= '<li>'.&mt('Order: [_1]',$position).'</li>'; |
$resulttext .= '<li>'.&mt('Order: [_1]',$position).'</li>'; |
foreach my $item ('version','msgtype','url') { |
foreach my $item ('version','msgtype','sigmethod','url','lifetime') { |
if ($confhash{$itemid}{$item} ne '') { |
if ($confhash{$itemid}{$item} ne '') { |
$resulttext .= '<li>'.$lt{$item}.': '.$confhash{$itemid}{$item}.'</li>'; |
$resulttext .= '<li>'.$lt{$item}.': '.$confhash{$itemid}{$item}.'</li>'; |
} |
} |
Line 10753 sub modify_ltitools {
|
Line 10983 sub modify_ltitools {
|
$resulttext .= ('*'x$num).'</li>'; |
$resulttext .= ('*'x$num).'</li>'; |
} |
} |
$resulttext .= '<li>'.&mt('Configurable in course:'); |
$resulttext .= '<li>'.&mt('Configurable in course:'); |
my @possconfig = ('label','title','target','linktext','explanation'); |
my @possconfig = ('label','title','target','linktext','explanation','append'); |
my $numconfig = 0; |
my $numconfig = 0; |
if (ref($confhash{$itemid}{'crsconf'}) eq 'HASH') { |
if (ref($confhash{$itemid}{'crsconf'}) eq 'HASH') { |
foreach my $item (@possconfig) { |
foreach my $item (@possconfig) { |
Line 10767 sub modify_ltitools {
|
Line 10997 sub modify_ltitools {
|
$resulttext .= &mt('None'); |
$resulttext .= &mt('None'); |
} |
} |
$resulttext .= '</li>'; |
$resulttext .= '</li>'; |
foreach my $item ('passback','roster') { |
|
$resulttext .= '<li>'.$lt{$item}.' '; |
|
if ($confhash{$itemid}{$item}) { |
|
$resulttext .= &mt('Yes'); |
|
} else { |
|
$resulttext .= &mt('No'); |
|
} |
|
$resulttext .= '</li>'; |
|
} |
|
if (ref($confhash{$itemid}{'display'}) eq 'HASH') { |
if (ref($confhash{$itemid}{'display'}) eq 'HASH') { |
my $displaylist; |
my $displaylist; |
if ($confhash{$itemid}{'display'}{'target'}) { |
if ($confhash{$itemid}{'display'}{'target'}) { |
Line 10807 sub modify_ltitools {
|
Line 11028 sub modify_ltitools {
|
} |
} |
if ($fieldlist) { |
if ($fieldlist) { |
$fieldlist =~ s/,$//; |
$fieldlist =~ s/,$//; |
|
if ($confhash{$itemid}{'fields'}{'user'}) { |
|
if ($confhash{$itemid}{'incdom'}) { |
|
$fieldlist .= ' ('.&mt('username:domain').')'; |
|
} else { |
|
$fieldlist .= ' ('.&mt('username').')'; |
|
} |
|
} |
$resulttext .= '<li>'.&mt('Data sent').':'.$fieldlist.'</li>'; |
$resulttext .= '<li>'.&mt('Data sent').':'.$fieldlist.'</li>'; |
} |
} |
} |
} |
Line 10831 sub modify_ltitools {
|
Line 11059 sub modify_ltitools {
|
} |
} |
} |
} |
if ($customlist) { |
if ($customlist) { |
$resulttext .= '<li>'.&mt('Custom items').':'.$customlist.'</li>'; |
$resulttext .= '<li>'.&mt('Custom items').': '.$customlist.'</li>'; |
} |
} |
} |
} |
$resulttext .= '</ul></li>'; |
$resulttext .= '</ul></li>'; |
Line 11513 sub modify_contacts {
|
Line 11741 sub modify_contacts {
|
my @contacts = ('supportemail','adminemail'); |
my @contacts = ('supportemail','adminemail'); |
my @mailings = ('errormail','packagesmail','helpdeskmail','otherdomsmail', |
my @mailings = ('errormail','packagesmail','helpdeskmail','otherdomsmail', |
'lonstatusmail','requestsmail','updatesmail','idconflictsmail','hostipmail'); |
'lonstatusmail','requestsmail','updatesmail','idconflictsmail','hostipmail'); |
my @toggles = ('reporterrors','reportupdates'); |
my @toggles = ('reporterrors','reportupdates','reportstatus'); |
|
my @lonstatus = ('threshold','sysmail','weights','excluded'); |
my ($fields,$fieldtitles,$fieldoptions,$possoptions) = &helpform_fields(); |
my ($fields,$fieldtitles,$fieldoptions,$possoptions) = &helpform_fields(); |
foreach my $type (@mailings) { |
foreach my $type (@mailings) { |
@{$newsetting{$type}} = |
@{$newsetting{$type}} = |
Line 11546 sub modify_contacts {
|
Line 11775 sub modify_contacts {
|
$contacts_hash{'contacts'}{$item} = $env{'form.'.$item}; |
$contacts_hash{'contacts'}{$item} = $env{'form.'.$item}; |
} |
} |
} |
} |
|
my ($lonstatus_defs,$lonstatus_names) = &Apache::loncommon::lon_status_items(); |
|
foreach my $item (@lonstatus) { |
|
if ($item eq 'excluded') { |
|
my (%serverhomes,@excluded); |
|
map { $serverhomes{$_} = 1; } values(%Apache::lonnet::serverhomeIDs); |
|
my @possexcluded = &Apache::loncommon::get_env_multiple('form.errorexcluded'); |
|
if (@possexcluded) { |
|
foreach my $id (sort(@possexcluded)) { |
|
if ($serverhomes{$id}) { |
|
push(@excluded,$id); |
|
} |
|
} |
|
} |
|
if (@excluded) { |
|
$contacts_hash{'contacts'}{'lonstatus'}{$item} = \@excluded; |
|
} |
|
} elsif ($item eq 'weights') { |
|
foreach my $type ('E','W','N','U') { |
|
$env{'form.error'.$item.'_'.$type} =~ s/^\s+|\s+$//g; |
|
if ($env{'form.error'.$item.'_'.$type} =~ /^\d+$/) { |
|
unless ($env{'form.error'.$item.'_'.$type} == $lonstatus_defs->{$type}) { |
|
$contacts_hash{'contacts'}{'lonstatus'}{$item}{$type} = |
|
$env{'form.error'.$item.'_'.$type}; |
|
} |
|
} |
|
} |
|
} elsif (($item eq 'threshold') || ($item eq 'sysmail')) { |
|
$env{'form.error'.$item} =~ s/^\s+|\s+$//g; |
|
if ($env{'form.error'.$item} =~ /^\d+$/) { |
|
unless ($env{'form.error'.$item} == $lonstatus_defs->{$item}) { |
|
$contacts_hash{'contacts'}{'lonstatus'}{$item} = $env{'form.error'.$item}; |
|
} |
|
} |
|
} |
|
} |
if ((ref($fields) eq 'ARRAY') && (ref($possoptions) eq 'HASH')) { |
if ((ref($fields) eq 'ARRAY') && (ref($possoptions) eq 'HASH')) { |
foreach my $field (@{$fields}) { |
foreach my $field (@{$fields}) { |
if (ref($possoptions->{$field}) eq 'ARRAY') { |
if (ref($possoptions->{$field}) eq 'ARRAY') { |
Line 11684 sub modify_contacts {
|
Line 11948 sub modify_contacts {
|
} |
} |
} |
} |
} |
} |
|
if (ref($currsetting{'lonstatus'}) eq 'HASH') { |
|
foreach my $key ('excluded','weights','threshold','sysmail') { |
|
if ($key eq 'excluded') { |
|
if ((ref($contacts_hash{contacts}{lonstatus}) eq 'HASH') && |
|
(ref($contacts_hash{contacts}{lonstatus}{excluded}) eq 'ARRAY')) { |
|
if ((ref($currsetting{'lonstatus'}{$key}) eq 'ARRAY') && |
|
(@{$currsetting{'lonstatus'}{$key}})) { |
|
my @diffs = |
|
&Apache::loncommon::compare_arrays($contacts_hash{contacts}{lonstatus}{excluded}, |
|
$currsetting{'lonstatus'}{$key}); |
|
if (@diffs) { |
|
push(@{$changes{'lonstatus'}},$key); |
|
} |
|
} elsif (@{$contacts_hash{contacts}{lonstatus}{excluded}}) { |
|
push(@{$changes{'lonstatus'}},$key); |
|
} |
|
} elsif ((ref($currsetting{'lonstatus'}{$key}) eq 'ARRAY') && |
|
(@{$currsetting{'lonstatus'}{$key}})) { |
|
push(@{$changes{'lonstatus'}},$key); |
|
} |
|
} elsif ($key eq 'weights') { |
|
if ((ref($contacts_hash{contacts}{lonstatus}) eq 'HASH') && |
|
(ref($contacts_hash{contacts}{lonstatus}{$key}) eq 'HASH')) { |
|
if (ref($currsetting{'lonstatus'}{$key}) eq 'HASH') { |
|
foreach my $type ('E','W','N','U') { |
|
unless ($contacts_hash{contacts}{lonstatus}{$key}{$type} eq |
|
$currsetting{'lonstatus'}{$key}{$type}) { |
|
push(@{$changes{'lonstatus'}},$key); |
|
last; |
|
} |
|
} |
|
} else { |
|
foreach my $type ('E','W','N','U') { |
|
if ($contacts_hash{contacts}{lonstatus}{$key}{$type} ne '') { |
|
push(@{$changes{'lonstatus'}},$key); |
|
last; |
|
} |
|
} |
|
} |
|
} elsif (ref($currsetting{'lonstatus'}{$key}) eq 'HASH') { |
|
foreach my $type ('E','W','N','U') { |
|
if ($currsetting{'lonstatus'}{$key}{$type} ne '') { |
|
push(@{$changes{'lonstatus'}},$key); |
|
last; |
|
} |
|
} |
|
} |
|
} elsif (($key eq 'threshold') || ($key eq 'sysmail')) { |
|
if (ref($contacts_hash{contacts}{lonstatus}) eq 'HASH') { |
|
if ($currsetting{'lonstatus'}{$key} =~ /^\d+$/) { |
|
if ($currsetting{'lonstatus'}{$key} != $contacts_hash{contacts}{lonstatus}{$key}) { |
|
push(@{$changes{'lonstatus'}},$key); |
|
} |
|
} elsif ($contacts_hash{contacts}{lonstatus}{$key} =~ /^\d+$/) { |
|
push(@{$changes{'lonstatus'}},$key); |
|
} |
|
} elsif ($currsetting{'lonstatus'}{$key} =~ /^\d+$/) { |
|
push(@{$changes{'lonstatus'}},$key); |
|
} |
|
} |
|
} |
|
} else { |
|
if (ref($contacts_hash{contacts}{lonstatus}) eq 'HASH') { |
|
foreach my $key ('excluded','weights','threshold','sysmail') { |
|
if (exists($contacts_hash{contacts}{lonstatus}{$key})) { |
|
push(@{$changes{'lonstatus'}},$key); |
|
} |
|
} |
|
} |
|
} |
} else { |
} else { |
my %default; |
my %default; |
$default{'supportemail'} = $Apache::lonnet::perlvar{'lonSupportEMail'}; |
$default{'supportemail'} = $Apache::lonnet::perlvar{'lonSupportEMail'}; |
Line 11729 sub modify_contacts {
|
Line 12063 sub modify_contacts {
|
} |
} |
} |
} |
} |
} |
|
if (ref($contacts_hash{contacts}{lonstatus}) eq 'HASH') { |
|
foreach my $key ('excluded','weights','threshold','sysmail') { |
|
if (exists($contacts_hash{contacts}{lonstatus}{$key})) { |
|
push(@{$changes{'lonstatus'}},$key); |
|
} |
|
} |
|
} |
} |
} |
foreach my $item (@toggles) { |
foreach my $item (@toggles) { |
if (($env{'form.'.$item} == 1) && ($currsetting{$item} == 0)) { |
if (($env{'form.'.$item} == 1) && ($currsetting{$item} == 0)) { |
Line 11854 sub modify_contacts {
|
Line 12195 sub modify_contacts {
|
} |
} |
} |
} |
my @offon = ('off','on'); |
my @offon = ('off','on'); |
|
my $corelink = &core_link_msu(); |
if ($changes{'reporterrors'}) { |
if ($changes{'reporterrors'}) { |
$resulttext .= '<li>'. |
$resulttext .= '<li>'. |
&mt('E-mail error reports to [_1] set to "'. |
&mt('E-mail error reports to [_1] set to "'. |
$offon[$env{'form.reporterrors'}].'".', |
$offon[$env{'form.reporterrors'}].'".', |
&Apache::loncommon::modal_link('http://loncapa.org/core.html', |
$corelink). |
&mt('LON-CAPA core group - MSU'),600,500)). |
|
'</li>'; |
'</li>'; |
} |
} |
if ($changes{'reportupdates'}) { |
if ($changes{'reportupdates'}) { |
$resulttext .= '<li>'. |
$resulttext .= '<li>'. |
&mt('E-mail record of completed LON-CAPA updates to [_1] set to "'. |
&mt('E-mail record of completed LON-CAPA updates to [_1] set to "'. |
$offon[$env{'form.reportupdates'}].'".', |
$offon[$env{'form.reportupdates'}].'".', |
&Apache::loncommon::modal_link('http://loncapa.org/core.html', |
$corelink). |
&mt('LON-CAPA core group - MSU'),600,500)). |
'</li>'; |
|
} |
|
if ($changes{'reportstatus'}) { |
|
$resulttext .= '<li>'. |
|
&mt('E-mail status if errors above threshold to [_1] set to "'. |
|
$offon[$env{'form.reportstatus'}].'".', |
|
$corelink). |
'</li>'; |
'</li>'; |
} |
} |
|
if (ref($changes{'lonstatus'}) eq 'ARRAY') { |
|
$resulttext .= '<li>'. |
|
&mt('Nightly status check e-mail settings').':<ul>'; |
|
my (%defval,%use_def,%shown); |
|
$defval{'threshold'} = $lonstatus_defs->{'threshold'}; |
|
$defval{'sysmail'} = $lonstatus_defs->{'sysmail'}; |
|
$defval{'weights'} = |
|
join(', ',map { $lonstatus_names->{$_}.'='.$lonstatus_defs->{$_}; } ('E','W','N','U')); |
|
$defval{'excluded'} = &mt('None'); |
|
if (ref($contacts_hash{'contacts'}{'lonstatus'}) eq 'HASH') { |
|
foreach my $item ('threshold','sysmail','weights','excluded') { |
|
if (exists($contacts_hash{'contacts'}{'lonstatus'}{$item})) { |
|
if (($item eq 'threshold') || ($item eq 'sysmail')) { |
|
$shown{$item} = $contacts_hash{'contacts'}{'lonstatus'}{$item}; |
|
} elsif ($item eq 'weights') { |
|
if (ref($contacts_hash{'contacts'}{'lonstatus'}{$item}) eq 'HASH') { |
|
foreach my $type ('E','W','N','U') { |
|
$shown{$item} .= $lonstatus_names->{$type}.'='; |
|
if (exists($contacts_hash{'contacts'}{'lonstatus'}{$item}{$type})) { |
|
$shown{$item} .= $contacts_hash{'contacts'}{'lonstatus'}{$item}{$type}; |
|
} else { |
|
$shown{$item} .= $lonstatus_defs->{$type}; |
|
} |
|
$shown{$item} .= ', '; |
|
} |
|
$shown{$item} =~ s/, $//; |
|
} else { |
|
$shown{$item} = $defval{$item}; |
|
} |
|
} elsif ($item eq 'excluded') { |
|
if (ref($contacts_hash{'contacts'}{'lonstatus'}{$item}) eq 'ARRAY') { |
|
$shown{$item} = join(', ',@{$contacts_hash{'contacts'}{'lonstatus'}{$item}}); |
|
} else { |
|
$shown{$item} = $defval{$item}; |
|
} |
|
} |
|
} else { |
|
$shown{$item} = $defval{$item}; |
|
} |
|
} |
|
} else { |
|
foreach my $item ('threshold','weights','excluded','sysmail') { |
|
$shown{$item} = $defval{$item}; |
|
} |
|
} |
|
foreach my $item ('threshold','weights','excluded','sysmail') { |
|
$resulttext .= '<li>'.&mt($titles->{'error'.$item}.' -- [_1]', |
|
$shown{$item}).'</li>'; |
|
} |
|
$resulttext .= '</ul></li>'; |
|
} |
if ((ref($changes{'helpform'}) eq 'ARRAY') && (ref($fields) eq 'ARRAY')) { |
if ((ref($changes{'helpform'}) eq 'ARRAY') && (ref($fields) eq 'ARRAY')) { |
my (@optional,@required,@unused,$maxsizechg); |
my (@optional,@required,@unused,$maxsizechg); |
foreach my $field (@{$changes{'helpform'}}) { |
foreach my $field (@{$changes{'helpform'}}) { |
Line 12332 sub modify_passwords {
|
Line 12730 sub modify_passwords {
|
$resulttext .= '<li>'.&mt('E-mail address(es) in LON-CAPA used for verification will include: [_1]',join(', ',map { $titles{$_}; } @{$staticdefaults{'resetemail'}})).'</li>'; |
$resulttext .= '<li>'.&mt('E-mail address(es) in LON-CAPA used for verification will include: [_1]',join(', ',map { $titles{$_}; } @{$staticdefaults{'resetemail'}})).'</li>'; |
} |
} |
} else { |
} else { |
$resulttext .= '<li>'.&mt('E-mail address(es) in LON-CAPA usedfor verification will include: [_1]',join(', ',map { $titles{$_}; } @{$staticdefaults{'resetemail'}})).'</li>'; |
$resulttext .= '<li>'.&mt('E-mail address(es) in LON-CAPA used for verification will include: [_1]',join(', ',map { $titles{$_}; } @{$staticdefaults{'resetemail'}})).'</li>'; |
} |
} |
if ($confighash{'passwords'}{'resetremove'}) { |
if ($confighash{'passwords'}{'resetremove'}) { |
$resulttext .= '<li>'.&mt('Preamble to "Forgot Password" web form not shown').'</li>'; |
$resulttext .= '<li>'.&mt('Preamble to "Forgot Password" web form not shown').'</li>'; |
Line 15665 sub modify_usersessions {
|
Line 16063 sub modify_usersessions {
|
} |
} |
} |
} |
$defaultshash{'usersessions'}{'offloadnow'} = {}; |
$defaultshash{'usersessions'}{'offloadnow'} = {}; |
|
$defaultshash{'usersessions'}{'offloadoth'} = {}; |
my @offloadnow = &Apache::loncommon::get_env_multiple('form.offloadnow'); |
my @offloadnow = &Apache::loncommon::get_env_multiple('form.offloadnow'); |
my @okoffload; |
my @okoffload; |
if (@offloadnow) { |
if (@offloadnow) { |
Line 15681 sub modify_usersessions {
|
Line 16080 sub modify_usersessions {
|
} |
} |
} |
} |
} |
} |
|
my @offloadoth = &Apache::loncommon::get_env_multiple('form.offloadoth'); |
|
my @okoffloadoth; |
|
if (@offloadoth) { |
|
foreach my $server (@offloadoth) { |
|
if (&Apache::lonnet::hostname($server) ne '') { |
|
unless (grep(/^\Q$server\E$/,@okoffloadoth)) { |
|
push(@okoffloadoth,$server); |
|
} |
|
} |
|
} |
|
if (@okoffloadoth) { |
|
foreach my $lonhost (@okoffloadoth) { |
|
$defaultshash{'usersessions'}{'offloadoth'}{$lonhost} = 1; |
|
} |
|
} |
|
} |
if (ref($domconfig{'usersessions'}) eq 'HASH') { |
if (ref($domconfig{'usersessions'}) eq 'HASH') { |
if (ref($domconfig{'usersessions'}{'spares'}) eq 'HASH') { |
if (ref($domconfig{'usersessions'}{'spares'}) eq 'HASH') { |
if (ref($changes{'spares'}) eq 'HASH') { |
if (ref($changes{'spares'}) eq 'HASH') { |
Line 15691 sub modify_usersessions {
|
Line 16106 sub modify_usersessions {
|
} else { |
} else { |
$savespares = 1; |
$savespares = 1; |
} |
} |
if (ref($domconfig{'usersessions'}{'offloadnow'}) eq 'HASH') { |
foreach my $offload ('offloadnow','offloadoth') { |
foreach my $lonhost (keys(%{$domconfig{'usersessions'}{'offloadnow'}})) { |
if (ref($domconfig{'usersessions'}{$offload}) eq 'HASH') { |
unless ($defaultshash{'usersessions'}{'offloadnow'}{$lonhost}) { |
foreach my $lonhost (keys(%{$domconfig{'usersessions'}{$offload}})) { |
$changes{'offloadnow'} = 1; |
unless ($defaultshash{'usersessions'}{$offload}{$lonhost}) { |
last; |
$changes{$offload} = 1; |
} |
|
} |
|
unless ($changes{'offloadnow'}) { |
|
foreach my $lonhost (keys(%{$defaultshash{'usersessions'}{'offloadnow'}})) { |
|
unless ($domconfig{'usersessions'}{'offloadnow'}{$lonhost}) { |
|
$changes{'offloadnow'} = 1; |
|
last; |
last; |
} |
} |
} |
} |
|
unless ($changes{$offload}) { |
|
foreach my $lonhost (keys(%{$defaultshash{'usersessions'}{$offload}})) { |
|
unless ($domconfig{'usersessions'}{$offload}{$lonhost}) { |
|
$changes{$offload} = 1; |
|
last; |
|
} |
|
} |
|
} |
|
} else { |
|
if (($offload eq 'offloadnow') && (@okoffload)) { |
|
$changes{'offloadnow'} = 1; |
|
} |
|
if (($offload eq 'offloadoth') && (@okoffloadoth)) { |
|
$changes{'offloadoth'} = 1; |
|
} |
} |
} |
} elsif (@okoffload) { |
} |
|
} else { |
|
if (@okoffload) { |
$changes{'offloadnow'} = 1; |
$changes{'offloadnow'} = 1; |
} |
} |
} elsif (@okoffload) { |
if (@okoffloadoth) { |
$changes{'offloadnow'} = 1; |
$changes{'offloadoth'} = 1; |
|
} |
} |
} |
my $nochgmsg = &mt('No changes made to settings for user session hosting/offloading.'); |
my $nochgmsg = &mt('No changes made to settings for user session hosting/offloading.'); |
if ((keys(%changes) > 0) || ($savespares)) { |
if ((keys(%changes) > 0) || ($savespares)) { |
Line 15727 sub modify_usersessions {
|
Line 16154 sub modify_usersessions {
|
if (ref($defaultshash{'usersessions'}{'offloadnow'}) eq 'HASH') { |
if (ref($defaultshash{'usersessions'}{'offloadnow'}) eq 'HASH') { |
$domdefaults{'offloadnow'} = $defaultshash{'usersessions'}{'offloadnow'}; |
$domdefaults{'offloadnow'} = $defaultshash{'usersessions'}{'offloadnow'}; |
} |
} |
|
if (ref($defaultshash{'usersessions'}{'offloadoth'}) eq 'HASH') { |
|
$domdefaults{'offloadoth'} = $defaultshash{'usersessions'}{'offloadoth'}; |
|
} |
} |
} |
my $cachetime = 24*60*60; |
my $cachetime = 24*60*60; |
&Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime); |
&Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime); |
Line 15800 sub modify_usersessions {
|
Line 16230 sub modify_usersessions {
|
if ($changes{'offloadnow'}) { |
if ($changes{'offloadnow'}) { |
if (ref($defaultshash{'usersessions'}{'offloadnow'}) eq 'HASH') { |
if (ref($defaultshash{'usersessions'}{'offloadnow'}) eq 'HASH') { |
if (keys(%{$defaultshash{'usersessions'}{'offloadnow'}}) > 0) { |
if (keys(%{$defaultshash{'usersessions'}{'offloadnow'}}) > 0) { |
$resulttext .= '<li>'.&mt('Switch active users on next access, for server(s):').'<ul>'; |
$resulttext .= '<li>'.&mt('Switch any active user on next access, for server(s):').'<ul>'; |
foreach my $lonhost (sort(keys(%{$defaultshash{'usersessions'}{'offloadnow'}}))) { |
foreach my $lonhost (sort(keys(%{$defaultshash{'usersessions'}{'offloadnow'}}))) { |
$resulttext .= '<li>'.$lonhost.'</li>'; |
$resulttext .= '<li>'.$lonhost.'</li>'; |
} |
} |
$resulttext .= '</ul>'; |
$resulttext .= '</ul>'; |
} else { |
} else { |
$resulttext .= '<li>'.&mt('No servers now set to switch active users on next access.'); |
$resulttext .= '<li>'.&mt('No servers now set to switch any active user on next access.'); |
|
} |
|
} else { |
|
$resulttext .= '<li>'.&mt('No servers now set to switch any active user on next access.').'</li>'; |
|
} |
|
} |
|
if ($changes{'offloadoth'}) { |
|
if (ref($defaultshash{'usersessions'}{'offloadoth'}) eq 'HASH') { |
|
if (keys(%{$defaultshash{'usersessions'}{'offloadoth'}}) > 0) { |
|
$resulttext .= '<li>'.&mt('Switch other institutions on next access, for server(s):').'<ul>'; |
|
foreach my $lonhost (sort(keys(%{$defaultshash{'usersessions'}{'offloadoth'}}))) { |
|
$resulttext .= '<li>'.$lonhost.'</li>'; |
|
} |
|
$resulttext .= '</ul>'; |
|
} else { |
|
$resulttext .= '<li>'.&mt('No servers now set to switch other institutions on next access.'); |
} |
} |
} else { |
} else { |
$resulttext .= '<li>'.&mt('No servers now set to switch active users on next access.').'</li>'; |
$resulttext .= '<li>'.&mt('No servers now set to switch other institutions on next access.').'</li>'; |
} |
} |
} |
} |
$resulttext .= '</ul>'; |
$resulttext .= '</ul>'; |
Line 16063 sub modify_loadbalancing {
|
Line 16508 sub modify_loadbalancing {
|
$resulttext .= '<li>'.&mt('Load Balancer: [_1] -- cookie use enabled', |
$resulttext .= '<li>'.&mt('Load Balancer: [_1] -- cookie use enabled', |
$balancer).'</li>'; |
$balancer).'</li>'; |
} |
} |
if (keys(%toupdate)) { |
} |
my %thismachine; |
} |
my $updatedhere; |
if (keys(%toupdate)) { |
my $cachetime = 60*60*24; |
my %thismachine; |
map { $thismachine{$_} = 1; } &Apache::lonnet::current_machine_ids(); |
my $updatedhere; |
foreach my $lonhost (keys(%toupdate)) { |
my $cachetime = 60*60*24; |
if ($thismachine{$lonhost}) { |
map { $thismachine{$_} = 1; } &Apache::lonnet::current_machine_ids(); |
unless ($updatedhere) { |
foreach my $lonhost (keys(%toupdate)) { |
&Apache::lonnet::do_cache_new('loadbalancing',$dom, |
if ($thismachine{$lonhost}) { |
$defaultshash{'loadbalancing'}, |
unless ($updatedhere) { |
$cachetime); |
&Apache::lonnet::do_cache_new('loadbalancing',$dom, |
$updatedhere = 1; |
$defaultshash{'loadbalancing'}, |
} |
$cachetime); |
} else { |
$updatedhere = 1; |
my $cachekey = &escape('loadbalancing').':'.&escape($dom); |
|
&Apache::lonnet::remote_devalidate_cache($lonhost,[$cachekey]); |
|
} |
|
} |
} |
|
} else { |
|
my $cachekey = &escape('loadbalancing').':'.&escape($dom); |
|
&Apache::lonnet::remote_devalidate_cache($lonhost,[$cachekey]); |
} |
} |
} |
} |
} |
} |