--- loncom/interface/loncreatecourse.pm 2010/03/30 16:06:21 1.136 +++ loncom/interface/loncreatecourse.pm 2010/07/08 23:19:19 1.141 @@ -1,7 +1,7 @@ # The LearningOnline Network # Create a course # -# $Id: loncreatecourse.pm,v 1.136 2010/03/30 16:06:21 raeburn Exp $ +# $Id: loncreatecourse.pm,v 1.141 2010/07/08 23:19:19 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -359,15 +359,21 @@ END .'' - .' ' - .''); + } + $r->print('
('.$lt{'stco'}.')' .&Apache::lonhtmlcommon::row_closure(1) .&Apache::lonhtmlcommon::end_pick_box() @@ -692,7 +698,7 @@ sub create_course { } sub print_intro_page { - my $r = shift; + my ($r,$show_all_choices) = @_; my $start_page = &Apache::loncommon::start_page('Create a New Course or Community'); my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Creation Options','Create_Course',undef,'Create_Courses'); @@ -700,56 +706,78 @@ sub print_intro_page { &Apache::loncommon::end_page(); my $helplink=&Apache::loncommon::help_open_topic('Create_Course_Community',&mt('Help on Creating Courses and Communities')); - my @choices = ({ internal_name => 'courseone', - name => &mt('Create a single course'), - short_description => - &mt('Create a new course by completing an online form.'), - }, - { internal_name => 'groupone', - name => &mt('Create a single community'), - short_description => - &mt('Create a new collaborative community by completing an online form.'), - }, - { internal_name => 'batchone', - name => &mt('Create courses/communities by uploading an attributes file'), - short_description => - &mt('Upload an attributes file containing specifications for one or more courses or communities in XML format.'), - help => 'Batch_Creation', - }, - { internal_name => 'requestdisplay', - name => &mt('Approve or reject requests'), - short_description => - &mt('Display course and community creation requests submitted by authorized users, held pending approval by a Domain Coordinator.'), - }, - { internal_name => 'pendingdisplay', - name => &mt('Display official course requests'), - short_description => - &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.'), - }, + # Create menu + my @menu; + @menu = + ({ categorytitle => 'Course/Community Creation', + items => [ + { + linktext => 'Create a single course', + url => '/adm/createcourse?phase=courseone', + permission => 1, + #help => '', + icon => 'crsnew.png', + linktitle => 'Create a new course by completing an online form.' + }, + { + linktext => 'Create a single community', + url => '/adm/createcourse?phase=groupone', + permission => $show_all_choices, + #help => '', + icon => 'crsnew.png', + linktitle => 'Create a new collaborative community by completing an online form.' + }, + { + linktext => 'Create courses/communities by uploading an attributes file', + url => '/adm/createcourse?phase=batchone', + permission => 1, + help => 'Batch_Creation', + icon => 'uplcrs.png', + linktitle => 'Upload an attributes file containing specifications for one or more courses or communities in XML format.' + }, + ] + }, + { categorytitle => 'Course/Community Requests', + items => [ + { + linktext => 'Approve or reject requests', + url => '/adm/createcourse?phase=requestdisplay', + permission => $show_all_choices, + #help => '', + icon => 'rcrs.png', + linktitle => 'Display course and community creation requests submitted by authorized users, held pending approval by a Domain Coordinator.' + }, + { + linktext => 'Display official course requests', + url => '/adm/createcourse?phase=pendingdisplay', + permission => $show_all_choices, + #help => '', + icon => '', + alttext => '', + linktitle => 'Display official course requests submitted by authorized users, held pending validation of instructor status.' + }, + ] + }, + { categorytitle => 'Administration', + items => [ + { + linktext => 'View creation log', + url => '/adm/createcourse?phase=creationlog', + permission => $show_all_choices, + #help => '', + icon => 'document-properties.png', + linktitle => 'Display information about when, how and by whom courses and communities were created in this domain.' + }, + ] + }, + ); + + $r->print( + $start_page + .$crumbs + .&Apache::lonhtmlcommon::generate_menu(@menu) + .$end_page ); - my $options; - foreach my $choice (@choices) { - $options .='

'. - $choice->{'name'}.''; - if (exists($choice->{'help'})) { - $options .= &Apache::loncommon::help_open_topic($choice->{'help'}); - } - $options .= "

\n".' '.(' 'x8).$choice->{'short_description'}. - "\n"; - } - - $r->print(<'. '

'. ''); + 'value="'.&mt('Create Courses/Communities').'" />'); $r->print($end_page); return; } @@ -904,7 +932,7 @@ sub print_creation_logs { if ($numtitles) { if (($curr{'type'} eq 'official') || ($curr{'type'} eq 'unofficial')) { $instcodefilter = &instcode_srchstr($dom,$numtitles); - &Apache::courseclassifier::instcode_search_str($dom,$numtitles); + &Apache::courseclassifier::instcode_search_str($dom,$numtitles,\@codetitles); if ($curr{'type'} eq 'official') { $regexpok = 1; } else { @@ -1193,6 +1221,13 @@ sub handler { 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'})) { &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; @@ -1205,7 +1240,8 @@ sub handler { text=>"Creation Options", faq=>79,bug=>'Dom Coord Interface',}); if (($env{'form.phase'} eq 'coursetwo') || - ($env{'form.phase'} eq 'grouptwo')) { + (($env{'form.phase'} eq 'grouptwo') && + ($show_all_choices))) { &Apache::lonhtmlcommon::add_breadcrumb ({href=>"/adm/createcourse?phase=$env{'form.prevphase'}", text=>&mt('[_1] Creation Settings',), @@ -1216,7 +1252,8 @@ sub handler { faq=>9,bug=>'Dom Coord Interface',}); &create_course($r); } elsif (($env{'form.phase'} eq 'courseone') || - ($env{'form.phase'} eq 'groupone')) { + (($env{'form.phase'} eq 'groupone') && + ($show_all_choices))) { &Apache::lonhtmlcommon::add_breadcrumb ({href=>"/adm/createcourse?phase=$env{'form.phase'}", text=>&mt('[_1] Creation Settings',), @@ -1238,7 +1275,7 @@ sub handler { text=>"Creation Outcome", faq=>9,bug=>'Dom Coord Interface',}); &process_batchfile($r); - } elsif ($env{'form.phase'} eq 'requestdisplay') { + } elsif (($env{'form.phase'} eq 'requestdisplay') && ($show_all_choices)) { &Apache::lonhtmlcommon::add_breadcrumb ({href=>"/adm/createcourse?phase=$env{'form.phase'}", text=>&mt('[_1] Display Request Queue',), @@ -1250,7 +1287,7 @@ sub handler { &Apache::loncoursequeueadmin::display_queued_requests( 'domain',$env{'request.role.domain'}).''. &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", @@ -1272,7 +1309,7 @@ sub handler { &Apache::loncoursequeueadmin::update_request_queue( 'domain',$env{'request.role.domain'}).''. &Apache::loncommon::end_page()); - } elsif ($env{'form.phase'} eq 'pendingdisplay') { + } 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',), @@ -1284,7 +1321,7 @@ sub handler { &Apache::loncoursequeueadmin::display_queued_requests( 'pending',$env{'request.role.domain'}).''. &Apache::loncommon::end_page()); - } elsif ($env{'form.phase'} eq 'requestvalidation') { + } elsif (($env{'form.phase'} eq 'requestvalidation') && ($show_all_choices)) { my $js = &courserequestbrowser_javascript(); &Apache::lonhtmlcommon::add_breadcrumb ({href=>"/adm/createcourse?phase=pendingdisplay", @@ -1296,7 +1333,7 @@ sub handler { $r->print($start_page.$crumbs."\n".'
'. &Apache::loncoursequeueadmin::process_official_reqs('domain',$env{'request.role.domain'}).'
'. &Apache::loncommon::end_page()); - } elsif ($env{'form.phase'} eq 'creationlog') { + } elsif (($env{'form.phase'} eq 'creationlog') && ($show_all_choices)) { &Apache::lonhtmlcommon::add_breadcrumb ({href=>"/adm/createcourse?phase=creationlog", text=>&mt('[_1] Display Creation History',),}); @@ -1311,7 +1348,7 @@ sub handler { &print_creation_logs($r); $r->print(''.&Apache::loncommon::end_page()); } else { - &print_intro_page($r); + &print_intro_page($r,$show_all_choices); } } else { $env{'user.error.msg'}=