Diff for /loncom/interface/loncreatecourse.pm between versions 1.127 and 1.148

version 1.127, 2009/09/28 19:21:38 version 1.148, 2013/07/15 14:32:45
Line 61  described at http://www.lon-capa.org. Line 61  described at http://www.lon-capa.org.
   
 =item creation_display_filter()  =item creation_display_filter()
   
 =item course_types()  
   
 =item context_names()  =item context_names()
   
 =item instcode_srchstr()  =item instcode_srchstr()
Line 95  sub print_course_creation_page { Line 93  sub print_course_creation_page {
         $crstype = 'Course';          $crstype = 'Course';
     }      }
     my $defdom=$env{'request.role.domain'};      my $defdom=$env{'request.role.domain'};
       my %domdefaults = &Apache::lonnet::get_domain_defaults($defdom);
     my %host_servers = &Apache::lonnet::get_servers($defdom,'library');      my %host_servers = &Apache::lonnet::get_servers($defdom,'library');
     my $course_home = '<select name="course_home" size="1">'."\n";      my $course_home = '<select name="course_home" size="1">'."\n";
     foreach my $server (sort(keys(%host_servers))) {      foreach my $server (sort(keys(%host_servers))) {
Line 111  sub print_course_creation_page { Line 110  sub print_course_creation_page {
      &Apache::loncommon::selectcourse_link       &Apache::loncommon::selectcourse_link
      ('ccrs','clonecourse','clonedomain',undef,undef,undef,$crstype);       ('ccrs','clonecourse','clonedomain',undef,undef,undef,$crstype);
     my $coursebrowserjs=&Apache::loncommon::coursebrowser_javascript($env{'request.role.domain'});      my $coursebrowserjs=&Apache::loncommon::coursebrowser_javascript($env{'request.role.domain'});
     my ($enroll_table,$access_table,$krbdef,$krbdefdom,$krbform,$intform,$locform,      my ($enroll_table,$krbdef,$krbdefdom,$krbform,$intform,$locform,
         $javascript_validations);          $javascript_validations);
       my $starttime = time;
       my $endtime = time+(6*30*24*60*60); # 6 months from now, approx
       my $access_table = &Apache::lonuserutils::date_setting_table($starttime,
                                                $endtime,'create_defaultdates');
     if ($crstype eq 'Course') {      if ($crstype eq 'Course') {
         my $starttime = time;  
         my $endtime = time+(6*30*24*60*60); # 6 months from now, approx  
         $enroll_table = &Apache::lonuserutils::date_setting_table($starttime,          $enroll_table = &Apache::lonuserutils::date_setting_table($starttime,
                                               $endtime,'create_enrolldates');                                                $endtime,'create_enrolldates');
         $access_table = &Apache::lonuserutils::date_setting_table($starttime,  
                                              $endtime,'create_defaultdates');  
         ($krbdef,$krbdefdom) =          ($krbdef,$krbdefdom) =
         &Apache::loncommon::get_kerberos_defaults($defdom);          &Apache::loncommon::get_kerberos_defaults($defdom);
         $javascript_validations=&Apache::lonuserutils::javascript_validations(          $javascript_validations=&Apache::lonuserutils::javascript_validations(
Line 161  function validate(formname) { Line 160  function validate(formname) {
                     'csli' => "a comma separated list of institutional section numbers, each separated by a colon from the (optional) corresponding section ID to be used in LON-CAPA e.g., 001:1,002:2",                      'csli' => "a comma separated list of institutional section numbers, each separated by a colon from the (optional) corresponding section ID to be used in LON-CAPA e.g., 001:1,002:2",
                     'crcs' => "Crosslisted courses",                      'crcs' => "Crosslisted courses",
                     'cscs' => "a comma separated list of course sections crosslisted with the current course, with each entry including the institutional course section name followed by a colon and then the (optional) sectionID to be used in LON-CAPA, e.g., fs03ent231001:ent1,fs03bot231001:bot1,fs03zol231002:zol2",                      'cscs' => "a comma separated list of course sections crosslisted with the current course, with each entry including the institutional course section name followed by a colon and then the (optional) sectionID to be used in LON-CAPA, e.g., fs03ent231001:ent1,fs03bot231001:bot1,fs03zol231002:zol2",
                       'ccre' => "Course credits",
                       'cred' => "the number of institutional credits students will earn by completing this course",
                     'crco' => "Course Content",                      'crco' => "Course Content",
                     'cncr' => "Completely new course",                      'cncr' => "Completely new course",
                     'cecr' => "Clone an existing course",                       'cecr' => "Clone an existing course", 
Line 172  function validate(formname) { Line 173  function validate(formname) {
                     'stco' => "standard courses only",                      'stco' => "standard courses only",
                     'blnk' => "Blank",                      'blnk' => "Blank",
                     'sllb' => "Syllabus",                      'sllb' => "Syllabus",
                     'navi' => "Navigate Contents",                      'navi' => "Course Contents",
                     'cid'  => "Course ID",                      'cid'  => "Course ID",
                     'dmn'  => "Domain",                      'dmn'  => "Domain",
                     'dsh'  => "Date Shift",                      'dsh'  => "Date Shift",
Line 190  function validate(formname) { Line 191  function validate(formname) {
                     'dsuc' => "Disable student use of chat rooms",                      'dsuc' => "Disable student use of chat rooms",
                     'acco' => "Access Control",                      'acco' => "Access Control",
                     'snak' => "Students need access key to enter course",                      'snak' => "Students need access key to enter course",
     'kaut' =>   
     'Key authority (<tt>id@domain</tt>) if other than course',  
                     'ow'   => "Course Owner",                      'ow'   => "Course Owner",
                     'cc'   => "(will be assigned Course Coordinator role)",                      'cc'   => "(will be assigned Course Coordinator role)",
                     'user' => "Username",                      'user' => "Username",
Line 204  function validate(formname) { Line 203  function validate(formname) {
                     'dacu' => "Duration of automated classlist updates",                      'dacu' => "Duration of automated classlist updates",
                     'dads' => 'Default Access Dates for Students',                      'dads' => 'Default Access Dates for Students',
                     'dacc' => "Default start and end dates for student access",                      'dacc' => "Default start and end dates for student access",
                     'psam' => "Please select the Authentication mechanism",                      'psam' => "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",                      'pcda' => "Default authentication method for new users added to this domain by the automated enrollment process",
                     'nech' => "Notification of enrollment changes",                      'nech' => "Notification of enrollment changes",
                     'nccl' => "Notification to course coordinator via LON-CAPA message when enrollment changes occur during the automated update?",                      'nccl' => "Notification to course coordinator via LON-CAPA message when enrollment changes occur during the automated update?",
                     'ndcl' => "Notification to domain coordinator via LON-CAPA message when enrollment changes occur during the automated update?",                      'ndcl' => "Notification to domain coordinator via LON-CAPA message when enrollment changes occur during the automated update?",
Line 213  function validate(formname) { Line 212  function validate(formname) {
     'rshm' => 'Resource Space Home',      'rshm' => 'Resource Space Home',
                     'cgrs' => "Course Group Settings",                      'cgrs' => "Course Group Settings",
                     'cgrq' => 'Set a quota for the total disk space available for storage of course group portfolio files',                      'cgrq' => 'Set a quota for the total disk space available for storage of course group portfolio files',
                     'opco' => "Open Course",                      'opco' => 'Open Course',
                     'ginf' => "Community Information",                      'opcm' => 'Open Community',
                     'gtit' => "Community Title",         );
                     'ghsr' => "Community Home Server",      $lt{'kaut'} = &mt('Key authority ([_1]id:domain[_2]) if other than course','<tt>','</tt>');
                     'gidn' => "Community ID/Number",  
                     'grco' => "Community Content",      if ($crstype eq 'Community') {
                     'cngr' => "Completely new community",          $lt{'cinf'} = &mt('Community Information');
                     'cegr' => "Clone an existing community",          $lt{'ctit'} = &mt('Community Title');
                     'sagr' => "Do NOT generate as standard community",          $lt{'chsr'} = &mt('Community Home Server');
                     'stgo' => "standard communities only",          $lt{'cidn'} = &mt('Community ID/Number');
                     'sgpf' => "Set community policy feedback to Coordinator",          $lt{'crco'} = &mt('Community Content');
                     'scfg' => "Set content feedback to Coordinator",          $lt{'cncr'} = &mt('Completely new community');
                     'dmrd' => "Disable member resource discussion",          $lt{'cecr'} = &mt('Clone an existing community');
                     'dmuc' => "Disable member use of chat rooms",          $lt{'sacr'} = &mt('Do NOT generate as standard community');
                     'mnak' => "Members need access key to enter community",          $lt{'stco'} = &mt('standard communities only');
                     'kaug' =>          $lt{'navi'} = &mt('Community Contents');
                     'Key authority (<tt>id@domain</tt>) if other than community',          $lt{'cid'}  = &mt('Community ID');
                     'co'   => "Community Owner",           $lt{'scpf'} = &mt('Set community policy feedback to Coordinator');
                     'gc'   => "(will be assigned Coordinator role)",          $lt{'scfc'} = &mt('Set content feedback to Coordinator');
                     'gid'  => "Community ID",          $lt{'dsrd'} = &mt('Disable member resource discussion');
                     'crgr' => "Create Community",          $lt{'dsuc'} = &mt('Disable member use of chat rooms');
                     'grts' => "Community Group Settings",          $lt{'dads'} = &mt('Default Access Dates for Members');
                     'grtq' => "Set a quota for the total disk space available for storage of community group portfolio files.",          $lt{'dacc'} = &mt('Default start and end dates for member access');
           $lt{'snak'} = &mt('Members need access key to enter course');
        );          $lt{'kaut'} = &mt('Key authority ([_1]id:domain[_2]) if other than community','<tt>','</tt>');
           $lt{'ow'}  = &mt('Community Owner');
           $lt{'cc'}  = &mt('(will be assigned Coordinator role)');
           $lt{'cgrs'} = &mt('Community Group Settings');
           $lt{'cgrq'} = &mt('Set a quota for the total disk space available for storage of community group portfolio files');
       }
     my $js = <<END;      my $js = <<END;
 <script type="text/javascript">  <script type="text/javascript">
 var editbrowser = null;  var editbrowser = null;
Line 276  END Line 280  END
     'Create_Courses');      'Create_Courses');
     $r->print($start_page.$crumbs);      $r->print($start_page.$crumbs);
   
     if ($crstype eq 'Course') {      $r->print('<form action="/adm/createcourse" method="post" name="ccrs"><div class="LC_createcourse">'
         $r->print('<form action="/adm/createcourse" method="post" name="ccrs"><div class="LC_createcourse">'               .&Apache::lonhtmlcommon::start_pick_box()
                  .&Apache::lonhtmlcommon::start_pick_box()  
   
                  .&Apache::lonhtmlcommon::row_headline()               .&Apache::lonhtmlcommon::row_headline()
                  .'<h3>'.$lt{'ow'}.'&nbsp;'.$lt{'cc'}.'</h3>'               .'<h3>'.$lt{'ow'}.'&nbsp;'.$lt{'cc'}.'</h3>'
                  .&Apache::lonhtmlcommon::row_closure()               .&Apache::lonhtmlcommon::row_closure()
   
                  .&Apache::lonhtmlcommon::row_title($lt{'user'})               .&Apache::lonhtmlcommon::row_title($lt{'user'})
                  .'<input type="text" size="15" name="ccuname" />'               .'<input type="text" size="15" name="ccuname" />'
                  .&Apache::loncommon::studentbrowser_javascript()               .&Apache::loncommon::studentbrowser_javascript()
                  .&Apache::loncommon::selectstudent_link('ccrs','ccuname','ccdomain')               .&Apache::loncommon::selectstudent_link('ccrs','ccuname','ccdomain')
                  .&Apache::lonhtmlcommon::row_closure()               .&Apache::lonhtmlcommon::row_closure()
   
                  .&Apache::lonhtmlcommon::row_title($lt{'dmn'},"","LC_odd_row_value")               .&Apache::lonhtmlcommon::row_title($lt{'dmn'},"","LC_odd_row_value")
                  .$domform               .$domform
                  .&Apache::lonhtmlcommon::row_closure()               .&Apache::lonhtmlcommon::row_closure()
   
                  .&Apache::lonhtmlcommon::row_headline()               .&Apache::lonhtmlcommon::row_headline()
                  .'<h3>'.$lt{'cinf'}.'</h3>'               .'<h3>'.$lt{'cinf'}.'</h3>'
                  .&Apache::lonhtmlcommon::row_closure()               .&Apache::lonhtmlcommon::row_closure()
   
                  .&Apache::lonhtmlcommon::row_title($lt{'ctit'})               .&Apache::lonhtmlcommon::row_title($lt{'ctit'})
                  .'<input type="text" size="50" name="title" />'               .'<input type="text" size="80" name="title" />'
                  .&Apache::lonhtmlcommon::row_closure()               .&Apache::lonhtmlcommon::row_closure()
   
                  .&Apache::lonhtmlcommon::row_title($lt{'chsr'})               .&Apache::lonhtmlcommon::row_title($lt{'chsr'})
                  .$course_home               .$course_home
                  .&Apache::lonhtmlcommon::row_closure()               .&Apache::lonhtmlcommon::row_closure()
   
                  .&Apache::lonhtmlcommon::row_title($lt{'cidn'}.' ('.$lt{'opt'}.')')               .&Apache::lonhtmlcommon::row_title($lt{'cidn'}.' ('.$lt{'opt'}.')')
                  .'<input type="text" size="30" name="crsid" />'               .'<input type="text" size="30" name="crsid" />'
                  .&Apache::lonhtmlcommon::row_closure()               .&Apache::lonhtmlcommon::row_closure()
       );
                  .&Apache::lonhtmlcommon::row_headline()      if ($crstype eq 'Course') {
           $r->print(&Apache::lonhtmlcommon::row_headline()
                  .'<h3>'.$lt{'iinf'}.'</h3>'                   .'<h3>'.$lt{'iinf'}.'</h3>'
                  .$lt{'stat'}                   .$lt{'stat'}.' '
                    .&mt('Default credits can also be specified, if different from the domain defaults (official courses: [_1]; unofficial courses: [_2]).',
                         $domdefaults{'officialcredits'},$domdefaults{'unofficialcredits'})
                  .&Apache::lonhtmlcommon::row_closure()                   .&Apache::lonhtmlcommon::row_closure()
   
                  .&Apache::lonhtmlcommon::row_title($lt{'ccod'})                   .&Apache::lonhtmlcommon::row_title($lt{'ccod'})
Line 330  END Line 336  END
                  .'<br />('.$lt{'cscs'}.')'                   .'<br />('.$lt{'cscs'}.')'
                  .&Apache::lonhtmlcommon::row_closure()                   .&Apache::lonhtmlcommon::row_closure()
         );          );
           if ($domdefaults{'officialcredits'} || $domdefaults{'unofficialcredits'}) {
         # Table: New Course / Clone Course              $r->print(&Apache::lonhtmlcommon::row_title($lt{'ccre'})
         $r->print(&Apache::lonhtmlcommon::row_headline()                       .'<input type="text" size="3" name="defaultcredits" />'
                        .'<br />('.$lt{'cred'}.')'
                        .&Apache::lonhtmlcommon::row_closure()
               );
           }
       }
       # Table: New Course / Clone Course
       $r->print(&Apache::lonhtmlcommon::row_headline()
                  .'<h3>'.$lt{'crco'}.'</h3>'                   .'<h3>'.$lt{'crco'}.'</h3>'
                  .&Apache::loncommon::start_data_table()                   .&Apache::loncommon::start_data_table()
                  .&Apache::loncommon::start_data_table_header_row()                   .&Apache::loncommon::start_data_table_header_row()
Line 357  END Line 370  END
                  .'<label>'                   .'<label>'
                  .'<input type="radio" name="firstres" value="blank" />'.$lt{'blnk'}                   .'<input type="radio" name="firstres" value="blank" />'.$lt{'blnk'}
                  .'</label>'                   .'</label>'
                  .'&nbsp;'                   .'&nbsp;');
                  .'<label>'      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'}                   .'<input type="radio" name="firstres" value="syl" checked="checked" />'.$lt{'sllb'}
                  .'</label>'                   .'</label>'
                  .'&nbsp;'                   .'&nbsp;'
                  .'<label>'                   .'<label>'
                  .'<input type="radio" name="firstres" value="nav" />'.$lt{'navi'}                   .'<input type="radio" name="firstres" value="nav" />'.$lt{'navi'}
                  .'</label>'                   .'</label>');
                  .'<br />('.$lt{'stco'}.')'      }
       $r->print('<br />('.$lt{'stco'}.')'
                  .&Apache::lonhtmlcommon::row_closure(1)                   .&Apache::lonhtmlcommon::row_closure(1)
                  .&Apache::lonhtmlcommon::end_pick_box()                   .&Apache::lonhtmlcommon::end_pick_box()
   
Line 397  END Line 416  END
                  .' <input type="text" size="5" name="dateshift" value="365" />'                   .' <input type="text" size="5" name="dateshift" value="365" />'
                  .&Apache::lonhtmlcommon::row_closure()                   .&Apache::lonhtmlcommon::row_closure()
                  .&Apache::lonhtmlcommon::row_headline()                   .&Apache::lonhtmlcommon::row_headline()
                  .$lt{'asov'}                   .'<span class="LC_info">'.$lt{'asov'}.'</span>'
                  .&Apache::lonhtmlcommon::row_closure(1)                   .&Apache::lonhtmlcommon::row_closure(1)
                  .&Apache::lonhtmlcommon::end_pick_box()                   .&Apache::lonhtmlcommon::end_pick_box()
                  .'</td>'                   .'</td>'
                  .&Apache::loncommon::end_data_table_row()                   .&Apache::loncommon::end_data_table_row()
                  .&Apache::loncommon::end_data_table()                   .&Apache::loncommon::end_data_table()
                  .&Apache::lonhtmlcommon::row_closure()                   .&Apache::lonhtmlcommon::row_closure()
         );      );
   
         $r->print(&Apache::lonhtmlcommon::row_headline()      $r->print(&Apache::lonhtmlcommon::row_headline()
                  .'<h3>'.$lt{'dads'}.'</h3>'                   .'<h3>'.$lt{'dads'}.'</h3>'
                  .&Apache::lonhtmlcommon::row_closure()                   .&Apache::lonhtmlcommon::row_closure()
                  .&Apache::lonhtmlcommon::row_title($lt{'dacc'})                   .&Apache::lonhtmlcommon::row_title($lt{'dacc'})
                  .$access_table                   .$access_table
                  .&Apache::lonhtmlcommon::row_closure()                   .&Apache::lonhtmlcommon::row_closure()
         );      );
   
         $r->print(&Apache::lonhtmlcommon::row_headline()      $r->print(&Apache::lonhtmlcommon::row_headline()
                  .'<h3>'.$lt{'assp'}.'</h3>'                   .'<h3>'.$lt{'assp'}.'</h3>'
                  .&Apache::lonhtmlcommon::row_closure()                   .&Apache::lonhtmlcommon::row_closure()
   
Line 465  END Line 484  END
                  .&Apache::lonhtmlcommon::row_title($lt{'rshm'})                   .&Apache::lonhtmlcommon::row_title($lt{'rshm'})
                  .'<input type="text" name="reshome" size="30" value="/res/'.$defdom.'/" />'                   .'<input type="text" name="reshome" size="30" value="/res/'.$defdom.'/" />'
                  .&Apache::lonhtmlcommon::row_closure()                   .&Apache::lonhtmlcommon::row_closure()
       );
                  .&Apache::lonhtmlcommon::row_headline()      if ($crstype eq 'Course') {
           $r->print(&Apache::lonhtmlcommon::row_headline()
                  .'<h3>'.$lt{'aens'}.'</h3>'                   .'<h3>'.$lt{'aens'}.'</h3>'
                  .&Apache::lonhtmlcommon::row_closure()                   .&Apache::lonhtmlcommon::row_closure()
   
Line 509  END Line 529  END
                  .'<input type="radio" name="showphotos" value="0" checked="checked" />'.$lt{'no'}                   .'<input type="radio" name="showphotos" value="0" checked="checked" />'.$lt{'no'}
                  .'</label> '                   .'</label> '
                  .&Apache::lonhtmlcommon::row_closure()                   .&Apache::lonhtmlcommon::row_closure()
           );
                  .&Apache::lonhtmlcommon::row_headline()      }
    
       $r->print(&Apache::lonhtmlcommon::row_headline()
                  .'<h3>'.$lt{'cgrs'}.'</h3>'                   .'<h3>'.$lt{'cgrs'}.'</h3>'
                  .&Apache::lonhtmlcommon::row_closure()                   .&Apache::lonhtmlcommon::row_closure()
   
Line 519  END Line 541  END
                  .&Apache::lonhtmlcommon::row_closure(1)                   .&Apache::lonhtmlcommon::row_closure(1)
   
                  .&Apache::lonhtmlcommon::end_pick_box()                   .&Apache::lonhtmlcommon::end_pick_box()
         );                   .'</div>'
         $r->print(<<ENDDOCUMENT);      );
 </div>      if ($crstype eq 'Course') {
           $r->print('
 <p>  <p>
 <input type="hidden" name="prevphase" value="courseone" />  <input type="hidden" name="prevphase" value="courseone" />
 <input type="hidden" name="phase" value="coursetwo" />  <input type="hidden" name="phase" value="coursetwo" />
 <input type="button" onClick="verify_message(this.form)" value="$lt{'opco'}" />  <input type="button" onclick="verify_message(this.form)" value="'.$lt{'opco'}.'" />'
 </p>          );
 </form>  
 ENDDOCUMENT  
   
     } elsif ($crstype eq 'Community') {      } elsif ($crstype eq 'Community') {
         $r->print(<<ENDDOCUMENT);          $r->print('
 <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>  
 <input type="text" size="50" name="title" /></label>  
 </p><p>  
 <label>  
     <b>$lt{'ghsr'}:</b>$course_home  
 </label>  
 </p><p>  
 <label>  
     <b>$lt{'gidn'} ($lt{'opt'})</b>  
     <input type="text" size="30" name="crsid" />  
 </label>  
 </p>  
 <h2>$lt{'grco'}</h2>  
 <table border="2">  
 <tr><th>$lt{'cngr'}</th><th>$lt{'cegr'}</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{'sagr'}</b></label>  
 <br />  
 ($lt{'ocik'}):  
 <input id="nonstd" type="checkbox" name="nonstandard" />  
 </p><p>  
 <b>$lt{'fres'}</b><br />($lt{'stgo'}):  
 <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>  
 </p>  
 </td><td>  
 <label>  
     $lt{'gid'}: <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>  
 </p>  
 <p>  
 <h2>$lt{'mssg'}</h2>  
 <p>  
 <label>  
     <b>$lt{'sgpf'}: </b>  
     <input type="checkbox" name="setpolicy" checked="checked" />  
 </label>  
 <br />  
 <label>  
     <b>$lt{'scfg'}: </b>  
     <input type="checkbox" name="setcontent" checked="checked" />  
 </label>  
 </p>  
 <h2>$lt{'cmmn'}</h2>  
 <p>  
 <label>  
     <b>$lt{'dmrd'}: </b>  
     <input type="checkbox" name="disresdis" />  
 </label>  
 <br />  
 <label>  
     <b>$lt{'dmuc'}: </b>  
     <input type="checkbox" name="disablechat" />  
 </label>  
 </p>  
 <h2>$lt{'acco'}</h2>  
 <p>  
 <label>  
     <b>$lt{'mnak'}: </b>  
     <input type="checkbox" name="setkeys" />  
 </label>  
 <br />  
 <label>  
     <b>$lt{'kaug'}: </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>  
 <h2>$lt{'grts'}</h2>  
 <p>  
 $lt{'grtq'}  
 <input type="text" name="crsquota" value="20" />Mb  
 </p>  
 <hr />  
 <p>  <p>
 <input type="hidden" name="prevphase" value="groupone" />  <input type="hidden" name="prevphase" value="groupone" />
 <input type="hidden" name="phase" value="grouptwo" />  <input type="hidden" name="phase" value="grouptwo" />
 <input type="button" onClick="validate(this.form)" value="$lt{'crgr'}" />  <input type="submit" value="'.$lt{'opcm'}.'" />
 </p>  </p>'
 </form>          );
 ENDDOCUMENT  
     }      }
     $r->print($end_page);      $r->print('</form>'.
                 $end_page);
 }  }
   
 # ====================================================== Phase two: make course  # ====================================================== Phase two: make course
Line 672  sub create_course { Line 571  sub create_course {
     my $ccdomain=&LONCAPA::clean_domain($env{'form.ccdomain'});      my $ccdomain=&LONCAPA::clean_domain($env{'form.ccdomain'});
     my $crstype = 'Community';      my $crstype = 'Community';
     my ($enrollstart,$enrollend,$startaccess,$endaccess);      my ($enrollstart,$enrollend,$startaccess,$endaccess);
       my %domdefaults = 
           &Apache::lonnet::get_domain_defaults($env{'request.role.domain'});
   
     if ($env{'form.phase'} eq 'coursetwo') {      if ($env{'form.phase'} eq 'coursetwo') {
         $crstype='Course';          $crstype='Course';
Line 747  sub create_course { Line 648  sub create_course {
                firstres => $env{'form.firstres'}                 firstres => $env{'form.firstres'}
                };                 };
   
       if (($crstype eq 'Course') && 
           ($domdefaults{'officialcredits'} || $domdefaults{'unofficialcredits'})) {
           $args->{'defaultcredits'} = $env{'form.defaultcredits'};
       }
   
     #      #
     # Verify data      # Verify data
     #      #
Line 787  sub create_course { Line 693  sub create_course {
  # Make the requested user a course coordinator or group coordinator   # Make the requested user a course coordinator or group coordinator
         #          #
  if (($ccdomain) && ($ccuname)) {   if (($ccdomain) && ($ccuname)) {
               my $ccrole = 'cc';
               if ($crstype eq 'Community') {
                   $ccrole = 'co';
               }    
     $r->print(&mt('Assigning role of '.$crstype.' Coordinator to [_1]:',      $r->print(&mt('Assigning role of '.$crstype.' Coordinator to [_1]:',
  ,'<i>'.$ccuname.':'.$ccdomain.'</i>')   ,'<i>'.$ccuname.':'.$ccdomain.'</i>')
       .&Apache::lonnet::assignrole($ccdomain,$ccuname,$courseid,        .&Apache::lonnet::assignrole($ccdomain,$ccuname,$courseid,
   'cc','','','','','createcourse').'<p>');    $ccrole,'','','','','createcourse').'<p>');
  }   }
  if ($env{'form.setkeys'}) {   if ($env{'form.setkeys'}) {
     $r->print(      $r->print(
       '<p><a href="/adm/managekeys?cid='.$crsudom.'_'.$crsunum.'">'.&mt('Manage Access Keys').'</a></p>');        '<p><a href="/adm/managekeys?cid='.$crsudom.'_'.$crsunum.'">'.&mt('Manage Access Keys').'</a></p>');
  }   }
         # Flush the course logs so reverse user roles immediately updated          # 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>'.&mt('Roles will be active at next login').'.</p>');
     }      }
     $r->print('<p><a href="/adm/createcourse?phase='.lc($crstype).'one">'.      $r->print('<p><a href="/adm/createcourse?phase='.lc($crstype).'one">'.
Line 806  sub create_course { Line 716  sub create_course {
 }  }
   
 sub print_intro_page {  sub print_intro_page {
     my $r = shift;      my ($r,$show_all_choices) = @_;
     my $start_page =      my $start_page =
         &Apache::loncommon::start_page('Create a New Course or Community');          &Apache::loncommon::start_page('Create a New Course or Community');
     my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Creation Options','Create_Course',undef,'Create_Courses');      my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Creation Options','Create_Course',undef,'Create_Courses');
Line 814  sub print_intro_page { Line 724  sub print_intro_page {
         &Apache::loncommon::end_page();          &Apache::loncommon::end_page();
     my $helplink=&Apache::loncommon::help_open_topic('Create_Course_Community',&mt('Help on Creating Courses and Communities'));      my $helplink=&Apache::loncommon::help_open_topic('Create_Course_Community',&mt('Help on Creating Courses and Communities'));
   
     my @choices = ({ internal_name => 'courseone',      # Create menu
                      name => &mt('Create a single course'),      my @menu;
                      short_description =>      @menu =
     &mt('Create a new course by completing an online form.'),         ({ categorytitle => 'Course/Community Creation',
                  },         items => [
                    { internal_name => 'groupone',            {
                      name => &mt('Create a single community'),                 linktext => 'Create a single course',
                      short_description =>                 url => '/adm/createcourse?phase=courseone',
     &mt('Create a new collaborative community by completing an online form.'),                 permission => 1,
                  },                 #help => '',
                    { internal_name => 'batchone',                 icon => 'crsnew.png',
                      name => &mt('Create courses/communities by uploading an attributes file'),                 linktitle => 'Create a new course by completing an online form.'
                      short_description =>            },
     &mt('Upload an attributes file containing specifications for one or more courses or communities in XML format.'),            {
                      help => 'Batch_Creation',                 linktext => 'Create a single community',
                  },                 url => '/adm/createcourse?phase=groupone',
                    { internal_name => 'requestdisplay',                 permission => $show_all_choices,
                      name => &mt('Approve or reject course requests'),                 #help => '',
                      short_description =>                 icon => 'crsnew.png',
     &mt('Display course creation requests submitted by authorized users, held pending approval by a Domain Coordinator.'),                 linktitle => 'Create a new collaborative community by completing an online form.'
                    },            },
                    { internal_name => 'creationlog',            {
                      name => &mt('View course creation log'),                 linktext => 'Create courses/communities by uploading an attributes file',
                      short_description =>                 url => '/adm/createcourse?phase=batchone',
     &mt('Display information about when, how and by whom courses were created in this domain.'),                 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
     );      );
     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 {  sub upload_batchfile {
Line 875  sub upload_batchfile { Line 812  sub upload_batchfile {
               '<input type="file" name="coursecreatorxml" />'.                '<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" '.                '<input type="submit" name="batchsubmit" '.
               'value="Create Courses/Communities" /></form>');                'value="'.&mt('Create Courses/Communities').'" /></form>');
     $r->print($end_page);      $r->print($end_page);
     return;      return;
 }  }
Line 926  sub courserequestbrowser_javascript { Line 863  sub courserequestbrowser_javascript {
 <script type="text/javascript">  <script type="text/javascript">
 // <![CDATA[  // <![CDATA[
 var steditbrowser;  var steditbrowser;
 function opencoursereqdisplay(cdom,cnum) {  function opencoursereqdisplay(cdom,cnum,queue) {
     var url = '/adm/requestcourse?action=display';      var url = '/adm/requestcourse?action=display';
     url += '&showdom='+cdom+'&cnum='+cnum;      url += '&showdom='+cdom+'&cnum='+cnum+'&queue='+queue;
     var title = 'Course_Request_Browser';      var title = 'Course_Request_Browser';
     var options = 'scrollbars=1,resizable=1,menubar=0';      var options = 'scrollbars=1,resizable=1,menubar=0';
     options += ',width=700,height=600';      options += ',width=700,height=600';
     var stdeditbrowser = open(url,title,options,'1');      var stdeditbrowser = open(url,title,options,'1');
     stdeditbrowser.focus();      stdeditbrowser.focus();
 }  }
   
 // ]]>  // ]]>
 </script>  </script>
 ENDREQBRW  ENDREQBRW
Line 962  sub print_creation_logs { Line 900  sub print_creation_logs {
     foreach my $item ('show','page','type','context') {      foreach my $item ('show','page','type','context') {
         $curr{$item} = $env{'form.'.$item};          $curr{$item} = $env{'form.'.$item};
     }      }
     my $createdafter = &Apache::lonhtmlcommon::get_date_from_form('created_after_date');  
     my $createdbefore = &Apache::lonhtmlcommon::get_date_from_form('created_before_date');  
     $curr{'created_after_date'} = &Apache::lonhtmlcommon::get_date_from_form('created_after_date');      $curr{'created_after_date'} = &Apache::lonhtmlcommon::get_date_from_form('created_after_date');
     $curr{'created_before_date'} = &Apache::lonhtmlcommon::get_date_from_form('created_before_date');      $curr{'created_before_date'} = &Apache::lonhtmlcommon::get_date_from_form('created_before_date');
     foreach my $key (keys(%defaults)) {      foreach my $key (keys(%defaults)) {
Line 971  sub print_creation_logs { Line 907  sub print_creation_logs {
             $curr{$key} = $defaults{$key};              $curr{$key} = $defaults{$key};
         }          }
     }      }
     my (%whodunit,$version);      my %whodunit;
     ($version) = ($r->dir_config('lonVersion') =~ /^([\d\.]+)\-/);      $r->print(&creation_display_filter($formname,\%curr));
     $r->print(&creation_display_filter($formname,\%curr,$version));  
     my $showntablehdr = 0;      my $showntablehdr = 0;
     my $tablehdr = &Apache::loncommon::start_data_table().      my $tablehdr = &Apache::loncommon::start_data_table().
                    &Apache::loncommon::start_data_table_header_row().                     &Apache::loncommon::start_data_table_header_row().
                    '<th>&nbsp;</th><th>'.&mt('Creation Date').'</th>'.                     '<th>&nbsp;</th><th>'.&mt('Creation Date').'</th>'.
                    '<th>'.&mt('Creator').'</th><th>'.&mt('Description').'</th>'.                     '<th>'.&mt('Creator').'</th><th>'.&mt('Description').'</th>'.
                    '<th>'.&mt('Course Owner(s)').'</th>';                     '<th>'.&mt('Owner(s)').'</th>';
     if (($curr{'type'} eq 'official') || ($curr{'type'} eq 'any')) {      if (($curr{'type'} eq 'official') || ($curr{'type'} eq 'any')) {
        $tablehdr .= '<th>'.&mt('Institutional Code').'</th>';         $tablehdr .= '<th>'.&mt('Institutional Code').'</th>';
     }       }
     $tablehdr .= '<th>'.&mt('Course Type').'</th>'.      if ($curr{'type'} eq 'any') { 
                  '<th>'.&mt('Creation Context').'</th>'.          $tablehdr .= '<th>'.&mt('Course Type').'</th>';
                  &Apache::loncommon::end_data_table_header_row();      }
       if ($curr{'context'} eq 'any') {
           $tablehdr .= '<th>'.&mt('Creation Context').'</th>';
       }
       $tablehdr .= &Apache::loncommon::end_data_table_header_row();
     my ($minshown,$maxshown);      my ($minshown,$maxshown);
     $minshown = 1;      $minshown = 1;
     my $count = 0;      my $count = 0;
Line 1011  sub print_creation_logs { Line 950  sub print_creation_logs {
     if ($numtitles) {      if ($numtitles) {
         if (($curr{'type'} eq 'official') || ($curr{'type'} eq 'unofficial')) {          if (($curr{'type'} eq 'official') || ($curr{'type'} eq 'unofficial')) {
             $instcodefilter = &instcode_srchstr($dom,$numtitles);              $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') {              if ($curr{'type'} eq 'official') {
                 $regexpok = 1;                  $regexpok = 1;
             } else {              } else {
Line 1034  sub print_creation_logs { Line 973  sub print_creation_logs {
                                       undef,undef,undef,$curr{'created_before_date'},                                        undef,undef,undef,$curr{'created_before_date'},
                                       $curr{'created_after_date'},$creationcontext);                                        $curr{'created_after_date'},$creationcontext);
     foreach my $cid (sort { $courses{$b}{'created'}<=>$courses{$a}{'created'} } (keys(%courses))) {      foreach my $cid (sort { $courses{$b}{'created'}<=>$courses{$a}{'created'} } (keys(%courses))) {
           if ($curr{'show'} ne &mt('all')) {
               if ($count >= $curr{'page'} * $curr{'show'}) {
                   $more_records = 1;
                   last;
               }
           }
         $count ++;          $count ++;
         next if ($count < $minshown);          next if ($count < $minshown);
         if (!$showntablehdr) {          if (!$showntablehdr) {
Line 1106  sub print_creation_logs { Line 1051  sub print_creation_logs {
         if (($curr{'type'} eq 'official') || ($curr{'type'} eq 'any')) {          if (($curr{'type'} eq 'official') || ($curr{'type'} eq 'any')) {
             $r->print('<td>'.$courses{$cid}{'inst_code'}.'</td>');              $r->print('<td>'.$courses{$cid}{'inst_code'}.'</td>');
         }          }
         $r->print('<td>'.$showtype.'</td><td>'.$showcontext.'</td><td>'.&Apache::loncommon::end_data_table_row()."\n");          if ($curr{'type'} eq 'any') {
               $r->print('<td>'.$showtype.'</td>');
           }
           if ($curr{'context'} eq 'any') {
               $r->print('<td>'.$showcontext.'</td>');
           }
           $r->print('<td>'.&Apache::loncommon::end_data_table_row()."\n");
     }      }
     if ($showntablehdr) {      if ($showntablehdr) {
         $r->print(&Apache::loncommon::end_data_table().'<br />');          $r->print(&Apache::loncommon::end_data_table().'<br />');
Line 1147  ENDSCRIPT Line 1098  ENDSCRIPT
 }  }
   
 sub creation_display_filter {  sub creation_display_filter {
     my ($formname,$curr,$version) = @_;      my ($formname,$curr) = @_;
     my $nolink = 1;      my $nolink = 1;
     my ($contexts,$contextnames) = &context_names();      my ($contexts,$contextnames) = &context_names();
     my $output = '<table><tr><td valign="top">'.      my $output = '<table><tr><td valign="top">'.
Line 1163  sub creation_display_filter { Line 1114  sub creation_display_filter {
         &Apache::lonhtmlcommon::date_setter($formname,'created_before_date',          &Apache::lonhtmlcommon::date_setter($formname,'created_before_date',
                                             $curr->{'created_before_date'},undef,                                              $curr->{'created_before_date'},undef,
                                             undef,undef,undef,undef,undef,undef,$nolink);                                              undef,undef,undef,undef,undef,undef,$nolink);
     $output .= '<td valign="top"><b>'.&mt('Window during which course was created:').'</b><br />'.      $output .= '<td valign="top"><b>'.&mt('Window during which course/community was created:').'</b><br />'.
                '<table><tr><td>'.&mt('After:').                 '<table><tr><td>'.&mt('After:').
                '</td><td>'.$startform.'</td></tr>'.                 '</td><td>'.$startform.'</td></tr>'.
                '<tr><td>'.&mt('Before:').'</td>'.                 '<tr><td>'.&mt('Before:').'</td>'.
                '<td>'.$endform.'</td></tr></table>'.                 '<td>'.$endform.'</td></tr></table>'.
                '</td>'.                 '</td>'.
                '<td>&nbsp;&nbsp;</td>';                 '<td>&nbsp;&nbsp;</td>';
     my ($types,$typenames) = &course_types();      my ($types,$typenames) = &Apache::loncommon::course_types();
     if (ref($types) eq 'ARRAY') {      if (ref($types) eq 'ARRAY') {
         if (@{$types} > 1) {          if (@{$types} > 1) {
             $output .= '<td valign="top"><b>'.              $output .= '<td valign="top"><b>'.
Line 1218  sub creation_display_filter { Line 1169  sub creation_display_filter {
     # Update Display button      # Update Display button
     $output .= '<p>'.      $output .= '<p>'.
                '<input type="submit" value="'.&mt('Update Display').'" />'.                 '<input type="submit" value="'.&mt('Update Display').'" />'.
                '</p>';                 '</p><hr />';
   
     # Server version info  
     $output .= '<p class="LC_info">'.  
                &mt('Only courses created from servers running LON-CAPA [_1] or later are displayed.','2.9.0');  
     if ($version) {  
         $output .= ' '.&mt('This LON-CAPA server is version [_1]',$version);  
     }  
     $output .= '</p><hr />';  
     return $output;      return $output;
 }  }
   
 sub course_types {  
     my @types = qw(official unofficial community);  
     my %typename = (  
                          official   => 'Official course',  
                          unofficial => 'Unofficial course',  
                          community  => 'Community',  
                    );  
     return (\@types,\%typename);  
 }  
   
 sub context_names {  sub context_names {
     my @contexts = qw(auto web dc_create requestcrs);      my @contexts = qw(auto web dc_create requestcourses);
     my %contextnames =       my %contextnames = 
         &Apache::lonlocal::texthash (          &Apache::lonlocal::texthash (
                             auto       => 'Automated creation from batch file',                          auto           => 'Automated creation from batch file',
                             web        => 'Batch creation from uploaded file',                          web            => 'Batch creation from uploaded file',
                             dc_create  => 'Single course created by Domain Coordinator',                           dc_create      => 'Course or community created by Dom. Coord.', 
                             requestcrs => 'Processing of submitted course request',                          requestcourses => 'Processing of submitted course request',
         );          );
     return (\@contexts,\%contextnames);      return (\@contexts,\%contextnames);
 }  }
Line 1306  sub handler { Line 1239  sub handler {
        return OK;         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'})) {      if (&Apache::lonnet::allowed('ccc',$env{'request.role.domain'})) {
        &Apache::loncommon::content_type($r,'text/html');         &Apache::loncommon::content_type($r,'text/html');
        $r->send_http_header;         $r->send_http_header;
Line 1318  sub handler { Line 1258  sub handler {
             text=>"Creation Options",              text=>"Creation Options",
             faq=>79,bug=>'Dom Coord Interface',});              faq=>79,bug=>'Dom Coord Interface',});
        if (($env{'form.phase'} eq 'coursetwo') ||         if (($env{'form.phase'} eq 'coursetwo') ||
            ($env{'form.phase'} eq 'grouptwo')) {             (($env{'form.phase'} eq 'grouptwo') && 
               ($show_all_choices))) { 
            &Apache::lonhtmlcommon::add_breadcrumb             &Apache::lonhtmlcommon::add_breadcrumb
                  ({href=>"/adm/createcourse?phase=$env{'form.prevphase'}",                   ({href=>"/adm/createcourse?phase=$env{'form.prevphase'}",
                    text=>&mt('[_1] Creation Settings',),                     text=>&mt('[_1] Creation Settings',),
Line 1329  sub handler { Line 1270  sub handler {
                    faq=>9,bug=>'Dom Coord Interface',});                     faq=>9,bug=>'Dom Coord Interface',});
            &create_course($r);             &create_course($r);
        } elsif (($env{'form.phase'} eq 'courseone') ||          } elsif (($env{'form.phase'} eq 'courseone') || 
                 ($env{'form.phase'} eq 'groupone')) {                  (($env{'form.phase'} eq 'groupone') && 
                   ($show_all_choices))) {
            &Apache::lonhtmlcommon::add_breadcrumb             &Apache::lonhtmlcommon::add_breadcrumb
                  ({href=>"/adm/createcourse?phase=$env{'form.phase'}",                   ({href=>"/adm/createcourse?phase=$env{'form.phase'}",
                    text=>&mt('[_1] Creation Settings',),                     text=>&mt('[_1] Creation Settings',),
Line 1351  sub handler { Line 1293  sub handler {
                    text=>"Creation Outcome",                     text=>"Creation Outcome",
                    faq=>9,bug=>'Dom Coord Interface',});                     faq=>9,bug=>'Dom Coord Interface',});
            &process_batchfile($r);             &process_batchfile($r);
        } elsif ($env{'form.phase'} eq 'requestdisplay') {         } elsif (($env{'form.phase'} eq 'requestdisplay') && ($show_all_choices)) {
            &Apache::lonhtmlcommon::add_breadcrumb             &Apache::lonhtmlcommon::add_breadcrumb
                  ({href=>"/adm/createcourse?phase=$env{'form.phase'}",                   ({href=>"/adm/createcourse?phase=$env{'form.phase'}",
                    text=>&mt('[_1] Display Request Queue',),                     text=>&mt('[_1] Display Request Queue',),
Line 1363  sub handler { Line 1305  sub handler {
                      &Apache::loncoursequeueadmin::display_queued_requests(                       &Apache::loncoursequeueadmin::display_queued_requests(
                          'domain',$env{'request.role.domain'}).'</div>'.                           'domain',$env{'request.role.domain'}).'</div>'.
                      &Apache::loncommon::end_page());                       &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",
                        text=>&mt('Display Pending Queue',),
                        faq=>9,bug=>'Dom Coord Interface',});
              } else {
                  &Apache::lonhtmlcommon::add_breadcrumb
                        ({href=>"/adm/createcourse?phase=requestdisplay",
                          text=>&mt('[_1] Display Request Queue',),
                          faq=>9,bug=>'Dom Coord Interface',});
              }
            &Apache::lonhtmlcommon::add_breadcrumb             &Apache::lonhtmlcommon::add_breadcrumb
                  ({href=>"/adm/createcourse?phase=requestdisplay",                 ({href=>"/adm/createcourse?phase=requestchange",
                    text=>&mt('[_1] Display Request Queue',),                   text=>&mt('[_1] Requests Updated',),
                    faq=>9,bug=>'Dom Coord Interface',},                   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 $start_page=&Apache::loncommon::start_page('Update Requests Result');
            my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Requests Updated','Course_Request',undef,'Course_Request');             my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Requests Updated','Course_Request',undef,'Course_Request');
            $r->print($start_page.$crumbs."\n".'<div>'.             $r->print($start_page.$crumbs."\n".'<div>'.
                      &Apache::loncoursequeueadmin::update_request_queue(                       &Apache::loncoursequeueadmin::update_request_queue(
                      'domain',$env{'request.role.domain'}).'</div>'.                       'domain',$env{'request.role.domain'}).'</div>'.
                      &Apache::loncommon::end_page());                       &Apache::loncommon::end_page());
        } elsif ($env{'form.phase'} eq 'creationlog') {         } 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',),
                      faq=>9,bug=>'Dom Coord Interface',});
              my $js = &courserequestbrowser_javascript();
              my $start_page=&Apache::loncommon::start_page('Display Pending Queue',$js);
              my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Pending Queue','Course_Request',undef,'Course_Request');
              $r->print($start_page.$crumbs."\n".'<div>'.
                        &Apache::loncoursequeueadmin::display_queued_requests(
                            'pending',$env{'request.role.domain'}).'</div>'.
                        &Apache::loncommon::end_page());
          } elsif (($env{'form.phase'} eq 'requestvalidation') && ($show_all_choices)) {
              my $js = &courserequestbrowser_javascript();
              &Apache::lonhtmlcommon::add_breadcrumb
                    ({href=>"/adm/createcourse?phase=pendingdisplay",
                      text=>&mt('Display Pending Queue'),},
                    {href=>"/adm/createcourse?phase=requestvalidation",
                      text=>&mt('Validation Attempted'),},);
              my $start_page=&Apache::loncommon::start_page('Requests Validation Result',$js);
              my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Validation Attempted','Course_Request',undef,'Course_Request');
              $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') && ($show_all_choices)) {
            &Apache::lonhtmlcommon::add_breadcrumb             &Apache::lonhtmlcommon::add_breadcrumb
                  ({href=>"/adm/createcourse?phase=creationlog",                   ({href=>"/adm/createcourse?phase=creationlog",
                    text=>&mt('[_1] Display Creation History',),});                     text=>&mt('[_1] Display Creation History',),});
Line 1386  sub handler { Line 1360  sub handler {
                     &syllabuslink_javascript()."\n".                      &syllabuslink_javascript()."\n".
                     '// ]]>'."\n".                      '// ]]>'."\n".
                     '</script>';                      '</script>';
            my $start_page=&Apache::loncommon::start_page('Course Creation Logs',$js);             my $start_page=&Apache::loncommon::start_page('Course/Community Creation Logs',$js);
            my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Created Courses','Creation_Log',undef,'Creation_Log');             my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Created Courses/Communities','Creation_Log',undef,'Creation_Log');
            $r->print($start_page.$crumbs."\n".'<div>');             $r->print($start_page.$crumbs."\n".'<div>');
            &print_creation_logs($r);             &print_creation_logs($r);
            $r->print('</div>'.&Apache::loncommon::end_page());             $r->print('</div>'.&Apache::loncommon::end_page());
        } else {         } else {
            &print_intro_page($r);             &print_intro_page($r,$show_all_choices);
        }         }
    } else {     } else {
       $env{'user.error.msg'}=        $env{'user.error.msg'}=

Removed from v.1.127  
changed lines
  Added in v.1.148


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>