version 1.98, 2022/02/01 18:23:24
|
version 1.99, 2022/02/01 23:13:19
|
Line 365 sub handler {
|
Line 365 sub handler {
|
} |
} |
|
|
my %values=&Apache::lonnet::dump('environment',$cdom,$cnum); |
my %values=&Apache::lonnet::dump('environment',$cdom,$cnum); |
my %courselti=&Apache::lonnet::dump('lti',$cdom,$cnum,undef,undef,undef,1); |
my %lti=&Apache::lonnet::dump('lti',$cdom,$cnum,undef,undef,undef,1); |
if ($courselti{'lock'}) { |
my %ltienc = &Apache::lonnet::dump('nohist_ltienc',$cdom,$cnum,undef,undef,undef,1); |
delete($courselti{'lock'}); |
foreach my $id (keys(%lti)) { |
|
if (ref($lti{$id}) eq 'HASH') { |
|
if (ref($ltienc{$id}) eq 'HASH') { |
|
$values{'linkprotection'}{$id} = { %{$lti{$id}}, %{$ltienc{$id}} }; |
|
} else { |
|
$values{'linkprotection'}{$id} = $lti{$id}; |
|
} |
|
} |
|
unless ($phase eq 'process') { |
|
if (ref($values{'linkprotection'}{$id}) eq 'HASH') { |
|
delete($values{'linkprotection'}{$id}{'secret'}); |
|
} |
|
} |
|
} |
|
if ($lti{'lock'}) { |
|
delete($lti{'lock'}); |
} |
} |
$values{'linkprotection'} = \%courselti; |
|
my @prefs_order = ('courseinfo','localization','feedback','discussion', |
my @prefs_order = ('courseinfo','localization','feedback','discussion', |
'classlists','appearance','grading','printouts', |
'classlists','appearance','grading','printouts', |
'menuitems','linkprotection','spreadsheet','bridgetasks', |
'menuitems','linkprotection','spreadsheet','bridgetasks', |
Line 596 sub handler {
|
Line 610 sub handler {
|
my $jscript = &get_jscript($cid,$cdom,$phase,$crstype,\%values,$noedit); |
my $jscript = &get_jscript($cid,$cdom,$phase,$crstype,\%values,$noedit); |
my @allitems = &get_allitems(%prefs); |
my @allitems = &get_allitems(%prefs); |
&Apache::lonconfigsettings::display_settings($r,$cdom,$phase,$context, |
&Apache::lonconfigsettings::display_settings($r,$cdom,$phase,$context, |
\@prefs_order,\%prefs,\%values,undef,$jscript,\@allitems,$crstype, |
\@prefs_order,\%prefs,\%values,$cnum,$jscript,\@allitems,$crstype, |
'coursepref',$parm_permission); |
'coursepref',$parm_permission); |
} else { |
} else { |
&Apache::lonconfigsettings::display_choices($r,$phase,$context, |
&Apache::lonconfigsettings::display_choices($r,$phase,$context, |
Line 649 sub get_allitems {
|
Line 663 sub get_allitems {
|
} |
} |
|
|
sub print_config_box { |
sub print_config_box { |
my ($r,$cdom,$phase,$action,$item,$settings,$allitems,$crstype,$parm_permission) = @_; |
my ($r,$cdom,$cnum,$phase,$action,$item,$settings,$allitems,$crstype,$parm_permission) = @_; |
my $ordered = $item->{'ordered'}; |
my $ordered = $item->{'ordered'}; |
my $itemtext = $item->{'itemtext'}; |
my $itemtext = $item->{'itemtext'}; |
my $noedit; |
my $noedit; |
Line 780 sub print_config_box {
|
Line 794 sub print_config_box {
|
} elsif ($action eq 'menuitems') { |
} elsif ($action eq 'menuitems') { |
$output .= &print_menuitems('bottom',$cdom,$settings,$itemtext,\$rowtotal,$crstype,$noedit); |
$output .= &print_menuitems('bottom',$cdom,$settings,$itemtext,\$rowtotal,$crstype,$noedit); |
} elsif ($action eq 'linkprotection') { |
} elsif ($action eq 'linkprotection') { |
$output .= &print_linkprotection($cdom,$settings,\$rowtotal,$crstype,$noedit); |
$output .= &print_linkprotection($cdom,$cnum,$settings,\$rowtotal,$crstype,$noedit); |
} elsif ($action eq 'other') { |
} elsif ($action eq 'other') { |
$output .= &print_other($cdom,$settings,$allitems,\$rowtotal,$crstype,$noedit); |
$output .= &print_other($cdom,$settings,$allitems,\$rowtotal,$crstype,$noedit); |
} |
} |
Line 794 sub print_config_box {
|
Line 808 sub print_config_box {
|
|
|
sub process_changes { |
sub process_changes { |
my ($cdom,$cnum,$action,$values,$item,$changes,$allitems,$disallowed,$crstype) = @_; |
my ($cdom,$cnum,$action,$values,$item,$changes,$allitems,$disallowed,$crstype) = @_; |
my (%newvalues,%courselti,$errors); |
my (%newvalues,%lti,%ltienc,$errors); |
if (ref($item) eq 'HASH') { |
if (ref($item) eq 'HASH') { |
if (ref($changes) eq 'HASH') { |
if (ref($changes) eq 'HASH') { |
my @ordered; |
my @ordered; |
Line 812 sub process_changes {
|
Line 826 sub process_changes {
|
} |
} |
} |
} |
} elsif ($action eq 'linkprotection') { |
} elsif ($action eq 'linkprotection') { |
if (ref($values->{'linkprotection'}) eq 'HASH') { |
if (ref($values->{$action}) eq 'HASH') { |
foreach my $id (keys(%{$values->{'linkprotection'}})) { |
foreach my $id (keys(%{$values->{$action}})) { |
if ($id =~ /^\d+$/) { |
if ($id =~ /^\d+$/) { |
push(@ordered,$id); |
push(@ordered,$id); |
unless (ref($values->{'linkprotection'}->{$id}) eq 'HASH') { |
unless (ref($values->{$action}->{$id}) eq 'HASH') { |
$courselti{$id} = ''; |
$lti{$id} = ''; |
} |
} |
} |
} |
} |
} |
Line 965 sub process_changes {
|
Line 979 sub process_changes {
|
} |
} |
} elsif ($action eq 'linkprotection') { |
} elsif ($action eq 'linkprotection') { |
my %menutitles = <imenu_titles(); |
my %menutitles = <imenu_titles(); |
|
my $switchserver = &check_switchserver($cdom,$cnum); |
my (@items,%deletions,%itemids,%haschanges); |
my (@items,%deletions,%itemids,%haschanges); |
if ($env{'form.linkprot_add'}) { |
if ($env{'form.linkprot_add'}) { |
my $name = $env{'form.linkprot_name_add'}; |
my $name = $env{'form.linkprot_name_add'}; |
Line 980 sub process_changes {
|
Line 995 sub process_changes {
|
'</span>'; |
'</span>'; |
} |
} |
} |
} |
if (ref($values->{'linkprotection'}) eq 'HASH') { |
if (ref($values->{$action}) eq 'HASH') { |
my @todelete = &Apache::loncommon::get_env_multiple('form.linkprot_del'); |
my @todelete = &Apache::loncommon::get_env_multiple('form.linkprot_del'); |
my $maxnum = $env{'form.linkprot_maxnum'}; |
my $maxnum = $env{'form.linkprot_maxnum'}; |
for (my $i=0; $i<=$maxnum; $i++) { |
for (my $i=0; $i<=$maxnum; $i++) { |
my $itemid = $env{'form.linkprot_id_'.$i}; |
my $itemid = $env{'form.linkprot_id_'.$i}; |
$itemid =~ s/\D+//g; |
$itemid =~ s/\D+//g; |
if ($itemid) { |
if ($itemid) { |
if (ref($values->{'linkprotection'}->{$itemid}) eq 'HASH') { |
if (ref($values->{$action}->{$itemid}) eq 'HASH') { |
push(@items,$i); |
push(@items,$i); |
$itemids{$i} = $itemid; |
$itemids{$i} = $itemid; |
if ((@todelete > 0) && (grep(/^$i$/,@todelete))) { |
if ((@todelete > 0) && (grep(/^$i$/,@todelete))) { |
$deletions{$itemid} = $values->{'linkprotection'}->{$itemid}->{'name'}; |
$deletions{$itemid} = $values->{$action}->{$itemid}->{'name'}; |
} |
} |
} |
} |
} |
} |
Line 1002 sub process_changes {
|
Line 1017 sub process_changes {
|
my $itemid = $itemids{$idx}; |
my $itemid = $itemids{$idx}; |
next unless ($itemid); |
next unless ($itemid); |
if (exists($deletions{$itemid})) { |
if (exists($deletions{$itemid})) { |
$courselti{$itemid} = $deletions{$itemid}; |
$lti{$itemid} = $deletions{$itemid}; |
$haschanges{$itemid} = 1; |
$haschanges{$itemid} = 1; |
next; |
next; |
} |
} |
my %current; |
my %current; |
if (ref($values->{'linkprotection'}) eq 'HASH') { |
if (ref($values->{$action}) eq 'HASH') { |
if (ref($values->{'linkprotection'}->{$itemid}) eq 'HASH') { |
if (ref($values->{$action}->{$itemid}) eq 'HASH') { |
foreach my $key (keys(%{$values->{'linkprotection'}->{$itemid}})) { |
foreach my $key (keys(%{$values->{$action}->{$itemid}})) { |
$current{$key} = $values->{'linkprotection'}->{$itemid}->{$key}; |
$current{$key} = $values->{$action}->{$itemid}->{$key}; |
} |
} |
} |
} |
} |
} |
foreach my $inner ('name','key','secret','lifetime','version') { |
foreach my $inner ('name','lifetime','version') { |
my $formitem = 'form.linkprot_'.$inner.'_'.$idx; |
my $formitem = 'form.linkprot_'.$inner.'_'.$idx; |
$env{$formitem} =~ s/(`)/'/g; |
$env{$formitem} =~ s/(`)/'/g; |
if ($inner eq 'lifetime') { |
if ($inner eq 'lifetime') { |
Line 1026 sub process_changes {
|
Line 1041 sub process_changes {
|
} |
} |
} |
} |
if ($env{$formitem} ne '') { |
if ($env{$formitem} ne '') { |
$courselti{$itemid}{$inner} = $env{$formitem}; |
$lti{$itemid}{$inner} = $env{$formitem}; |
|
} |
|
} |
|
unless ($switchserver) { |
|
my $keyitem = 'form.linkprot_key_'.$idx; |
|
$env{$keyitem} =~ s/(`)/'/g; |
|
unless ($idx eq 'add') { |
|
if ($current{'key'} ne $env{$keyitem}) { |
|
$haschanges{$itemid} = 1; |
|
} |
|
} |
|
if ($env{$keyitem} ne '') { |
|
$lti{$itemid}{'key'} = $env{$keyitem}; |
|
} |
|
my $secretitem = 'form.linkprot_secret_'.$idx; |
|
$env{$secretitem} =~ s/(`)/'/g; |
|
if ($current{'usable'}) { |
|
if ($env{'form.linkprot_changesecret_'.$idx}) { |
|
if ($env{$secretitem} ne '') { |
|
$lti{$itemid}{'secret'} = $env{$secretitem}; |
|
$haschanges{$itemid} = 1; |
|
} |
|
} else { |
|
$lti{$itemid}{'secret'} = $current{'secret'}; |
|
} |
|
} elsif ($env{$secretitem} ne '') { |
|
$lti{$itemid}{'secret'} = $env{$secretitem}; |
|
$haschanges{$itemid} = 1; |
} |
} |
} |
} |
} |
} |
if (keys(%haschanges)) { |
if (keys(%haschanges)) { |
foreach my $entry (keys(%haschanges)) { |
foreach my $entry (keys(%haschanges)) { |
$changes->{$entry} = $courselti{$entry}; |
$changes->{$entry} = $lti{$entry}; |
} |
} |
} |
} |
} else { |
} else { |
Line 1655 sub store_changes {
|
Line 1697 sub store_changes {
|
if (grep(/^\Q$item\E$/,@{$actions})) { |
if (grep(/^\Q$item\E$/,@{$actions})) { |
$output .= '<h3>'.&mt($prefs->{$item}{'text'}).'</h3>'; |
$output .= '<h3>'.&mt($prefs->{$item}{'text'}).'</h3>'; |
if (ref($changes->{$item}) eq 'HASH') { |
if (ref($changes->{$item}) eq 'HASH') { |
if ((keys(%{$changes->{$item}}) > 0) || ($item eq 'linkprotection')) { |
if (keys(%{$changes->{$item}}) > 0) { |
$output .= &mt('Changes made:').'<ul style="list-style:none;">'; |
$output .= &mt('Changes made:').'<ul style="list-style:none;">'; |
if ($item eq 'other') { |
if ($item eq 'other') { |
foreach my $key (sort(keys(%{$changes->{$item}}))) { |
foreach my $key (sort(keys(%{$changes->{$item}}))) { |
Line 1669 sub store_changes {
|
Line 1711 sub store_changes {
|
} |
} |
} |
} |
} elsif ($item eq 'linkprotection') { |
} elsif ($item eq 'linkprotection') { |
if (&Apache::lonnet::put('lti',$changes->{'linkprotection'},$cdom,$cnum,1) eq 'ok') { |
my (%ltienc,$lti_save_error); |
my $hashid=$cdom.'_'.$cnum; |
if (ref($changes->{$item}) eq 'HASH') { |
&Apache::lonnet::devalidate_cache_new('courselti',$hashid); |
foreach my $id (sort { $a <=> $b } keys(%{$changes->{$item}})) { |
foreach my $itemid (sort { $a <=> $b } %{$changes->{'linkprotection'}}) { |
if (ref($changes->{$item}->{$id}) eq 'HASH') { |
if (ref($changes->{'linkprotection'}->{$itemid}) eq 'HASH') { |
if (exists($changes->{$item}->{$id}->{'key'})) { |
my %values = %{$changes->{'linkprotection'}->{$itemid}}; |
$ltienc{$id}{'key'} = $changes->{$item}->{$id}->{'key'}; |
my %desc = &linkprot_names(); |
delete($changes->{$item}->{$id}->{'key'}); |
my $display; |
} |
foreach my $title ('name','lifetime','version','key','secret') { |
if (exists($changes->{$item}->{$id}->{'secret'})) { |
if ($title eq 'secret') { |
$ltienc{$id}{'secret'} = $changes->{$item}->{$id}->{'secret'}; |
my $length = length($values{$title}); |
delete($changes->{$item}->{$id}->{'secret'}); |
$display .= $desc{$title}.': '.('*' x $length); |
} elsif (ref($oldlinkprot{$id}) eq 'HASH') { |
} elsif ($title eq 'version') { |
if (exists($oldlinkprot{$id}{'usable'})) { |
if ($values{$title} eq 'LTI-1p0') { |
$changes->{$item}->{$id}->{'usable'} = 1; |
$display .= $desc{$title}.': 1.1, '; |
} |
|
} |
|
} |
|
} |
|
} |
|
if (keys(%ltienc) > 0) { |
|
if (&Apache::lonnet::put('nohist_ltienc',\%ltienc,$cdom,$cnum,1) eq 'ok') { |
|
foreach my $id (keys(%ltienc)) { |
|
if (exists($ltienc{$id}{'secret'})) { |
|
$changes->{$item}->{$id}->{'usable'} = 1; |
|
} |
|
} |
|
} else { |
|
$lti_save_error = 1; |
|
} |
|
} |
|
unless ($lti_save_error) { |
|
if (&Apache::lonnet::put('lti',$changes->{$item},$cdom,$cnum,1) eq 'ok') { |
|
my $hashid=$cdom.'_'.$cnum; |
|
&Apache::lonnet::devalidate_cache_new('courselti',$hashid); |
|
$chome = &Apache::lonnet::homeserver($cnum,$cdom); |
|
unless (($chome eq 'no_host') || ($chome eq '')) { |
|
my @ids=&Apache::lonnet::current_machine_ids(); |
|
unless (grep(/^\Q$chome\E$/,@ids)) { |
|
&Apache::lonnet::devalidate_cache_new('courseltienc',$hashid); |
|
} |
|
} |
|
foreach my $id (sort { $a <=> $b } %{$changes->{$item}}) { |
|
if (ref($changes->{$item}->{$id}) eq 'HASH') { |
|
my %values = %{$changes->{$item}->{$id}}; |
|
my %desc = &linkprot_names(); |
|
my $display; |
|
foreach my $title ('name','lifetime','version','key','secret') { |
|
if (($title eq 'key') || ($title eq 'secret')) { |
|
if (ref($ltienc{$id}) eq 'HASH') { |
|
if (exists($ltienc{$id}{$title})) { |
|
if ($title eq 'secret') { |
|
my $length = length($ltienc{$id}{$title}); |
|
$display .= $desc{$title}.': '.('*' x $length); |
|
} else { |
|
$display .= $desc{$title}.': '.$ltienc{$id}{$title}.', '; |
|
} |
|
} |
|
} |
|
} elsif ($title eq 'version') { |
|
if ($values{$title} eq 'LTI-1p0') { |
|
$display .= $desc{$title}.': 1.1, '; |
|
} |
|
} else { |
|
$display .= $desc{$title}.': '.$values{$title}.', '; |
} |
} |
} else { |
|
$display .= $desc{$title}.': '.$values{$title}.', '; |
|
} |
} |
|
$display =~ s/, $//; |
|
$output .= '<li>'.&Apache::lonhtmlcommon::confirm_success(&mt('[_1] set to [_2]','<i>'.$id.'</i>', |
|
"'$display'")).'</li>'; |
|
} elsif (ref($oldlinkprot{$id}) eq 'HASH') { |
|
my $oldname = $oldlinkprot{$id}{'name'}; |
|
$output .= '<li>'.&Apache::lonhtmlcommon::confirm_success(&mt('Deleted setting for [_1]','<i>'."$id ($oldname)".'</i>')).'</li>'; |
} |
} |
$output .= '<li>'.&Apache::lonhtmlcommon::confirm_success(&mt('[_1] set to [_2]','<i>'.$itemid.'</i>', |
|
"'$display'")).'</li>'; |
|
} elsif (ref($oldlinkprot{$itemid}) eq 'HASH') { |
|
my $oldname = $oldlinkprot{$itemid}{'name'}; |
|
$output .= '<li>'.&Apache::lonhtmlcommon::confirm_success(&mt('Deleted setting for [_1]','<i>'."$itemid ($oldname)".'</i>')).'</li>'; |
|
} |
} |
|
} else { |
|
$lti_save_error = 1; |
} |
} |
} else { |
} |
|
unless ($lti_save_error) { |
|
my @deletions; |
|
foreach my $id (sort { $a <=> $b } keys(%{$changes->{$item}})) { |
|
unless (ref($changes->{$item}->{$id}) eq 'HASH') { |
|
push (@deletions,$id); |
|
} |
|
} |
|
if (@deletions) { |
|
&Apache::lonnet::del('nohist_ltienc',\@deletions,$cdom,$cnum); |
|
} |
|
} |
|
if ($lti_save_error) { |
$output .= '<li>'. |
$output .= '<li>'. |
'<span class="LC_error">'. |
'<span class="LC_error">'. |
&mt('An error occurred when saving changes to link protection settings, which remain unchanged.'). |
&mt('An error occurred when saving changes to link protection settings, which remain unchanged.'). |
Line 2375 function toggleAddmenucoll() {
|
Line 2479 function toggleAddmenucoll() {
|
} |
} |
ENDSCRIPT |
ENDSCRIPT |
} |
} |
|
my $linkprotector_js = <<"ENDSCRIPT"; |
|
function toggleLTI(form,num,item) { |
|
var radioname = ''; |
|
var currdivid = ''; |
|
var newdivid = ''; |
|
if ((document.getElementById('linkprot_divcurr'+item+'_'+num)) && |
|
(document.getElementById('linkprot_divchg'+item+'_'+num))) { |
|
currdivid = document.getElementById('linkprot_divcurr'+item+'_'+num); |
|
newdivid = document.getElementById('linkprot_divchg'+item+'_'+num); |
|
radioname = form.elements['linkprot_change'+item+'_'+num]; |
|
if (radioname) { |
|
if (radioname.length > 0) { |
|
var setvis; |
|
for (var i=0; i<radioname.length; i++) { |
|
if (radioname[i].checked == true) { |
|
if (radioname[i].value == 1) { |
|
newdivid.style.display = 'inline-block'; |
|
currdivid.style.display = 'none'; |
|
setvis = 1; |
|
} |
|
break; |
|
} |
|
} |
|
if (!setvis) { |
|
newdivid.style.display = 'none'; |
|
currdivid.style.display = 'inline-block'; |
|
} |
|
} |
|
} |
|
} |
|
return; |
|
} |
|
ENDSCRIPT |
$jscript = '<script type="text/javascript" language="Javascript">'."\n". |
$jscript = '<script type="text/javascript" language="Javascript">'."\n". |
'// <![CDATA['."\n". |
'// <![CDATA['."\n". |
$browse_js."\n".$categorize_js."\n".$loncaparev_js."\n". |
$browse_js."\n".$categorize_js."\n".$loncaparev_js."\n". |
$cloners_js."\n".$instcode_js. |
$cloners_js."\n".$instcode_js. |
$syllabus_js."\n".$menuitems_js."\n".'//]]>'."\n". |
$syllabus_js."\n".$menuitems_js."\n". |
|
$linkprotector_js."\n".'//]]>'."\n". |
'</script>'."\n".$stubrowse_js."\n"; |
'</script>'."\n".$stubrowse_js."\n"; |
return $jscript; |
return $jscript; |
} |
} |
Line 5268 sub menucollections_display {
|
Line 5406 sub menucollections_display {
|
} |
} |
|
|
sub print_linkprotection { |
sub print_linkprotection { |
my ($cdom,$settings,$rowtotal,$crstype,$noedit) = @_; |
my ($cdom,$cnum,$settings,$rowtotal,$crstype,$noedit) = @_; |
unless (ref($settings) eq 'HASH') { |
unless (ref($settings) eq 'HASH') { |
return; |
return; |
} |
} |
Line 5283 sub print_linkprotection {
|
Line 5421 sub print_linkprotection {
|
my %lt = &linkprot_names(); |
my %lt = &linkprot_names(); |
my $itemcount = 0; |
my $itemcount = 0; |
|
|
|
my $switchserver = &check_switchserver($cdom,$cnum); |
|
|
if (ref($settings->{'linkprotection'}) eq 'HASH') { |
if (ref($settings->{'linkprotection'}) eq 'HASH') { |
if (keys(%{$settings->{'linkprotection'}})) { |
if (keys(%{$settings->{'linkprotection'}})) { |
my @current = sort { $a <=> $b } keys(%{$settings->{'linkprotection'}}); |
my @current = sort { $a <=> $b } keys(%{$settings->{'linkprotection'}}); |
Line 5307 sub print_linkprotection {
|
Line 5447 sub print_linkprotection {
|
'<td><span class="LC_nobreak">'.$lt{'name'}. |
'<td><span class="LC_nobreak">'.$lt{'name'}. |
':<input type="text" size="15" name="linkprot_name_'.$i.'" value="'.$values{'name'}.'" autocomplete="off"'.$disabled.' /></span> '. |
':<input type="text" size="15" name="linkprot_name_'.$i.'" value="'.$values{'name'}.'" autocomplete="off"'.$disabled.' /></span> '. |
(' 'x2). |
(' 'x2). |
'<span class="LC_nobreak">'.$lt{'version'}.':<select name="linkprot_version_'.$i.'">'. |
'<span class="LC_nobreak">'.$lt{'version'}.':<select name="linkprot_version_'.$i.'"'.$disabled.'>'. |
'<option value="LTI-1p0" '.$selected.'>1.1</option></select></span> '."\n". |
'<option value="LTI-1p0" '.$selected.'>1.1</option></select></span> '."\n". |
(' 'x2). |
(' 'x2). |
'<span class="LC_nobreak">'.$lt{'lifetime'}.':<input type="text" name="linkprot_lifetime_'.$i.'"'. |
'<span class="LC_nobreak">'.$lt{'lifetime'}.':<input type="text" name="linkprot_lifetime_'.$i.'"'. |
'value="'.$values{'lifetime'}.'" size="3"'.$disabled.' /></span>'. |
'value="'.$values{'lifetime'}.'" size="3"'.$disabled.' /></span>'. |
'<br /><br />'. |
'<br /><br />'; |
'<span class="LC_nobreak">'.$lt{'key'}. |
if ($values{'key'} ne '') { |
':<input type="text" size="25" name="linkprot_key_'.$i.'" value="'.$values{'key'}.'" autocomplete="off"'.$disabled.' /></span> '. |
$datatable .= '<span class="LC_nobreak">'.$lt{'key'}; |
(' 'x2). |
if ($noedit) { |
'<span class="LC_nobreak">'.$lt{'secret'}.':'. |
$datatable .= ': ['.&mt('not shown').']'; |
'<input type="password" size="20" name="linkprot_secret_'.$i.'" value="'.$values{'secret'}.'" autocomplete="off"'.$disabled.' />'. |
} elsif ($switchserver) { |
'<label><input type="checkbox" name="visible" onclick="if (this.checked) { this.form.linkprot_secret_'.$i.'.type='."'text'".' } else { this.form.linkprot_secret_'.$i.'.type='."'password'".' }"'.$disabled.' />'.&mt('Visible input').'</label>'. |
$datatable .= ': ['.&mt('[_1] to view/edit',$switchserver).']'; |
'<input type="hidden" name="linkprot_id_'.$i.'" value="'.$num.'" /></span>'. |
} else { |
'</td></tr>'; |
$datatable .= ':<input type="text" size="25" name="linkprot_key_'.$i.'" value="'.$values{'key'}.'" autocomplete="off"'.$disabled.' />'; |
|
} |
|
$datatable .= '</span> '.(' 'x2); |
|
} elsif (!$switchserver) { |
|
$datatable .= '<span class="LC_nobreak">'.$lt{'key'}.':'. |
|
'<input type="text" size="25" name="linkprot_key_'.$i.'" value="'.$values{'key'}.'" autocomplete="off"'.$disabled.' />'. |
|
'</span> '.(' 'x2); |
|
} |
|
if ($switchserver) { |
|
if ($values{'usable'} ne '') { |
|
$datatable .= '<div id="linkprot_divcurrsecret_'.$i.'" style="display:inline-block" /><span class="LC_nobreak">'. |
|
$lt{'secret'}.': ['.&mt('not shown').'] '.(' 'x2).'</span></div>'. |
|
'<span class="LC_nobreak">'.&mt('Change secret?'). |
|
'<label><input type="radio" value="0" name="linkprot_changesecret_'.$i.'" onclick="javascript:toggleLTI(this.form,'."'$i','secret'".');" checked="checked"'.$disabled.' />'.&mt('No').'</label>'. |
|
(' 'x2). |
|
'<label><input type="radio" value="1" name="linkprot_changesecret_'.$i.'" onclick="javascript:toggleLTI(this.form,'."'$i','secret'".');" '.$disabled.' />'.&mt('Yes').'</label>'.(' 'x2). |
|
'</span><div id="linkprot_divchgsecret_'.$i.'" style="display:none" />'. |
|
'<span class="LC_nobreak"> - '.&mt("submit from course's home server: [_1].",$switchserver).'</span>'. |
|
'</div>'; |
|
} elsif ($values{'key'} eq '') { |
|
$datatable .= '<span class="LC_nobreak">'.&mt('Key and Secret are required').' - '.&mt("submit from course's home server: [_1].",$switchserver).'</span>'."\n"; |
|
} else { |
|
$datatable .= '<span class="LC_nobreak">'.&mt('Secret required').' - '.&mt("submit from course's home server: [_1].",$switchserver).'</span>'."\n"; |
|
} |
|
} else { |
|
if ($values{'usable'} ne '') { |
|
$datatable .= '<div id="linkprot_divcurrsecret_'.$i.'" style="display:inline-block" /><span class="LC_nobreak">'. |
|
$lt{'secret'}.': ['.&mt('not shown').'] '.(' 'x2).'</span></div>'. |
|
'<span class="LC_nobreak">'.&mt('Change?'). |
|
'<label><input type="radio" value="0" name="linkprot_changesecret_'.$i.'" onclick="javascript:toggleLTI(this.form,'."'$i','secret'".');" checked="checked"'.$disabled.' />'.&mt('No').'</label>'. |
|
(' 'x2). |
|
'<label><input type="radio" value="1" name="linkprot_changesecret_'.$i.'" onclick="javascript:toggleLTI(this.form,'."'$i','secret'".');"'.$disabled.' />'.&mt('Yes'). |
|
'</label> </span><div id="linkprot_divchgsecret_'.$i.'" style="display:none" />'. |
|
'<span class="LC_nobreak">'.&mt('New Secret').':'. |
|
'<input type="password" size="20" name="linkprot_secret_'.$i.'" value="" autocomplete="off"'.$disabled.' />'. |
|
'<label><input type="checkbox" name="visible" onclick="if (this.checked) { this.form.linkprot_secret_'.$i.'.type='."'text'".' } else { this.form.linkprot_secret_'.$i.'.type='."'password'".' }"'.$disabled.' />'.&mt('Visible input').'</label>'. |
|
'<input type="hidden" name="linkprot_id_'.$i.'" value="'.$num.'" /></span></div>'; |
|
} else { |
|
$datatable .= |
|
'<span class="LC_nobreak">'.$lt{'secret'}.':'. |
|
'<input type="password" size="20" name="linkprot_secret_'.$i.'" value="" autocomplete="off"'.$disabled.' />'. |
|
'<label><input type="checkbox" name="visible" onclick="if (this.checked) { this.form.linkprot_secret_'.$i.'.type='."'text'".' } else { this.form.linkprot_secret_'.$i.'.type='."'password'".' }"'.$disabled.' />'.&mt('Visible input').'</label>'. |
|
'<input type="hidden" name="linkprot_id_'.$i.'" value="'.$num.'" /></span>'; |
|
} |
|
} |
|
$datatable .= '</td></tr>'; |
$itemcount ++; |
$itemcount ++; |
} |
} |
} |
} |
Line 5337 sub print_linkprotection {
|
Line 5522 sub print_linkprotection {
|
'<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{'lifetime'}.':<input type="text" size="3" name="linkprot_lifetime_add" value="300"'.$disabled.' /></span> '."\n". |
'<span class="LC_nobreak">'.$lt{'lifetime'}.':<input type="text" size="3" name="linkprot_lifetime_add" value="300"'.$disabled.' /></span> '."\n". |
'<br /><br />'. |
'<br /><br />'; |
'<span class="LC_nobreak">'.$lt{'key'}.':<input type="text" size="25" name="linkprot_key_add" value="" autocomplete="off"'.$disabled.' /></span> '."\n". |
if ($switchserver) { |
(' 'x2). |
$datatable .= '<span class="LC_nobreak">'.&mt('Key and Secret are required').' - '.&mt("submit from course's home server: [_1].",$switchserver).'</span>'."\n"; |
'<span class="LC_nobreak">'.$lt{'secret'}.':<input type="password" size="20" name="linkprot_secret_add" value="" autocomplete="off"'.$disabled.' />'. |
} else { |
'<label><input type="checkbox" name="visible" onclick="if (this.checked) { this.form.linkprot_secret_add.type='."'text'".' } else { this.form.linkprot_secret_add.type='."'password'".' }"'.$disabled.' />'.&mt('Visible input').'</label></span> '."\n". |
$datatable .= '<span class="LC_nobreak">'.$lt{'key'}.':<input type="text" size="25" name="linkprot_key_add" value="" autocomplete="off"'.$disabled.' /></span> '."\n". |
'</td></tr>'; |
(' 'x2). |
|
'<span class="LC_nobreak">'.$lt{'secret'}.':<input type="password" size="20" name="linkprot_secret_add" value="" autocomplete="off"'.$disabled.' />'. |
|
'<label><input type="checkbox" name="visible" onclick="if (this.checked) { this.form.linkprot_secret_add.type='."'text'".' } else { this.form.linkprot_secret_add.type='."'password'".' }"'.$disabled.' />'.&mt('Visible input').'</label></span> '."\n"; |
|
} |
|
$datatable .= '</td></tr>'; |
$$rowtotal ++; |
$$rowtotal ++; |
return $datatable;; |
return $datatable;; |
} |
} |
Line 5358 sub linkprot_names {
|
Line 5547 sub linkprot_names {
|
return %lt; |
return %lt; |
} |
} |
|
|
|
sub check_switchserver { |
|
my ($cdom,$cnum) = @_; |
|
my ($allowed,$switchserver); |
|
my $home = &Apache::lonnet::homeserver($cnum,$cdom); |
|
unless ($home eq 'no_host') { |
|
my @ids=&Apache::lonnet::current_machine_ids(); |
|
foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } } |
|
if (!$allowed) { |
|
$switchserver='<a href="/adm/switchserver?otherserver='.$home.'&role='. |
|
&HTML::Entities::encode($env{'request.role'},'\'<>"&'). |
|
'&destinationurl=/adm/courseprefs">'.&mt('Switch Server').'</a>'; |
|
} |
|
} |
|
return $switchserver; |
|
} |
|
|
sub print_other { |
sub print_other { |
my ($cdom,$settings,$allitems,$rowtotal,$crstype,$noedit) = @_; |
my ($cdom,$settings,$allitems,$rowtotal,$crstype,$noedit) = @_; |
unless ((ref($settings) eq 'HASH') && (ref($allitems) eq 'ARRAY')) { |
unless ((ref($settings) eq 'HASH') && (ref($allitems) eq 'ARRAY')) { |