File:  [LON-CAPA] / loncom / interface / loncreatecourse.pm
Revision 1.3: download - view: text, annotated - select for diffs
Sat Feb 17 23:15:35 2001 UTC (23 years, 3 months ago) by www
Branches: MAIN
CVS tags: HEAD
Small HTML fixes

    1: # The LearningOnline Network
    2: # Create a course
    3: # (My Desk
    4: #
    5: # (Internal Server Error Handler
    6: #
    7: # (Login Screen
    8: # 5/21/99,5/22,5/25,5/26,5/31,6/2,6/10,7/12,7/14,
    9: # 1/14/00,5/29,5/30,6/1,6/29,7/1,11/9 Gerd Kortemeyer)
   10: #
   11: # 3/1/1 Gerd Kortemeyer)
   12: #
   13: # 3/1 Gerd Kortemeyer)
   14: #
   15: # 2/14,2/16,2/17 Gerd Kortemeyer
   16: #
   17: package Apache::loncreatecourse;
   18: 
   19: use strict;
   20: use Apache::Constants qw(:common :http);
   21: use Apache::lonnet;
   22: 
   23: # ===================================================== Phase one: fill-in form
   24: 
   25: sub phase_one {
   26:     my $r=shift;
   27: 
   28:     my $defdom=$ENV{'user.domain'};
   29:     $r->print(<<ENDDOCUMENT);
   30: <html>
   31: <head>
   32: <title>The LearningOnline Network with CAPA</title>
   33: </head>
   34: <body bgcolor="#FFFFFF">
   35: <img align=right src=/adm/lonIcons/lonlogos.gif>
   36: <h1>Create a new Course</h1>
   37: <form action=/adm/createcourse method=post>
   38: <h3>Course Title</h3>
   39: <input type=text size=50 name=title>
   40: <h3>Top-level Map</h3>
   41: <input type=text size=50 name=topmap>
   42: <h3>Course Cooordinator</h3>
   43: Username: <input type=text size=15 name=ccuname><br>
   44: Domain: <input type=text size=15 name=ccdomain value=$defdom>
   45: <input type=hidden name=phase value=two><p>
   46: <input type=submit value="Open Course">
   47: </form>
   48: </body>
   49: </html>
   50: ENDDOCUMENT
   51: }
   52: 
   53: # ====================================================== Phase two: make course
   54: 
   55: sub phase_two {
   56:     my $r=shift;
   57:     my $topurl='/res/'.&Apache::lonnet::declutter($ENV{'form.topmap'});
   58:     my $ccuname=$ENV{'form.ccuname'};
   59:     my $ccdomain=$ENV{'form.ccdomain'};
   60:     $ccuname=~s/\W//g;
   61:     $ccdomain=~s/\W//g;
   62:     my $cdescr=$ENV{'form.title'};
   63:     my $curl=$ENV{'form.topmap'};
   64:     $r->print(<<ENDENHEAD);
   65: <html>
   66: <head>
   67: <title>The LearningOnline Network with CAPA</title>
   68: </head>
   69: <body bgcolor="#FFFFFF">
   70: <img align=right src=/adm/lonIcons/lonlogos.gif>
   71: <h1>Create a new Course</h1>
   72: ENDENHEAD
   73: #
   74: # Verify data
   75: #
   76:     if (&Apache::lonnet::homeserver($ccuname,$ccdomain) eq 'no_host') {
   77:         $r->print('No such user '.$ccuname.' at '.$ccdomain.'</body></html>');
   78: 	return;
   79:     }
   80: 
   81: #
   82: # Open course
   83: #
   84:     my $courseid=&Apache::lonnet::createcourse($ENV{'user.domain'},
   85:                                                $cdescr,$curl);
   86: 
   87:     $r->print('New Course ID: '.$courseid.'<br>');
   88: #
   89: # Make current user course adminstrator
   90: #
   91:     $r->print('Assigning role of course coordinator to self: '.
   92:     &Apache::lonnet::assignrole(
   93:      $ENV{'user.domain'},$ENV{'user.name'},$courseid,'cc').'<br>');
   94: #
   95: # Make additional user course administrator
   96: #
   97:     $r->print('Assigning role of course coordinator to '.
   98:                $ccuname.' at '.$ccdomain.': '.
   99:     &Apache::lonnet::assignrole($ccdomain,$ccuname,$courseid,'cc').'<p>');
  100:     $r->print('Roles will be active at next login.</body></html>');
  101: }
  102: 
  103: # ===================================================================== Handler
  104: sub handler {
  105:     my $r = shift;
  106: 
  107:     if ($r->header_only) {
  108:        $r->content_type('text/html');
  109:        $r->send_http_header;
  110:        return OK;
  111:     }
  112: 
  113:     if (&Apache::lonnet::allowed('ccc',$ENV{'user.domain'})) {
  114:        $r->content_type('text/html');
  115:        $r->send_http_header;
  116: 
  117:        if ($ENV{'form.phase'} eq 'two') {
  118:            &phase_two($r);
  119:        } else {
  120: 	   &phase_one($r);
  121:        }
  122:    } else {
  123:       $ENV{'user.error.msg'}=
  124:         "/adm/createcourse:ccc:0:0:Cannot create courses";
  125:       return HTTP_NOT_ACCEPTABLE; 
  126:    }
  127:    return OK;
  128: } 
  129: 
  130: 1;
  131: __END__

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