--- loncom/interface/loncreatecourse.pm	2008/01/22 22:37:18	1.106
+++ loncom/interface/loncreatecourse.pm	2008/11/18 19:14:22	1.112
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Create a course
 #
-# $Id: loncreatecourse.pm,v 1.106 2008/01/22 22:37:18 www Exp $
+# $Id: loncreatecourse.pm,v 1.112 2008/11/18 19:14:22 jms Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -27,6 +27,38 @@
 #
 ###
 
+=head1 NAME
+
+Apache::loncreatecourse.pm
+
+=head1 SYNOPSIS
+
+Allows domain coordinators to create new
+courses and assign course coordinators.
+
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+=head1 SUBROUTINES
+
+=over
+
+=item handler()
+
+=item print_course_creation_page()
+
+=item create_course()
+
+=item print_intro_page()
+
+=item upload_batchfile()
+
+=item process_batchfile()
+
+=back
+
+=cut
+
 package Apache::loncreatecourse;
 
 use strict;
@@ -127,6 +159,7 @@ function validate(formname) {
                     'navi' => "Navigate",
                     'cid'  => "Course ID",
                     'dmn'  => "Domain",
+                    'dsh'  => "Date Shift",
                     'asov' => "Additional settings, if specified below, will override cloned settings",
                     'ncd'  => "Do not clone date parameters",
                     'prd'  => 'Clone date parameters as-is',
@@ -153,7 +186,7 @@ function validate(formname) {
                     'audr' => "Automated drops",
                     'dacu' => "Duration of automated classlist updates",
                     'dacc' => "Default start and end dates for student access",
-                    'psam' => "Please select the authentication mechanism",
+                    'psam' => "Please select the Authentication mechanism",
                     'pcda' => "Please choose the default authentication method to be used by new users added to this LON-CAPA domain by the automated enrollment process",
                     'nech' => "Notification of enrollment changes",
                     'nccl' => "Notification to course coordinator via LON-CAPA message when enrollment changes occur during the automated update?",
@@ -223,214 +256,247 @@ END
 					    'Create_Course',undef,
 					    'Create_Courses');
     $r->print($start_page.$crumbs);
+
     if ($crstype eq 'Course') {
+        $r->print('<form action="/adm/createcourse" method="post" name="ccrs">'
+                 .&Apache::lonhtmlcommon::start_pick_box()
+
+                 .&Apache::lonhtmlcommon::row_headline()
+                 .'<h3>'.$lt{'cinf'}.'</h3>'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'ctit'})
+                 .'<input type="text" size="50" name="title" />'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'chsr'})
+                 .$course_home
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'cidn'}.' ('.$lt{'opt'}.')')
+                 .'<input type="text" size="30" name="crsid" />'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_headline()
+                 .'<h3>'.$lt{'iinf'}.'</h3>'
+                 .$lt{'stat'}
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'ccod'})
+                 .'<input type="text" size="30" name="crscode" />'
+                 .'<br />('.$lt{'toin'}.')'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'snid'})
+                 .'<input type="text" size="30" name="crssections" />'
+                 .'<br />('.$lt{'csli'}.')'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'crcs'})
+                 .'<input type="text" size="30" name="crsxlist" />'
+                 .'<br />('.$lt{'cscs'}.')'
+                 .&Apache::lonhtmlcommon::row_closure()
+        );
+
+        # Table: New Course / Clone Course
+        $r->print(&Apache::lonhtmlcommon::row_headline()
+                 .'<h3>'.$lt{'crco'}.'</h3>'
+                 .&Apache::loncommon::start_data_table()
+                 .&Apache::loncommon::start_data_table_header_row()
+                 .'<th>'.$lt{'cncr'}.'</th>'
+                 .'<th>&nbsp;'.&mt('or').'&nbsp;</th>'
+                 .'<th>'.$lt{'cecr'}.'</th>'
+                 .&Apache::loncommon::end_data_table_header_row()
+                 .&Apache::loncommon::start_data_table_row()
+
+                 # New Course:
+                 .'<td>'
+                 .&Apache::lonhtmlcommon::start_pick_box()
+                 .&Apache::lonhtmlcommon::row_title($lt{'map'})
+                 .'<input type="text" size="50" name="topmap" />'
+                 .'<a href="javascript:openbrowser(\'ccrs\',\'topmap\')">'.$lt{'smap'}.'</a>'
+                 .&Apache::lonhtmlcommon::row_closure()
+                 .&Apache::lonhtmlcommon::row_title('<label for="nonstd">'.$lt{'sacr'}.'</label>')
+                 .'<input id="nonstd" type="checkbox" name="nonstandard" />'
+                 .'<br />('.$lt{'ocik'}.')'
+                 .&Apache::lonhtmlcommon::row_closure()
+                 .&Apache::lonhtmlcommon::row_title($lt{'fres'})
+                 .'<label>'
+                 .'<input type="radio" name="firstres" value="blank" />'.$lt{'blnk'}
+                 .'</label>'
+                 .'&nbsp;'
+                 .'<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'}.')'
+                 .&Apache::lonhtmlcommon::row_closure(1)
+                 .&Apache::lonhtmlcommon::end_pick_box()
+
+                 .'<td>&nbsp;</td>'
+
+                 # Clone Course:
+                 .'<td>'
+                 .&Apache::lonhtmlcommon::start_pick_box()
+                 .&Apache::lonhtmlcommon::row_title($lt{'cid'})
+                 .'<label>'
+                 .'<input type="text" size="25" name="clonecourse" value="" />'
+                 .'</label>'
+                 .&Apache::lonhtmlcommon::row_closure(1)
+                 .&Apache::lonhtmlcommon::row_title($lt{'dmn'})
+                 .'<label>'
+                 .$cloneform
+                 .'</label>'
+                 .&Apache::lonhtmlcommon::row_closure()
+                 .&Apache::lonhtmlcommon::row_title($lt{'dsh'})
+                 .'<label>'
+                 .'<input type="radio" name="datemode" value="delete" /> '.$lt{'ncd'}
+                 .'</label><br />'
+                 .'<label>'
+                 .'<input type="radio" name="datemode" value="preserve" /> '.$lt{'prd'}
+                 .'</label><br />'
+                 .'<label>'
+                 .'<input type="radio" name="datemode" value="shift" checked="checked" /> '.$lt{'shd'}
+                 .'</label>'
+                 .' <input type="text" size="5" name="dateshift" value="365" />'
+                 .&Apache::lonhtmlcommon::row_closure()
+                 .&Apache::lonhtmlcommon::row_headline()
+                 .$lt{'asov'}
+                 .&Apache::lonhtmlcommon::row_closure(1)
+                 .&Apache::lonhtmlcommon::end_pick_box()
+                 .'</td>'
+                 .&Apache::loncommon::end_data_table_row()
+                 .&Apache::loncommon::end_data_table()
+                 .&Apache::lonhtmlcommon::row_closure()
+        );
+
+        $r->print(&Apache::lonhtmlcommon::row_headline()
+                 .'<h3>'.$lt{'assp'}.'</h3>'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'oaas'})
+                 .'<input type="checkbox" name="openall" />'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_headline()
+                 .'<h3>'.$lt{'mssg'}.'</h3>'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'scpf'})
+                 .'<input type="checkbox" name="setpolicy" checked="checked" />'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'scfc'})
+                 .'<input type="checkbox" name="setcontent" checked="checked" />'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_headline()
+                 .'<h3>'.$lt{'cmmn'}.'</h3>'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'dsrd'})
+                 .'<input type="checkbox" name="disresdis" />'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'dsuc'})
+                 .'<input type="checkbox" name="disablechat" /'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_headline()
+                 .'<h3>'.$lt{'acco'}.'</h3>'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'snak'})
+                 .'<input type="checkbox" name="setkeys" />'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'kaut'})
+                 .'<input type="text" size="30" name="keyauth" />'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_headline()
+                 .'<h3>'.$lt{'rshm'}.'</h3>'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'rshm'})
+                 .'<input type="text" name="reshome" size="30" value="/res/'.$defdom.'/" />'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_headline()
+                 .'<h3>'.$lt{'aens'}.'</h3>'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'aadd'})
+                 .'<label><input type="radio" name="autoadds" value="1" />'.$lt{'yes'}.'</label>'
+                 .'<label><input type="radio" name="autoadds" value="0" checked="checked" />'.$lt{'no'}.'</label>'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'audr'})
+                 .'<label><input type="radio" name="autodrops" value="1" />'.$lt{'yes'}.'</label>'
+                 .'<label><input type="radio" name="autodrops" value="0" checked="checked" />'.$lt{'no'}.'</label>'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'dacu'})
+                 .$enroll_table
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'dacc'})
+                 .$access_table
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'psam'})
+                 .$lt{'pcda'}.'<br />'
+                 .$krbform.'<br />'
+                 .$intform.'<br />'
+                 .$locform
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'nech'})
+                 .$lt{'nccl'}.'<br/>'
+                 .'<label><input type="radio" name="notify_owner" value="1" />'.$lt{'yes'}.'</label>'
+                 .'<label><input type="radio" name="notify_owner" value="0" checked="checked" />'.$lt{'no'}.'</label>'
+                 .'<br />'
+                 .$lt{'ndcl'}.'<br/>'
+                 .'<label><input type="radio" name="notify_dc" value="1" />'.$lt{'yes'}.'</label>'
+                 .'<label><input type="radio" name="notify_dc" value="0" checked="checked" />'.$lt{'no'}.'</label>'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'irsp'})
+                 .'<label>'
+                 .'<input type="radio" name="showphotos" value="1" />'.$lt{'yes'}
+                 .'</label> '
+                 .'<label>'
+                 .'<input type="radio" name="showphotos" value="0" checked="checked" />'.$lt{'no'}
+                 .'</label> '
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_headline()
+                 .'<h3>'.$lt{'cgrs'}.'</h3>'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'cgrq'})
+                 .'<input type="text" name="crsquota" value="20" size="6" />Mb'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_headline()
+                 .'<h3>'.$lt{'cc'}.'</h3>'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'user'})
+                 .'<input type="text" size="15" name="ccuname" />'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'dmn'},"","LC_odd_row_value")
+                 .$domform
+                 .&Apache::lonhtmlcommon::row_closure(1)
+
+                 .&Apache::lonhtmlcommon::end_pick_box()
+        );
+
         $r->print(<<ENDDOCUMENT);
-<form action="/adm/createcourse" method="post" name="ccrs">
-<h2>$lt{'cinf'}</h2>
-<p>
-<label><b>$lt{'ctit'}:</b>
-<input type="text" size="50" name="title" /></label>
-</p><p>
-<label>
-    <b>$lt{'chsr'}:</b>$course_home
-</label>
-</p><p>
-<label>
-    <b>$lt{'cidn'} ($lt{'opt'})</b>
-    <input type="text" size="30" name="crsid" />
-</label>
-</p><p>
-<h2>$lt{'iinf'}</h2>
-<p>
-$lt{'stat'}
-</p><p>
-<label>
-    <b>$lt{'ccod'}</b>
-    <input type="text" size="30" name="crscode" />
-</label>
-<br/>
-($lt{'toin'})
-</p><p>
-<label>
-    <b>$lt{'snid'}</b>
-    <input type="text" size="30" name="crssections" />
-</label>
-<br/>
-($lt{'csli'})
-</p><p>
-<label>
-    <b>$lt{'crcs'}</b>
-    <input type="text" size="30" name="crsxlist" />
-</label>
-<br/>
-($lt{'cscs'})
-</p>
-<h2>$lt{'crco'}</h2>
-<table border="2">
-<tr><th>$lt{'cncr'}</th><th>$lt{'cecr'}</th></tr>
-<tr><td>
-<p>
-<label>
-    <b>$lt{'map'}:</b>
-    <input type="text" size="50" name="topmap" />
-</label>
-<a href="javascript:openbrowser('ccrs','topmap')">$lt{'smap'}</a>
-</p><p>
-<label for="nonstd"><b>$lt{'sacr'}</b></label>
-<br />
-($lt{'ocik'}):
-<input id="nonstd" type="checkbox" name="nonstandard" />
-</p><p>
-<b>$lt{'fres'}</b><br />($lt{'stco'}):
-<label>
-    <input type="radio" name="firstres" value="blank" />$lt{'blnk'}
-</label>
-&nbsp;
-<label>
-    <input type="radio" name="firstres" value="syl" checked />$lt{'sllb'}
-</label>
-&nbsp;
-<label>
-    <input type="radio" name="firstres" value="nav" />$lt{'navi'}
-</label>
-</p>
-</td><td>
-<label>
-    $lt{'cid'}: <input type="text" size="25" name="clonecourse" value="" />
-</label>
-<br />
-<label>
-    $lt{'dmn'}: $cloneform
-</label>
-<br />
- <label><input type="radio" name="datemode" value="delete" /> $lt{'ncd'}</label><br />
- <label><input type="radio" name="datemode" value="preserve" /> $lt{'prd'}</label><br />
- <label><input type="radio" name="datemode" value="shift" checked="checked" /> $lt{'shd'}</label>
- <input type="text" size="5" name="dateshift" value="365" /><br />
-&nbsp;<br />
-$lt{'asov'}.
-</td></tr>
-</table>
-<h2>$lt{'assp'}</h2>
-<p>
-<label>
-    <b>$lt{'oaas'}: </b>
-    <input type="checkbox" name="openall" />
-</label>
-</p>
-<h2>$lt{'mssg'}</h2>
-<p>
-<label>
-    <b>$lt{'scpf'}: </b>
-    <input type="checkbox" name="setpolicy" checked />
-</label>
-<br />
-<label>
-    <b>$lt{'scfc'}: </b>
-    <input type="checkbox" name="setcontent" checked />
-</label>
-</p>
-<h2>$lt{'cmmn'}</h2>
-<p>
-<label>
-    <b>$lt{'dsrd'}: </b>
-    <input type="checkbox" name="disresdis" />
-</label>
-<br />
-<label>
-    <b>$lt{'dsuc'}: </b>
-    <input type="checkbox" name="disablechat" />
-</label>
-</p>
-<h2>$lt{'acco'}</h2>
-<p>
-<label>
-    <b>$lt{'snak'}: </b>
-    <input type="checkbox" name="setkeys" />
-</label>
-<br />
-<label>
-    <b>$lt{'kaut'}: </b>
-    <input type="text" size="30" name="keyauth" />
-</label>
-</p>
-<h2>$lt{'rshm'}</h2>
-<p>
-<label>
-    <b>$lt{'rshm'}: </b>
-    <input type="text" name="reshome" size="30" value="/res/$defdom/" />
-</label>
-</p>
-<p>
-<h2>$lt{'aens'}</h2>
-$lt{'aesc'}
-</p>
-<p>
-<b>$lt{'aadd'}</b>
-<label><input type="radio" name="autoadds" value="1" />$lt{'yes'}</label> 
-<label><input type="radio" name="autoadds" value="0" checked="true" />$lt{'no'}
-</label>
-</p><p>
-<b>$lt{'audr'}</b>
-<label><input type="radio" name="autodrops" value="1" />$lt{'yes'}</label> 
-<label><input type="radio" name="autodrops" value="0" checked="true" />$lt{'no'}</label>
-</p><p>
-<b>$lt{'dacu'}</b>
-$enroll_table
-</p><p>
-<b>$lt{'dacc'}</b>
-$access_table
-<p></p>
-<b>$lt{'psam'}.</b><br />
-$lt{'pcda'}.
-</p><p>
-$krbform
-<br />
-$intform
-<br />
-$locform
-</p><p>
-<b>$lt{'nech'}</b><br />
-$lt{'nccl'}<br/>
-<label>
-    <input type="radio" name="notify_owner" value="1" />$lt{'yes'}
-</label> 
-<label>
-    <input type="radio" name="notify_owner" value="0" checked="true" />$lt{'no'}
-</label>
-<br />
-$lt{'ndcl'}<br/>
-<label>
-    <input type="radio" name="notify_dc" value="1" />$lt{'yes'}
-</label>
-<label>
-    <input type="radio" name="notify_dc" value="0" checked="true" />$lt{'no'}
-</label>
-</p><p>
-<b>$lt{'irsp'}</b>
-<label>
-    <input type="radio" name="showphotos" value="1" />$lt{'yes'}
-</label> 
-<label>
-    <input type="radio" name="showphotos" value="0" checked="true" />$lt{'no'}
-</label>
-</p>
-<p>
-<h2>$lt{'cgrs'}</h2>
-$lt{'cgrq'}
-<input type="text" name="crsquota" value="20" size="6" />Mb 
-</p>
-<hr />
-<h2>$lt{'cc'}</h2>
-<p>
-<label>
-    <b>$lt{'user'}:</b> <input type="text" size="15" name="ccuname" />
-</label>
-</p><p>
-<label>
-    <b>$lt{'dmn'}:</b> $domform
-</label>
-</p>
 <p>
 <input type="hidden" name="prevphase" value="courseone" />
 <input type="hidden" name="phase" value="coursetwo" />
@@ -438,6 +504,7 @@ $lt{'cgrq'}
 </p>
 </form>
 ENDDOCUMENT
+
     } elsif ($crstype eq 'Group') {
         $r->print(<<ENDDOCUMENT);
 <form action="/adm/createcourse" method="post" name="ccrs">
@@ -477,7 +544,7 @@ ENDDOCUMENT
 </label>
 &nbsp;
 <label>
-    <input type="radio" name="firstres" value="syl" checked />$lt{'sllb'}
+    <input type="radio" name="firstres" value="syl" checked="checked" />$lt{'sllb'}
 </label>
 &nbsp;
 <label>
@@ -506,12 +573,12 @@ $lt{'asov'}.
 <p>
 <label>
     <b>$lt{'sgpf'}: </b>
-    <input type="checkbox" name="setpolicy" checked />
+    <input type="checkbox" name="setpolicy" checked="checked" />
 </label>
 <br />
 <label>
     <b>$lt{'scfg'}: </b>
-    <input type="checkbox" name="setcontent" checked />
+    <input type="checkbox" name="setcontent" checked="checked" />
 </label>
 </p>
 <h2>$lt{'cmmn'}</h2>
@@ -661,23 +728,26 @@ sub create_course {
     # Check the veracity of the course coordinator
     if (&Apache::lonnet::homeserver($ccuname,$ccdomain) eq 'no_host') {
 	$r->print('<form action="/adm/createuser" method="post" name="crtuser">');
-        $r->print(&mt('No such user').' '.$ccuname.' '.&mt('at').' '.$ccdomain.'.<br />');
-	$r->print(&mt("Please click Back on your browser and select another user, or "));
-	$r->print('
-	    <input type="hidden" name="phase" value="get_user_info" />
-            <input type="hidden" name="ccuname" value="'.$ccuname.'" />
-            <input type="hidden" name="ccdomain" value="'.$ccdomain.'" />
-            <input name="userrole" type="submit" value="'.
-		  &mt('Create User').'" />
-	</form>'.&Apache::loncommon::end_page());
+        $r->print('<div class="LC_warning">'
+                  .&mt('No such user [_1] at domain [_2].','<tt>'.$ccuname.'</tt>','<tt>'.$ccdomain.'</tt>')
+                 .'</div>');
+	$r->print(&mt('Please click Back on your browser and select another user, or [_1]Create User[_2]'
+	             , '<input type="hidden" name="phase" value="get_user_info" />'
+                      .'<input type="hidden" name="ccuname" value="'.$ccuname.'" />'
+                      .'<input type="hidden" name="ccdomain" value="'.$ccdomain.'" />'
+                      .'<input name="userrole" type="submit" value="'
+                     , '" />'
+                     )
+                 .'</form>'.&Apache::loncommon::end_page()
+                 );
 	return;
     }
     # Check the proposed home server for the course
     my %host_servers = 
 	&Apache::lonnet::get_servers($env{'request.role.domain'},'library');
     if (! exists($host_servers{$env{'form.course_home'}})) {
-        $r->print(&mt('Invalid home server for course').': '.
-                  $env{'form.course_home'}.&Apache::loncommon::end_page());
+        $r->print(&mt('Invalid home server for course: [_1]'
+                     ,$env{'form.course_home'}.&Apache::loncommon::end_page()));
         return;
     }
     my ($courseid,$crsudom,$crsunum);
@@ -695,7 +765,7 @@ sub create_course {
 	    $r->print(&mt('Assigning role of [_1] Coordinator to [_2] at [_3]: ',
 			  $crstype,$ccuname,$ccdomain).
 		      &Apache::lonnet::assignrole($ccdomain,$ccuname,$courseid,
-						  'cc').'<p>');
+						  'cc','','','','','createcourse').'<p>');
 	}
 	if ($env{'form.setkeys'}) {
 	    $r->print(
@@ -725,14 +795,14 @@ sub print_intro_page {
     &mt('Create a new course by completing an online form.'),
                  },
                    { internal_name => 'groupone',
-                     name => &mt('Create a single collaborative group space '),
+                     name => &mt('Create a single collaborative group space'),
                      short_description =>
-    &mt('Create a new group space for non-course use by completing an online form .'),
+    &mt('Create a new group space for non-course use by completing an online form.'),
                  },
                    { internal_name => 'batchone',
                      name => &mt('Create courses/groups by uploading an attributes file'),
                      short_description =>
-    &mt('Upload an attributes file containing specifications for one or more courses or groups in XML format'),
+    &mt('Upload an attributes file containing specifications for one or more courses or groups in XML format.'),
                      help => 'Batch_Creation',
                  },
     );