--- loncom/interface/loncreatecourse.pm 2020/05/22 19:35:08 1.174
+++ loncom/interface/loncreatecourse.pm 2020/07/01 20:08:54 1.175
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Create a course
#
-# $Id: loncreatecourse.pm,v 1.174 2020/05/22 19:35:08 raeburn Exp $
+# $Id: loncreatecourse.pm,v 1.175 2020/07/01 20:08:54 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -80,7 +80,6 @@ use Apache::loncommon;
use Apache::londocs;
use Apache::lonlocal;
use Apache::lonuserutils;
-use Apache::lonclonecourse;
use LONCAPA::batchcreatecourse;
use LONCAPA qw(:DEFAULT :match);
@@ -192,6 +191,10 @@ function validate(formname) {
'ncd' => "Do not clone date parameters",
'prd' => 'Clone date parameters as-is',
'shd' => 'Shift date parameters by number of days',
+ 'dpl' => 'URL shortcuts (for deep linking)',
+ 'nsl' => 'Do not clone URL shortcuts',
+ 'tsl' => 'Transfer URL shortcuts from existing course to new course',
+ 'csl' => 'Create new URL shortcuts in new course',
'assp' => "Assessment Parameters",
'oaas' => "Open all assessments",
'sta' => "starting from:",
@@ -257,6 +260,8 @@ function validate(formname) {
$lt{'cc'} = &mt('(will be assigned Coordinator role)');
$lt{'cgrs'} = &mt('Community Group Settings');
$lt{'cgrq'} = &mt('Set a quota for the total disk space available for storage of community group portfolio files');
+ $lt{'tsl'} = &mt('Transfer URL shortcuts from existing community to new community');
+ $lt{'csl'} = &mt('Create new URL shortcuts in new community');
} elsif ($crstype eq 'Placement') {
$lt{'cinf'} = &mt('Placement Test Information');
$lt{'ctit'} = &mt('Placement Test Title');
@@ -430,6 +435,7 @@ END
.''.$lt{'navi'}
.'');
}
+ my $tinyurlhelp=&Apache::loncommon::help_open_topic('Clone_Tiny_URLs');
$r->print('
('.$lt{'stco'}.')'
.&Apache::lonhtmlcommon::row_closure(1)
.&Apache::lonhtmlcommon::end_pick_box()
@@ -461,6 +467,17 @@ END
.''
.' '
.&Apache::lonhtmlcommon::row_closure()
+ .&Apache::lonhtmlcommon::row_title($tinyurlhelp.$lt{'dpl'})
+ .'
'
+ .'
'
+ .''
+ .&Apache::lonhtmlcommon::row_closure()
.&Apache::lonhtmlcommon::row_headline()
.''.$lt{'asov'}.''
.&Apache::lonhtmlcommon::row_closure(1)
@@ -686,6 +703,7 @@ sub create_course {
clonedomain => $env{'form.clonedomain'},
datemode => $env{'form.datemode'},
dateshift => $env{'form.dateshift'},
+ tinyurls => $env{'form.tinyurls'},
crsid => $env{'form.crsid'},
curruser => $env{'user.name'}.':'.$env{'user.domain'},
crssections => $env{'form.crssections'},
@@ -753,12 +771,20 @@ sub create_course {
return;
}
my ($courseid,$crsudom,$crsunum,$code);
- my ($success,$output) =
+ my ($success,$output,$clonemsgref) =
&Apache::loncommon::construct_course($args,\$logmsg,\$courseid,
\$crsudom,\$crsunum,
$env{'user.domain'},
$env{'user.name'},'dc_create',undef,undef,\$code);
$r->print($output);
+ if (ref($clonemsgref) eq 'ARRAY') {
+ my $user_lh = &Apache::loncommon::user_lang($env{'user.name'},$env{'user.domain'});
+ foreach my $item (@{$clonemsgref}) {
+ if (ref($item) eq 'HASH') {
+ $r->print(&mt($item->{mt},@{$item->{args}}).'
'."\n");
+ }
+ }
+ }
if ($success) {
#
# Make the requested user a course coordinator or group coordinator
@@ -913,7 +939,7 @@ sub process_batchfile {
my $uname = $env{'user.name'};
my $udom = $env{'user.domain'};
my $dir = &LONCAPA::tempdir().'addcourse';
- my ($result,$logmsg,$keysmsg,$codesref,$instcodesref);
+ my ($result,$logmsg,$clonemsg,$keysmsg,$codesref,$instcodesref);
if (($defdom =~ /^$match_domain$/) && ($uname =~ /^$match_username$/) && ($udom =~/^$match_domain$/)) {
my $batchfilepath=&Apache::lonnet::userfileupload('coursecreatorxml',undef,
'batchupload',undef,undef,
@@ -927,7 +953,7 @@ sub process_batchfile {
if ((defined($filename)) && (defined($batchdir))) {
my @requests = ($filename);
my %courseids = ();
- ($result,$logmsg,$keysmsg,$codesref,$instcodesref) =
+ ($result,$logmsg,$clonemsg,$keysmsg,$codesref,$instcodesref) =
&LONCAPA::batchcreatecourse::create_courses(
\@requests,\%courseids,'web',$defdom,
$uname,$udom);
@@ -949,7 +975,10 @@ sub process_batchfile {
&Apache::lonnet::devalidate_cache_new('instcats',$defdom);
$updatecats = 1;
}
- ®ister_cleanups($r,$defdom,$updatecats);
+ ®ister_cleanups($r,$defdom,$updatecats);
+ }
+ if ($clonemsg) {
+ $clonemsg = '
'.$clonemsg.'
'."\n"; } } } else { @@ -967,7 +996,7 @@ sub process_batchfile { } $r->print(&Apache::loncommon::start_page('Create a New Course, Community or Placement Test'). &Apache::lonhtmlcommon::breadcrumbs('Creation Outcome','Create_Course',undef,'Create_Courses'). - $logmsg.$result.'