--- loncom/imspackages/imsimport.pm 2005/02/21 23:47:46 1.10 +++ loncom/imspackages/imsimport.pm 2006/03/27 18:39:55 1.17 @@ -27,7 +27,6 @@ use strict; use Apache::Constants qw(:common :http :methods); use Apache::loncacc; use Apache::loncommon(); -use Apache::Log(); use Apache::lonnet; use Apache::imsprocessor; use HTML::Parser; @@ -39,6 +38,17 @@ use File::Basename(); # ---------------------------------------------------------------- Jscript One sub jscript_one { my ($fullpath,$jsref) = @_; + + my $start_page = + &Apache::loncommon::start_page('Create IMS import directory',undef, + {'only_body' => 1, + 'add_entries' => "topmargin='0' leftmargin='0' marginheight='0'marginwidth='0' rightmargin='0'", + 'js_ready' => 1,}); + my $end_page = + &Apache::loncommon::end_page({'js_ready' => 1,}); + $start_page =~ s/\n/\\n/g; + $end_page =~ s/\n/\\n/g; + $$jsref = <<"END_OF_ONE"; function verify() { if ((document.forms.dataForm.newdir.value == '') || (!document.forms.dataForm.newdir.value)) { @@ -62,22 +72,22 @@ function createWin() { document.dataForm.newdir.value = ""; newWindow = window.open("","CreateDir","HEIGHT=400,WIDTH=750,scrollbars=yes") newWindow.document.open() - newWindow.document.write("Create IMS import directory\\n") - newWindow.document.write("\\n") - newWindow.document.write("[Author Header]\\n") + newWindow.document.write('$start_page') + newWindow.document.write("\\n[Author Header]\\n") newWindow.document.write("\\n") newWindow.document.write("\\n") newWindow.document.write("\\n") newWindow.document.write("\\n") newWindow.document.write("\\n") - newWindow.document.write("
  

Location: $fullpath

New Directory

  
\\n") newWindow.document.write("Enter the name of the new directory where you will store the contents of your IMS package.

") - newWindow.document.write("") - newWindow.document.write("") - newWindow.document.write("") - newWindow.document.write("$fullpath") + newWindow.document.write("") + newWindow.document.write("") + newWindow.document.write("") + newWindow.document.write("$fullpath") newWindow.document.write("") newWindow.document.write("
") + newWindow.document.write("") + newWindow.document.write('$end_page') newWindow.document.close() newWindow.focus() } @@ -292,11 +302,11 @@ sub display_one { Please choose the CMS used to create your IMS content package.   @@ -319,7 +329,7 @@ Please choose the CMS used to create you   -Please choose a destination LON-CAPA directory in which to store the contents of the IMS package file. +Please choose a destination LON-CAPA directory in which to store the contents of the IMS package file. @@ -331,9 +341,9 @@ Please choose a destination LON-CAPA dir - - - + + + @@ -344,10 +354,10 @@ Please choose a destination LON-CAPA dir
- + - +
@@ -365,8 +375,8 @@ END_OF_ONE sub display_two { my ($r,$zipupload,$areas,$areaname,$cmsmap,$uname,$newdir,$numcrs,$fullpath) = @_; &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['folder','source']); - my $cms = $ENV{'form.source'}; - my $dirname = $ENV{'form.newdir'}; + my $cms = $env{'form.source'}; + my $dirname = $env{'form.newdir'}; my $tempdir = &Apache::imsprocessor::create_tempdir('CSTR',$dirname,''); my $fname = &Apache::imsprocessor::uploadzip('CSTR',$tempdir,$zipupload); my $unzip_result = ''; @@ -403,7 +413,7 @@ sub display_two { $manifest_result = &Apache::imsprocessor::process_manifest($cms,$tempdir,\%resources,\%items,\%hrefs,\%resinfo,'choose',\%includedres,\%includeditems); if ($manifest_result eq 'ok') { foreach my $res (sort keys %resources) { - if ($cms eq 'bb5' || $cms eq 'bb6' || $cms eq 'webct4') { + if ($cms eq 'bb5' || $cms eq 'bb6' || $cms eq 'webctce4') { foreach my $area (keys %{$$cmsmap{$cms}}) { if ($resources{$res}{type} eq $$cmsmap{$cms}{$area}) { $count{$area} ++; @@ -482,13 +492,13 @@ ENDBLOCK if ($area eq 'board') { $r->print("    "); } elsif ($area eq 'users') { $r->print("    "); @@ -535,7 +545,7 @@ ENDBLOCKTWO

Choose course:   @@ -557,7 +567,7 @@ Choose course:     - + @@ -579,10 +589,10 @@ ENDBLOCK
- + - +
@@ -606,20 +616,18 @@ sub display_three { my ($r,$uname,$udom,$areas,$areaname,$cmsmap,$destdir,$newdir) = @_; my $crs = ''; my $cdom = ''; - my $chome = ''; my $db_handling = ''; my $timenow = time; my $announce_handling = 'ok'; - my $cms = $ENV{'form.source'}; - if ( defined($ENV{'form.bb_crs'}) ) { - ($cdom,$crs) = split/\//,$ENV{'form.bb_crs'}; - $chome = &Apache::lonnet::homeserver($crs,$cdom); + my $cms = $env{'form.source'}; + if ( defined($env{'form.bb_crs'}) ) { + ($cdom,$crs) = split/\//,$env{'form.bb_crs'}; } my $user_crs = ''; my $user_cdom = ''; my $user_handling = ''; - if ( defined($ENV{'form.user_crs'}) ) { - ($user_cdom,$user_crs) = split/\//,$ENV{'form.user_crs'}; + if ( defined($env{'form.user_crs'}) ) { + ($user_cdom,$user_crs) = split/\//,$env{'form.user_crs'}; } my $seqstem = "/res/$udom/$uname/$newdir"; my %importareas = (); @@ -645,10 +653,10 @@ sub display_three { my @sequences = (); my @resrcfiles = (); - my $tempdir = $ENV{'form.tempdir'}; + my $tempdir = $env{'form.tempdir'}; foreach my $area (@{$areas}) { - if (defined($ENV{"form.$area"}) ) { + if (defined($env{"form.$area"}) ) { if ($cms eq 'angel' && $area eq 'doc') { foreach (@{$$cmsmap{$cms}{$area}}) { $importareas{$_} = 1; @@ -657,9 +665,9 @@ sub display_three { $importareas{$$cmsmap{$cms}{$area}} = 1; } if ($area eq 'board') { - $db_handling = $ENV{'form.db_handling'}; + $db_handling = $env{'form.db_handling'}; } elsif ($area eq 'users') { - $user_handling = $ENV{'form.user_handling'}; + $user_handling = $env{'form.user_handling'}; } } } @@ -699,7 +707,7 @@ sub display_three { &Apache::imsprocessor::process_resinfo($cms,'CSTR',$tempdir,$destdir,\%items,\%resources,\@targets,\@boards,\@announcements,\@quizzes,\@surveys,\@pools,\@groups,\%messages,\@timestamp,\%boardnum,\%resinfo,$udom,$uname,$cdom,$crs,$db_handling,$user_handling,\%total,$seqstem,$seqstem,\@resrcfiles,\@packages,\%hrefs,\@pages,\@sequences,\%randompicks); - my $copy_result = &Apache::imsprocessor::copy_resources('CSTR',$cms,\%hrefs,$tempdir,\@targets,\%urls,$crs,$cdom,$chome,$destdir,$timenow,\%importareas); + my $copy_result = &Apache::imsprocessor::copy_resources('CSTR',$cms,\%hrefs,$tempdir,\@targets,\%urls,$crs,$cdom,$destdir,$timenow,\%importareas); &Apache::imsprocessor::build_structure($cms,'CSTR',$destdir,\%items,\%resinfo,\%resources,\@targets,\%hrefs,$udom,$uname,$newdir,$timenow,$cdom,$crs,\@timestamp,\%total,\@boards,\@announcements,\@quizzes,\@surveys,\@pools,\%boardnum,\@pages,\@sequences,\@topurls,\@topnames,\@packages,\%includeditems,\%randompicks); @@ -805,36 +813,36 @@ sub handler { my $qcount = ''; # get personal information for this user - my $user=$ENV{'user.name'}; - my $dom=$ENV{'user.domain'}; + my $user=$env{'user.name'}; + my $dom=$env{'user.domain'}; # # re-attach user # - if ($ENV{'form.uploaduname'}) { - $ENV{'form.filename'}='/priv/'.$ENV{'form.uploaduname'}.'/'. - $ENV{'form.filename'}; + if ($env{'form.uploaduname'}) { + $env{'form.filename'}='/priv/'.$env{'form.uploaduname'}.'/'. + $env{'form.filename'}; } ($uname,$udom)= - &Apache::loncacc::constructaccess($ENV{'form.filename'}, + &Apache::loncacc::constructaccess($env{'form.filename'}, $r->dir_config('lonDefDomain')); unless (($uname) && ($udom)) { $r->log_reason($uname.' at '.$udom. - ' trying to publish file '.$ENV{'form.filename'}. + ' trying to publish file '.$env{'form.filename'}. ' - not authorized', $r->filename); return HTTP_NOT_ACCEPTABLE; } my $fn; - if ($ENV{'form.filename'}) { - $fn=$ENV{'form.filename'}; + if ($env{'form.filename'}) { + $fn=$env{'form.filename'}; $fn=~s/^http\:\/\/[^\/]+\///; $fn=~s/^\///; $fn=~s/(\~|priv\/)(\w+)//; $fn=~s/\/+/\//g; } else { - $r->log_reason($ENV{'user.name'}.' at '.$ENV{'user.domain'}. + $r->log_reason($env{'user.name'}.' at '.$env{'user.domain'}. ' unspecified filename for upload', $r->filename); return HTTP_NOT_FOUND; } @@ -856,41 +864,44 @@ sub handler { &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; - if ($ENV{'form.phase'} eq 'two') { + if ($env{'form.phase'} eq 'two') { &jscript_one($fullpath,\$javascript,$uname,$udom); - } elsif ($ENV{'form.phase'} eq 'three') { + } elsif ($env{'form.phase'} eq 'three') { &jscript_two(\$javascript,$user,$dom,\$numcrs); - } elsif ($ENV{'form.phase'} eq 'four') { + } elsif ($env{'form.phase'} eq 'four') { &jscript_three(\$javascript); } - $r->print("LON-CAPA Construction Space\n"); - - $r->print(&Apache::loncommon::bodytag('Upload IMS package to Construction Space',undef,$loadentries)); - - if (($uname ne $ENV{'user.name'}) || ($udom ne $ENV{'user.domain'})) { + $javascript = "\n"; + + my $title = 'Upload IMS package to Construction Space'; + $r->print(&Apache::loncommon::start_page($title, $javascript, + {'add_entries' => + $loadentries,})); + + if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) { $r->print('

'.&mt('Co-Author').': '.$uname. &mt(' at ').$udom.'

'); } - if ($ENV{'form.phase'} eq 'two') { + if ($env{'form.phase'} eq 'two') { my $flag = &Apache::lonupload::phasetwo($r,$fn,$uname,$udom,'imsimport'); if ($flag eq 'ok') { &display_one($r,$uname,$fn,$fullpath); } - } elsif ( ($ENV{'form.phase'} eq 'three') || ($ENV{'form.phase'} eq 'four') ) { - my $docroot = $ENV{'form.newdir'}; + } elsif ( ($env{'form.phase'} eq 'three') || ($env{'form.phase'} eq 'four') ) { + my $docroot = $env{'form.newdir'}; my $newdir = ''; if ($docroot =~ m|public_html/(.+)$|) { $newdir = $1; } - if ($ENV{'form.phase'} eq 'three') { + if ($env{'form.phase'} eq 'three') { &display_two ($r,$zipupload,\@areas,\%areaname,\%cmsmap,$uname,$newdir,\$numcrs,$fullpath); - } elsif ($ENV{'form.phase'} eq 'four') { + } elsif ($env{'form.phase'} eq 'four') { &display_three ($r,$uname,$udom,\@areas,\%areaname,\%cmsmap,$docroot,$newdir); } } else { &Apache::lonupload::phaseone($r,$fn,$uname,$udom,'imsimport'); } - $r->print(''); + $r->print(&Apache::loncommon::end_page()); return OK; } 1;