version 1.157, 2014/02/28 19:20:06
|
version 1.158.2.3.2.1, 2017/11/16 16:22:58
|
Line 133 sub print_course_creation_page {
|
Line 133 sub print_course_creation_page {
|
} else { |
} else { |
my $title_alert = &mt('A Community title is required'); |
my $title_alert = &mt('A Community title is required'); |
my $coord_alert = &mt('The username of the Coordinator is required'); |
my $coord_alert = &mt('The username of the Coordinator is required'); |
|
&js_escape(\$title_alert); |
|
&js_escape(\$coord_alert); |
$javascript_validations = qq| |
$javascript_validations = qq| |
function validate(formname) { |
function validate(formname) { |
if (formname.title == '') { |
if (formname.title == '') { |
Line 185 function validate(formname) {
|
Line 187 function validate(formname) {
|
'oaas' => "Open all assessments", |
'oaas' => "Open all assessments", |
'mssg' => "Messaging", |
'mssg' => "Messaging", |
'scpf' => "Set course policy feedback to Course Coordinator", |
'scpf' => "Set course policy feedback to Course Coordinator", |
'scfc' => "Set content feedback to Course Coordinator", |
'scfc' => "Set resource content feedback to Course Coordinator", |
|
'scof' => "Set course content feedback to Course Coordinator", |
'cmmn' => "Communication", |
'cmmn' => "Communication", |
'dsrd' => "Disable student resource discussion", |
'dsrd' => "Disable student resource discussion", |
'dsuc' => "Disable student use of chat rooms", |
'dsuc' => "Disable student use of chat rooms", |
Line 231 function validate(formname) {
|
Line 234 function validate(formname) {
|
$lt{'navi'} = &mt('Community Contents'); |
$lt{'navi'} = &mt('Community Contents'); |
$lt{'cid'} = &mt('Community ID'); |
$lt{'cid'} = &mt('Community ID'); |
$lt{'scpf'} = &mt('Set community policy feedback to Coordinator'); |
$lt{'scpf'} = &mt('Set community policy feedback to Coordinator'); |
$lt{'scfc'} = &mt('Set content feedback to Coordinator'); |
$lt{'scfc'} = &mt('Set resource content feedback to Coordinator'); |
|
$lt{'scof'} = &mt('Set community content feedback to Coordinator'); |
$lt{'dsrd'} = &mt('Disable member resource discussion'); |
$lt{'dsrd'} = &mt('Disable member resource discussion'); |
$lt{'dsuc'} = &mt('Disable member use of chat rooms'); |
$lt{'dsuc'} = &mt('Disable member use of chat rooms'); |
$lt{'dads'} = &mt('Default Access Dates for Members'); |
$lt{'dads'} = &mt('Default Access Dates for Members'); |
Line 460 END
|
Line 464 END
|
.'<input type="checkbox" name="setcontent" checked="checked" />' |
.'<input type="checkbox" name="setcontent" checked="checked" />' |
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_closure() |
|
|
|
.&Apache::lonhtmlcommon::row_title($lt{'scof'}) |
|
.'<input type="checkbox" name="setcomment" checked="checked" />' |
|
.&Apache::lonhtmlcommon::row_closure() |
|
|
.&Apache::lonhtmlcommon::row_headline() |
.&Apache::lonhtmlcommon::row_headline() |
.'<h3>'.$lt{'cmmn'}.'</h3>' |
.'<h3>'.$lt{'cmmn'}.'</h3>' |
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_closure() |
Line 646 sub create_course {
|
Line 654 sub create_course {
|
endaccess => $endaccess, |
endaccess => $endaccess, |
setpolicy => $env{'form.setpolicy'}, |
setpolicy => $env{'form.setpolicy'}, |
setcontent => $env{'form.setcontent'}, |
setcontent => $env{'form.setcontent'}, |
|
setcomment => $env{'form.setcomment'}, |
reshome => $env{'form.reshome'}, |
reshome => $env{'form.reshome'}, |
setkeys => $env{'form.setkeys'}, |
setkeys => $env{'form.setkeys'}, |
keyauth => $env{'form.keyauth'}, |
keyauth => $env{'form.keyauth'}, |
Line 732 sub create_course {
|
Line 741 sub create_course {
|
} |
} |
|
|
sub print_intro_page { |
sub print_intro_page { |
my ($r,$show_all_choices) = @_; |
my ($r,$show_all_choices,$cancreate,$permission) = @_; |
my $start_page = |
my $start_page = |
&Apache::loncommon::start_page('Create a New Course or Community'); |
&Apache::loncommon::start_page('Create a New Course or Community'); |
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Creation Options','Create_Course',undef,'Create_Courses'); |
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Creation Options','Create_Course',undef,'Create_Courses'); |
Line 741 sub print_intro_page {
|
Line 750 sub print_intro_page {
|
my $helplink=&Apache::loncommon::help_open_topic('Create_Course_Community',&mt('Help on Creating Courses and Communities')); |
my $helplink=&Apache::loncommon::help_open_topic('Create_Course_Community',&mt('Help on Creating Courses and Communities')); |
|
|
# Create menu |
# Create menu |
|
my $approve = 'Display requests awaiting approval'; |
|
if ($permission->{'create'}) { |
|
$approve = 'Approve or reject requests'; |
|
} |
my @menu; |
my @menu; |
@menu = |
@menu = |
({ categorytitle => 'Course/Community Creation', |
({ categorytitle => 'Course/Community Creation', |
Line 748 sub print_intro_page {
|
Line 761 sub print_intro_page {
|
{ |
{ |
linktext => 'Create a single course', |
linktext => 'Create a single course', |
url => '/adm/createcourse?phase=courseone', |
url => '/adm/createcourse?phase=courseone', |
permission => 1, |
permission => $permission->{'create'}, |
#help => '', |
#help => '', |
icon => 'crsnew.png', |
icon => 'crsnew.png', |
linktitle => 'Create a new course by completing an online form.' |
linktitle => 'Create a new course by completing an online form.' |
Line 756 sub print_intro_page {
|
Line 769 sub print_intro_page {
|
{ |
{ |
linktext => 'Create a single community', |
linktext => 'Create a single community', |
url => '/adm/createcourse?phase=groupone', |
url => '/adm/createcourse?phase=groupone', |
permission => $show_all_choices, |
permission => $permission->{'create'} && $cancreate->{'Community'}, |
#help => '', |
#help => '', |
icon => 'crsnew.png', |
icon => 'crsnew.png', |
linktitle => 'Create a new collaborative community by completing an online form.' |
linktitle => 'Create a new collaborative community by completing an online form.' |
Line 764 sub print_intro_page {
|
Line 777 sub print_intro_page {
|
{ |
{ |
linktext => 'Create courses/communities by uploading an attributes file', |
linktext => 'Create courses/communities by uploading an attributes file', |
url => '/adm/createcourse?phase=batchone', |
url => '/adm/createcourse?phase=batchone', |
permission => 1, |
permission => $permission->{'create'}, |
help => 'Batch_Creation', |
help => 'Batch_Creation', |
icon => 'uplcrs.png', |
icon => 'uplcrs.png', |
linktitle => 'Upload an attributes file containing specifications for one or more courses or communities in XML format.' |
linktitle => 'Upload an attributes file containing specifications for one or more courses or communities in XML format.' |
Line 774 sub print_intro_page {
|
Line 787 sub print_intro_page {
|
{ categorytitle => 'Course/Community Requests', |
{ categorytitle => 'Course/Community Requests', |
items => [ |
items => [ |
{ |
{ |
linktext => 'Approve or reject requests', |
linktext => $approve, |
url => '/adm/createcourse?phase=requestdisplay', |
url => '/adm/createcourse?phase=requestdisplay', |
permission => $show_all_choices, |
permission => $show_all_choices, |
#help => '', |
#help => '', |
Line 835 sub upload_batchfile {
|
Line 848 sub upload_batchfile {
|
|
|
sub process_batchfile { |
sub process_batchfile { |
my $r = shift; |
my $r = shift; |
my $start_page = |
|
&Apache::loncommon::start_page('Create a New Course or Community'); |
|
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Creation Outcome','Create_Course',undef,'Create_Courses'); |
|
my $end_page = |
|
&Apache::loncommon::end_page(); |
|
my $defdom=$env{'request.role.domain'}; |
my $defdom=$env{'request.role.domain'}; |
my $batchfilepath=&Apache::lonnet::userfileupload('coursecreatorxml',undef, |
my $uname = $env{'user.name'}; |
'batchupload',undef,undef, |
my $udom = $env{'user.domain'}; |
undef,undef,$defdom); |
my $dir = &LONCAPA::tempdir().'addcourse'; |
my ($batchdir,$filename) = ($batchfilepath =~ m-^(.+)/pending/([^/]+)$-); |
|
my ($result,$logmsg); |
my ($result,$logmsg); |
if (-e "$batchfilepath") { |
if (($defdom =~ /^$match_domain$/) && ($uname =~ /^$match_username$/) && ($udom =~/^$match_domain$/)) { |
open(FILE,"<$batchfilepath"); |
my $batchfilepath=&Apache::lonnet::userfileupload('coursecreatorxml',undef, |
my @buffer = <FILE>; |
'batchupload',undef,undef, |
close(FILE); |
undef,undef,$defdom); |
if ((defined($filename)) && (defined($batchdir))) { |
if ($batchfilepath =~ m{^(\Q$dir/$defdom/web/$uname\_$udom\E)/pending/([^/]+)$}) { |
my @requests = ($filename); |
my ($batchdir,$filename) = ($1,$2); |
my %courseids = (); |
if (-e "$batchfilepath") { |
($result,$logmsg) = &LONCAPA::batchcreatecourse::create_courses( |
if (open(FILE,"<",$batchfilepath)) { |
\@requests,\%courseids,'web',$defdom, |
my @buffer = <FILE>; |
$env{'user.name'},$env{'user.domain'}); |
|
if ($result) { |
|
if (!-e "$batchdir/processed") { |
|
mkdir("$batchdir/processed", 0755); |
|
open(FILE,">$batchdir/processed/$filename"); |
|
print FILE @buffer; |
|
close(FILE); |
close(FILE); |
if (-e "$batchdir/processed/$filename") { |
if ((defined($filename)) && (defined($batchdir))) { |
unlink("$batchdir/pending/$filename"); |
my @requests = ($filename); |
|
my %courseids = (); |
|
($result,$logmsg) = &LONCAPA::batchcreatecourse::create_courses( |
|
\@requests,\%courseids,'web',$defdom, |
|
$uname,$udom); |
|
if (keys(%courseids) > 0) { |
|
if (!-e "$batchdir/processed") { |
|
mkdir("$batchdir/processed", 0755); |
|
} |
|
if (-d "$batchdir/processed") { |
|
if (open(FILE,">","$batchdir/processed/$filename")) { |
|
print FILE @buffer; |
|
close(FILE); |
|
} |
|
} |
|
if (-e "$batchdir/processed/$filename") { |
|
unlink("$batchdir/pending/$filename"); |
|
} |
|
} |
} |
} |
|
} else { |
|
$result = '<p class="LC_error">'.&mt('Could not open attributes file.').'<br />'.&mt('No courses created.').'</p>'; |
} |
} |
|
} else { |
|
$result = '<p class="LC_error">'.&mt('No uploaded attributes file found.').'<br />'.&mt('No courses created.').'</p>'; |
} |
} |
|
} else { |
|
$result = '<p class="LC_error">'.&mt('Invalid path to attributes file.').'<br />'.&mt('No courses created.').'</p>'; |
} |
} |
|
} else { |
|
$result = '<p class="LC_error">'.&mt("Your username, domain, and/or your current role's domain are missing or contain invalid characters."). |
|
'<br />'.&mt('No courses created.').'</p>'; |
} |
} |
$r->print($start_page.$crumbs.$logmsg.$result.'<br /><a href="/adm/createcourse">'. |
$r->print(&Apache::loncommon::start_page('Create a New Course, Community or Placement Test'). |
&mt('Creation options menu').'</a>'.$end_page); |
&Apache::lonhtmlcommon::breadcrumbs('Creation Outcome','Create_Course',undef,'Create_Courses'). |
|
$logmsg.$result.'<br /><a href="/adm/createcourse">'. |
|
&mt('Creation options menu').'</a>'. |
|
&Apache::loncommon::end_page()); |
} |
} |
|
|
sub courserequestbrowser_javascript { |
sub courserequestbrowser_javascript { |
Line 1245 ENDJS
|
Line 1275 ENDJS
|
|
|
} |
} |
|
|
|
sub get_permission { |
|
my ($dom) = @_; |
|
my ($allowed,%permission); |
|
if (&Apache::lonnet::allowed('ccc',$dom)) { |
|
$allowed = 1; |
|
%permission = ( |
|
create => 1, |
|
); |
|
} elsif (&Apache::lonnet::allowed('dcc',$dom)) { |
|
$allowed = 1; |
|
} |
|
return ($allowed,\%permission); |
|
} |
|
|
# ===================================================================== Handler |
# ===================================================================== Handler |
sub handler { |
sub handler { |
my $r = shift; |
my $r = shift; |
Line 1255 sub handler {
|
Line 1299 sub handler {
|
return OK; |
return OK; |
} |
} |
|
|
my $show_all_choices = 0; |
my ($allowed,$permission) = &get_permission($env{'request.role.domain'}); |
my $primary_rev = &Apache::lonnet::get_server_loncaparev($env{'request.role.domain'}); |
if ($allowed) { |
if (($primary_rev ne 'refused') && ($primary_rev ne 'error') && |
my $show_all_choices = 0; |
($primary_rev ne 'unknown_cmd') && ($primary_rev ne 'no_such_host')) { |
my $primary_rev = &Apache::lonnet::get_server_loncaparev($env{'request.role.domain'}); |
$show_all_choices = 1; |
my %cancreate = ( |
} |
Community => 0, |
|
); |
|
if (($primary_rev ne 'refused') && ($primary_rev ne 'error') && |
|
($primary_rev ne 'unknown_cmd') && ($primary_rev ne 'no_such_host')) { |
|
$show_all_choices = 1; |
|
my ($primary_major,$primary_minor) = split(/\./,$primary_rev); |
|
foreach my $key (keys(%cancreate)) { |
|
my ($needsmajor,$needsminor) = |
|
split(/\./,$Apache::lonnet::needsrelease{'course:crstype:'.$key}); |
|
unless (($needsmajor > $primary_major) || |
|
(($needsmajor == $primary_major) && ($needsminor > $primary_minor))) { |
|
$cancreate{$key} = 1; |
|
} |
|
} |
|
} |
|
|
if (&Apache::lonnet::allowed('ccc',$env{'request.role.domain'})) { |
|
&Apache::loncommon::content_type($r,'text/html'); |
&Apache::loncommon::content_type($r,'text/html'); |
$r->send_http_header; |
$r->send_http_header; |
|
|
Line 1273 sub handler {
|
Line 1330 sub handler {
|
({href=>"/adm/createcourse", |
({href=>"/adm/createcourse", |
text=>"Creation Options", |
text=>"Creation Options", |
faq=>79,bug=>'Dom Coord Interface',}); |
faq=>79,bug=>'Dom Coord Interface',}); |
if (($env{'form.phase'} eq 'coursetwo') || |
if (($permission->{'create'}) && |
(($env{'form.phase'} eq 'grouptwo') && |
(($env{'form.phase'} eq 'coursetwo') || |
($show_all_choices))) { |
(($env{'form.phase'} eq 'grouptwo') && |
|
($cancreate{'Community'})))) { |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>"/adm/createcourse?phase=$env{'form.prevphase'}", |
({href=>"/adm/createcourse?phase=$env{'form.prevphase'}", |
text=>&mt('[_1] Creation Settings',), |
text=>&mt('[_1] Creation Settings',), |
Line 1285 sub handler {
|
Line 1343 sub handler {
|
text=>"Creation Outcome", |
text=>"Creation Outcome", |
faq=>9,bug=>'Dom Coord Interface',}); |
faq=>9,bug=>'Dom Coord Interface',}); |
&create_course($r); |
&create_course($r); |
} elsif (($env{'form.phase'} eq 'courseone') || |
} elsif (($permission->{'create'}) && |
(($env{'form.phase'} eq 'groupone') && |
(($env{'form.phase'} eq 'courseone') || |
($show_all_choices))) { |
(($env{'form.phase'} eq 'groupone') && |
|
($cancreate{'Community'})))) { |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>"/adm/createcourse?phase=$env{'form.phase'}", |
({href=>"/adm/createcourse?phase=$env{'form.phase'}", |
text=>&mt('[_1] Creation Settings',), |
text=>&mt('[_1] Creation Settings',), |
faq=>9,bug=>'Dom Coord Interface',}); |
faq=>9,bug=>'Dom Coord Interface',}); |
&print_course_creation_page($r); |
&print_course_creation_page($r); |
} elsif ($env{'form.phase'} eq 'batchone') { |
} elsif (($permission->{'create'}) && |
|
($env{'form.phase'} eq 'batchone')) { |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>"/adm/createcourse?phase=$env{'form.phase'}", |
({href=>"/adm/createcourse?phase=$env{'form.phase'}", |
text=>"Upload Description File", |
text=>"Upload Description File", |
faq=>9,bug=>'Dom Coord Interface',}); |
faq=>9,bug=>'Dom Coord Interface',}); |
&upload_batchfile($r); |
&upload_batchfile($r); |
} elsif ($env{'form.phase'} eq 'batchtwo') { |
} elsif (($permission->{'create'}) && |
|
($env{'form.phase'} eq 'batchtwo')) { |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>"/adm/createcourse?phase=$env{'form.prevphase'}", |
({href=>"/adm/createcourse?phase=$env{'form.prevphase'}", |
text=>"Upload Description File", |
text=>"Upload Description File", |
Line 1317 sub handler {
|
Line 1378 sub handler {
|
my $js = &courserequestbrowser_javascript(); |
my $js = &courserequestbrowser_javascript(); |
my $start_page=&Apache::loncommon::start_page('Display Requests',$js); |
my $start_page=&Apache::loncommon::start_page('Display Requests',$js); |
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Requests','Course_Requests',undef,'Course_Requests'); |
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Requests','Course_Requests',undef,'Course_Requests'); |
|
my $context = 'domain'; |
|
unless ($permission->{'create'}) { |
|
$context = 'helpdesk'; |
|
} |
$r->print($start_page.$crumbs."\n".'<div>'. |
$r->print($start_page.$crumbs."\n".'<div>'. |
&Apache::loncoursequeueadmin::display_queued_requests( |
&Apache::loncoursequeueadmin::display_queued_requests( |
'domain',$env{'request.role.domain'}).'</div>'. |
$context,$env{'request.role.domain'}).'</div>'. |
&Apache::loncommon::end_page()); |
&Apache::loncommon::end_page()); |
} elsif (($env{'form.phase'} eq 'requestchange') && ($show_all_choices)) { |
} elsif (($permission->{'create'}) && |
|
($env{'form.phase'} eq 'requestchange') && ($show_all_choices)) { |
if ($env{'form.queue'} eq 'pending') { |
if ($env{'form.queue'} eq 'pending') { |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>"/adm/createcourse?phase=pendingdisplay", |
({href=>"/adm/createcourse?phase=pendingdisplay", |
Line 1351 sub handler {
|
Line 1417 sub handler {
|
my $js = &courserequestbrowser_javascript(); |
my $js = &courserequestbrowser_javascript(); |
my $start_page=&Apache::loncommon::start_page('Display Pending Queue',$js); |
my $start_page=&Apache::loncommon::start_page('Display Pending Queue',$js); |
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Pending Queue','Course_Requests',undef,'Course_Requests'); |
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Pending Queue','Course_Requests',undef,'Course_Requests'); |
|
my $context = 'pending'; |
|
unless ($permission->{'create'}) { |
|
$context = 'displaypending'; |
|
} |
$r->print($start_page.$crumbs."\n".'<div>'. |
$r->print($start_page.$crumbs."\n".'<div>'. |
&Apache::loncoursequeueadmin::display_queued_requests( |
&Apache::loncoursequeueadmin::display_queued_requests( |
'pending',$env{'request.role.domain'}).'</div>'. |
$context,$env{'request.role.domain'}).'</div>'. |
&Apache::loncommon::end_page()); |
&Apache::loncommon::end_page()); |
} elsif (($env{'form.phase'} eq 'requestvalidation') && ($show_all_choices)) { |
} elsif (($permission->{'create'}) && |
|
($env{'form.phase'} eq 'requestvalidation') && ($show_all_choices)) { |
my $js = &courserequestbrowser_javascript(); |
my $js = &courserequestbrowser_javascript(); |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>"/adm/createcourse?phase=pendingdisplay", |
({href=>"/adm/createcourse?phase=pendingdisplay", |
Line 1382 sub handler {
|
Line 1453 sub handler {
|
&print_creation_logs($r); |
&print_creation_logs($r); |
$r->print('</div>'.&Apache::loncommon::end_page()); |
$r->print('</div>'.&Apache::loncommon::end_page()); |
} else { |
} else { |
&print_intro_page($r,$show_all_choices); |
&print_intro_page($r,$show_all_choices,\%cancreate,$permission); |
} |
} |
} else { |
} else { |
$env{'user.error.msg'}= |
$env{'user.error.msg'}= |