Diff for /loncom/interface/loncreatecourse.pm between versions 1.157 and 1.158.2.3.2.3

version 1.157, 2014/02/28 19:20:06 version 1.158.2.3.2.3, 2020/07/17 23:28:21
Line 80  use Apache::loncommon; Line 80  use Apache::loncommon;
 use Apache::londocs;  use Apache::londocs;
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::lonuserutils;  use Apache::lonuserutils;
 use Apache::lonclonecourse;  
 use LONCAPA::batchcreatecourse;  use LONCAPA::batchcreatecourse;
 use LONCAPA;  use LONCAPA qw(:DEFAULT :match);
   
 # ===================================================== Phase one: fill-in form  # ===================================================== Phase one: fill-in form
   
Line 133  sub print_course_creation_page { Line 132  sub print_course_creation_page {
     } else {      } else {
         my $title_alert = &mt('A Community title is required');          my $title_alert = &mt('A Community title is required');
         my $coord_alert = &mt('The username of the Coordinator is required');          my $coord_alert = &mt('The username of the Coordinator is required');
           &js_escape(\$title_alert);
           &js_escape(\$coord_alert);
         $javascript_validations = qq|          $javascript_validations = qq|
 function validate(formname) {  function validate(formname) {
     if (formname.title == '') {      if (formname.title == '') {
Line 181  function validate(formname) { Line 182  function validate(formname) {
                     'ncd'  => "Do not clone date parameters",                      'ncd'  => "Do not clone date parameters",
                     'prd'  => 'Clone date parameters as-is',                      'prd'  => 'Clone date parameters as-is',
                     'shd'  => 'Shift date parameters by number of days',                      'shd'  => 'Shift date parameters by number of days',
                       'dpl'  => 'URL shortcuts (for deep linking)',
                       'nsl'  => 'Do not clone URL shortcuts',
                       'tsl'  => 'Transfer URL shortcuts from existing course to new course',
                       'csl'  => 'Create new URL shortcuts in new course',
                     'assp' => "Assessment Parameters",                      'assp' => "Assessment Parameters",
                     'oaas' => "Open all assessments",                      'oaas' => "Open all assessments",
                     'mssg' => "Messaging",                      'mssg' => "Messaging",
                     'scpf' => "Set course policy feedback to Course Coordinator",                      'scpf' => "Set course policy feedback to Course Coordinator",
                     'scfc' => "Set content feedback to Course Coordinator",                      'scfc' => "Set resource content feedback to Course Coordinator",
                       'scof' => "Set course content feedback to Course Coordinator",
                     'cmmn' => "Communication",                      'cmmn' => "Communication",
                     'dsrd' => "Disable student resource discussion",                      'dsrd' => "Disable student resource discussion",
                     'dsuc' => "Disable student use of chat rooms",                      'dsuc' => "Disable student use of chat rooms",
Line 231  function validate(formname) { Line 237  function validate(formname) {
         $lt{'navi'} = &mt('Community Contents');          $lt{'navi'} = &mt('Community Contents');
         $lt{'cid'}  = &mt('Community ID');          $lt{'cid'}  = &mt('Community ID');
         $lt{'scpf'} = &mt('Set community policy feedback to Coordinator');          $lt{'scpf'} = &mt('Set community policy feedback to Coordinator');
         $lt{'scfc'} = &mt('Set content feedback to Coordinator');          $lt{'scfc'} = &mt('Set resource content feedback to Coordinator');
           $lt{'scof'} = &mt('Set community content feedback to Coordinator');
         $lt{'dsrd'} = &mt('Disable member resource discussion');          $lt{'dsrd'} = &mt('Disable member resource discussion');
         $lt{'dsuc'} = &mt('Disable member use of chat rooms');          $lt{'dsuc'} = &mt('Disable member use of chat rooms');
         $lt{'dads'} = &mt('Default Access Dates for Members');          $lt{'dads'} = &mt('Default Access Dates for Members');
Line 242  function validate(formname) { Line 249  function validate(formname) {
         $lt{'cc'}  = &mt('(will be assigned Coordinator role)');          $lt{'cc'}  = &mt('(will be assigned Coordinator role)');
         $lt{'cgrs'} = &mt('Community Group Settings');          $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');          $lt{'cgrq'} = &mt('Set a quota for the total disk space available for storage of community group portfolio files');
           $lt{'tsl'} = &mt('Transfer URL shortcuts from existing community to new community');
           $lt{'csl'} = &mt('Create new URL shortcuts in new community');
     }      }
     my $js = <<END;      my $js = <<END;
 <script type="text/javascript">  <script type="text/javascript">
Line 391  END Line 400  END
                  .'<input type="radio" name="firstres" value="nav" />'.$lt{'navi'}                   .'<input type="radio" name="firstres" value="nav" />'.$lt{'navi'}
                  .'</label>');                   .'</label>');
     }      }
       my $tinyurlhelp=&Apache::loncommon::help_open_topic('Clone_Tiny_URLs');
     $r->print('<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 422  END Line 432  END
                  .'</label>'                   .'</label>'
                  .' <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_title($tinyurlhelp.$lt{'dpl'})
                    .'<label>'
                    .'<input type="radio" name="tinyurls" value="delete" /> '.$lt{'nsl'}
                    .'</label><br />'
                    .'<label>'
                    .'<input type="radio" name="tinyurls" value="transfer" /> '.$lt{'tsl'}
                    .'</label><br />'
                    .'<label>'
                    .'<input type="radio" name="tinyurls" value="create" checked="checked" /> '.$lt{'csl'}
                    .'</label>'
                    .&Apache::lonhtmlcommon::row_closure()
                  .&Apache::lonhtmlcommon::row_headline()                   .&Apache::lonhtmlcommon::row_headline()
                  .'<span class="LC_info">'.$lt{'asov'}.'</span>'                   .'<span class="LC_info">'.$lt{'asov'}.'</span>'
                  .&Apache::lonhtmlcommon::row_closure(1)                   .&Apache::lonhtmlcommon::row_closure(1)
Line 460  END Line 481  END
                  .'<input type="checkbox" name="setcontent" checked="checked" />'                   .'<input type="checkbox" name="setcontent" checked="checked" />'
                  .&Apache::lonhtmlcommon::row_closure()                   .&Apache::lonhtmlcommon::row_closure()
   
                    .&Apache::lonhtmlcommon::row_title($lt{'scof'})
                    .'<input type="checkbox" name="setcomment" checked="checked" />'
                    .&Apache::lonhtmlcommon::row_closure()
   
                  .&Apache::lonhtmlcommon::row_headline()                   .&Apache::lonhtmlcommon::row_headline()
                  .'<h3>'.$lt{'cmmn'}.'</h3>'                   .'<h3>'.$lt{'cmmn'}.'</h3>'
                  .&Apache::lonhtmlcommon::row_closure()                   .&Apache::lonhtmlcommon::row_closure()
Line 628  sub create_course { Line 653  sub create_course {
                clonedomain => $env{'form.clonedomain'},                 clonedomain => $env{'form.clonedomain'},
                datemode => $env{'form.datemode'},                 datemode => $env{'form.datemode'},
                dateshift => $env{'form.dateshift'},                 dateshift => $env{'form.dateshift'},
                  tinyurls  => $env{'form.tinyurls'},
                crsid => $env{'form.crsid'},                 crsid => $env{'form.crsid'},
                curruser => $env{'user.name'}.':'.$env{'user.domain'},                 curruser => $env{'user.name'}.':'.$env{'user.domain'},
                crssections => $env{'form.crssections'},                 crssections => $env{'form.crssections'},
Line 646  sub create_course { Line 672  sub create_course {
                endaccess => $endaccess,                 endaccess => $endaccess,
                setpolicy => $env{'form.setpolicy'},                 setpolicy => $env{'form.setpolicy'},
                setcontent => $env{'form.setcontent'},                 setcontent => $env{'form.setcontent'},
                  setcomment => $env{'form.setcomment'},
                reshome => $env{'form.reshome'},                 reshome => $env{'form.reshome'},
                setkeys => $env{'form.setkeys'},                 setkeys => $env{'form.setkeys'},
                keyauth => $env{'form.keyauth'},                 keyauth => $env{'form.keyauth'},
Line 693  sub create_course { Line 720  sub create_course {
         return;          return;
     }      }
     my ($courseid,$crsudom,$crsunum,$code);      my ($courseid,$crsudom,$crsunum,$code);
     my ($success,$output) =       my ($success,$output,$clonemsgref) = 
  &Apache::loncommon::construct_course($args,\$logmsg,\$courseid,   &Apache::loncommon::construct_course($args,\$logmsg,\$courseid,
      \$crsudom,\$crsunum,       \$crsudom,\$crsunum,
      $env{'user.domain'},       $env{'user.domain'},
      $env{'user.name'},'dc_create',undef,undef,\$code);       $env{'user.name'},'dc_create',undef,undef,\$code);
     $r->print($output);      $r->print($output);
       if (ref($clonemsgref) eq 'ARRAY') {
           my $user_lh = &Apache::loncommon::user_lang($env{'user.name'},$env{'user.domain'});
           foreach my $item (@{$clonemsgref}) {
               if (ref($item) eq 'HASH') {
                   $r->print(&mt($item->{mt},@{$item->{args}}).'<br />'."\n");
               }
           }
       }
     if ($success) {      if ($success) {
         #          #
  # Make the requested user a course coordinator or group coordinator   # Make the requested user a course coordinator or group coordinator
Line 732  sub create_course { Line 767  sub create_course {
 }  }
   
 sub print_intro_page {  sub print_intro_page {
     my ($r,$show_all_choices) = @_;      my ($r,$show_all_choices,$cancreate,$permission) = @_;
     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 741  sub print_intro_page { Line 776  sub print_intro_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'));
   
     # Create menu      # Create menu
       my $approve = 'Display requests awaiting approval';
       if ($permission->{'create'}) {
           $approve = 'Approve or reject requests';
       }
     my @menu;      my @menu;
     @menu =      @menu =
        ({ categorytitle => 'Course/Community Creation',         ({ categorytitle => 'Course/Community Creation',
Line 748  sub print_intro_page { Line 787  sub print_intro_page {
           {            {
                linktext => 'Create a single course',                 linktext => 'Create a single course',
                url => '/adm/createcourse?phase=courseone',                 url => '/adm/createcourse?phase=courseone',
                permission => 1,                 permission => $permission->{'create'},
                #help => '',                 #help => '',
                icon => 'crsnew.png',                 icon => 'crsnew.png',
                linktitle => 'Create a new course by completing an online form.'                 linktitle => 'Create a new course by completing an online form.'
Line 756  sub print_intro_page { Line 795  sub print_intro_page {
           {            {
                linktext => 'Create a single community',                 linktext => 'Create a single community',
                url => '/adm/createcourse?phase=groupone',                 url => '/adm/createcourse?phase=groupone',
                permission => $show_all_choices,                 permission => $permission->{'create'} && $cancreate->{'Community'},
                #help => '',                 #help => '',
                icon => 'crsnew.png',                 icon => 'crsnew.png',
                linktitle => 'Create a new collaborative community by completing an online form.'                 linktitle => 'Create a new collaborative community by completing an online form.'
Line 764  sub print_intro_page { Line 803  sub print_intro_page {
           {            {
                linktext => 'Create courses/communities by uploading an attributes file',                 linktext => 'Create courses/communities by uploading an attributes file',
                url => '/adm/createcourse?phase=batchone',                 url => '/adm/createcourse?phase=batchone',
                permission => 1,                 permission => $permission->{'create'},
                help => 'Batch_Creation',                 help => 'Batch_Creation',
                icon => 'uplcrs.png',                 icon => 'uplcrs.png',
                linktitle => 'Upload an attributes file containing specifications for one or more courses or communities in XML format.'                 linktitle => 'Upload an attributes file containing specifications for one or more courses or communities in XML format.'
Line 774  sub print_intro_page { Line 813  sub print_intro_page {
        { categorytitle => 'Course/Community Requests',         { categorytitle => 'Course/Community Requests',
        items => [         items => [
            {             {
                linktext => 'Approve or reject requests',                 linktext => $approve,
                url => '/adm/createcourse?phase=requestdisplay',                 url => '/adm/createcourse?phase=requestdisplay',
                permission => $show_all_choices,                 permission => $show_all_choices,
                #help => '',                 #help => '',
Line 835  sub upload_batchfile { Line 874  sub upload_batchfile {
   
 sub process_batchfile {  sub process_batchfile {
     my $r = shift;      my $r = shift;
     my $start_page =  
         &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();  
     my $defdom=$env{'request.role.domain'};      my $defdom=$env{'request.role.domain'};
     my $batchfilepath=&Apache::lonnet::userfileupload('coursecreatorxml',undef,      my $uname = $env{'user.name'};
                                                       'batchupload',undef,undef,      my $udom = $env{'user.domain'};
                                                        undef,undef,$defdom);      my $dir = &LONCAPA::tempdir().'addcourse';
     my ($batchdir,$filename) = ($batchfilepath =~ m-^(.+)/pending/([^/]+)$-);      my ($result,$logmsg,$clonemsg,$keysmsg,$codesref,$instcodesref
     my ($result,$logmsg);      if (($defdom =~ /^$match_domain$/) && ($uname =~ /^$match_username$/) && ($udom =~/^$match_domain$/)) {
     if (-e "$batchfilepath") {          my $batchfilepath=&Apache::lonnet::userfileupload('coursecreatorxml',undef,
         open(FILE,"<$batchfilepath");                                                            'batchupload',undef,undef,
         my @buffer = <FILE>;                                                            undef,undef,$defdom);
         close(FILE);          if ($batchfilepath =~ m{^(\Q$dir/$defdom/web/$uname\_$udom\E)/pending/([^/]+)$}) {
         if ((defined($filename)) && (defined($batchdir))) {              my ($batchdir,$filename) = ($1,$2);
             my @requests = ($filename);              if (-e "$batchfilepath") {
             my %courseids = ();                  if (open(FILE,"<",$batchfilepath)) {
             ($result,$logmsg) = &LONCAPA::batchcreatecourse::create_courses(                      my @buffer = <FILE>;
                                         \@requests,\%courseids,'web',$defdom,  
                                         $env{'user.name'},$env{'user.domain'});  
             if ($result) {  
                 if (!-e "$batchdir/processed") {  
                     mkdir("$batchdir/processed", 0755);  
                     open(FILE,">$batchdir/processed/$filename");  
                     print FILE @buffer;  
                     close(FILE);                      close(FILE);
                     if (-e "$batchdir/processed/$filename") {                      if ((defined($filename)) && (defined($batchdir))) {
                         unlink("$batchdir/pending/$filename");                          my @requests = ($filename);
                           my %courseids = ();
                           ($result,$logmsg,$clonemsg,$keysmsg,$codesref,$instcodesref) =
                               &LONCAPA::batchcreatecourse::create_courses(
                                          \@requests,\%courseids,'web',$defdom,
                                          $uname,$udom);
                           if (keys(%courseids) > 0) {
                               if (!-e "$batchdir/processed") {
                                   mkdir("$batchdir/processed", 0755);
                               }
                               if (-d "$batchdir/processed") {
                                   if (open(FILE,">","$batchdir/processed/$filename")) {
                                       print FILE @buffer;
                                       close(FILE);
                                   }
                               }
                               if (-e "$batchdir/processed/$filename") {
                                   unlink("$batchdir/pending/$filename");
                               }
                           }
                           if ($clonemsg) {
                               $clonemsg = '<p class="LC_info">'.$clonemsg.'</p>'."\n";
                           }
                     }                      }
                   } else {
                       $result = '<p class="LC_error">'.&mt('Could not open attributes file.').'<br />'.&mt('No courses created.').'</p>';
                 }                  }
               } else {
                   $result = '<p class="LC_error">'.&mt('No uploaded attributes file found.').'<br />'.&mt('No courses created.').'</p>';
             }              }
           } else {
               $result = '<p class="LC_error">'.&mt('Invalid path to attributes file.').'<br />'.&mt('No courses created.').'</p>';
         }          }
       } else {
           $result = '<p class="LC_error">'.&mt("Your username, domain, and/or your current role's domain are missing or contain invalid characters.").
                     '<br />'.&mt('No courses created.').'</p>';
     }      }
     $r->print($start_page.$crumbs.$logmsg.$result.'<br /><a href="/adm/createcourse">'.      $r->print(&Apache::loncommon::start_page('Create a New Course, Community or Placement Test').
               &mt('Creation options menu').'</a>'.$end_page);                &Apache::lonhtmlcommon::breadcrumbs('Creation Outcome','Create_Course',undef,'Create_Courses').
                  $logmsg.$clonemsg.$result.'<br /><a href="/adm/createcourse">'.
                 &mt('Creation options menu').'</a>'.
                 &Apache::loncommon::end_page());
 }  }
   
 sub courserequestbrowser_javascript {  sub courserequestbrowser_javascript {
Line 1245  ENDJS Line 1305  ENDJS
   
 }  }
   
   sub get_permission {
       my ($dom) = @_;
       my ($allowed,%permission);
       if (&Apache::lonnet::allowed('ccc',$dom)) {
           $allowed = 1;
           %permission = (
               create => 1,
           );
       } elsif (&Apache::lonnet::allowed('dcc',$dom)) {
           $allowed = 1;
       }
       return ($allowed,\%permission);
   }
   
 # ===================================================================== Handler  # ===================================================================== Handler
 sub handler {  sub handler {
     my $r = shift;      my $r = shift;
Line 1255  sub handler { Line 1329  sub handler {
        return OK;         return OK;
     }      }
   
     my $show_all_choices = 0;      my ($allowed,$permission) = &get_permission($env{'request.role.domain'});
     my $primary_rev = &Apache::lonnet::get_server_loncaparev($env{'request.role.domain'});      if ($allowed) {
     if (($primary_rev ne 'refused') && ($primary_rev ne 'error') &&          my $show_all_choices = 0;
         ($primary_rev ne 'unknown_cmd') && ($primary_rev ne 'no_such_host')) {          my $primary_rev = &Apache::lonnet::get_server_loncaparev($env{'request.role.domain'});
         $show_all_choices = 1;          my %cancreate = (
     }                             Community => 0,
                           );
           if (($primary_rev ne 'refused') && ($primary_rev ne 'error') &&
               ($primary_rev ne 'unknown_cmd') && ($primary_rev ne 'no_such_host')) {
               $show_all_choices = 1;
               my ($primary_major,$primary_minor) = split(/\./,$primary_rev);
               foreach my $key (keys(%cancreate)) {
                   my ($needsmajor,$needsminor) =
                       split(/\./,$Apache::lonnet::needsrelease{'course:crstype:'.$key});
                   unless (($needsmajor > $primary_major) ||
                           (($needsmajor == $primary_major) && ($needsminor > $primary_minor))) {
                       $cancreate{$key} = 1;
                   }
               }
           }
   
     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 1273  sub handler { Line 1360  sub handler {
           ({href=>"/adm/createcourse",            ({href=>"/adm/createcourse",
             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 (($permission->{'create'}) &&
            (($env{'form.phase'} eq 'grouptwo') &&              (($env{'form.phase'} eq 'coursetwo') ||
             ($show_all_choices))) {               (($env{'form.phase'} eq 'grouptwo') &&
               ($cancreate{'Community'})))) {
            &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 1285  sub handler { Line 1373  sub handler {
                    text=>"Creation Outcome",                     text=>"Creation Outcome",
                    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 (($permission->{'create'}) &&
                 (($env{'form.phase'} eq 'groupone') &&                   (($env{'form.phase'} eq 'courseone') ||
                 ($show_all_choices))) {                   (($env{'form.phase'} eq 'groupone') &&
                    ($cancreate{'Community'})))) {
            &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',),
                    faq=>9,bug=>'Dom Coord Interface',});                     faq=>9,bug=>'Dom Coord Interface',});
    &print_course_creation_page($r);     &print_course_creation_page($r);
        } elsif ($env{'form.phase'} eq 'batchone') {         } elsif (($permission->{'create'}) &&
                   ($env{'form.phase'} eq 'batchone')) {
            &Apache::lonhtmlcommon::add_breadcrumb             &Apache::lonhtmlcommon::add_breadcrumb
                  ({href=>"/adm/createcourse?phase=$env{'form.phase'}",                   ({href=>"/adm/createcourse?phase=$env{'form.phase'}",
                    text=>"Upload Description File",                     text=>"Upload Description File",
                    faq=>9,bug=>'Dom Coord Interface',});                     faq=>9,bug=>'Dom Coord Interface',});
            &upload_batchfile($r);             &upload_batchfile($r);
        } elsif ($env{'form.phase'} eq 'batchtwo') {         } elsif (($permission->{'create'}) &&
                   ($env{'form.phase'} eq 'batchtwo')) {
            &Apache::lonhtmlcommon::add_breadcrumb             &Apache::lonhtmlcommon::add_breadcrumb
                  ({href=>"/adm/createcourse?phase=$env{'form.prevphase'}",                   ({href=>"/adm/createcourse?phase=$env{'form.prevphase'}",
                    text=>"Upload Description File",                     text=>"Upload Description File",
Line 1317  sub handler { Line 1408  sub handler {
            my $js = &courserequestbrowser_javascript();             my $js = &courserequestbrowser_javascript();
            my $start_page=&Apache::loncommon::start_page('Display Requests',$js);             my $start_page=&Apache::loncommon::start_page('Display Requests',$js);
            my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Requests','Course_Requests',undef,'Course_Requests');             my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Requests','Course_Requests',undef,'Course_Requests');
              my $context = 'domain';
              unless ($permission->{'create'}) {
                  $context = 'helpdesk';
              }
            $r->print($start_page.$crumbs."\n".'<div>'.             $r->print($start_page.$crumbs."\n".'<div>'.
                      &Apache::loncoursequeueadmin::display_queued_requests(                       &Apache::loncoursequeueadmin::display_queued_requests(
                          'domain',$env{'request.role.domain'}).'</div>'.                           $context,$env{'request.role.domain'}).'</div>'.
                      &Apache::loncommon::end_page());                       &Apache::loncommon::end_page());
        } elsif (($env{'form.phase'} eq 'requestchange') && ($show_all_choices)) {         } elsif (($permission->{'create'}) &&
                   ($env{'form.phase'} eq 'requestchange') && ($show_all_choices)) { 
            if ($env{'form.queue'} eq 'pending') {             if ($env{'form.queue'} eq 'pending') {
                &Apache::lonhtmlcommon::add_breadcrumb                 &Apache::lonhtmlcommon::add_breadcrumb
                    ({href=>"/adm/createcourse?phase=pendingdisplay",                     ({href=>"/adm/createcourse?phase=pendingdisplay",
Line 1351  sub handler { Line 1447  sub handler {
            my $js = &courserequestbrowser_javascript();             my $js = &courserequestbrowser_javascript();
            my $start_page=&Apache::loncommon::start_page('Display Pending Queue',$js);             my $start_page=&Apache::loncommon::start_page('Display Pending Queue',$js);
            my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Pending Queue','Course_Requests',undef,'Course_Requests');             my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Pending Queue','Course_Requests',undef,'Course_Requests');
              my $context = 'pending';
              unless ($permission->{'create'}) {
                  $context = 'displaypending';
              }
            $r->print($start_page.$crumbs."\n".'<div>'.             $r->print($start_page.$crumbs."\n".'<div>'.
                      &Apache::loncoursequeueadmin::display_queued_requests(                       &Apache::loncoursequeueadmin::display_queued_requests(
                          'pending',$env{'request.role.domain'}).'</div>'.                           $context,$env{'request.role.domain'}).'</div>'.
                      &Apache::loncommon::end_page());                       &Apache::loncommon::end_page());
        } elsif (($env{'form.phase'} eq 'requestvalidation') && ($show_all_choices)) {         } elsif (($permission->{'create'}) &&
                   ($env{'form.phase'} eq 'requestvalidation') && ($show_all_choices)) { 
            my $js = &courserequestbrowser_javascript();             my $js = &courserequestbrowser_javascript();
            &Apache::lonhtmlcommon::add_breadcrumb             &Apache::lonhtmlcommon::add_breadcrumb
                  ({href=>"/adm/createcourse?phase=pendingdisplay",                   ({href=>"/adm/createcourse?phase=pendingdisplay",
Line 1365  sub handler { Line 1466  sub handler {
            my $start_page=&Apache::loncommon::start_page('Requests Validation Result',$js);             my $start_page=&Apache::loncommon::start_page('Requests Validation Result',$js);
            my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Validation Attempted','Course_Requests',undef,'Course_Requests');             my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Validation Attempted','Course_Requests',undef,'Course_Requests');
            $r->print($start_page.$crumbs."\n".'<div>'.             $r->print($start_page.$crumbs."\n".'<div>'.
                      &Apache::loncoursequeueadmin::process_official_reqs('domain',$env{'request.role.domain'}).'</div>'.                       &Apache::loncoursequeueadmin::process_official_reqs('domain',$env{'request.role.domain'},
                                                                            $env{'user.name'},$env{'user.domain'}).
                        '</div>'.
                      &Apache::loncommon::end_page());                       &Apache::loncommon::end_page());
        } elsif (($env{'form.phase'} eq 'creationlog') && ($show_all_choices)) {         } elsif (($env{'form.phase'} eq 'creationlog') && ($show_all_choices)) {
            &Apache::lonhtmlcommon::add_breadcrumb             &Apache::lonhtmlcommon::add_breadcrumb
Line 1382  sub handler { Line 1485  sub handler {
            &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,$show_all_choices);             &print_intro_page($r,$show_all_choices,\%cancreate,$permission);
        }         }
    } else {     } else {
       $env{'user.error.msg'}=        $env{'user.error.msg'}=

Removed from v.1.157  
changed lines
  Added in v.1.158.2.3.2.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.