--- loncom/interface/lonrequestcourse.pm 2010/02/25 05:01:25 1.41.2.5
+++ loncom/interface/lonrequestcourse.pm 2010/02/25 08:18:32 1.45
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Request a course
#
-# $Id: lonrequestcourse.pm,v 1.41.2.5 2010/02/25 05:01:25 raeburn Exp $
+# $Id: lonrequestcourse.pm,v 1.45 2010/02/25 08:18:32 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -94,8 +94,6 @@ described at http://www.lon-capa.org.
=item print_request_outcome()
-=item get_processtype()
-
=item check_autolimit()
=item retrieve_settings()
@@ -143,10 +141,6 @@ sub handler {
$states{'log'} = ['filter','display'];
$states{'new'} = ['courseinfo','enrollment','personnel','review','process'];
- if ($dom eq 'gcitest') {
- $states{'new'} = ['courseinfo','review','process'];
- }
-
if (($action eq 'new') && ($env{'form.crstype'} eq 'official')) {
unless ($env{'form.state'} eq 'crstype') {
unshift(@{$states{'new'}},'codepick');
@@ -173,10 +167,6 @@ sub handler {
cancel => 'Cancel Request',
removal => 'Outcome',
);
- if ($dom eq 'gcitest') {
- $trail{'crstype'} = 'Building a Test';
- $trail{'courseinfo'} = 'Test Information';
- }
if (($env{'form.crstype'} eq 'official') && (&Apache::lonnet::auto_run('',$dom))) {
$trail{'enrollment'} = 'Enrollment';
@@ -186,7 +176,6 @@ sub handler {
&get_breadcrumbs($dom,$action,\$state,\%states,\%trail);
if ($action eq 'display') {
if (($dom eq $env{'request.role.domain'}) && (&Apache::lonnet::allowed('ccc',$dom))) {
- my $namespace = 'courserequestqueue';
if ($env{'form.cnum'} ne '') {
my $cnum = $env{'form.cnum'};
my $reqkey = $cnum.'_approval';
@@ -285,6 +274,9 @@ sub handler {
$jscript = &mainmenu_javascript();
} else {
$jscript = &Apache::lonhtmlcommon::set_form_elements($elementsref,\%stored);
+ if ($state eq 'courseinfo') {
+ $jscript .= &cloning_javascript();
+ }
}
}
@@ -364,18 +356,26 @@ function setAction(courseForm) {
END
}
+sub cloning_javascript {
+ return <<"END";
+function setCloneDisplay(courseForm) {
+ if (courseForm.cloning.length > 1) {
+ for (var i=0; i{$action}[$i]) {
&Apache::lonhtmlcommon::add_breadcrumb(
{text=>"$trail->{$$state}"});
- $crumb = &Apache::lonhtmlcommon::breadcrumbs($crumbtitle,$crumbhelp);
+ $crumb = &Apache::lonhtmlcommon::breadcrumbs('Course/Community Requests','Course_Requests');
last;
} else {
if (($$state eq 'process') || ($$state eq 'removal')) {
@@ -436,13 +436,13 @@ sub get_breadcrumbs {
}
} else {
&Apache::lonhtmlcommon::add_breadcrumb(
- {text=>$firstcrumb});
- $crumb = &Apache::lonhtmlcommon::breadcrumbs($crumbtitle,$crumbhelp);
+ {text=>'Pick Action'});
+ $crumb = &Apache::lonhtmlcommon::breadcrumbs('Course/Community Requests','Course_Requests');
}
} else {
&Apache::lonhtmlcommon::add_breadcrumb(
- {text=>$firstcrumb});
- $crumb = &Apache::lonhtmlcommon::breadcrumbs($crumbtitle,$crumbhelp);
+ {text=>'Pick Action'});
+ $crumb = &Apache::lonhtmlcommon::breadcrumbs('Course/Community Requests','Course_Requests');
}
return ($page,$crumb,$newinstcode,$codechk,$checkedcode,$description);
}
@@ -480,6 +480,7 @@ sub form_elements {
},
courseinfo => {
cdescr => 'text',
+ cloning => 'radio',
clonecrs => 'text',
clonedom => 'selectbox',
datemode => 'radio',
@@ -515,22 +516,12 @@ sub form_elements {
},
);
my %servers = &Apache::lonnet::get_servers($dom,'library');
- if ($dom eq 'gcitest') {
- %{$elements{'new'}{'courseinfo'}} = (
- cdescr => 'text',
- concepttest => 'radio',
- );
- }
my $numlib = keys(%servers);
if ($numlib > 1) {
$elements{'new'}{'courseinfo'}{'chome'} = 'selectbox';
} else {
$elements{'new'}{'courseinfo'}{'chome'} = 'hidden';
}
- if ($dom eq 'gcitest') {
- my %mergedhash = (%{$elements{'new'}{'courseinfo'}},%{$elements{'new'}{'enrollment'}});
- %{$elements{'new'}{'courseinfo'}} = %mergedhash;
- }
my (@codetitles,%cat_titles,%cat_order,@code_order,$lastitem);
&Apache::lonnet::auto_possible_instcodes($dom,\@codetitles,\%cat_titles,
\%cat_order,\@code_order);
@@ -625,10 +616,10 @@ sub onload_action {
if ($state eq 'crstype') {
$loaditems{'onload'} = 'javascript:setAction(document.mainmenu_action);javascript:setType(document.mainmenu_coursetype)';
} else {
- $loaditems{'onload'} = 'javascript:setFormElements(document.requestcrs)';
+ $loaditems{'onload'} = 'javascript:setFormElements(document.requestcrs);';
}
- if (($state eq 'process') && ($env{'form.concepttest'} eq 'editmyown')) {
- $loaditems{'onload'} = 'javascript:setInitialVisibility()';
+ if ($state eq 'courseinfo') {
+ $loaditems{'onload'} .= 'javascript:setCloneDisplay(document.requestcrs);';
}
}
return \%loaditems;
@@ -655,9 +646,7 @@ sub print_main_menu {
}
}
- my $js;
- unless ($dom eq 'gcitest') {
- $js = <<"END";
+ my $js = <<"END";
function nextPage(formname) {
var crschoice = document.mainmenu_coursetype.crstype.value;
@@ -681,20 +670,20 @@ function check_can_request(crschoice,act
var unofficial = '';
var community = '';
END
- if (ref($can_request) eq 'HASH') {
- foreach my $item (keys(%{$can_request})) {
- $js .= "
- $item = 1;
+ if (ref($can_request) eq 'HASH') {
+ foreach my $item (keys(%{$can_request})) {
+ $js .= "
+ $item = 1;
";
- }
}
- my %lt = &Apache::lonlocal::texthash(
- official => 'You are not permitted to request creation of an official course in this domain.',
- unofficial => 'You are not permitted to request creation of an unofficial course in this domain.',
- community => 'You are not permitted to request creation of a community this domain.',
- all => 'You must choose a specific course type when making a new course request.\\nAll types is not allowed.',
- );
- $js .= < 'You are not permitted to request creation of an official course in this domain.',
+ unofficial => 'You are not permitted to request creation of an unofficial course in this domain.',
+ community => 'You are not permitted to request creation of a community this domain.',
+ all => 'You must choose a specific course type when making a new course request.\\nAll types is not allowed.',
+ );
+ $js .= <{'official'}) || ($can_request->{'unofficial'})) {
@@ -746,40 +734,6 @@ END
$domaintitle = &mt('Course/Community Domain');
}
}
-
- if ($dom eq 'gcitest') {
- my $formname = 'requestcrs';
- my $nexttext = &mt('Continue');
- $r->print(&header($pagetitle,$js.$jscript,$loaditems).$crumb.
- '
'.&mt('Deployment of a Concept Test requires completion of the following three steps:').'
'.
- '
'.&mt('Creation of a course "container" and setting of access dates').'
'.
- '
'.&mt('Assembly of a valid test from Concept Inventory questions').'
'.
- '
'.&mt('Enrollment of students').'
'.
- '
'.&mt('When assembling a test you may either:').
- ' '.&mt('(a) have a valid test built automatically by the WebCenter, or').' '.&mt('(b) select the questions to include by combining questions chosen from eleven bins with four mandatory questions.').'
'.&mt('The most efficient way to enroll students is to upload a text file containing usernames and passwords.').' '.&mt("Students' full e-mail addresses should be used as their usernames to ensure uniqueness.").'
'.
- '
'.
- &Apache::loncommon::end_page());
- return;
- }
-
- if (!$onchange) {
- $r->print(' ');
- }
- unless ((ref($can_request) eq 'HASH') && (keys(%{$can_request}) > 0)) {
- $r->print(&Apache::lonhtmlcommon::row_closure(1)."\n".
- &Apache::lonhtmlcommon::end_pick_box().''."\n".
- &Apache::loncommon::end_page());
- return;
- }
-
my @incdoms;
if (ref($request_domains) eq 'HASH') {
foreach my $item (keys(%{$request_domains})) {
@@ -896,8 +850,6 @@ END
}
} elsif ($state eq 'personnel') {
$js .= "\n".§ion_check_javascript()."\n".&personnel_lcsec_js();
- } elsif (($state eq 'process') && ($env{'form.concepttest'} eq 'editmyown')) {
- $js .= "\n".&Apache::londocsgci::builder_javascript()."\n";
}
my $title;
if ($env{'form.crstype'} eq 'community') {
@@ -1433,7 +1385,7 @@ sub print_request_form {
&Apache::lonnet::auto_possible_instcodes($dom,\@codetitles,\%cat_titles,
\%cat_order,\@code_order);
}
- my ($storeresult,$result) = &print_request_outcome($r,$dom,\@codetitles,
+ my ($storeresult,$result) = &print_request_outcome($dom,\@codetitles,
\@code_order);
$r->print($result);
if (($storeresult eq 'ok') || ($storeresult eq 'created')) {
@@ -1442,9 +1394,7 @@ sub print_request_form {
$r->print(''.
&mt('Modify this request').''.(' 'x4));
}
- unless ($env{'form.concepttest'}) {
- $r->print(''.&mt('Make another request').'');
- }
+ $r->print(''.&mt('Make another request').'');
return;
}
}
@@ -1627,6 +1577,7 @@ sub print_enrollment_menu {
my $access_dates =
&date_setting_table($starttime,$endtime,$formname,'access',$hasauto,
%accesstitles);
+ $output .= &Apache::lonhtmlcommon::start_pick_box();
if ($sections) {
$output .= $sections;
}
@@ -1646,12 +1597,8 @@ sub print_enrollment_menu {
&Apache::lonhtmlcommon::row_closure(1).
$access_dates
}
- if ($dom eq 'gcitest') {
- return $output;
- } else {
- return '
';
@@ -2437,31 +2374,40 @@ function validateForm() {
}
nextPage(document.$formname,'$next');
}
+
+function toggleCloning() {
+ var willclone;
+ if (document.$formname.cloning.length > 1) {
+ for (var i=0; i
ENDJS
my $title = &mt('Brief Course Description');
- my $desctitle = &mt('Description');
- if ($dom eq 'gcitest') {
- $title = &mt('Concept Test Course Information');
- $desctitle = &mt('Concept Test Title');
- }
my $clonetitle = &mt('Clone content and settings from an existing course?');
if ($crstype eq 'community') {
$title = &mt('Brief Community Description');
$clonetitle = &mt('Clone content and settings from an existing community?');
}
- my $output .= $js_validate."\n".'
'.&Apache::lonhtmlcommon::start_pick_box().
+ my $output .= $js_validate."\n".&Apache::lonhtmlcommon::start_pick_box().
&Apache::lonhtmlcommon::row_headline().
'