--- loncom/interface/lonrequestcourse.pm 2010/11/08 21:44:55 1.41.2.8
+++ loncom/interface/lonrequestcourse.pm 2010/12/05 17:27:00 1.41.2.11
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Request a course
#
-# $Id: lonrequestcourse.pm,v 1.41.2.8 2010/11/08 21:44:55 raeburn Exp $
+# $Id: lonrequestcourse.pm,v 1.41.2.11 2010/12/05 17:27:00 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -151,7 +151,7 @@ sub generate_page {
$states{'log'} = ['filter','display'];
$states{'new'} = ['courseinfo','enrollment','personnel','review','process'];
- if ($dom eq 'gcitest') {
+ if ($dom =~ /^\w+citest$/) {
$states{'new'} = ['courseinfo','review','process'];
if ($env{'form.concepttest'} eq 'editmyown') {
push(@{$states{'new'}},'chooseitems','uploadroster','enrolling');
@@ -182,7 +182,7 @@ sub generate_page {
enrollment => 'Access Dates',
personnel => 'Personnel',
review => 'Review',
- process => 'Result',
+ process => 'Request Outcome',
pick_request => 'Display Summary',
details => 'Request Details',
cancel => 'Cancel Request',
@@ -192,7 +192,7 @@ sub generate_page {
enrolling => 'Completed',
done => 'Completed',
);
- if ($dom eq 'gcitest') {
+ if ($dom =~ /^\w+citest$/) {
$trail{'crstype'} = 'Building a Test';
$trail{'courseinfo'} = 'Test Information';
}
@@ -414,7 +414,7 @@ sub get_breadcrumbs {
my $firstcrumb = 'Pick Action';
my $crumbtitle = 'Course/Community Requests';
my $crumbhelp = 'Course_Requests';
- if ($dom eq 'gcitest') {
+ if ($dom =~ /^\w+citest$/) {
$firstcrumb = 'Building a Test';
$crumbtitle = 'Create Concept Test';
$crumbhelp = 'Concept_Test_Creation';
@@ -595,11 +595,12 @@ sub form_elements {
},
);
my %servers = &Apache::lonnet::get_servers($dom,'library');
- if ($dom eq 'gcitest') {
+ if ($dom =~ /^\w+citest$/) {
%{$elements{'new'}{'courseinfo'}} = (
cdescr => 'text',
concepttest => 'radio',
);
+ $elements{'new'}{'enrollment'}{'timezone'} = 'selectbox';
if (&show_cloneable()) {
$elements{'new'}{'courseinfo'}{'clonecrs'} = 'selectbox';
$elements{'new'}{'courseinfo'}{'clonedom'} = 'hidden';
@@ -612,7 +613,7 @@ sub form_elements {
} else {
$elements{'new'}{'courseinfo'}{'chome'} = 'hidden';
}
- if ($dom eq 'gcitest') {
+ if ($dom =~ /^\w+citest$/) {
my %mergedhash = (%{$elements{'new'}{'courseinfo'}},%{$elements{'new'}{'enrollment'}});
%{$elements{'new'}{'courseinfo'}} = %mergedhash;
}
@@ -738,7 +739,7 @@ sub print_main_menu {
}
my $js;
- unless ($dom eq 'gcitest') {
+ unless ($dom =~ /^\w+citest$/) {
$js = <<"END";
function nextPage(formname) {
@@ -829,7 +830,7 @@ END
}
}
- if ($dom eq 'gcitest') {
+ if ($dom =~ /^\w+citest$/) {
my $formname = 'requestcrs';
my $nexttext = &mt('Continue');
$r->print(&header($pagetitle,$js.$jscript,$loaditems).$crumb.
@@ -985,7 +986,7 @@ 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";
+ $js .= "\n".&Apache::londocsgci::builder_javascript($dom)."\n";
}
my $title;
if ($env{'form.crstype'} eq 'community') {
@@ -1751,12 +1752,12 @@ sub print_enrollment_menu {
&mt('No').''.
&Apache::lonhtmlcommon::row_closure(1).
&date_setting_table($starttime,$endtime,$formname,'enroll',
- $hasauto,%enrolltitles);
+ $hasauto,$dom,%enrolltitles);
}
}
my $access_dates =
&date_setting_table($starttime,$endtime,$formname,'access',$hasauto,
- %accesstitles);
+ $dom,%accesstitles);
if ($sections) {
$output .= $sections;
}
@@ -1773,10 +1774,18 @@ sub print_enrollment_menu {
}
$output .= &Apache::lonhtmlcommon::row_headline('Access').
'
'.&Apache::lonhtmlcommon::start_pick_box().$output.
@@ -1843,16 +1852,22 @@ sub inst_section_selector {
}
sub date_setting_table {
- my ($starttime,$endtime,$formname,$prefix,$hasauto,%datetitles) = @_;
+ my ($starttime,$endtime,$formname,$prefix,$hasauto,$dom,%datetitles) = @_;
my ($perpetual,$table);
my $no_hh_mm_ss = 1;
+ my $hide_timezone;
if (&Apache::loncommon::needs_gci_custom()) {
$no_hh_mm_ss = '';
+ if ($dom =~ /^\w+citest$/) {
+ if ($prefix eq 'access') {
+ $hide_timezone = 1;
+ }
+ }
}
my $startform = &Apache::lonhtmlcommon::date_setter($formname,$prefix.'start',
- $starttime,'','','',$no_hh_mm_ss,'','','',1);
+ $starttime,'','','',$no_hh_mm_ss,'','','',1,$hide_timezone);
my $endform = &Apache::lonhtmlcommon::date_setter($formname,$prefix.'end',
- $endtime,'','','',$no_hh_mm_ss,'','','',1);
+ $endtime,'','','',$no_hh_mm_ss,'','','',1,$hide_timezone);
my $closure = '';
if ($prefix eq 'access') {
unless (&Apache::loncommon::needs_gci_custom()) {
@@ -2379,7 +2394,7 @@ sub print_review {
}
my %ctxt = &clone_text();
- if ($dom eq 'gcitest') {
+ if ($dom =~ /^\w+citest$/) {
$inst_headers .= '
'.&mt('Test Questions').' | ';
my $concepttest;
if ($env{'form.concepttest'} eq 'defchosen') {
@@ -2394,7 +2409,7 @@ sub print_review {
if (&show_cloneable()) {
$inst_headers .= '
'.&mt('Copy From').' | ';
if ((($env{'form.cloning'}) ||
- (($dom eq 'gcitest') && ($env{'form.concepttest'} eq 'cloning'))) &&
+ (($dom =~ /^\w+citest$/) && ($env{'form.concepttest'} eq 'cloning'))) &&
($env{'form.clonecrs'} =~ /^$match_name$/) &&
($env{'form.clonedom'} =~ /^$match_domain$/)) {
my $canclone = &Apache::loncoursequeueadmin::can_clone_course($env{'user.name'},
@@ -2404,7 +2419,7 @@ sub print_review {
my %courseenv = &Apache::lonnet::userenvironment($env{'form.clonedom'},
$env{'form.clonecrs'},('description','internal.coursecode'));
if (keys(%courseenv) > 0) {
- if ($dom eq 'gcitest') {
+ if ($dom =~ /^\w+citest$/) {
$inst_headers .= '
'.$ctxt{'ros'}.' | ';
} else {
$inst_headers .= '
'.$ctxt{'dsh'}.' | ';
@@ -2414,12 +2429,12 @@ sub print_review {
if ($cloneinst ne '') {
$inst_values .= $cloneinst.' '.&mt('in').' '.$env{'form.clonedom'};
} else {
- unless ($dom eq 'gcitest') {
+ unless ($dom =~ /^\w+citest$/) {
$inst_values .= &mt('from').' '.$env{'form.clonedom'};
}
}
$inst_values .= (' 'x2).'
';
- if ($dom eq 'gcitest') {
+ if ($dom =~ /^\w+citest$/) {
if ($env{'form.cloneroster'}) {
$inst_values .= &mt('Yes');
} else {
@@ -2445,14 +2460,26 @@ sub print_review {
$inst_values .= ' | '.&mt('None').' | ';
}
}
+ my $tz;
+ if ($dom =~ /^\w+citest$/) {
+ if (&Apache::lonlocal::gettimezone($env{'form.timezone'}) ne 'local') {
+ $tz = $env{'form.timezone'};
+ } else {
+ $tz = &Apache::lonlocal::gettimezone();
+ }
+ $enroll_headers .= '
'.&mt('Time Zone').' | ';
+ }
$enroll_headers .= '
'.&mt('Access Starts').' | '.
'
'.&mt('Access Ends').' | ';
- my ($accessstart,$accessend) = &dates_from_form('accessstart','accessend');
- $enroll_values .= '
'.&Apache::lonlocal::locallocaltime($accessstart).' | ';
+ my ($accessstart,$accessend) = &dates_from_form('accessstart','accessend',$tz);
+ if ($dom =~ /^\w+citest$/) {
+ $enroll_values .= '
'.$tz.' | ';
+ }
+ $enroll_values .= '
'.&Apache::lonlocal::locallocaltime($accessstart,$tz).' | ';
if ($accessend == 0) {
$enroll_values .= '
'.&mt('No end date').' | ';
} else {
- $enroll_values .= '
'.&Apache::lonlocal::locallocaltime($accessend).' | ';
+ $enroll_values .= '
'.&Apache::lonlocal::locallocaltime($accessend,$tz).' | ';
}
my $container = 'Course';
@@ -2563,9 +2590,9 @@ sub print_review {
}
sub dates_from_form {
- my ($startname,$endname) = @_;
- my $startdate = &Apache::lonhtmlcommon::get_date_from_form($startname);
- my $enddate = &Apache::lonhtmlcommon::get_date_from_form($endname);
+ my ($startname,$endname,$timezone) = @_;
+ my $startdate = &Apache::lonhtmlcommon::get_date_from_form($startname,$timezone);
+ my $enddate = &Apache::lonhtmlcommon::get_date_from_form($endname,$timezone);
if ($endname eq 'accessend') {
if (exists($env{'form.no_end_date'}) ) {
$enddate = 0;
@@ -2616,7 +2643,7 @@ function toggleCloning() {
ENDJS
my $title = &mt('Brief Course Description');
my $desctitle = &mt('Description');
- if ($dom eq 'gcitest') {
+ if ($dom =~ /^\w+citest$/) {
$title = &mt('Concept Test Course Information');
$desctitle = &mt('Concept Test Title');
}
@@ -2630,16 +2657,16 @@ ENDJS
'
'.&Apache::loncommon::help_open_topic('Course_Request_Description').' '.$title.'
'.
&Apache::lonhtmlcommon::row_closure(1).
&Apache::lonhtmlcommon::row_title($desctitle).
- '
';
+ '
';
my $showclone;
- if ($dom eq 'gcitest') {
+ if ($dom =~ /^\w+citest$/) {
$showclone = &show_cloneable();
} else {
$showclone = 1;
}
- if ($dom eq 'gcitest') {
+ if ($dom =~ /^\w+citest$/) {
$output .= &Apache::lonhtmlcommon::row_closure(1).
- &concepttest_form($showclone);
+ &concepttest_form($showclone,$dom);
}
my ($home_server_pick,$numlib) =
&Apache::loncommon::home_server_form_item($dom,'chome',
@@ -2650,7 +2677,7 @@ ENDJS
}
$output .= $home_server_pick.
&Apache::lonhtmlcommon::row_closure();
- if ($showclone && $dom ne 'gcitest') {
+ if ($showclone && $dom !~ /^\w+citest$/) {
$output .= &Apache::lonhtmlcommon::row_headline().
'
'.&Apache::loncommon::help_open_topic('Course_Request_Clone').' '.$clonetitle.
'