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

version 1.155, 2014/01/29 19:01:27 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 158  function validate(formname) { Line 159  function validate(formname) {
                     'snid' => "Section Numbers and corresponding LON-CAPA section IDs",                      'snid' => "Section Numbers and corresponding LON-CAPA section IDs",
                     '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) section ID to be used in LON-CAPA, e.g., fs03ent231001:ent1,fs03bot231001:bot1,fs03zol231002:zol2",
                     'ccre' => "Course credits",                      'ccre' => "Course credits",
                     'crcd' => "Create six character course identifier to share with students",                      'crcd' => "Create six character course identifier to share with students",
                     'cred' => "the number of institutional credits students will earn by completing this course",                      'cred' => "the number of institutional credits students will earn by completing this course",
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 1316  sub handler { Line 1407  sub handler {
                    faq=>9,bug=>'Dom Coord Interface',});                     faq=>9,bug=>'Dom Coord Interface',});
            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_Request',undef,'Course_Request');             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 1338  sub handler { Line 1434  sub handler {
                  text=>&mt('[_1] Requests Updated',),                   text=>&mt('[_1] Requests Updated',),
                  faq=>9,bug=>'Dom Coord Interface',},);                   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_Requests',undef,'Course_Requests');
            $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>'.
Line 1350  sub handler { Line 1446  sub handler {
                    faq=>9,bug=>'Dom Coord Interface',});                     faq=>9,bug=>'Dom Coord Interface',});
            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_Request',undef,'Course_Request');             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 1363  sub handler { Line 1464  sub handler {
                  {href=>"/adm/createcourse?phase=requestvalidation",                   {href=>"/adm/createcourse?phase=requestvalidation",
                    text=>&mt('Validation Attempted'),},);                     text=>&mt('Validation Attempted'),},);
            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_Request',undef,'Course_Request');             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.155  
changed lines
  Added in v.1.158.2.3.2.3


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