--- loncom/interface/loncreatecourse.pm	2010/03/30 16:06:21	1.136
+++ loncom/interface/loncreatecourse.pm	2010/05/28 17:09:06	1.140
@@ -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.140 2010/05/28 17:09:06 bisitz Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -359,15 +359,21 @@ END
                  .'<label>'
                  .'<input type="radio" name="firstres" value="blank" />'.$lt{'blnk'}
                  .'</label>'
-                 .'&nbsp;'
-                 .'<label>'
+                 .'&nbsp;');
+    if ($crstype eq 'Community') {
+        $r->print('<label>'
+                 .'<input type="radio" name="firstres" value="nav" checked="checked" />'.$lt{'navi'}
+                 .'</label>');
+    } else {
+        $r->print('<label>'
                  .'<input type="radio" name="firstres" value="syl" checked="checked" />'.$lt{'sllb'}
                  .'</label>'
                  .'&nbsp;'
                  .'<label>'
                  .'<input type="radio" name="firstres" value="nav" />'.$lt{'navi'}
-                 .'</label>'
-                 .'<br />('.$lt{'stco'}.')'
+                 .'</label>');
+    }
+    $r->print('<br />('.$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 .='    <h3><a href="/adm/createcourse?phase='.
-            $choice->{'internal_name'}.'" >'.
-            $choice->{'name'}.'</a>';
-        if (exists($choice->{'help'})) {
-            $options .= &Apache::loncommon::help_open_topic($choice->{'help'});
-        }
-        $options .= "</h3>\n".'    '.('&nbsp;'x8).$choice->{'short_description'}.
-            "\n";
-    }
-
-    $r->print(<<ENDDOCUMENT);
-$start_page
-$crumbs
-$options
-$end_page
-ENDDOCUMENT
 }
 
 sub upload_batchfile {
@@ -766,7 +794,7 @@ sub upload_batchfile {
               '<input type="file" name="coursecreatorxml" />'.
               '<input type="hidden" name="phase" value="batchtwo" /><br /><br />'.
               '<input type="submit" name="batchsubmit" '.
-              'value="Create Courses/Communities" /></form>');
+              'value="'.&mt('Create Courses/Communities').'" /></form>');
     $r->print($end_page);
     return;
 }
@@ -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'}).'</div>'.
                      &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'}).'</div>'.
                      &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'}).'</div>'.
                      &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".'<div>'.
                      &Apache::loncoursequeueadmin::process_official_reqs('domain',$env{'request.role.domain'}).'</div>'.
                      &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('</div>'.&Apache::loncommon::end_page());
        } else {
-           &print_intro_page($r);
+           &print_intro_page($r,$show_all_choices);
        }
    } else {
       $env{'user.error.msg'}=