version 1.10, 2005/02/21 23:47:46
|
version 1.21, 2006/11/27 16:37:36
|
Line 27 use strict;
|
Line 27 use strict;
|
use Apache::Constants qw(:common :http :methods); |
use Apache::Constants qw(:common :http :methods); |
use Apache::loncacc; |
use Apache::loncacc; |
use Apache::loncommon(); |
use Apache::loncommon(); |
use Apache::Log(); |
|
use Apache::lonnet; |
use Apache::lonnet; |
use Apache::imsprocessor; |
use Apache::imsprocessor; |
use HTML::Parser; |
use HTML::Parser; |
Line 35 use HTML::Entities();
|
Line 34 use HTML::Entities();
|
use Apache::lonlocal; |
use Apache::lonlocal; |
use Apache::lonupload; |
use Apache::lonupload; |
use File::Basename(); |
use File::Basename(); |
|
use LONCAPA; |
|
|
# ---------------------------------------------------------------- Jscript One |
# ---------------------------------------------------------------- Jscript One |
sub jscript_one { |
sub jscript_one { |
my ($fullpath,$jsref) = @_; |
my ($fullpath,$jsref) = @_; |
|
|
|
my %body_layout = ('rightmargin' => "0", |
|
'leftmargin' => "0", |
|
'marginwidth' => "0", |
|
'topmargin' => "0", |
|
'marginheight' => "0"); |
|
my $start_page = |
|
&Apache::loncommon::start_page('Create IMS import directory',undef, |
|
{'only_body' => 1, |
|
'add_entries' => \%body_layout, |
|
'js_ready' => 1,}); |
|
my $end_page = |
|
&Apache::loncommon::end_page({'js_ready' => 1,}); |
|
|
$$jsref = <<"END_OF_ONE"; |
$$jsref = <<"END_OF_ONE"; |
function verify() { |
function verify() { |
if ((document.forms.dataForm.newdir.value == '') || (!document.forms.dataForm.newdir.value)) { |
if ((document.forms.dataForm.newdir.value == '') || (!document.forms.dataForm.newdir.value)) { |
Line 62 function createWin() {
|
Line 76 function createWin() {
|
document.dataForm.newdir.value = ""; |
document.dataForm.newdir.value = ""; |
newWindow = window.open("","CreateDir","HEIGHT=400,WIDTH=750,scrollbars=yes") |
newWindow = window.open("","CreateDir","HEIGHT=400,WIDTH=750,scrollbars=yes") |
newWindow.document.open() |
newWindow.document.open() |
newWindow.document.write("<html><head><title>Create IMS import directory</title><meta http-equiv='pragma' content='no-cache'>\\n") |
newWindow.document.write('$start_page') |
newWindow.document.write("</head><body bgcolor='#CCFFDD' topmargin='0' leftmargin='0' marginheight='0'marginwidth='0' rightmargin='0'>\\n") |
newWindow.document.write("\\n<img border='0' src='/adm/lonInterFace/author.jpg' alt='[Author Header]'>\\n") |
newWindow.document.write("<img border='0' src='/adm/lonInterFace/author.jpg' alt='[Author Header]'>\\n") |
|
newWindow.document.write("<table border='0' cellspacing='0' cellpadding='0' width='600' bgcolor='#CCFFDD'>\\n") |
newWindow.document.write("<table border='0' cellspacing='0' cellpadding='0' width='600' bgcolor='#CCFFDD'>\\n") |
newWindow.document.write("<tr><td width='2'> </td><td width='3'> </td>\\n") |
newWindow.document.write("<tr><td width='2'> </td><td width='3'> </td>\\n") |
newWindow.document.write("<td><h3>Location: <tt>$fullpath</tt></h3><h3>New Directory</h3></td></tr>\\n") |
newWindow.document.write("<td><h3>Location: <tt>$fullpath</tt></h3><h3>New Directory</h3></td></tr>\\n") |
newWindow.document.write("<tr><td width='2'> </td><td width='3'> </td>\\n") |
newWindow.document.write("<tr><td width='2'> </td><td width='3'> </td>\\n") |
newWindow.document.write("<td><form name='fileaction' action='/adm/cfile' method='post'>\\n") |
newWindow.document.write("<td><form name='fileaction' action='/adm/cfile' method='post'>\\n") |
newWindow.document.write("<font face='arial,helvetica,sans-serif'>Enter the name of the new directory where you will store the contents of your IMS package.<br /><br />") |
newWindow.document.write("<font face='arial,helvetica,sans-serif'>Enter the name of the new directory where you will store the contents of your IMS package.<br /><br />") |
newWindow.document.write("<input type='hidden' name='filename' value='$fullpath'>") |
newWindow.document.write("<input type='hidden' name='filename' value='$fullpath' />") |
newWindow.document.write("<input type='hidden' name='action' value='newdir'>") |
newWindow.document.write("<input type='hidden' name='action' value='newdir' />") |
newWindow.document.write("<input type='hidden' name='callingmode' value='imsimport'>") |
newWindow.document.write("<input type='hidden' name='callingmode' value='imsimport' />") |
newWindow.document.write("$fullpath<input type='text' name='newfilename' value=''/>") |
newWindow.document.write("$fullpath<input type='text' name='newfilename' value='' />") |
newWindow.document.write("<input type='button' value='Go' onClick='document.fileaction.submit();' />") |
newWindow.document.write("<input type='button' value='Go' onClick='document.fileaction.submit();' />") |
newWindow.document.write("</td></tr>\\n") |
newWindow.document.write("</td></tr>\\n") |
newWindow.document.write("</table></body></html>") |
newWindow.document.write("</table>") |
|
newWindow.document.write('$end_page') |
newWindow.document.close() |
newWindow.document.close() |
newWindow.focus() |
newWindow.focus() |
} |
} |
Line 292 sub display_one {
|
Line 306 sub display_one {
|
<font face='Arial,Helvetica,sans-serif'> |
<font face='Arial,Helvetica,sans-serif'> |
Please choose the CMS used to create your IMS content package. |
Please choose the CMS used to create your IMS content package. |
<select name="source"> |
<select name="source"> |
<option value='-1' selected="true">Please select |
<option value='-1' selected="true">Please select</option> |
<option value='bb5'>Blackboard 5 |
<option value='bb5'>Blackboard 5</option> |
<option value='bb6'>Blackboard 6 |
<option value='bb6'>Blackboard 6</option> |
<option value='angel'>ANGEL |
<option value='angel'>ANGEL</option> |
<option value='webct4'>WebCT 4 |
<option value='webctce4'>WebCT 4 Campus Edition</option> |
|
<option value='webctvista4'>WebCT Vista 4</option> |
</select> |
</select> |
</font> |
</font> |
</td> |
</td> |
Line 319 Please choose the CMS used to create you
|
Line 334 Please choose the CMS used to create you
|
<td> </td> |
<td> </td> |
<td> |
<td> |
<font face='Arial,Helvetica,sans-serif'> |
<font face='Arial,Helvetica,sans-serif'> |
Please choose a destination LON-CAPA directory in which to store the contents of the IMS package file. <input type="button" name="createdir" value="Create Directory" onClick="javascript:createWin()"><input type="hidden" name="newdir" value=""></font> |
Please choose a destination LON-CAPA directory in which to store the contents of the IMS package file. <input type="button" name="createdir" value="Create Directory" onClick="javascript:createWin()" /><input type="hidden" name="newdir" value="" /></font> |
</td> |
</td> |
</tr> |
</tr> |
<tr> |
<tr> |
Line 331 Please choose a destination LON-CAPA dir
|
Line 346 Please choose a destination LON-CAPA dir
|
</tr> |
</tr> |
<tr> |
<tr> |
<td colspan='2'> |
<td colspan='2'> |
<input type="hidden" name="uploaduname" value="$uname"> |
<input type="hidden" name="uploaduname" value="$uname" /> |
<input type="hidden" name="filename" value="$fn"> |
<input type="hidden" name="filename" value="$fn" /> |
<input type="hidden" name="phase" value="three"> |
<input type="hidden" name="phase" value="three" /> |
</td> |
</td> |
</tr> |
</tr> |
<tr> |
<tr> |
Line 344 Please choose a destination LON-CAPA dir
|
Line 359 Please choose a destination LON-CAPA dir
|
<table border='0' cellspacing='0' cellpadding='0' width="100%"> |
<table border='0' cellspacing='0' cellpadding='0' width="100%"> |
<tr> |
<tr> |
<td align='left'> |
<td align='left'> |
<input type='button' name='exitpage' value='Exit now' onClick="javascript:location.href='$fullpath'"> |
<input type='button' name='exitpage' value='Exit now' onClick="javascript:location.href='$fullpath'" /> |
</td> |
</td> |
<td align='right'> |
<td align='right'> |
<input type="button" name="nextpage" value="Proceed" onClick="javascript:nextPage()"> |
<input type="button" name="nextpage" value="Proceed" onClick="javascript:nextPage()" /> |
</td> |
</td> |
</tr> |
</tr> |
</table> |
</table> |
Line 365 END_OF_ONE
|
Line 380 END_OF_ONE
|
sub display_two { |
sub display_two { |
my ($r,$zipupload,$areas,$areaname,$cmsmap,$uname,$newdir,$numcrs,$fullpath) = @_; |
my ($r,$zipupload,$areas,$areaname,$cmsmap,$uname,$newdir,$numcrs,$fullpath) = @_; |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['folder','source']); |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['folder','source']); |
my $cms = $ENV{'form.source'}; |
my $cms = $env{'form.source'}; |
my $dirname = $ENV{'form.newdir'}; |
my $dirname = $env{'form.newdir'}; |
my $tempdir = &Apache::imsprocessor::create_tempdir('CSTR',$dirname,''); |
my $tempdir = &Apache::imsprocessor::create_tempdir('CSTR',$dirname,''); |
my $fname = &Apache::imsprocessor::uploadzip('CSTR',$tempdir,$zipupload); |
my $fname = &Apache::imsprocessor::uploadzip('CSTR',$tempdir,$zipupload); |
my $unzip_result = ''; |
my $unzip_result = ''; |
Line 400 sub display_two {
|
Line 415 sub display_two {
|
my $conditions; |
my $conditions; |
|
|
if ($unzip_result eq 'ok') { |
if ($unzip_result eq 'ok') { |
$manifest_result = &Apache::imsprocessor::process_manifest($cms,$tempdir,\%resources,\%items,\%hrefs,\%resinfo,'choose',\%includedres,\%includeditems); |
$manifest_result = &Apache::imsprocessor::process_manifest($cms, |
|
$tempdir,\%resources,\%items,\%hrefs,\%resinfo, |
|
'choose',\%includedres,\%includeditems); |
if ($manifest_result eq 'ok') { |
if ($manifest_result eq 'ok') { |
foreach my $res (sort keys %resources) { |
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' |
|
|| $cms eq 'webctvista4') { |
foreach my $area (keys %{$$cmsmap{$cms}}) { |
foreach my $area (keys %{$$cmsmap{$cms}}) { |
if ($resources{$res}{type} eq $$cmsmap{$cms}{$area}) { |
if ($resources{$res}{type} eq $$cmsmap{$cms}{$area}) { |
$count{$area} ++; |
$count{$area} ++; |
Line 482 ENDBLOCK
|
Line 500 ENDBLOCK
|
if ($area eq 'board') { |
if ($area eq 'board') { |
$r->print(" <td align='left'><font face='arial,helvetica,sans-serif'> |
$r->print(" <td align='left'><font face='arial,helvetica,sans-serif'> |
<select name='db_handling'> |
<select name='db_handling'> |
<option value='-2'><-- Check Import first |
<option value='-2'><-- Check Import first</option> |
</select></font> |
</select></font> |
</td>"); |
</td>"); |
} elsif ($area eq 'users') { |
} elsif ($area eq 'users') { |
$r->print(" <td align='left'><font face='arial,helvetica,sans-serif'> |
$r->print(" <td align='left'><font face='arial,helvetica,sans-serif'> |
<select name='user_handling'> |
<select name='user_handling'> |
<option value='-2'><-- Check Import first |
<option value='-2'><-- Check Import first</option> |
</select> |
</select> |
</font> |
</font> |
</td>"); |
</td>"); |
Line 535 ENDBLOCKTWO
|
Line 553 ENDBLOCKTWO
|
<br /><br /> |
<br /><br /> |
Choose course: |
Choose course: |
<select name='targetcourse'> |
<select name='targetcourse'> |
<option value='-1'>Not required |
<option value='-1'>Not required</option> |
</select></font> |
</select></font> |
</td> |
</td> |
</tr> |
</tr> |
Line 557 Choose course:
|
Line 575 Choose course:
|
</tr> |
</tr> |
<tr> |
<tr> |
<td colspan='2'> |
<td colspan='2'> |
<input type="hidden" name="newdir" value="$ENV{'form.newdir'}" /> |
<input type="hidden" name="newdir" value="$env{'form.newdir'}" /> |
<input type="hidden" name="conditions" value="$conditions" /> |
<input type="hidden" name="conditions" value="$conditions" /> |
<input type="hidden" name="source" value="$cms" /> |
<input type="hidden" name="source" value="$cms" /> |
<input type="hidden" name="tempdir" value="$tempdir" /> |
<input type="hidden" name="tempdir" value="$tempdir" /> |
Line 579 ENDBLOCK
|
Line 597 ENDBLOCK
|
<table border='0' cellspacing='0' cellpadding='0' width="100%"> |
<table border='0' cellspacing='0' cellpadding='0' width="100%"> |
<tr> |
<tr> |
<td align='left'> |
<td align='left'> |
<input type='button' name='exitpage' value='Exit now' onClick="javascript:location.href='$fullpath'"> |
<input type='button' name='exitpage' value='Exit now' onClick="javascript:location.href='$fullpath'" /> |
</td> |
</td> |
<td align='right'> |
<td align='right'> |
<input type="button" name="nextpage" value="Import package" onClick="javascript:nextPage($counter)"> |
<input type="button" name="nextpage" value="Import package" onClick="javascript:nextPage($counter)" /> |
</td> |
</td> |
</tr> |
</tr> |
</table> |
</table> |
Line 606 sub display_three {
|
Line 624 sub display_three {
|
my ($r,$uname,$udom,$areas,$areaname,$cmsmap,$destdir,$newdir) = @_; |
my ($r,$uname,$udom,$areas,$areaname,$cmsmap,$destdir,$newdir) = @_; |
my $crs = ''; |
my $crs = ''; |
my $cdom = ''; |
my $cdom = ''; |
my $chome = ''; |
|
my $db_handling = ''; |
my $db_handling = ''; |
my $timenow = time; |
my $timenow = time; |
my $announce_handling = 'ok'; |
my $announce_handling = 'ok'; |
my $cms = $ENV{'form.source'}; |
my $cms = $env{'form.source'}; |
if ( defined($ENV{'form.bb_crs'}) ) { |
if ( defined($env{'form.bb_crs'}) ) { |
($cdom,$crs) = split/\//,$ENV{'form.bb_crs'}; |
($cdom,$crs) = split/\//,$env{'form.bb_crs'}; |
$chome = &Apache::lonnet::homeserver($crs,$cdom); |
|
} |
} |
my $user_crs = ''; |
my $user_crs = ''; |
my $user_cdom = ''; |
my $user_cdom = ''; |
my $user_handling = ''; |
my $user_handling = ''; |
if ( defined($ENV{'form.user_crs'}) ) { |
if ( defined($env{'form.user_crs'}) ) { |
($user_cdom,$user_crs) = split/\//,$ENV{'form.user_crs'}; |
($user_cdom,$user_crs) = split/\//,$env{'form.user_crs'}; |
} |
} |
my $seqstem = "/res/$udom/$uname/$newdir"; |
my $seqstem = "/res/$udom/$uname/$newdir"; |
my %importareas = (); |
my %importareas = (); |
Line 644 sub display_three {
|
Line 660 sub display_three {
|
my @pages = (); |
my @pages = (); |
my @sequences = (); |
my @sequences = (); |
my @resrcfiles = (); |
my @resrcfiles = (); |
|
my @assessmentfiles = (); |
|
|
my $tempdir = $ENV{'form.tempdir'}; |
my $tempdir = $env{'form.tempdir'}; |
|
|
foreach my $area (@{$areas}) { |
foreach my $area (@{$areas}) { |
if (defined($ENV{"form.$area"}) ) { |
if (defined($env{"form.$area"}) ) { |
if ($cms eq 'angel' && $area eq 'doc') { |
if ($cms eq 'angel' && $area eq 'doc') { |
foreach (@{$$cmsmap{$cms}{$area}}) { |
foreach (@{$$cmsmap{$cms}{$area}}) { |
$importareas{$_} = 1; |
$importareas{$_} = 1; |
Line 657 sub display_three {
|
Line 674 sub display_three {
|
$importareas{$$cmsmap{$cms}{$area}} = 1; |
$importareas{$$cmsmap{$cms}{$area}} = 1; |
} |
} |
if ($area eq 'board') { |
if ($area eq 'board') { |
$db_handling = $ENV{'form.db_handling'}; |
$db_handling = $env{'form.db_handling'}; |
} elsif ($area eq 'users') { |
} elsif ($area eq 'users') { |
$user_handling = $ENV{'form.user_handling'}; |
$user_handling = $env{'form.user_handling'}; |
} |
} |
} |
} |
} |
} |
|
|
my $manifest_result = &Apache::imsprocessor::process_manifest($cms,$tempdir,\%resources,\%items,\%hrefs,\%resinfo,'prepare',\%includedres); |
my $manifest_result = &Apache::imsprocessor::process_manifest($cms,$tempdir, |
|
\%resources,\%items,\%hrefs,\%resinfo,'prepare', |
|
\%includedres); |
if ($manifest_result eq 'ok') { |
if ($manifest_result eq 'ok') { |
foreach my $res (sort keys %resources) { |
foreach my $res (sort keys %resources) { |
if ($importareas{$resources{$res}{type}}) { |
if ($importareas{$resources{$res}{type}}) { |
$includedres{$res} = 1; |
$includedres{$res} = 1; |
|
if ($resources{$res}{type} eq 'webct.manifest' || |
|
$resources{$res}{type} eq 'webct.assessment' || |
|
$resources{$res}{type} eq 'webct.question') { |
|
push(@assessmentfiles,$res); |
|
} |
} |
} |
} |
} |
foreach my $itm (sort keys %items) { |
foreach my $itm (sort keys %items) { |
Line 680 sub display_three {
|
Line 704 sub display_three {
|
&Apache::imsprocessor::get_parents(\%includeditems,\%items,$itm); |
&Apache::imsprocessor::get_parents(\%includeditems,\%items,$itm); |
} |
} |
|
|
$manifest_result = &Apache::imsprocessor::process_manifest($cms,$tempdir,\%resources,\%items,\%hrefs,\%resinfo,'build',\%includedres,\%includeditems); |
$manifest_result = &Apache::imsprocessor::process_manifest($cms,$tempdir, |
|
\%resources,\%items,\%hrefs,\%resinfo,'build', |
|
\%includedres,\%includeditems); |
if ($manifest_result eq 'ok') { |
if ($manifest_result eq 'ok') { |
&Apache::imsprocessor::target_resources(\%resources,\%importareas,\@targets); |
&Apache::imsprocessor::target_resources(\%resources,\%importareas,\@targets); |
|
|
Line 699 sub display_three {
|
Line 725 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); |
&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,\@assessmentfiles); |
|
|
&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); |
&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); |
|
|
Line 732 sub get_ccroles {
|
Line 758 sub get_ccroles {
|
my @crslist = (); |
my @crslist = (); |
my %descrip =(); |
my %descrip =(); |
foreach my $key (keys %roles ) { |
foreach my $key (keys %roles ) { |
if ($key =~ m/^\/(\w+)\/(\w+)_cc$/) { |
if ($key =~ m{^/($LONCAPA::domain_re)/($LONCAPA::username_re)_cc$}) { |
my $cdom = $1; |
my $cdom = $1; |
my $crs = $2; |
my $crs = $2; |
my $role_end = 0; |
my $role_end = 0; |
Line 801 sub handler {
|
Line 827 sub handler {
|
my $javascript = ''; |
my $javascript = ''; |
my $page_name = ''; |
my $page_name = ''; |
my $current_page = ''; |
my $current_page = ''; |
my $loadentries = ''; |
|
my $qcount = ''; |
my $qcount = ''; |
|
|
# get personal information for this user |
# get personal information for this user |
my $user=$ENV{'user.name'}; |
my $user=$env{'user.name'}; |
my $dom=$ENV{'user.domain'}; |
my $dom=$env{'user.domain'}; |
|
|
# |
# |
# re-attach user |
# re-attach user |
# |
# |
if ($ENV{'form.uploaduname'}) { |
if ($env{'form.uploaduname'}) { |
$ENV{'form.filename'}='/priv/'.$ENV{'form.uploaduname'}.'/'. |
$env{'form.filename'}='/priv/'.$env{'form.uploaduname'}.'/'. |
$ENV{'form.filename'}; |
$env{'form.filename'}; |
} |
} |
($uname,$udom)= |
($uname,$udom)= |
&Apache::loncacc::constructaccess($ENV{'form.filename'}, |
&Apache::loncacc::constructaccess($env{'form.filename'}, |
$r->dir_config('lonDefDomain')); |
$r->dir_config('lonDefDomain')); |
unless (($uname) && ($udom)) { |
unless (($uname) && ($udom)) { |
$r->log_reason($uname.' at '.$udom. |
$r->log_reason($uname.' at '.$udom. |
' trying to publish file '.$ENV{'form.filename'}. |
' trying to publish file '.$env{'form.filename'}. |
' - not authorized', |
' - not authorized', |
$r->filename); |
$r->filename); |
return HTTP_NOT_ACCEPTABLE; |
return HTTP_NOT_ACCEPTABLE; |
} |
} |
|
|
my $fn; |
my $fn; |
if ($ENV{'form.filename'}) { |
if ($env{'form.filename'}) { |
$fn=$ENV{'form.filename'}; |
$fn=$env{'form.filename'}; |
$fn=~s/^http\:\/\/[^\/]+\///; |
$fn=~s/^http\:\/\/[^\/]+\///; |
$fn=~s/^\///; |
$fn=~s/^\///; |
$fn=~s/(\~|priv\/)(\w+)//; |
$fn=~s/(\~|priv\/)(\w+)//; |
$fn=~s/\/+/\//g; |
$fn=~s/\/+/\//g; |
} else { |
} 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); |
' unspecified filename for upload', $r->filename); |
return HTTP_NOT_FOUND; |
return HTTP_NOT_FOUND; |
} |
} |
Line 844 sub handler {
|
Line 869 sub handler {
|
unless ($pathname eq '/') { |
unless ($pathname eq '/') { |
$fullpath .= '/'; |
$fullpath .= '/'; |
} |
} |
my $loadentries = ''; |
|
|
|
my @areas = (); |
my @areas = (); |
my %cmsmap = (); |
my %cmsmap = (); |
Line 856 sub handler {
|
Line 880 sub handler {
|
&Apache::loncommon::content_type($r,'text/html'); |
&Apache::loncommon::content_type($r,'text/html'); |
$r->send_http_header; |
$r->send_http_header; |
|
|
if ($ENV{'form.phase'} eq 'two') { |
if ($env{'form.phase'} eq 'two') { |
&jscript_one($fullpath,\$javascript,$uname,$udom); |
&jscript_one($fullpath,\$javascript,$uname,$udom); |
} elsif ($ENV{'form.phase'} eq 'three') { |
} elsif ($env{'form.phase'} eq 'three') { |
&jscript_two(\$javascript,$user,$dom,\$numcrs); |
&jscript_two(\$javascript,$user,$dom,\$numcrs); |
} elsif ($ENV{'form.phase'} eq 'four') { |
} elsif ($env{'form.phase'} eq 'four') { |
&jscript_three(\$javascript); |
&jscript_three(\$javascript); |
} |
} |
$r->print("<html><head><title>LON-CAPA Construction Space</title><script type=\"text/javascript\">\n//<!--\n$javascript\n// --></script>\n</head>"); |
$javascript = "<script type=\"text/javascript\">\n//<!--\n$javascript\n// --></script>\n"; |
|
|
$r->print(&Apache::loncommon::bodytag('Upload IMS package to Construction Space',undef,$loadentries)); |
my $title = 'Upload IMS package to Construction Space'; |
|
$r->print(&Apache::loncommon::start_page($title, $javascript)); |
if (($uname ne $ENV{'user.name'}) || ($udom ne $ENV{'user.domain'})) { |
|
|
if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) { |
$r->print('<h3><font color=red>'.&mt('Co-Author').': '.$uname. |
$r->print('<h3><font color=red>'.&mt('Co-Author').': '.$uname. |
&mt(' at ').$udom.'</font></h3>'); |
&mt(' at ').$udom.'</font></h3>'); |
} |
} |
if ($ENV{'form.phase'} eq 'two') { |
if ($env{'form.phase'} eq 'two') { |
my $flag = &Apache::lonupload::phasetwo($r,$fn,$uname,$udom,'imsimport'); |
my $flag = &Apache::lonupload::phasetwo($r,$fn,$uname,$udom,'imsimport'); |
if ($flag eq 'ok') { |
if ($flag eq 'ok') { |
&display_one($r,$uname,$fn,$fullpath); |
&display_one($r,$uname,$fn,$fullpath); |
} |
} |
} elsif ( ($ENV{'form.phase'} eq 'three') || ($ENV{'form.phase'} eq 'four') ) { |
} elsif ( ($env{'form.phase'} eq 'three') || ($env{'form.phase'} eq 'four') ) { |
my $docroot = $ENV{'form.newdir'}; |
my $docroot = $env{'form.newdir'}; |
my $newdir = ''; |
my $newdir = ''; |
if ($docroot =~ m|public_html/(.+)$|) { |
if ($docroot =~ m|public_html/(.+)$|) { |
$newdir = $1; |
$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); |
&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); |
&display_three ($r,$uname,$udom,\@areas,\%areaname,\%cmsmap,$docroot,$newdir); |
} |
} |
} else { |
} else { |
&Apache::lonupload::phaseone($r,$fn,$uname,$udom,'imsimport'); |
&Apache::lonupload::phaseone($r,$fn,$uname,$udom,'imsimport'); |
} |
} |
$r->print('</body></html>'); |
$r->print(&Apache::loncommon::end_page()); |
return OK; |
return OK; |
} |
} |
1; |
1; |