version 1.172, 2019/07/26 02:28:34
|
version 1.178, 2025/03/18 18:57:28
|
Line 80 use Apache::loncommon;
|
Line 80 use Apache::loncommon;
|
use Apache::londocs; |
use Apache::londocs; |
use Apache::lonlocal; |
use Apache::lonlocal; |
use Apache::lonuserutils; |
use Apache::lonuserutils; |
use Apache::lonclonecourse; |
|
use LONCAPA::batchcreatecourse; |
use LONCAPA::batchcreatecourse; |
use LONCAPA qw(:DEFAULT :match); |
use LONCAPA qw(:DEFAULT :match); |
|
|
Line 105 sub print_course_creation_page {
|
Line 104 sub print_course_creation_page {
|
foreach my $server (sort(keys(%host_servers))) { |
foreach my $server (sort(keys(%host_servers))) { |
$course_home .= qq{<option value="$server"}; |
$course_home .= qq{<option value="$server"}; |
if ($server eq $Apache::lonnet::perlvar{'lonHostID'}) { |
if ($server eq $Apache::lonnet::perlvar{'lonHostID'}) { |
$course_home .= " selected "; |
$course_home .= ' selected="selected"'; |
} |
} |
$course_home .= qq{>$server $host_servers{$server}</option>}; |
$course_home .= qq{>$server $host_servers{$server}</option>}; |
} |
} |
Line 123 sub print_course_creation_page {
|
Line 122 sub print_course_creation_page {
|
my $endtime = time+(6*30*24*60*60); # 6 months from now, approx |
my $endtime = time+(6*30*24*60*60); # 6 months from now, approx |
my $access_table = &Apache::lonuserutils::date_setting_table($starttime, |
my $access_table = &Apache::lonuserutils::date_setting_table($starttime, |
$endtime,'create_defaultdates'); |
$endtime,'create_defaultdates'); |
|
my $openallfrom = |
|
&Apache::lonhtmlcommon::date_setter('ccrs','openallfrom',$starttime); |
if (($crstype eq 'Course') || ($crstype eq 'Placement')) { |
if (($crstype eq 'Course') || ($crstype eq 'Placement')) { |
$enroll_table = &Apache::lonuserutils::date_setting_table($starttime, |
$enroll_table = &Apache::lonuserutils::date_setting_table($starttime, |
$endtime,'create_enrolldates'); |
$endtime,'create_enrolldates'); |
Line 190 function validate(formname) {
|
Line 191 function validate(formname) {
|
'ncd' => "Do not clone date parameters", |
'ncd' => "Do not clone date parameters", |
'prd' => 'Clone date parameters as-is', |
'prd' => 'Clone date parameters as-is', |
'shd' => 'Shift date parameters by number of days', |
'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", |
'assp' => "Assessment Parameters", |
'oaas' => "Open all assessments", |
'oaas' => "Open all assessments", |
|
'sta' => "starting from:", |
'mssg' => "Messaging", |
'mssg' => "Messaging", |
'scpf' => "Set course policy feedback to Course Coordinator", |
'scpf' => "Set course policy feedback to Course Coordinator", |
'scfc' => "Set resource content feedback to Course Coordinator", |
'scfc' => "Set resource content feedback to Course Coordinator", |
Line 254 function validate(formname) {
|
Line 260 function validate(formname) {
|
$lt{'cc'} = &mt('(will be assigned Coordinator role)'); |
$lt{'cc'} = &mt('(will be assigned Coordinator role)'); |
$lt{'cgrs'} = &mt('Community Group Settings'); |
$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{'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') { |
} elsif ($crstype eq 'Placement') { |
$lt{'cinf'} = &mt('Placement Test Information'); |
$lt{'cinf'} = &mt('Placement Test Information'); |
$lt{'ctit'} = &mt('Placement Test Title'); |
$lt{'ctit'} = &mt('Placement Test Title'); |
Line 269 function validate(formname) {
|
Line 277 function validate(formname) {
|
} |
} |
my $js = <<END; |
my $js = <<END; |
<script type="text/javascript"> |
<script type="text/javascript"> |
|
// <![CDATA[ |
|
|
var editbrowser = null; |
var editbrowser = null; |
function openbrowser(formname,elementname) { |
function openbrowser(formname,elementname) { |
var url = '/res/?'; |
var url = '/res/?'; |
Line 287 function openbrowser(formname,elementnam
|
Line 297 function openbrowser(formname,elementnam
|
editbrowser.focus(); |
editbrowser.focus(); |
} |
} |
$javascript_validations |
$javascript_validations |
|
|
|
// ]]> |
</script> |
</script> |
$coursebrowserjs |
$coursebrowserjs |
END |
END |
Line 306 END
|
Line 318 END
|
'Create_Courses'); |
'Create_Courses'); |
$r->print($start_page.$crumbs); |
$r->print($start_page.$crumbs); |
|
|
$r->print('<form action="/adm/createcourse" method="post" name="ccrs" action=""><div class="LC_createcourse">' |
$r->print('<form action="/adm/createcourse" method="post" name="ccrs"><div class="LC_createcourse">' |
.&Apache::lonhtmlcommon::start_pick_box() |
.&Apache::lonhtmlcommon::start_pick_box() |
|
|
.&Apache::lonhtmlcommon::row_headline() |
.&Apache::lonhtmlcommon::row_headline() |
Line 376 END
|
Line 388 END
|
.'<span class="LC_nobreak">' |
.'<span class="LC_nobreak">' |
.'<input type="radio" name="uniquecode" value="1" />'.&mt('Yes').(' 'x2) |
.'<input type="radio" name="uniquecode" value="1" />'.&mt('Yes').(' 'x2) |
.'<input type="radio" name="uniquecode" value="0" checked="checked" />'.&mt('No') |
.'<input type="radio" name="uniquecode" value="0" checked="checked" />'.&mt('No') |
|
.'</span>' |
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_closure() |
); |
); |
} |
} |
Line 422 END
|
Line 435 END
|
.'<input type="radio" name="firstres" value="nav" />'.$lt{'navi'} |
.'<input type="radio" name="firstres" value="nav" />'.$lt{'navi'} |
.'</label>'); |
.'</label>'); |
} |
} |
|
my $tinyurlhelp=&Apache::loncommon::help_open_topic('Clone_Tiny_URLs'); |
$r->print('<br />('.$lt{'stco'}.')' |
$r->print('<br />('.$lt{'stco'}.')' |
.&Apache::lonhtmlcommon::row_closure(1) |
.&Apache::lonhtmlcommon::row_closure(1) |
.&Apache::lonhtmlcommon::end_pick_box() |
.&Apache::lonhtmlcommon::end_pick_box() |
|
|
.'<td> </td>' |
.'</td><td> </td>' |
|
|
# Clone Course: |
# Clone Course: |
.'<td>' |
.'<td>' |
Line 451 END
|
Line 465 END
|
.'<label>' |
.'<label>' |
.'<input type="radio" name="datemode" value="shift" checked="checked" /> '.$lt{'shd'} |
.'<input type="radio" name="datemode" value="shift" checked="checked" /> '.$lt{'shd'} |
.'</label>' |
.'</label>' |
.' <input type="text" size="5" name="dateshift" value="365" />' |
.' <input type="text" size="5" name="dateshift" value="364" />' |
|
.&Apache::lonhtmlcommon::row_closure() |
|
.&Apache::lonhtmlcommon::row_title($tinyurlhelp.$lt{'dpl'}) |
|
.'<label>' |
|
.'<input type="radio" name="tinyurls" value="delete" /> '.$lt{'nsl'} |
|
.'</label><br />' |
|
.'<label>' |
|
.'<input type="radio" name="tinyurls" value="transfer" /> '.$lt{'tsl'} |
|
.'</label><br />' |
|
.'<label>' |
|
.'<input type="radio" name="tinyurls" value="create" checked="checked" /> '.$lt{'csl'} |
|
.'</label>' |
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_headline() |
.&Apache::lonhtmlcommon::row_headline() |
.'<span class="LC_info">'.$lt{'asov'}.'</span>' |
.'<span class="LC_info">'.$lt{'asov'}.'</span>' |
Line 476 END
|
Line 501 END
|
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_closure() |
|
|
.&Apache::lonhtmlcommon::row_title($lt{'oaas'}) |
.&Apache::lonhtmlcommon::row_title($lt{'oaas'}) |
.'<input type="checkbox" name="openall" />' |
.'<span class="LC_nobreak">' |
|
.'<label><input type="radio" name="openall" value="0" checked="checked" />'.$lt{'no'}.'</label>'.(' 'x2) |
|
.'<label><input type="radio" name="openall" value="1" />'.$lt{'yes'}.'</label>'.', ' |
|
.$lt{'sta'}.' '.$openallfrom.'</span>' |
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_closure() |
|
|
.&Apache::lonhtmlcommon::row_headline() |
.&Apache::lonhtmlcommon::row_headline() |
Line 590 END
|
Line 618 END
|
<p> |
<p> |
<input type="hidden" name="prevphase" value="courseone" /> |
<input type="hidden" name="prevphase" value="courseone" /> |
<input type="hidden" name="phase" value="coursetwo" /> |
<input type="hidden" name="phase" value="coursetwo" /> |
<input type="button" onclick="verify_message(this.form)" value="'.$lt{'opco'}.'" />' |
<input type="button" onclick="verify_message(this.form)" value="'.$lt{'opco'}.'" /> |
|
</p>' |
); |
); |
} elsif ($crstype eq 'Community') { |
} elsif ($crstype eq 'Community') { |
$r->print(' |
$r->print(' |
Line 620 sub create_course {
|
Line 649 sub create_course {
|
my $ccuname =&LONCAPA::clean_username($env{'form.ccuname'}); |
my $ccuname =&LONCAPA::clean_username($env{'form.ccuname'}); |
my $ccdomain=&LONCAPA::clean_domain($env{'form.ccdomain'}); |
my $ccdomain=&LONCAPA::clean_domain($env{'form.ccdomain'}); |
my $crstype = 'Community'; |
my $crstype = 'Community'; |
my ($enrollstart,$enrollend,$startaccess,$endaccess); |
my ($enrollstart,$enrollend,$startaccess,$endaccess,$openallfrom); |
my %domdefaults = |
my %domdefaults = |
&Apache::lonnet::get_domain_defaults($env{'request.role.domain'}); |
&Apache::lonnet::get_domain_defaults($env{'request.role.domain'}); |
|
|
Line 633 sub create_course {
|
Line 662 sub create_course {
|
} |
} |
$startaccess = &Apache::lonhtmlcommon::get_date_from_form('startaccess'); |
$startaccess = &Apache::lonhtmlcommon::get_date_from_form('startaccess'); |
$endaccess = &Apache::lonhtmlcommon::get_date_from_form('endaccess'); |
$endaccess = &Apache::lonhtmlcommon::get_date_from_form('endaccess'); |
|
$openallfrom = &Apache::lonhtmlcommon::get_date_from_form('openallfrom'); |
|
|
my $autharg; |
my $autharg; |
my $authtype; |
my $authtype; |
Line 673 sub create_course {
|
Line 703 sub create_course {
|
clonedomain => $env{'form.clonedomain'}, |
clonedomain => $env{'form.clonedomain'}, |
datemode => $env{'form.datemode'}, |
datemode => $env{'form.datemode'}, |
dateshift => $env{'form.dateshift'}, |
dateshift => $env{'form.dateshift'}, |
|
tinyurls => $env{'form.tinyurls'}, |
crsid => $env{'form.crsid'}, |
crsid => $env{'form.crsid'}, |
curruser => $env{'user.name'}.':'.$env{'user.domain'}, |
curruser => $env{'user.name'}.':'.$env{'user.domain'}, |
crssections => $env{'form.crssections'}, |
crssections => $env{'form.crssections'}, |
Line 698 sub create_course {
|
Line 729 sub create_course {
|
disresdis => $env{'form.disresdis'}, |
disresdis => $env{'form.disresdis'}, |
disablechat => $env{'form.disablechat'}, |
disablechat => $env{'form.disablechat'}, |
openall => $env{'form.openall'}, |
openall => $env{'form.openall'}, |
|
openallfrom => $openallfrom, |
firstres => $env{'form.firstres'} |
firstres => $env{'form.firstres'} |
}; |
}; |
|
|
Line 739 sub create_course {
|
Line 771 sub create_course {
|
return; |
return; |
} |
} |
my ($courseid,$crsudom,$crsunum,$code); |
my ($courseid,$crsudom,$crsunum,$code); |
my ($success,$output) = |
my ($success,$output,$clonemsgref) = |
&Apache::loncommon::construct_course($args,\$logmsg,\$courseid, |
&Apache::loncommon::construct_course($args,\$logmsg,\$courseid, |
\$crsudom,\$crsunum, |
\$crsudom,\$crsunum, |
$env{'user.domain'}, |
$env{'user.domain'}, |
$env{'user.name'},'dc_create',undef,undef,\$code); |
$env{'user.name'},'dc_create',undef,undef,\$code); |
$r->print($output); |
$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}}).'<br />'."\n"); |
|
} |
|
} |
|
} |
if ($success) { |
if ($success) { |
# |
# |
# Make the requested user a course coordinator or group coordinator |
# Make the requested user a course coordinator or group coordinator |
Line 899 sub process_batchfile {
|
Line 939 sub process_batchfile {
|
my $uname = $env{'user.name'}; |
my $uname = $env{'user.name'}; |
my $udom = $env{'user.domain'}; |
my $udom = $env{'user.domain'}; |
my $dir = &LONCAPA::tempdir().'addcourse'; |
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$/)) { |
if (($defdom =~ /^$match_domain$/) && ($uname =~ /^$match_username$/) && ($udom =~/^$match_domain$/)) { |
my $batchfilepath=&Apache::lonnet::userfileupload('coursecreatorxml',undef, |
my $batchfilepath=&Apache::lonnet::userfileupload('coursecreatorxml',undef, |
'batchupload',undef,undef, |
'batchupload',undef,undef, |
Line 913 sub process_batchfile {
|
Line 953 sub process_batchfile {
|
if ((defined($filename)) && (defined($batchdir))) { |
if ((defined($filename)) && (defined($batchdir))) { |
my @requests = ($filename); |
my @requests = ($filename); |
my %courseids = (); |
my %courseids = (); |
($result,$logmsg,$keysmsg,$codesref,$instcodesref) = |
($result,$logmsg,$clonemsg,$keysmsg,$codesref,$instcodesref) = |
&LONCAPA::batchcreatecourse::create_courses( |
&LONCAPA::batchcreatecourse::create_courses( |
\@requests,\%courseids,'web',$defdom, |
\@requests,\%courseids,'web',$defdom, |
$uname,$udom); |
$uname,$udom); |
Line 935 sub process_batchfile {
|
Line 975 sub process_batchfile {
|
&Apache::lonnet::devalidate_cache_new('instcats',$defdom); |
&Apache::lonnet::devalidate_cache_new('instcats',$defdom); |
$updatecats = 1; |
$updatecats = 1; |
} |
} |
®ister_cleanups($r,$defdom,$updatecats); |
®ister_cleanups($r,$defdom,$updatecats); |
|
} |
|
if ($clonemsg) { |
|
$clonemsg = '<p class="LC_info">'.$clonemsg.'</p>'."\n"; |
} |
} |
} |
} |
} else { |
} else { |
Line 953 sub process_batchfile {
|
Line 996 sub process_batchfile {
|
} |
} |
$r->print(&Apache::loncommon::start_page('Create a New Course, Community or Placement Test'). |
$r->print(&Apache::loncommon::start_page('Create a New Course, Community or Placement Test'). |
&Apache::lonhtmlcommon::breadcrumbs('Creation Outcome','Create_Course',undef,'Create_Courses'). |
&Apache::lonhtmlcommon::breadcrumbs('Creation Outcome','Create_Course',undef,'Create_Courses'). |
$logmsg.$result.'<br /><a href="/adm/createcourse">'. |
$logmsg.$clonemsg.$result.'<br /><a href="/adm/createcourse">'. |
&mt('Creation options menu').'</a>'. |
&mt('Creation options menu').'</a>'. |
&Apache::loncommon::end_page()); |
&Apache::loncommon::end_page()); |
|
|
Line 1208 sub creation_display_filter {
|
Line 1251 sub creation_display_filter {
|
my ($contexts,$contextnames) = &context_names(); |
my ($contexts,$contextnames) = &context_names(); |
my $output = '<table><tr><td valign="top">'. |
my $output = '<table><tr><td valign="top">'. |
'<span class="LC_nobreak"><b>'.&mt('Records/page:').'</b></span><br />'. |
'<span class="LC_nobreak"><b>'.&mt('Records/page:').'</b></span><br />'. |
&Apache::lonmeta::selectbox('show',$curr->{'show'},undef, |
&Apache::lonmeta::selectbox('show',$curr->{'show'},'','',undef, |
(&mt('all'),5,10,20,50,100,1000,10000)). |
(&mt('all'),5,10,20,50,100,1000,10000)). |
'</td><td> </td>'; |
'</td><td> </td>'; |
my $startform = |
my $startform = |
Line 1542 sub handler {
|
Line 1585 sub handler {
|
my $start_page=&Apache::loncommon::start_page('Requests Validation Result',$js); |
my $start_page=&Apache::loncommon::start_page('Requests Validation Result',$js); |
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Validation Attempted','Course_Requests',undef,'Course_Requests'); |
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Validation Attempted','Course_Requests',undef,'Course_Requests'); |
$r->print($start_page.$crumbs."\n".'<div>'. |
$r->print($start_page.$crumbs."\n".'<div>'. |
&Apache::loncoursequeueadmin::process_official_reqs('domain',$env{'request.role.domain'}).'</div>'. |
&Apache::loncoursequeueadmin::process_official_reqs('domain',$env{'request.role.domain'}, |
|
$env{'user.name'},$env{'user.domain'}). |
|
'</div>'. |
&Apache::loncommon::end_page()); |
&Apache::loncommon::end_page()); |
} elsif (($env{'form.phase'} eq 'creationlog') && ($show_all_choices)) { |
} elsif (($env{'form.phase'} eq 'creationlog') && ($show_all_choices)) { |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |