--- loncom/imspackages/imsimportdocs.pm 2009/11/20 14:39:32 1.26 +++ loncom/imspackages/imsimportdocs.pm 2014/12/11 00:35:53 1.34 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: imsimportdocs.pm,v 1.26 2009/11/20 14:39:32 bisitz Exp $ +# $Id: imsimportdocs.pm,v 1.34 2014/12/11 00:35:53 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -33,7 +33,6 @@ use Apache::londocs; use Apache::loncommon; use Apache::lonlocal; use Apache::imsprocessor; -use LONCAPA::Configuration; use LONCAPA::map(); use lib '/home/httpd/lib/perl/'; use LONCAPA; @@ -41,54 +40,41 @@ use LONCAPA; use strict; sub jscript_one { - my $javascript = shift; - $$javascript = qq# -function verify() { - if ((document.forms.pickcms.uploadname.value == '') || (!document.forms.pickcms.uploadname.value)) { - alert("You must provide the name of the IMS package to be imported") - return false - } - if (document.forms.pickcms.source.selectedIndex == 0) { - alert("You must choose the Course Management System from which the IMS package was exported"); - return false - } - return true -} - -function nextPage() { - if (verify()) { - document.forms.pickcms.submit() - } -} -#; - -} - -sub jscript_two { - my $javascript = shift; - $$javascript = qq# + my %lt = &Apache::lonlocal::texthash( + se => 'Select', + to => 'Import topics only', + tp => 'Import topics + posts (with author)', + tn => 'Import topics + posts (no author)', + es => 'Enroll students only', + ea => 'Enroll all users', + nr => 'Not required', + id => 'You must select one of the additional options when importing Discussion Boards.', + ie => 'You must select one of the additional options when importing Enrollment.', + ct => 'You must check at least one Content Type.', + ); + return <<"ENDJS"; function setOptions(caller,itemnum) { var opForm = document.forms.pickoptions var menu = 1 + itemnum*2 opForm.elements[menu].length = 0 if (opForm.elements[itemnum*2].checked == true) { if (caller == "board") { - opForm.elements[menu].options[0] = new Option("Select","-1",true,true) - opForm.elements[menu].options[1] = new Option("Import topics only","topics",true,true) - opForm.elements[menu].options[2] = new Option("Import topics + posts (with author)","allpost",true,true) - opForm.elements[menu].options[3] = new Option("Import topics + posts (no author)","allanon",true,true) + opForm.elements[menu].options[0] = new Option("$lt{'se'}","-1",true,true) + opForm.elements[menu].options[1] = new Option("$lt{'to'}","topics",true,true) + opForm.elements[menu].options[2] = new Option("$lt{'tp'}","allpost",true,true) + opForm.elements[menu].options[3] = new Option("$lt{'tn'}","allanon",true,true) } else { if (caller == "users") { opForm.elements[menu].length = 0 - opForm.elements[menu].options[0] = new Option("Select","-1",true,true) - opForm.elements[menu].options[1] = new Option("Enroll students only","students",true,true) - opForm.elements[menu].options[2] = new Option("Enroll all users","all",true,true) + opForm.elements[menu].options[0] = new Option("$lt{'se'}","-1",true,true) + opForm.elements[menu].options[1] = new Option("$lt{'es'}","students",true,true) + opForm.elements[menu].options[2] = new Option("$lt{'ea'}","all",true,true) } } } else { - opForm.elements[menu].options[0] = new Option("Not required","0",true,true) + opForm.elements[menu].options[0] = new Option("$lt{'nr'}","0",true,true) } opForm.elements[menu].selectedIndex = 0 } @@ -101,20 +87,20 @@ function verify(caller) { totcheck ++ if (opForm.elements[2*i].name == "board") { if (opForm.elements[2*i+1].selectedIndex == 0) { - alert("You must select one of the additional options when importing Discussion Boards ") + alert("$lt{'id'}") return false } } if (opForm.elements[2*i].name == "users") { if (opForm.elements[2*i+1].selectedIndex == 0) { - alert("You must select one of the additional options when importing Enrollment") + alert("$lt{'ie'}") return false } } } } if (totcheck == 0) { - alert("You must check the Checkbox for at least one Content Type"); + alert("$lt{'ct'}"); return false } return true @@ -125,22 +111,23 @@ function nextPage(caller) { document.forms.pickoptions.submit() } } -#; + +ENDJS + } -sub jscript_three { - my $javascript = shift; - $$javascript = qq| +sub jscript_two { + return <<"ENDJS"; function init(tf) { setTimeout("self.close()",3000) tf.submit(); } - |; + +ENDJS } sub handler { my $r = shift; - my $javascript = ''; &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; return OK if $r->header_only; @@ -177,15 +164,11 @@ sub handler { return OK; } - &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, - ['phase']); - - if ($env{'form.phase'} eq 'one') { - &jscript_one(\$javascript); + my $javascript; + if ($env{'form.phase'} eq 'one') { + $javascript = &jscript_one(); } elsif ($env{'form.phase'} eq 'two') { - &jscript_two(\$javascript); - } elsif ($env{'form.phase'} eq 'three') { - &jscript_three(\$javascript); + $javascript = &jscript_two(); } $javascript = @@ -200,59 +183,16 @@ sub handler { $r->print($start_page); if ($env{'form.phase'} eq 'one') { - &display_one($r); + &display_one($r,$coursenum,\@areas,\%areaname,%cmsmap); } elsif ($env{'form.phase'} eq 'two') { - &display_two($r,$coursenum,\@areas,\%areaname,%cmsmap); - } elsif ($env{'form.phase'} eq 'three') { - &display_three($r,$coursenum,$coursedom,$uname,$udom,\@areas,%cmsmap); + &display_two($r,$coursenum,$coursedom,$uname,$udom,\@areas,%cmsmap); } $r->print(&Apache::loncommon::end_page()); return OK; -} - - -sub display_one { - my ($r) = @_; - &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['folder']); - - $r->print( - '
'); } - -sub display_three { +sub display_two { my ($r,$crs,$cdom,$uname,$udom,$areas,%cmsmap) = @_; my $folder = $env{'form.folder'}; my $cms = $env{'form.source'}; @@ -516,16 +457,16 @@ sub display_three { my $manifest_result = &Apache::imsprocessor::process_manifest($cms,$tempdir,\%resources,\%items,\%hrefs,\%resinfo,'prepare',\%includedres,\%includeditems); if ($manifest_result eq 'ok') { - foreach my $res (sort keys %resources) { + foreach my $res (sort(keys(%resources))) { if ($importareas{$resources{$res}{type}}) { $includedres{$res} = 1; } } - foreach my $itm (sort keys %items) { + foreach my $itm (sort(keys(%items))) { &Apache::imsprocessor::get_imports(\%includeditems,\%items,\%resources,\%importareas,$itm); } } - foreach my $itm (sort keys %includeditems) { + foreach my $itm (sort(keys(%includeditems))) { &Apache::imsprocessor::get_parents(\%includeditems,\%items,$itm); } @@ -563,7 +504,7 @@ sub display_three { &Apache::imsprocessor::process_resinfo($cms,'DOCS',$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); - my $copy_result = &Apache::imsprocessor::copy_resources('DOCS',$cms,\%hrefs,$tempdir,\@targets,\%urls,$crs,$cdom,$destdir,$timenow,\%importareas); + my $copy_result = &Apache::imsprocessor::copy_resources('DOCS',$cms,\%hrefs,\%resources,$tempdir,\@targets,\%urls,$crs,$cdom,$destdir,$timenow,\%importareas); &Apache::imsprocessor::build_structure($cms,'DOCS',$destdir,\%items,\%resinfo,\%resources,\@targets,\%hrefs,$udom,$uname,'',$timenow,$cdom,$crs,\@timestamp,\%total,\@boards,\@announcements,\@quizzes,\@surveys,\@pools,\%boardnum,\@pages,\@sequences,\@topurls,\@topnames,\@packages,\%includeditems); @@ -609,47 +550,30 @@ sub display_three { if ($tempdir =~ m/^\/home\/httpd\/perl\/tmp\/$crs\/\d{10}/) { system("rm -r -f $tempdir"); } - $r->print(<- | -|
- | -- Your import is complete - | -
- | |
- |
-ENDBLOCK
- my $initblock = qq|
- |;
- $r->print($initblock);
- $r->print(< |
-
' + .&mt('Your import is complete.') + .'
' + ); + # Re-initialize Button + my $initbutton = + ''; + $r->print( + '' + ); } 1;