--- loncom/interface/loncreatecourse.pm 2003/12/11 17:31:23 1.46
+++ loncom/interface/loncreatecourse.pm 2004/09/09 19:24:01 1.67
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Create a course
#
-# $Id: loncreatecourse.pm,v 1.46 2003/12/11 17:31:23 sakharuk Exp $
+# $Id: loncreatecourse.pm,v 1.67 2004/09/09 19:24:01 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -25,20 +25,8 @@
#
# http://www.lon-capa.org/
#
-# (My Desk
-#
-# (Internal Server Error Handler
-#
-# (Login Screen
-# 5/21/99,5/22,5/25,5/26,5/31,6/2,6/10,7/12,7/14,
-# 1/14/00,5/29,5/30,6/1,6/29,7/1,11/9 Gerd Kortemeyer)
-#
-# 3/1/1 Gerd Kortemeyer)
-#
-# 3/1 Gerd Kortemeyer)
-#
-# 2/14,2/16,2/17,7/6 Gerd Kortemeyer
-#
+###
+
package Apache::loncreatecourse;
use strict;
@@ -54,17 +42,34 @@ use localenroll;
# ================================================ Get course directory listing
+my @output=();
+
sub crsdirlist {
my ($courseid,$which)=@_;
- unless ($which) { $which=''; }
+ @output=();
+ return &innercrsdirlist($courseid,$which);
+}
+
+sub innercrsdirlist {
+ my ($courseid,$which,$path)=@_;
+ my $dirptr=16384;
+ unless ($which) { $which=''; } else { $which.='/'; }
+ unless ($path) { $path=''; } else { $path.='/'; }
my %crsdata=&Apache::lonnet::coursedescription($courseid);
my @listing=&Apache::lonnet::dirlist
($which,$crsdata{'domain'},$crsdata{'num'},
&Apache::loncommon::propath($crsdata{'domain'},$crsdata{'num'}));
- my @output=();
foreach (@listing) {
unless ($_=~/^\./) {
- push (@output,(split(/\&/,$_))[0]);
+ my @unpackline = split (/\&/,$_);
+ if ($unpackline[3]&$dirptr) {
+# is a directory, recurse
+ &innercrsdirlist($courseid,$which.$unpackline[0],
+ $path.$unpackline[0]);
+ } else {
+# is a file, put into output
+ push (@output,$path.$unpackline[0]);
+ }
}
}
return @output;
@@ -118,7 +123,9 @@ sub copyfile {
&readfile($origcrsid,$which),
(
'/uploaded/'.$origcrsdata{'domain'}.'/'.$origcrsdata{'num'}.'/'
- => '/uploaded/'. $newcrsdata{'domain'}.'/'. $newcrsdata{'num'}.'/'
+ => '/uploaded/'. $newcrsdata{'domain'}.'/'. $newcrsdata{'num'}.'/',
+ '/public/'.$origcrsdata{'domain'}.'/'.$origcrsdata{'num'}.'/'
+ => '/public/'. $newcrsdata{'domain'}.'/'. $newcrsdata{'num'}.'/'
)));
}
}
@@ -248,7 +255,8 @@ sub print_course_creation_page {
my $coursebrowserjs=&Apache::loncommon::coursebrowser_javascript();
my $starttime = time;
my $endtime = time+(6*30*24*60*60); # 6 months from now, approx
- my $date_table = &Apache::londropadd::date_setting_table($starttime,$endtime,'createcourse');
+ my $enroll_table = &Apache::londropadd::date_setting_table($starttime,$endtime,'create_enrolldates');
+ my $access_table = &Apache::londropadd::date_setting_table($starttime,$endtime,'create_defaultdates');
my ($krbdef,$krbdefdom) =
&Apache::loncommon::get_kerberos_defaults($defdom);
my $javascript_validations=&Apache::londropadd::javascript_validations('createcourse',$krbdefdom);
@@ -272,7 +280,7 @@ sub print_course_creation_page {
'snid' => "Section Numbers and corresponding LON-CAPA section/group IDs",
'csli' => "a comma separated list of institutional section numbers, each separated by a colon from the (optional) corresponding section/group ID to be used in LON-CAPA e.g., 001:1,002:2",
'crcs' => "Crosslisted courses",
- 'cscs' => "a comma separated list of course sections crosslisted with the current course, with each entry including the institutional course section name followed by a colon and then the (optional) groupID to be used in LON-CAPA, e.g., fs03ent231001:ent1,fs03bot231001:bot1,fs03zol231002:bot2",
+ 'cscs' => "a comma separated list of course sections crosslisted with the current course, with each entry including the institutional course section name followed by a colon and then the (optional) groupID to be used in LON-CAPA, e.g., fs03ent231001:ent1,fs03bot231001:bot1,fs03zol231002:zol2",
'crco' => "Course Content",
'cncr' => "Completely new course",
'cecr' => "Clone an existing course",
@@ -298,6 +306,8 @@ sub print_course_creation_page {
'dsuc' => "Disable student use of chatrooms",
'acco' => "Access Control",
'snak' => "Students need access key to enter course",
+ 'kaut' =>
+ 'Key authority (id@domain) if other than course',
'cc' => "Course Coordinator",
'user' => "Username",
'ierc' => "Immediately expire own role as Course Coordinator",
@@ -308,11 +318,13 @@ sub print_course_creation_page {
'no' => "No",
'audr' => "Automated drops",
'dacu' => "Duration of automated classlist updates",
+ 'dacc' => "Default start and end dates for student access",
'psam' => "Please select the authentication mechanism",
'pcda' => "Please choose the default authentication method to be used by new users added to this LON-CAPA domain by the automated enrollment process",
'nech' => "Notification of enrollment changes",
'nccl' => "Notification to course coordinator via LON-CAPA message when enrollment changes occur during the automated update?",
'irsp' => "Include retrieval of student photographs?",
+ 'rshm' => 'Resource Space Home',
'opco' => "Open Course"
);
$r->print(<
$lt{'oaas'}:
-
+
$lt{'scpf'}:
-
+
$lt{'snak'}:
-
+
+$lt{'rshm'}:
+
-$lt{'user'}:
-
-$lt{'dmn'}: $domform
-
-$lt{'ierc'}:
-
-
$lt{'mssg'}
$lt{'scfc'}:
$lt{'acco'}
+$lt{'kaut'}:
+
+$lt{'rshm'}
+$lt{'cc'}
$lt{'aens'}
$lt{'aesc'}
$lt{'dacu'} -$date_table +$enroll_table
+$lt{'dacc'} +$access_table +
$lt{'psam'}.
@@ -461,7 +475,18 @@ $lt{'nccl'}
value="0" checked="true" />$lt{'no'}
$lt{'irsp'} $lt{'yes'} $lt{'no'} +
++$lt{'user'}: +
+$lt{'dmn'}: $domform
+$lt{'ierc'}: + +
+@@ -476,6 +501,7 @@ ENDDOCUMENT sub create_course { my $r=shift; my $topurl='/res/'.&Apache::lonnet::declutter($ENV{'form.topmap'}); + my $this_server = $Apache::lonnet::perlvar{'lonHostID'}; my $ccuname=$ENV{'form.ccuname'}; my $ccdomain=$ENV{'form.ccdomain'}; $ccuname=~s/\W//g; @@ -495,7 +521,16 @@ ENDENHEAD # # Check the veracity of the course coordinator if (&Apache::lonnet::homeserver($ccuname,$ccdomain) eq 'no_host') { - $r->print(&mt('No such user').' '.$ccuname.' '.&mt('at').' '.$ccdomain.'