--- loncom/interface/loncreatecourse.pm	2010/05/24 06:43:32	1.137.4.1
+++ loncom/interface/loncreatecourse.pm	2010/09/20 00:51:14	1.144
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Create a course
 #
-# $Id: loncreatecourse.pm,v 1.137.4.1 2010/05/24 06:43:32 raeburn Exp $
+# $Id: loncreatecourse.pm,v 1.144 2010/09/20 00:51:14 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -689,7 +689,7 @@ sub create_course {
 		      '<p><a href="/adm/managekeys?cid='.$crsudom.'_'.$crsunum.'">'.&mt('Manage Access Keys').'</a></p>');
 	}
         # Flush the course logs so reverse user roles immediately updated
-	&Apache::lonnet::flushcourselogs();
+	$r->register_cleanup(\&Apache::lonnet::flushcourselogs);
 	$r->print('<p>'.&mt('Roles will be active at next login').'.</p>');
     }
     $r->print('<p><a href="/adm/createcourse?phase='.lc($crstype).'one">'.
@@ -705,62 +705,79 @@ sub print_intro_page {
     my $end_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.'),
-                   });
-    if ($show_all_choices) {
-        push(@choices,{ 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.'),
-                      });
-    } else {
-        push(@choices,{ internal_name     => 'batchone',
-                        name              => &mt('Create courses by uploading an attributes file'),
-                        short_description =>
-    &mt('Upload an attributes file containing specifications for one or more courses in XML format.'),
-                        help => 'Batch_Creation',
-                      });
-    }
-    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
+
+    # 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 => 'View pending official course requests',
+               url => '/adm/createcourse?phase=pendingdisplay',
+               permission => $show_all_choices,
+               #help => '',
+               icon => 'edit-find.png',
+               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
+    );
 }
 
 sub upload_batchfile {
@@ -777,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;
 }
@@ -915,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 {