--- loncom/interface/courseprefs.pm 2024/02/25 05:53:47 1.49.2.28.2.20
+++ loncom/interface/courseprefs.pm 2025/03/15 01:24:03 1.49.2.28.2.22
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set configuration settings for a course
#
-# $Id: courseprefs.pm,v 1.49.2.28.2.20 2024/02/25 05:53:47 raeburn Exp $
+# $Id: courseprefs.pm,v 1.49.2.28.2.22 2025/03/15 01:24:03 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1975,10 +1975,14 @@ sub process_ltitools {
} else {
$ltitools{$newid}{'display'}{'target'} = 'iframe';
}
- foreach my $item ('passback','roster') {
+ foreach my $item ('passback','roster','returnurl') {
if ($env{'form.ltitools_'.$item.'_add'}) {
$ltitools{$newid}{$item} = 1;
- if ($env{'form.ltitools_'.$item.'valid_add'} ne '') {
+ if ($item eq 'returnurl') {
+ if ($env{'form.ltitools_crs'.$item.'_add'}) {
+ $ltitools{$newid}{'crsconf'}{$item} = 1;
+ }
+ } elsif ($env{'form.ltitools_'.$item.'valid_add'} ne '') {
my $lifetime = $env{'form.ltitools_'.$item.'valid_add'};
$lifetime =~ s/^\s+|\s+$//g;
if ($lifetime =~ /^\d+\.?\d*$/) {
@@ -2162,10 +2166,21 @@ sub process_ltitools {
} else {
$haschanges{$itemid} = 1;
}
- foreach my $extra ('passback','roster') {
+ foreach my $extra ('passback','roster','returnurl') {
if ($env{'form.ltitools_'.$extra.'_'.$i}) {
$ltitools{$itemid}{$extra} = 1;
- if ($env{'form.ltitools_'.$extra.'valid_'.$i} ne '') {
+ if ($extra eq 'returnurl') {
+ if ($env{'form.ltitools_crs'.$extra.'_'.$i}) {
+ $ltitools{$itemid}{'crsconf'}{$extra} = 1;
+ if (ref($values->{$itemid}{'crsconf'}) eq 'HASH') {
+ if (!$values->{$itemid}{'crsconf'}{$extra}) {
+ $haschanges{$itemid} = 1;
+ }
+ } else {
+ $haschanges{$itemid} = 1;
+ }
+ }
+ } elsif ($env{'form.ltitools_'.$extra.'valid_'.$i} ne '') {
my $lifetime = $env{'form.ltitools_'.$extra.'valid_'.$i};
$lifetime =~ s/^\s+|\s+$//g;
if ($lifetime =~ /^\d+\.?\d*$/) {
@@ -3238,7 +3253,7 @@ sub store_ltitools {
}
}
}
- $output .= '
'.&mt('Configurable in course:');
+ $output .= ''.&mt('Configurable in course').':';
my @possconfig = ('label','title','target','linktext','explanation','append');
my $numconfig = 0;
if (ref($changes->{$itemid}{'crsconf'}) eq 'HASH') {
@@ -3253,11 +3268,21 @@ sub store_ltitools {
$output .= ' '.&mt('None');
}
$output .= '';
- foreach my $item ('passback','roster') {
+ foreach my $item ('passback','roster','returnurl') {
$output .= ''.$lt{$item}.' ';
if ($changes->{$itemid}{$item}) {
$output .= &mt('Yes');
- if ($changes->{$itemid}{$item.'valid'}) {
+ if ($item eq 'returnurl') {
+ if (ref($changes->{$itemid}{'crsconf'}) eq 'HASH') {
+ $output .= ' ['.&mt('Configurable in course').': ';
+ if ($changes->{$itemid}{'crsconf'}{$item}) {
+ $output .= &mt('Yes');
+ } else {
+ $output .= &mt('No');
+ }
+ $output .= ']';
+ }
+ } elsif ($changes->{$itemid}{$item.'valid'}) {
if ($item eq 'passback') {
$output .= ' '.&mt('valid for at least [quant,_1,day] after launch',
$changes->{$itemid}{$item.'valid'});
@@ -5069,8 +5094,7 @@ sub update_releasereq {
}
$modified_courses = [];
}
- undef($registered_cleanup);
- return;
+ return OK;
}
sub show_autocoowners {
@@ -6376,22 +6400,35 @@ sub print_ltitools {
''.$lt{'linktext'}.'
'.
'
'.
''.$lt{'explanation'}.'
'.
- '
';
my %units = (
'passback' => 'days',
'roster' => 'seconds',
);
- foreach my $extra ('passback','roster') {
+ my %courseconfig;
+ if (ref($settings->{$item}) eq 'HASH') {
+ if (ref($settings->{$item}->{'crsconf'}) eq 'HASH') {
+ %courseconfig = %{$settings->{$item}->{'crsconf'}};
+ }
+ }
+ foreach my $extra ('passback','roster','returnurl') {
my $validsty = 'none';
my $currvalid;
my $checkedon = '';
my $checkedoff = ' checked="checked"';
+ my $crscheckedon = '';
+ my $crscheckedoff = ' checked="checked"';
if ($settings->{$item}->{$extra}) {
$checkedon = $checkedoff;
$checkedoff = '';
$validsty = 'inline-block';
- if ($settings->{$item}->{$extra.'valid'} =~ /^\d+\.?\d*$/) {
+ if ($extra eq 'returnurl') {
+ if ($courseconfig{$extra}) {
+ $crscheckedon = ' checked="checked"';
+ $crscheckedoff = '';
+ }
+ } elsif ($settings->{$item}->{$extra.'valid'} =~ /^\d+\.?\d*$/) {
$currvalid = $settings->{$item}->{$extra.'valid'};
}
}
@@ -6400,12 +6437,21 @@ sub print_ltitools {
''.(' 'x2).
''.
- '';
+ &mt('Yes').'';
+ if ($extra eq 'returnurl') {
+ $datatable .= '';
+ if ($extra eq 'returnurl') {
+ $datatable .= '