version 1.129, 2009/10/02 19:10:23
|
version 1.137, 2010/04/13 21:19:15
|
Line 61 described at http://www.lon-capa.org.
|
Line 61 described at http://www.lon-capa.org.
|
|
|
=item creation_display_filter() |
=item creation_display_filter() |
|
|
=item course_types() |
|
|
|
=item context_names() |
=item context_names() |
|
|
=item instcode_srchstr() |
=item instcode_srchstr() |
Line 111 sub print_course_creation_page {
|
Line 109 sub print_course_creation_page {
|
&Apache::loncommon::selectcourse_link |
&Apache::loncommon::selectcourse_link |
('ccrs','clonecourse','clonedomain',undef,undef,undef,$crstype); |
('ccrs','clonecourse','clonedomain',undef,undef,undef,$crstype); |
my $coursebrowserjs=&Apache::loncommon::coursebrowser_javascript($env{'request.role.domain'}); |
my $coursebrowserjs=&Apache::loncommon::coursebrowser_javascript($env{'request.role.domain'}); |
my ($enroll_table,$access_table,$krbdef,$krbdefdom,$krbform,$intform,$locform, |
my ($enroll_table,$krbdef,$krbdefdom,$krbform,$intform,$locform, |
$javascript_validations); |
$javascript_validations); |
|
my $starttime = time; |
|
my $endtime = time+(6*30*24*60*60); # 6 months from now, approx |
|
my $access_table = &Apache::lonuserutils::date_setting_table($starttime, |
|
$endtime,'create_defaultdates'); |
if ($crstype eq 'Course') { |
if ($crstype eq 'Course') { |
my $starttime = time; |
|
my $endtime = time+(6*30*24*60*60); # 6 months from now, approx |
|
$enroll_table = &Apache::lonuserutils::date_setting_table($starttime, |
$enroll_table = &Apache::lonuserutils::date_setting_table($starttime, |
$endtime,'create_enrolldates'); |
$endtime,'create_enrolldates'); |
$access_table = &Apache::lonuserutils::date_setting_table($starttime, |
|
$endtime,'create_defaultdates'); |
|
($krbdef,$krbdefdom) = |
($krbdef,$krbdefdom) = |
&Apache::loncommon::get_kerberos_defaults($defdom); |
&Apache::loncommon::get_kerberos_defaults($defdom); |
$javascript_validations=&Apache::lonuserutils::javascript_validations( |
$javascript_validations=&Apache::lonuserutils::javascript_validations( |
Line 172 function validate(formname) {
|
Line 170 function validate(formname) {
|
'stco' => "standard courses only", |
'stco' => "standard courses only", |
'blnk' => "Blank", |
'blnk' => "Blank", |
'sllb' => "Syllabus", |
'sllb' => "Syllabus", |
'navi' => "Navigate Contents", |
'navi' => "Course Contents", |
'cid' => "Course ID", |
'cid' => "Course ID", |
'dmn' => "Domain", |
'dmn' => "Domain", |
'dsh' => "Date Shift", |
'dsh' => "Date Shift", |
Line 190 function validate(formname) {
|
Line 188 function validate(formname) {
|
'dsuc' => "Disable student use of chat rooms", |
'dsuc' => "Disable student use of chat rooms", |
'acco' => "Access Control", |
'acco' => "Access Control", |
'snak' => "Students need access key to enter course", |
'snak' => "Students need access key to enter course", |
'kaut' => |
|
'Key authority (<tt>id@domain</tt>) if other than course', |
|
'ow' => "Course Owner", |
'ow' => "Course Owner", |
'cc' => "(will be assigned Course Coordinator role)", |
'cc' => "(will be assigned Course Coordinator role)", |
'user' => "Username", |
'user' => "Username", |
Line 204 function validate(formname) {
|
Line 200 function validate(formname) {
|
'dacu' => "Duration of automated classlist updates", |
'dacu' => "Duration of automated classlist updates", |
'dads' => 'Default Access Dates for Students', |
'dads' => 'Default Access Dates for Students', |
'dacc' => "Default start and end dates for student access", |
'dacc' => "Default start and end dates for student access", |
'psam' => "Please select the Authentication mechanism", |
'psam' => "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", |
'pcda' => "Default authentication method for new users added to this domain by the automated enrollment process", |
'nech' => "Notification of enrollment changes", |
'nech' => "Notification of enrollment changes", |
'nccl' => "Notification to course coordinator via LON-CAPA message when enrollment changes occur during the automated update?", |
'nccl' => "Notification to course coordinator via LON-CAPA message when enrollment changes occur during the automated update?", |
'ndcl' => "Notification to domain coordinator via LON-CAPA message when enrollment changes occur during the automated update?", |
'ndcl' => "Notification to domain coordinator via LON-CAPA message when enrollment changes occur during the automated update?", |
Line 213 function validate(formname) {
|
Line 209 function validate(formname) {
|
'rshm' => 'Resource Space Home', |
'rshm' => 'Resource Space Home', |
'cgrs' => "Course Group Settings", |
'cgrs' => "Course Group Settings", |
'cgrq' => 'Set a quota for the total disk space available for storage of course group portfolio files', |
'cgrq' => 'Set a quota for the total disk space available for storage of course group portfolio files', |
'opco' => "Open Course", |
'opco' => 'Open Course', |
'ginf' => "Community Information", |
'opcm' => 'Open Community', |
'gtit' => "Community Title", |
); |
'ghsr' => "Community Home Server", |
$lt{'kaut'} = &mt('Key authority ([_1]id:domain[_2]) if other than course','<tt>','</tt>'); |
'gidn' => "Community ID/Number", |
|
'grco' => "Community Content", |
if ($crstype eq 'Community') { |
'cngr' => "Completely new community", |
$lt{'cinf'} = &mt('Community Information'); |
'cegr' => "Clone an existing community", |
$lt{'ctit'} = &mt('Community Title'); |
'sagr' => "Do NOT generate as standard community", |
$lt{'chsr'} = &mt('Community Home Server'); |
'stgo' => "standard communities only", |
$lt{'cidn'} = &mt('Community ID/Number'); |
'sgpf' => "Set community policy feedback to Coordinator", |
$lt{'crco'} = &mt('Community Content'); |
'scfg' => "Set content feedback to Coordinator", |
$lt{'cncr'} = &mt('Completely new community'); |
'dmrd' => "Disable member resource discussion", |
$lt{'cecr'} = &mt('Clone an existing community'); |
'dmuc' => "Disable member use of chat rooms", |
$lt{'sacr'} = &mt('Do NOT generate as standard community'); |
'mnak' => "Members need access key to enter community", |
$lt{'stco'} = &mt('standard communities only'); |
'kaug' => |
$lt{'navi'} = &mt('Community Contents'); |
'Key authority (<tt>id@domain</tt>) if other than community', |
$lt{'cid'} = &mt('Community ID'); |
'co' => "Community Owner", |
$lt{'scpf'} = &mt('Set community policy feedback to Coordinator'); |
'gc' => "(will be assigned Coordinator role)", |
$lt{'scfc'} = &mt('Set content feedback to Coordinator'); |
'gid' => "Community ID", |
$lt{'dsrd'} = &mt('Disable member resource discussion'); |
'crgr' => "Create Community", |
$lt{'dsuc'} = &mt('Disable member use of chat rooms'); |
'grts' => "Community Group Settings", |
$lt{'dads'} = &mt('Default Access Dates for Members'); |
'grtq' => "Set a quota for the total disk space available for storage of community group portfolio files.", |
$lt{'dacc'} = &mt('Default start and end dates for member access'); |
|
$lt{'snak'} = &mt('Members need access key to enter course'); |
); |
$lt{'kaut'} = &mt('Key authority ([_1]id:domain[_2]) if other than community','<tt>','</tt>'); |
|
$lt{'ow'} = &mt('Community Owner'); |
|
$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'); |
|
} |
my $js = <<END; |
my $js = <<END; |
<script type="text/javascript"> |
<script type="text/javascript"> |
var editbrowser = null; |
var editbrowser = null; |
Line 276 END
|
Line 277 END
|
'Create_Courses'); |
'Create_Courses'); |
$r->print($start_page.$crumbs); |
$r->print($start_page.$crumbs); |
|
|
if ($crstype eq 'Course') { |
$r->print('<form action="/adm/createcourse" method="post" name="ccrs"><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() |
|
.'<h3>'.$lt{'ow'}.' '.$lt{'cc'}.'</h3>' |
|
.&Apache::lonhtmlcommon::row_closure() |
|
|
|
.&Apache::lonhtmlcommon::row_title($lt{'user'}) |
|
.'<input type="text" size="15" name="ccuname" />' |
|
.&Apache::loncommon::studentbrowser_javascript() |
|
.&Apache::loncommon::selectstudent_link('ccrs','ccuname','ccdomain') |
|
.&Apache::lonhtmlcommon::row_closure() |
|
|
|
.&Apache::lonhtmlcommon::row_title($lt{'dmn'},"","LC_odd_row_value") |
|
.$domform |
|
.&Apache::lonhtmlcommon::row_closure() |
|
|
|
.&Apache::lonhtmlcommon::row_headline() |
|
.'<h3>'.$lt{'cinf'}.'</h3>' |
|
.&Apache::lonhtmlcommon::row_closure() |
|
|
|
.&Apache::lonhtmlcommon::row_title($lt{'ctit'}) |
|
.'<input type="text" size="50" name="title" />' |
|
.&Apache::lonhtmlcommon::row_closure() |
|
|
|
.&Apache::lonhtmlcommon::row_title($lt{'chsr'}) |
|
.$course_home |
|
.&Apache::lonhtmlcommon::row_closure() |
|
|
|
.&Apache::lonhtmlcommon::row_title($lt{'cidn'}.' ('.$lt{'opt'}.')') |
|
.'<input type="text" size="30" name="crsid" />' |
|
.&Apache::lonhtmlcommon::row_closure() |
|
|
|
.&Apache::lonhtmlcommon::row_headline() |
.&Apache::lonhtmlcommon::row_headline() |
|
.'<h3>'.$lt{'ow'}.' '.$lt{'cc'}.'</h3>' |
|
.&Apache::lonhtmlcommon::row_closure() |
|
|
|
.&Apache::lonhtmlcommon::row_title($lt{'user'}) |
|
.'<input type="text" size="15" name="ccuname" />' |
|
.&Apache::loncommon::studentbrowser_javascript() |
|
.&Apache::loncommon::selectstudent_link('ccrs','ccuname','ccdomain') |
|
.&Apache::lonhtmlcommon::row_closure() |
|
|
|
.&Apache::lonhtmlcommon::row_title($lt{'dmn'},"","LC_odd_row_value") |
|
.$domform |
|
.&Apache::lonhtmlcommon::row_closure() |
|
|
|
.&Apache::lonhtmlcommon::row_headline() |
|
.'<h3>'.$lt{'cinf'}.'</h3>' |
|
.&Apache::lonhtmlcommon::row_closure() |
|
|
|
.&Apache::lonhtmlcommon::row_title($lt{'ctit'}) |
|
.'<input type="text" size="50" name="title" />' |
|
.&Apache::lonhtmlcommon::row_closure() |
|
|
|
.&Apache::lonhtmlcommon::row_title($lt{'chsr'}) |
|
.$course_home |
|
.&Apache::lonhtmlcommon::row_closure() |
|
|
|
.&Apache::lonhtmlcommon::row_title($lt{'cidn'}.' ('.$lt{'opt'}.')') |
|
.'<input type="text" size="30" name="crsid" />' |
|
.&Apache::lonhtmlcommon::row_closure() |
|
); |
|
if ($crstype eq 'Course') { |
|
$r->print(&Apache::lonhtmlcommon::row_headline() |
.'<h3>'.$lt{'iinf'}.'</h3>' |
.'<h3>'.$lt{'iinf'}.'</h3>' |
.$lt{'stat'} |
.$lt{'stat'} |
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_closure() |
Line 330 END
|
Line 331 END
|
.'<br />('.$lt{'cscs'}.')' |
.'<br />('.$lt{'cscs'}.')' |
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_closure() |
); |
); |
|
} |
|
|
# Table: New Course / Clone Course |
# Table: New Course / Clone Course |
$r->print(&Apache::lonhtmlcommon::row_headline() |
$r->print(&Apache::lonhtmlcommon::row_headline() |
.'<h3>'.$lt{'crco'}.'</h3>' |
.'<h3>'.$lt{'crco'}.'</h3>' |
.&Apache::loncommon::start_data_table() |
.&Apache::loncommon::start_data_table() |
.&Apache::loncommon::start_data_table_header_row() |
.&Apache::loncommon::start_data_table_header_row() |
Line 404 END
|
Line 406 END
|
.&Apache::loncommon::end_data_table_row() |
.&Apache::loncommon::end_data_table_row() |
.&Apache::loncommon::end_data_table() |
.&Apache::loncommon::end_data_table() |
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_closure() |
); |
); |
|
|
$r->print(&Apache::lonhtmlcommon::row_headline() |
$r->print(&Apache::lonhtmlcommon::row_headline() |
.'<h3>'.$lt{'dads'}.'</h3>' |
.'<h3>'.$lt{'dads'}.'</h3>' |
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_title($lt{'dacc'}) |
.&Apache::lonhtmlcommon::row_title($lt{'dacc'}) |
.$access_table |
.$access_table |
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_closure() |
); |
); |
|
|
$r->print(&Apache::lonhtmlcommon::row_headline() |
$r->print(&Apache::lonhtmlcommon::row_headline() |
.'<h3>'.$lt{'assp'}.'</h3>' |
.'<h3>'.$lt{'assp'}.'</h3>' |
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_closure() |
|
|
Line 465 END
|
Line 467 END
|
.&Apache::lonhtmlcommon::row_title($lt{'rshm'}) |
.&Apache::lonhtmlcommon::row_title($lt{'rshm'}) |
.'<input type="text" name="reshome" size="30" value="/res/'.$defdom.'/" />' |
.'<input type="text" name="reshome" size="30" value="/res/'.$defdom.'/" />' |
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_closure() |
|
); |
.&Apache::lonhtmlcommon::row_headline() |
if ($crstype eq 'Course') { |
|
$r->print(&Apache::lonhtmlcommon::row_headline() |
.'<h3>'.$lt{'aens'}.'</h3>' |
.'<h3>'.$lt{'aens'}.'</h3>' |
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_closure() |
|
|
Line 509 END
|
Line 512 END
|
.'<input type="radio" name="showphotos" value="0" checked="checked" />'.$lt{'no'} |
.'<input type="radio" name="showphotos" value="0" checked="checked" />'.$lt{'no'} |
.'</label> ' |
.'</label> ' |
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_closure() |
|
); |
.&Apache::lonhtmlcommon::row_headline() |
} |
|
|
|
$r->print(&Apache::lonhtmlcommon::row_headline() |
.'<h3>'.$lt{'cgrs'}.'</h3>' |
.'<h3>'.$lt{'cgrs'}.'</h3>' |
.&Apache::lonhtmlcommon::row_closure() |
.&Apache::lonhtmlcommon::row_closure() |
|
|
Line 519 END
|
Line 524 END
|
.&Apache::lonhtmlcommon::row_closure(1) |
.&Apache::lonhtmlcommon::row_closure(1) |
|
|
.&Apache::lonhtmlcommon::end_pick_box() |
.&Apache::lonhtmlcommon::end_pick_box() |
); |
.'</div>' |
$r->print(<<ENDDOCUMENT); |
); |
</div> |
if ($crstype eq 'Course') { |
|
$r->print(' |
<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> |
); |
</form> |
|
ENDDOCUMENT |
|
|
|
} elsif ($crstype eq 'Community') { |
} elsif ($crstype eq 'Community') { |
$r->print(<<ENDDOCUMENT); |
$r->print(' |
<form action="/adm/createcourse" method="post" name="ccrs"> |
|
<h2>$lt{'co'} $lt{'gc'}</h2> |
|
<p> |
|
<label> |
|
<b>$lt{'user'}:</b> <input type="text" size="15" name="ccuname" /> |
|
</label> |
|
</p><p> |
|
<label> |
|
<b>$lt{'dmn'}:</b> $domform |
|
</label> |
|
</p> |
|
<h2>$lt{'ginf'}</h2> |
|
<p> |
|
<label><b>$lt{'gtit'}:</b> |
|
<input type="text" size="50" name="title" /></label> |
|
</p><p> |
|
<label> |
|
<b>$lt{'ghsr'}:</b>$course_home |
|
</label> |
|
</p><p> |
|
<label> |
|
<b>$lt{'gidn'} ($lt{'opt'})</b> |
|
<input type="text" size="30" name="crsid" /> |
|
</label> |
|
</p> |
|
<h2>$lt{'grco'}</h2> |
|
<table border="2"> |
|
<tr><th>$lt{'cngr'}</th><th>$lt{'cegr'}</th></tr> |
|
<tr><td> |
|
<p> |
|
<label> |
|
<b>$lt{'map'}:</b> |
|
<input type="text" size="50" name="topmap" /> |
|
</label> |
|
<a href="javascript:openbrowser('ccrs','topmap')">$lt{'smap'}</a> |
|
</p><p> |
|
<label for="nonstd"><b>$lt{'sagr'}</b></label> |
|
<br /> |
|
($lt{'ocik'}): |
|
<input id="nonstd" type="checkbox" name="nonstandard" /> |
|
</p><p> |
|
<b>$lt{'fres'}</b><br />($lt{'stgo'}): |
|
<label> |
|
<input type="radio" name="firstres" value="blank" />$lt{'blnk'} |
|
</label> |
|
|
|
<label> |
|
<input type="radio" name="firstres" value="syl" checked="checked" />$lt{'sllb'} |
|
</label> |
|
|
|
<label> |
|
<input type="radio" name="firstres" value="nav" />$lt{'navi'} |
|
</label> |
|
</p> |
|
</td><td> |
|
<label> |
|
$lt{'gid'}: <input type="text" size="25" name="clonecourse" value="" /> |
|
</label> |
|
<br /> |
|
<label> |
|
$lt{'dmn'}: $cloneform |
|
</label> |
|
<br /> |
|
<label><input type="radio" name="datemode" value="delete" /> $lt{'ncd'}</label><br /> |
|
<label><input type="radio" name="datemode" value="preserve" /> $lt{'prd'}</label><br /> |
|
<label><input type="radio" name="datemode" value="shift" checked="checked" /> $lt{'shd'}</label> |
|
<input type="text" size="5" name="dateshift" value="365" /><br /> <br /> |
|
$lt{'asov'}. |
|
</td></tr> |
|
</table> |
|
</p> |
|
<p> |
|
<h2>$lt{'mssg'}</h2> |
|
<p> |
|
<label> |
|
<b>$lt{'sgpf'}: </b> |
|
<input type="checkbox" name="setpolicy" checked="checked" /> |
|
</label> |
|
<br /> |
|
<label> |
|
<b>$lt{'scfg'}: </b> |
|
<input type="checkbox" name="setcontent" checked="checked" /> |
|
</label> |
|
</p> |
|
<h2>$lt{'cmmn'}</h2> |
|
<p> |
|
<label> |
|
<b>$lt{'dmrd'}: </b> |
|
<input type="checkbox" name="disresdis" /> |
|
</label> |
|
<br /> |
|
<label> |
|
<b>$lt{'dmuc'}: </b> |
|
<input type="checkbox" name="disablechat" /> |
|
</label> |
|
</p> |
|
<h2>$lt{'acco'}</h2> |
|
<p> |
|
<label> |
|
<b>$lt{'mnak'}: </b> |
|
<input type="checkbox" name="setkeys" /> |
|
</label> |
|
<br /> |
|
<label> |
|
<b>$lt{'kaug'}: </b> |
|
<input type="text" size="30" name="keyauth" /> |
|
</label> |
|
</p> |
|
<h2>$lt{'rshm'}</h2> |
|
<p> |
|
<label> |
|
<b>$lt{'rshm'}: </b> |
|
<input type="text" name="reshome" size="30" value="/res/$defdom/" /> |
|
</label> |
|
</p> |
|
<h2>$lt{'grts'}</h2> |
|
<p> |
|
$lt{'grtq'} |
|
<input type="text" name="crsquota" value="20" />Mb |
|
</p> |
|
<hr /> |
|
<p> |
<p> |
<input type="hidden" name="prevphase" value="groupone" /> |
<input type="hidden" name="prevphase" value="groupone" /> |
<input type="hidden" name="phase" value="grouptwo" /> |
<input type="hidden" name="phase" value="grouptwo" /> |
<input type="button" onClick="validate(this.form)" value="$lt{'crgr'}" /> |
<input type="submit" value="'.$lt{'opcm'}.'" /> |
</p> |
</p>' |
</form> |
); |
ENDDOCUMENT |
|
} |
} |
$r->print($end_page); |
$r->print('</form>'. |
|
$end_page); |
} |
} |
|
|
# ====================================================== Phase two: make course |
# ====================================================== Phase two: make course |
Line 787 sub create_course {
|
Line 669 sub create_course {
|
# Make the requested user a course coordinator or group coordinator |
# Make the requested user a course coordinator or group coordinator |
# |
# |
if (($ccdomain) && ($ccuname)) { |
if (($ccdomain) && ($ccuname)) { |
|
my $ccrole = 'cc'; |
|
if ($crstype eq 'Community') { |
|
$ccrole = 'co'; |
|
} |
$r->print(&mt('Assigning role of '.$crstype.' Coordinator to [_1]:', |
$r->print(&mt('Assigning role of '.$crstype.' Coordinator to [_1]:', |
,'<i>'.$ccuname.':'.$ccdomain.'</i>') |
,'<i>'.$ccuname.':'.$ccdomain.'</i>') |
.&Apache::lonnet::assignrole($ccdomain,$ccuname,$courseid, |
.&Apache::lonnet::assignrole($ccdomain,$ccuname,$courseid, |
'cc','','','','','createcourse').'<p>'); |
$ccrole,'','','','','createcourse').'<p>'); |
} |
} |
if ($env{'form.setkeys'}) { |
if ($env{'form.setkeys'}) { |
$r->print( |
$r->print( |
Line 806 sub create_course {
|
Line 692 sub create_course {
|
} |
} |
|
|
sub print_intro_page { |
sub print_intro_page { |
my $r = shift; |
my ($r,$show_all_choices) = @_; |
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'); |
my $end_page = |
my $end_page = |
&Apache::loncommon::end_page(); |
&Apache::loncommon::end_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')); |
|
my @choices = ({ internal_name => 'courseone', |
my @choices = ({ internal_name => 'courseone', |
name => &mt('Create a single course'), |
name => &mt('Create a single course'), |
short_description => &mt('Create a new course by completing an online form.'), |
short_description => |
}); |
&mt('Create a new course by completing an online form.'), |
if ($show_all_choices) { |
}, |
push(@choices,{ internal_name => 'groupone', |
{ internal_name => 'groupone', |
name => &mt('Create a single community'), |
name => &mt('Create a single community'), |
short_description => |
short_description => |
|
&mt('Create a new collaborative community by completing an online form.'), |
&mt('Create a new collaborative community by completing an online form.'), |
}, |
}, |
{ internal_name => 'batchone', |
{ internal_name => 'batchone', |
name => &mt('Create courses/communities by uploading an attributes file'), |
name => &mt('Create courses/communities by uploading an attributes file'), |
short_description => |
short_description => |
&mt('Upload an attributes file containing specifications for one or more courses or communities in XML format.'), |
&mt('Upload an attributes file containing specifications for one or more courses or communities in XML format.'), |
help => 'Batch_Creation', |
help => 'Batch_Creation', |
}, |
}, |
{ internal_name => 'requestdisplay', |
{ internal_name => 'requestdisplay', |
name => &mt('Approve or reject course requests'), |
name => &mt('Approve or reject requests'), |
short_description => |
short_description => |
&mt('Display course creation requests submitted by authorized users, held pending approval by a Domain Coordinator.'), |
&mt('Display course and community creation requests submitted by authorized users, held pending approval by a Domain Coordinator.'), |
}, |
}, |
{ internal_name => 'creationlog', |
{ internal_name => 'pendingdisplay', |
name => &mt('View course creation log'), |
name => &mt('Display official course requests'), |
short_description => |
short_description => |
&mt('Display information about when, how and by whom courses were created in this domain.'), |
&mt('Display official course requests submitted by authorized users, held pending validation of instructor status.'), |
}, |
}, |
); |
{ internal_name => 'creationlog', |
|
name => &mt('View creation log'), |
|
short_description => |
|
&mt('Display information about when, how and by whom courses and communities were created in this domain.'), |
|
}); |
|
} else { |
|
push(@choices,{ internal_name => 'batchone', |
|
name => &mt('Create courses by uploading an attributes file'), |
|
short_description => |
|
&mt('Upload an attributes file containing specifications for one or more courses in XML format.'), |
|
help => 'Batch_Creation', |
|
}); |
|
} |
my $options; |
my $options; |
foreach my $choice (@choices) { |
foreach my $choice (@choices) { |
$options .=' <h3><a href="/adm/createcourse?phase='. |
$options .=' <h3><a href="/adm/createcourse?phase='. |
Line 852 sub print_intro_page {
|
Line 749 sub print_intro_page {
|
$options .= "</h3>\n".' '.(' 'x8).$choice->{'short_description'}. |
$options .= "</h3>\n".' '.(' 'x8).$choice->{'short_description'}. |
"\n"; |
"\n"; |
} |
} |
|
|
$r->print(<<ENDDOCUMENT); |
$r->print(<<ENDDOCUMENT); |
$start_page |
$start_page |
$crumbs |
$crumbs |
Line 926 sub courserequestbrowser_javascript {
|
Line 822 sub courserequestbrowser_javascript {
|
<script type="text/javascript"> |
<script type="text/javascript"> |
// <![CDATA[ |
// <![CDATA[ |
var steditbrowser; |
var steditbrowser; |
function opencoursereqdisplay(cdom,cnum) { |
function opencoursereqdisplay(cdom,cnum,queue) { |
var url = '/adm/requestcourse?action=display'; |
var url = '/adm/requestcourse?action=display'; |
url += '&showdom='+cdom+'&cnum='+cnum; |
url += '&showdom='+cdom+'&cnum='+cnum+'&queue='+queue; |
var title = 'Course_Request_Browser'; |
var title = 'Course_Request_Browser'; |
var options = 'scrollbars=1,resizable=1,menubar=0'; |
var options = 'scrollbars=1,resizable=1,menubar=0'; |
options += ',width=700,height=600'; |
options += ',width=700,height=600'; |
var stdeditbrowser = open(url,title,options,'1'); |
var stdeditbrowser = open(url,title,options,'1'); |
stdeditbrowser.focus(); |
stdeditbrowser.focus(); |
} |
} |
|
|
// ]]> |
// ]]> |
</script> |
</script> |
ENDREQBRW |
ENDREQBRW |
Line 962 sub print_creation_logs {
|
Line 859 sub print_creation_logs {
|
foreach my $item ('show','page','type','context') { |
foreach my $item ('show','page','type','context') { |
$curr{$item} = $env{'form.'.$item}; |
$curr{$item} = $env{'form.'.$item}; |
} |
} |
my $createdafter = &Apache::lonhtmlcommon::get_date_from_form('created_after_date'); |
|
my $createdbefore = &Apache::lonhtmlcommon::get_date_from_form('created_before_date'); |
|
$curr{'created_after_date'} = &Apache::lonhtmlcommon::get_date_from_form('created_after_date'); |
$curr{'created_after_date'} = &Apache::lonhtmlcommon::get_date_from_form('created_after_date'); |
$curr{'created_before_date'} = &Apache::lonhtmlcommon::get_date_from_form('created_before_date'); |
$curr{'created_before_date'} = &Apache::lonhtmlcommon::get_date_from_form('created_before_date'); |
foreach my $key (keys(%defaults)) { |
foreach my $key (keys(%defaults)) { |
Line 971 sub print_creation_logs {
|
Line 866 sub print_creation_logs {
|
$curr{$key} = $defaults{$key}; |
$curr{$key} = $defaults{$key}; |
} |
} |
} |
} |
my (%whodunit,$version); |
my %whodunit; |
($version) = ($r->dir_config('lonVersion') =~ /^([\d\.]+)\-/); |
$r->print(&creation_display_filter($formname,\%curr)); |
$r->print(&creation_display_filter($formname,\%curr,$version)); |
|
my $showntablehdr = 0; |
my $showntablehdr = 0; |
my $tablehdr = &Apache::loncommon::start_data_table(). |
my $tablehdr = &Apache::loncommon::start_data_table(). |
&Apache::loncommon::start_data_table_header_row(). |
&Apache::loncommon::start_data_table_header_row(). |
'<th> </th><th>'.&mt('Creation Date').'</th>'. |
'<th> </th><th>'.&mt('Creation Date').'</th>'. |
'<th>'.&mt('Creator').'</th><th>'.&mt('Description').'</th>'. |
'<th>'.&mt('Creator').'</th><th>'.&mt('Description').'</th>'. |
'<th>'.&mt('Course Owner(s)').'</th>'; |
'<th>'.&mt('Owner(s)').'</th>'; |
if (($curr{'type'} eq 'official') || ($curr{'type'} eq 'any')) { |
if (($curr{'type'} eq 'official') || ($curr{'type'} eq 'any')) { |
$tablehdr .= '<th>'.&mt('Institutional Code').'</th>'; |
$tablehdr .= '<th>'.&mt('Institutional Code').'</th>'; |
} |
} |
Line 1038 sub print_creation_logs {
|
Line 932 sub print_creation_logs {
|
undef,undef,undef,$curr{'created_before_date'}, |
undef,undef,undef,$curr{'created_before_date'}, |
$curr{'created_after_date'},$creationcontext); |
$curr{'created_after_date'},$creationcontext); |
foreach my $cid (sort { $courses{$b}{'created'}<=>$courses{$a}{'created'} } (keys(%courses))) { |
foreach my $cid (sort { $courses{$b}{'created'}<=>$courses{$a}{'created'} } (keys(%courses))) { |
|
if ($curr{'show'} ne &mt('all')) { |
|
if ($count >= $curr{'page'} * $curr{'show'}) { |
|
$more_records = 1; |
|
last; |
|
} |
|
} |
$count ++; |
$count ++; |
next if ($count < $minshown); |
next if ($count < $minshown); |
if (!$showntablehdr) { |
if (!$showntablehdr) { |
Line 1157 ENDSCRIPT
|
Line 1057 ENDSCRIPT
|
} |
} |
|
|
sub creation_display_filter { |
sub creation_display_filter { |
my ($formname,$curr,$version) = @_; |
my ($formname,$curr) = @_; |
my $nolink = 1; |
my $nolink = 1; |
my ($contexts,$contextnames) = &context_names(); |
my ($contexts,$contextnames) = &context_names(); |
my $output = '<table><tr><td valign="top">'. |
my $output = '<table><tr><td valign="top">'. |
Line 1173 sub creation_display_filter {
|
Line 1073 sub creation_display_filter {
|
&Apache::lonhtmlcommon::date_setter($formname,'created_before_date', |
&Apache::lonhtmlcommon::date_setter($formname,'created_before_date', |
$curr->{'created_before_date'},undef, |
$curr->{'created_before_date'},undef, |
undef,undef,undef,undef,undef,undef,$nolink); |
undef,undef,undef,undef,undef,undef,$nolink); |
$output .= '<td valign="top"><b>'.&mt('Window during which course was created:').'</b><br />'. |
$output .= '<td valign="top"><b>'.&mt('Window during which course/community was created:').'</b><br />'. |
'<table><tr><td>'.&mt('After:'). |
'<table><tr><td>'.&mt('After:'). |
'</td><td>'.$startform.'</td></tr>'. |
'</td><td>'.$startform.'</td></tr>'. |
'<tr><td>'.&mt('Before:').'</td>'. |
'<tr><td>'.&mt('Before:').'</td>'. |
'<td>'.$endform.'</td></tr></table>'. |
'<td>'.$endform.'</td></tr></table>'. |
'</td>'. |
'</td>'. |
'<td> </td>'; |
'<td> </td>'; |
my ($types,$typenames) = &course_types(); |
my ($types,$typenames) = &Apache::loncommon::course_types(); |
if (ref($types) eq 'ARRAY') { |
if (ref($types) eq 'ARRAY') { |
if (@{$types} > 1) { |
if (@{$types} > 1) { |
$output .= '<td valign="top"><b>'. |
$output .= '<td valign="top"><b>'. |
Line 1228 sub creation_display_filter {
|
Line 1128 sub creation_display_filter {
|
# Update Display button |
# Update Display button |
$output .= '<p>'. |
$output .= '<p>'. |
'<input type="submit" value="'.&mt('Update Display').'" />'. |
'<input type="submit" value="'.&mt('Update Display').'" />'. |
'</p>'; |
'</p><hr />'; |
|
|
# Server version info |
|
$output .= '<p class="LC_info">'. |
|
&mt('Only courses created from servers running LON-CAPA [_1] or later are displayed.','2.9.0'); |
|
if ($version) { |
|
$output .= ' '.&mt('This LON-CAPA server is version [_1]',$version); |
|
} |
|
$output .= '</p><hr />'; |
|
return $output; |
return $output; |
} |
} |
|
|
sub course_types { |
|
my @types = qw(official unofficial community); |
|
my %typename = ( |
|
official => 'Official course', |
|
unofficial => 'Unofficial course', |
|
community => 'Community', |
|
); |
|
return (\@types,\%typename); |
|
} |
|
|
|
sub context_names { |
sub context_names { |
my @contexts = qw(auto web dc_create requestcourses); |
my @contexts = qw(auto web dc_create requestcourses); |
my %contextnames = |
my %contextnames = |
&Apache::lonlocal::texthash ( |
&Apache::lonlocal::texthash ( |
auto => 'Automated creation from batch file', |
auto => 'Automated creation from batch file', |
web => 'Batch creation from uploaded file', |
web => 'Batch creation from uploaded file', |
dc_create => 'Single course created by Domain Coordinator', |
dc_create => 'Course or community created by Dom. Coord.', |
requestcourses => 'Processing of submitted course request', |
requestcourses => 'Processing of submitted course request', |
); |
); |
return (\@contexts,\%contextnames); |
return (\@contexts,\%contextnames); |
Line 1316 sub handler {
|
Line 1198 sub handler {
|
return OK; |
return OK; |
} |
} |
|
|
|
my $show_all_choices = 0; |
|
my $primary_rev = &Apache::lonnet::get_server_loncaparev($env{'request.role.domain'}); |
|
if (($primary_rev ne 'refused') && ($primary_rev ne 'error') && |
|
($primary_rev ne 'unknown_cmd') && ($primary_rev ne 'no_such_host')) { |
|
$show_all_choices = 1; |
|
} |
|
|
if (&Apache::lonnet::allowed('ccc',$env{'request.role.domain'})) { |
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 1328 sub handler {
|
Line 1217 sub handler {
|
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 (($env{'form.phase'} eq 'coursetwo') || |
($env{'form.phase'} eq 'grouptwo')) { |
(($env{'form.phase'} eq 'grouptwo') && |
|
($show_all_choices))) { |
&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 1339 sub handler {
|
Line 1229 sub handler {
|
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 (($env{'form.phase'} eq 'courseone') || |
($env{'form.phase'} eq 'groupone')) { |
(($env{'form.phase'} eq 'groupone') && |
|
($show_all_choices))) { |
&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',), |
Line 1361 sub handler {
|
Line 1252 sub handler {
|
text=>"Creation Outcome", |
text=>"Creation Outcome", |
faq=>9,bug=>'Dom Coord Interface',}); |
faq=>9,bug=>'Dom Coord Interface',}); |
&process_batchfile($r); |
&process_batchfile($r); |
} elsif ($env{'form.phase'} eq 'requestdisplay') { |
} elsif (($env{'form.phase'} eq 'requestdisplay') && ($show_all_choices)) { |
&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] Display Request Queue',), |
text=>&mt('[_1] Display Request Queue',), |
Line 1373 sub handler {
|
Line 1264 sub handler {
|
&Apache::loncoursequeueadmin::display_queued_requests( |
&Apache::loncoursequeueadmin::display_queued_requests( |
'domain',$env{'request.role.domain'}).'</div>'. |
'domain',$env{'request.role.domain'}).'</div>'. |
&Apache::loncommon::end_page()); |
&Apache::loncommon::end_page()); |
} elsif ($env{'form.phase'} eq 'requestchange') { |
} elsif (($env{'form.phase'} eq 'requestchange') && ($show_all_choices)) { |
|
if ($env{'form.queue'} eq 'pending') { |
|
&Apache::lonhtmlcommon::add_breadcrumb |
|
({href=>"/adm/createcourse?phase=pendingdisplay", |
|
text=>&mt('Display Pending Queue',), |
|
faq=>9,bug=>'Dom Coord Interface',}); |
|
} else { |
|
&Apache::lonhtmlcommon::add_breadcrumb |
|
({href=>"/adm/createcourse?phase=requestdisplay", |
|
text=>&mt('[_1] Display Request Queue',), |
|
faq=>9,bug=>'Dom Coord Interface',}); |
|
} |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>"/adm/createcourse?phase=requestdisplay", |
({href=>"/adm/createcourse?phase=requestchange", |
text=>&mt('[_1] Display Request Queue',), |
text=>&mt('[_1] Requests Updated',), |
faq=>9,bug=>'Dom Coord Interface',}, |
faq=>9,bug=>'Dom Coord Interface',},); |
{href=>"/adm/createcourse?phase=requestchange", |
|
text=>&mt('[_1] Requests Updated',), |
|
faq=>9,bug=>'Dom Coord Interface',},); |
|
my $start_page=&Apache::loncommon::start_page('Update Requests Result'); |
my $start_page=&Apache::loncommon::start_page('Update Requests Result'); |
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Requests Updated','Course_Request',undef,'Course_Request'); |
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Requests Updated','Course_Request',undef,'Course_Request'); |
$r->print($start_page.$crumbs."\n".'<div>'. |
$r->print($start_page.$crumbs."\n".'<div>'. |
&Apache::loncoursequeueadmin::update_request_queue( |
&Apache::loncoursequeueadmin::update_request_queue( |
'domain',$env{'request.role.domain'}).'</div>'. |
'domain',$env{'request.role.domain'}).'</div>'. |
&Apache::loncommon::end_page()); |
&Apache::loncommon::end_page()); |
} elsif ($env{'form.phase'} eq 'creationlog') { |
} elsif (($env{'form.phase'} eq 'pendingdisplay') && ($show_all_choices)) { |
|
&Apache::lonhtmlcommon::add_breadcrumb |
|
({href=>"/adm/createcourse?phase=$env{'form.phase'}", |
|
text=>&mt('Display Pending Queue',), |
|
faq=>9,bug=>'Dom Coord Interface',}); |
|
my $js = &courserequestbrowser_javascript(); |
|
my $start_page=&Apache::loncommon::start_page('Display Pending Queue',$js); |
|
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Pending Queue','Course_Request',undef,'Course_Request'); |
|
$r->print($start_page.$crumbs."\n".'<div>'. |
|
&Apache::loncoursequeueadmin::display_queued_requests( |
|
'pending',$env{'request.role.domain'}).'</div>'. |
|
&Apache::loncommon::end_page()); |
|
} elsif (($env{'form.phase'} eq 'requestvalidation') && ($show_all_choices)) { |
|
my $js = &courserequestbrowser_javascript(); |
|
&Apache::lonhtmlcommon::add_breadcrumb |
|
({href=>"/adm/createcourse?phase=pendingdisplay", |
|
text=>&mt('Display Pending Queue'),}, |
|
{href=>"/adm/createcourse?phase=requestvalidation", |
|
text=>&mt('Validation Attempted'),},); |
|
my $start_page=&Apache::loncommon::start_page('Requests Validation Result',$js); |
|
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Validation Attempted','Course_Request',undef,'Course_Request'); |
|
$r->print($start_page.$crumbs."\n".'<div>'. |
|
&Apache::loncoursequeueadmin::process_official_reqs('domain',$env{'request.role.domain'}).'</div>'. |
|
&Apache::loncommon::end_page()); |
|
} elsif (($env{'form.phase'} eq 'creationlog') && ($show_all_choices)) { |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
({href=>"/adm/createcourse?phase=creationlog", |
({href=>"/adm/createcourse?phase=creationlog", |
text=>&mt('[_1] Display Creation History',),}); |
text=>&mt('[_1] Display Creation History',),}); |
Line 1396 sub handler {
|
Line 1319 sub handler {
|
&syllabuslink_javascript()."\n". |
&syllabuslink_javascript()."\n". |
'// ]]>'."\n". |
'// ]]>'."\n". |
'</script>'; |
'</script>'; |
my $start_page=&Apache::loncommon::start_page('Course Creation Logs',$js); |
my $start_page=&Apache::loncommon::start_page('Course/Community Creation Logs',$js); |
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Created Courses','Creation_Log',undef,'Creation_Log'); |
my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Created Courses/Communities','Creation_Log',undef,'Creation_Log'); |
$r->print($start_page.$crumbs."\n".'<div>'); |
$r->print($start_page.$crumbs."\n".'<div>'); |
&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); |
&print_intro_page($r,$show_all_choices); |
} |
} |
} else { |
} else { |
$env{'user.error.msg'}= |
$env{'user.error.msg'}= |