--- 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'). '

'.$header.'

'. - &Apache::lonhtmlcommon::row_closure(1). - $access_dates; + &Apache::lonhtmlcommon::row_closure(1); + if ($dom =~ /^\w+citest$/) { + my $includeempty = 1; + my $timezone = &Apache::lonlocal::gettimezone(); + $output .= &Apache::lonhtmlcommon::row_title('Time zone'). + &Apache::loncommon::select_timezone('timezone',$timezone, + undef,$includeempty). + &Apache::lonhtmlcommon::row_closure(1); + } + $output .= $access_dates; } - if ($dom eq 'gcitest') { + if ($dom =~ /^\w+citest$/) { return $output; } else { return '
'.&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. '