--- loncom/interface/loncreatecourse.pm	2009/03/12 16:29:32	1.119
+++ loncom/interface/loncreatecourse.pm	2009/08/27 00:06:18	1.126
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Create a course
 #
-# $Id: loncreatecourse.pm,v 1.119 2009/03/12 16:29:32 bisitz Exp $
+# $Id: loncreatecourse.pm,v 1.126 2009/08/27 00:06:18 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -76,7 +76,7 @@ use LONCAPA;
 
 sub print_course_creation_page {
     my $r=shift;
-    my $crstype = 'Group';
+    my $crstype = 'Community';
     if ($env{'form.phase'} eq 'courseone') {
         $crstype = 'Course';
     }
@@ -118,14 +118,16 @@ sub print_course_creation_page {
         $intform = &Apache::loncommon::authform_internal(%param);
         $locform = &Apache::loncommon::authform_local(%param);
     } else {
+        my $title_alert = &mt('A Community title is required');
+        my $coord_alert = &mt('The username of the Coordinator is required');
         $javascript_validations = qq|
 function validate(formname) {
     if (formname.title == '') {
-        alert("A group title is required");
+        alert("$title_alert");
         return;
     }
     if (formname.ccuname == '') {
-        alert("The username of the group coordinator is required");
+        alert("$coord_alert");
     }
     formname.submit();
 }
@@ -176,7 +178,8 @@ function validate(formname) {
                     'snak' => "Students need access key to enter course",
 		    'kaut' => 
 		    'Key authority (<tt>id@domain</tt>) if other than course',
-                    'cc'   => "Course Coordinator",
+                    'ow'   => "Course Owner",
+                    'cc'   => "(will be assigned Course Coordinator role)",
                     'user' => "Username",
                     'aens' => "Automated enrollment settings",
                     'aesc' => "The following settings control automatic enrollment of students in this class based on information available for this specific course from your institution's official classlists.",
@@ -197,27 +200,28 @@ function validate(formname) {
                     'cgrs' => "Course Group Settings",
                     'cgrq' => 'Set a quota for the total disk space available for storage of course group portfolio files',
                     'opco' => "Open Course",
-                    'ginf' => "Group Information",
-                    'gtit' => "Group Title",
-                    'ghsr' => "Group Home Server",
-                    'gidn' => "Group ID/Number",
-                    'grco' => "Group Content",
-                    'cngr' => "Completely new group",
-                    'cegr' => "Clone an existing group",
-                    'sagr' => "Do NOT generate as standard group",
-                    'stgo' => "standard groups only",
-                    'sgpf' => "Set group policy feedback to Group Coordinator",
-                    'scfg' => "Set content feedback to Group Coordinator",
+                    'ginf' => "Community Information",
+                    'gtit' => "Community Title",
+                    'ghsr' => "Community Home Server",
+                    'gidn' => "Community ID/Number",
+                    'grco' => "Community Content",
+                    'cngr' => "Completely new community",
+                    'cegr' => "Clone an existing community",
+                    'sagr' => "Do NOT generate as standard community",
+                    'stgo' => "standard communities only",
+                    'sgpf' => "Set community policy feedback to Coordinator",
+                    'scfg' => "Set content feedback to Coordinator",
                     'dmrd' => "Disable member resource discussion",
                     'dmuc' => "Disable member use of chat rooms",
-                    'mnak' => "Members need access key to enter group",
+                    'mnak' => "Members need access key to enter community",
                     'kaug' =>
-                    'Key authority (<tt>id@domain</tt>) if other than group',
-                    'gc'   => "Group Coordinator",
-                    'gid'  => "Group ID",
-                    'crgr' => "Create Group",
-                    'grts' => "Group Teams Settings",
-                    'grtq' => "Set a quota for the total disk space available for storage of group team portfolio files.",
+                    'Key authority (<tt>id@domain</tt>) if other than community',
+                    'co'   => "Community Owner", 
+                    'gc'   => "(will be assigned Coordinator role)",
+                    'gid'  => "Community ID",
+                    'crgr' => "Create Community",
+                    'grts' => "Community Group Settings",
+                    'grtq' => "Set a quota for the total disk space available for storage of community group portfolio files.",
 
 				       );
     my $js = <<END;
@@ -246,7 +250,7 @@ END
 
     my %titles = &Apache::lonlocal::texthash(
                   courseone => 'Create a New Course',
-                  groupone => 'Create a New Group',
+                  groupone => 'Create a New Community',
     );  
     my $start_page = 
         &Apache::loncommon::start_page($titles{$env{'form.phase'}},$js);
@@ -263,6 +267,20 @@ END
                  .&Apache::lonhtmlcommon::start_pick_box()
 
                  .&Apache::lonhtmlcommon::row_headline()
+                 .'<h3>'.$lt{'ow'}.'&nbsp;'.$lt{'cc'}.'</h3>'
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'user'})
+                 .'<input type="text" size="15" name="ccuname" />'
+                 .&Apache::loncommon::studentbrowser_javascript()
+                 .&Apache::loncommon::selectstudent_link('ccrs','ccuname','ccdomain')
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_title($lt{'dmn'},"","LC_odd_row_value")
+                 .$domform
+                 .&Apache::lonhtmlcommon::row_closure()
+
+                 .&Apache::lonhtmlcommon::row_headline()
                  .'<h3>'.$lt{'cinf'}.'</h3>'
                  .&Apache::lonhtmlcommon::row_closure()
 
@@ -411,7 +429,7 @@ END
                  .&Apache::lonhtmlcommon::row_closure()
 
                  .&Apache::lonhtmlcommon::row_title($lt{'dsuc'})
-                 .'<input type="checkbox" name="disablechat" /'
+                 .'<input type="checkbox" name="disablechat" />'
                  .&Apache::lonhtmlcommon::row_closure()
 
                  .&Apache::lonhtmlcommon::row_headline()
@@ -484,23 +502,10 @@ END
 
                  .&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);
 </div>
 <p>
@@ -511,9 +516,19 @@ END
 </form>
 ENDDOCUMENT
 
-    } elsif ($crstype eq 'Group') {
+    } elsif ($crstype eq 'Community') {
         $r->print(<<ENDDOCUMENT);
 <form action="/adm/createcourse" method="post" name="ccrs">
+<h2>$lt{'co'}&nbsp;$lt{'gc'}</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>
 <h2>$lt{'ginf'}</h2>
 <p>
 <label><b>$lt{'gtit'}:</b>
@@ -618,22 +633,12 @@ $lt{'asov'}.
     <input type="text" name="reshome" size="30" value="/res/$defdom/" />
 </label>
 </p>
-<p>
 <h2>$lt{'grts'}</h2>
+<p>
 $lt{'grtq'}
 <input type="text" name="crsquota" value="20" />Mb
 </p>
 <hr />
-<h2>$lt{'gc'}</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="groupone" />
 <input type="hidden" name="phase" value="grouptwo" />
@@ -651,7 +656,7 @@ sub create_course {
     my $r=shift;
     my $ccuname =&LONCAPA::clean_username($env{'form.ccuname'});
     my $ccdomain=&LONCAPA::clean_domain($env{'form.ccdomain'});
-    my $crstype = 'Group';
+    my $crstype = 'Community';
     my ($enrollstart,$enrollend,$startaccess,$endaccess);
 
     if ($env{'form.phase'} eq 'coursetwo') {
@@ -789,11 +794,11 @@ sub create_course {
 sub print_intro_page {
     my $r = shift;
     my $start_page =
-        &Apache::loncommon::start_page('Create a New Course or Group Space');
+        &Apache::loncommon::start_page('Create a New Course or Community');
     my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Creation Options','Create_Course',undef,'Create_Courses');
     my $end_page =
         &Apache::loncommon::end_page();
-    my $helplink=&Apache::loncommon::help_open_topic('Create_Course_GroupSpace',&mt('Help on Creating Courses and Groups'));
+    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'),
@@ -801,16 +806,21 @@ 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 community'),
                      short_description =>
-    &mt('Create a new group space for non-course use by completing an online form.'),
+    &mt('Create a new collaborative community by completing an online form.'),
                  },
                    { internal_name => 'batchone',
-                     name => &mt('Create courses/groups by uploading an attributes file'),
+                     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 groups in XML format.'),
+    &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 course requests'),
+                     short_description =>
+    &mt('Display course creation requests submitted by authorized users held pending approval by a Domain Coordinator.'),
+                   },
     );
     my $options;
     foreach my $choice (@choices) {
@@ -835,8 +845,8 @@ ENDDOCUMENT
 sub upload_batchfile {
     my $r = shift;
     my $start_page =
-        &Apache::loncommon::start_page('Create a New Course or Group Space');
-    my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Upload Course/Group Attributes File','Create_Course',undef,'Create_Courses');
+        &Apache::loncommon::start_page('Create a New Course or Community');
+    my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Upload Course/Community Attributes File','Create_Course',undef,'Create_Courses');
     my $end_page =
         &Apache::loncommon::end_page();
     $r->print($start_page.$crumbs);
@@ -844,9 +854,9 @@ sub upload_batchfile {
     $r->print('<form name="batchcreate" method="post" '.
                 'enctype="multipart/form-data" action="/adm/createcourse">'.
               '<input type="file" name="coursecreatorxml" />'.
-              '<input type="hidden" name="phase" value="batchtwo"><br /><br />'.
+              '<input type="hidden" name="phase" value="batchtwo" /><br /><br />'.
               '<input type="submit" name="batchsubmit" '.
-              'value="Create Courses/Groups" /></form>');
+              'value="Create Courses/Communities" /></form>');
     $r->print($end_page);
     return;
 }
@@ -854,7 +864,7 @@ sub upload_batchfile {
 sub process_batchfile {
     my $r = shift;
     my $start_page =
-        &Apache::loncommon::start_page('Create a New Course or Group Space');
+        &Apache::loncommon::start_page('Create a New Course or Community');
     my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Creation Outcome','Create_Course',undef,'Create_Courses');
     my $end_page =
         &Apache::loncommon::end_page();
@@ -892,6 +902,26 @@ sub process_batchfile {
  
 }
 
+sub courserequestbrowser_javascript {
+    return <<"ENDREQBRW";
+<script type="text/javascript">
+// <![CDATA[
+var steditbrowser;
+function opencoursereqdisplay(cdom,cnum) {
+    var url = '/adm/requestcourse?action=display';
+    url += '&showdom='+cdom+'&cnum='+cnum;
+    var title = 'Course_Request_Browser';
+    var options = 'scrollbars=1,resizable=1,menubar=0';
+    options += ',width=700,height=600';
+    var stdeditbrowser = open(url,title,options,'1');
+    stdeditbrowser.focus();
+}
+// ]]>
+</script>
+ENDREQBRW
+}
+
+
 # ===================================================================== Handler
 sub handler {
     my $r = shift;
@@ -947,6 +977,33 @@ sub handler {
                    text=>"Creation Outcome",
                    faq=>9,bug=>'Dom Coord Interface',});
            &process_batchfile($r);
+       } elsif ($env{'form.phase'} eq 'requestdisplay') {
+           &Apache::lonhtmlcommon::add_breadcrumb
+                 ({href=>"/adm/createcourse?phase=$env{'form.phase'}",
+                   text=>&mt('[_1] Display Request Queue',),
+                   faq=>9,bug=>'Dom Coord Interface',});
+           my $js = &courserequestbrowser_javascript();
+           my $start_page=&Apache::loncommon::start_page('Display Requests',$js);
+           my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Requests','Course_Request',undef,'Course_Request');
+           $r->print($start_page.$crumbs."\n".'<div>'.
+                     &Apache::loncoursequeueadmin::display_queued_requests(
+                         'domain',$env{'request.role.domain'}).'</div>'.
+                     &Apache::loncommon::end_page());
+       } elsif ($env{'form.phase'} eq 'requestchange') {
+
+           &Apache::lonhtmlcommon::add_breadcrumb
+                 ({href=>"/adm/createcourse?phase=requestdisplay",
+                   text=>&mt('[_1] Display Request Queue',),
+                   faq=>9,bug=>'Dom Coord Interface',},
+                 {href=>"/adm/createcourse?phase=requestchange",
+                   text=>&mt('[_1] Requests Updated',),
+                   faq=>9,bug=>'Dom Coord Interface',},);
+           my $start_page=&Apache::loncommon::start_page('Update Requests Result');
+           my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Requests Updated','Course_Request',undef,'Course_Request');
+           $r->print($start_page.$crumbs."\n".'<div>'.
+                     &Apache::loncoursequeueadmin::update_request_queue(
+                     'domain',$env{'request.role.domain'}).'</div>'.
+                     &Apache::loncommon::end_page());
        } else {
            &print_intro_page($r);
        }