--- loncom/interface/londocs.pm 2010/12/07 01:15:39 1.442 +++ loncom/interface/londocs.pm 2011/07/04 16:47:03 1.455 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.442 2010/12/07 01:15:39 www Exp $ +# $Id: londocs.pm,v 1.455 2011/07/04 16:47:03 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -280,6 +280,7 @@ sub exportcourse { my %discussiontime = &Apache::lonnet::dump('discussiontimes', $env{'course.'.$env{'request.course.id'}.'.domain'}, $env{'course.'.$env{'request.course.id'}.'.num'}); my $numdisc = keys(%discussiontime); + my $numprobs = 0; my $navmap = Apache::lonnavmaps::navmap->new(); if (!defined($navmap)) { $r->print(&Apache::loncommon::start_page('Export '.$crstype.' to IMS Package'). @@ -310,6 +311,7 @@ sub exportcourse { &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['archive','discussion']); + my $format = $env{'form.format'}; my @exportitems = &Apache::loncommon::get_env_multiple('form.archive'); my @discussions = &Apache::loncommon::get_env_multiple('form.discussion'); if (@exportitems == 0 && @discussions == 0) { @@ -331,9 +333,10 @@ sub exportcourse { my $imsresources; my $tempexport; my $copyresult; - my $ims_manifest = &create_ims_store($now,\$manifestok,\$outcome,\$tempexport); + my $testbank; + my $ims_manifest = &create_ims_store($now,\$manifestok,\$outcome,\$tempexport,$format,\$testbank); if ($manifestok) { - &build_package($now,$navmap,\@exportitems,\@discussions,\$outcome,$tempexport,\$copyresult,$ims_manifest); + &build_package($now,$navmap,\@exportitems,\@discussions,\$outcome,$tempexport,\$copyresult,$ims_manifest,$format,$testbank); close($ims_manifest); #Create zip file in prtspool @@ -435,6 +438,8 @@ sub exportcourse { if (($curRes->is_sequence()) || ($curRes->is_page())) { $lastcontainer = $currelem; $display .= 'onclick="javascript:propagateCheck('."'$currelem'".')"'; + } elsif ($curRes->is_problem()) { + $numprobs ++; } $display .= ' />'."\n"; for (my $i=0; $i<$depth; $i++) { @@ -519,6 +524,16 @@ function containerCheck(item) { $r->print(&Apache::loncommon::start_page('Export '.$crstype.' to IMS Package', $scripttag)); $r->print(&Apache::lonhtmlcommon::breadcrumbs('IMS Export')); + if ($numprobs > 0) { + $display .= '
'. + &mt('Export format for LON-CAPA problems:'). + ''.(' ' x3). + ''.(' ' x3). + '
'; + } $r->print($display. ''.
''."\n".
' '
@@ -2636,33 +2742,20 @@ sub startContentScreen {
$r->print('
@@ -3041,14 +3156,16 @@ HIDDENFORM
}
# Generate the tabs
- &startContentScreen($r,'docs');
+ &startContentScreen($r,($supplementalflag?'supdocs':'docs'));
+
+
#
my $savefolderpath;
if ($allowed) {
my $folder=$env{'form.folder'};
- if ($folder eq '' || $folder=~/^supplemental/) {
+ if ($folder eq '' || $supplementalflag) {
$folder='default';
$savefolderpath = $env{'form.folderpath'};
$env{'form.folderpath'}='default&'.&escape(&mt('Content'));
@@ -3185,11 +3302,14 @@ NROSTFORM
my $specialdocumentsform;
my @specialdocumentsforma;
+my $gradingform;
+my @gradingforma;
+my $communityform;
+my @communityforma;
my $newfolderform;
my $newfolderb;
- unless ($env{'form.pagepath'}) {
- my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"');
+ my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"');
my $newpageform=(< '.$error.' '.$error.' '.$error.' '.$error.' '.$error.'
'
;
@@ -580,7 +599,8 @@ sub create_ims_store {
}
sub build_package {
- my ($now,$navmap,$exportitems,$discussions,$outcome,$tempexport,$copyresult,$ims_manifest) = @_;
+ my ($now,$navmap,$exportitems,$discussions,$outcome,$tempexport,$copyresult,
+ $ims_manifest,$format,$testbank) = @_;
# first iterator to look for dependencies
my $it = $navmap->getIterator(undef,undef,undef,1,undef,undef);
my $curRes;
@@ -619,6 +639,7 @@ sub build_package {
$count = 0;
my $imsresources;
my $pkgdepth;
+ my $currdirpath = 'Top';
while ($curRes = $it->next()) {
if ($curRes == $it->BEGIN_MAP()) {
$prevdepth = $depth;
@@ -656,10 +677,27 @@ sub build_package {
'
Incorrect:\E)\Q
Correct:\E(|\Q\E)\Q
\E}) {
+ $line =~ s/^(\s+|\s+)$//g;
+ $line =~ s{^\Q\E([^<]+)\Q\E$}{1};
+ push(@tosave,$line);
+ }
+ $content = join("\t",@tosave);
+ if ($mc_answer) {
+ $content .= "\t".$mc_answer."\n";
+ }
+ }
+ if (@tosave) {
+ my $qtype;
+ if ($mc_answer) {
+ $qtype = 'MC';
+ }
+ $content = $currdirpath."\t".$title."\t$qtype\t".join("\t",@tosave);
+ if ($mc_answer) {
+ $content .= "\t".$mc_answer;
+ }
+ $content .= "\n";
+ }
+ } else {
+ $content = ''.$content.'';
+ }
+ if (($caller eq 'plaintext') && ($testbank)) {
+ print $testbank $content;
+ }
+ } else {
+ $content = 'Not the owner of this resource';
+ }
+ } else {
+ $content = 'Not the owner of this resource';
+ }
$repstatus = 'ok';
- $content = 'Not the owner of this resource';
}
if ($repstatus eq 'ok') {
print $copiedfile $content;
@@ -905,7 +1009,6 @@ sub extract_media {
$repstatus = 'ok';
}
} elsif ($caller eq 'uploaded') {
-
$repstatus = &Apache::lonnet::getuploaded('GET',$embed_url,$cdom,$cnum,\$embed_content,$rtncode);
}
if ($repstatus eq 'ok') {
@@ -1150,6 +1253,7 @@ sub docs_change_log {
&Apache::loncommon::restore_course_settings('docs_log',
\%saveable_parameters);
if (!$env{'form.show'}) { $env{'form.show'}=10; }
+# FIXME: internationalization seems wrong here
my %lt=('hiddenresource' => 'Resources hidden',
'encrypturl' => 'URL hidden',
'randompick' => 'Randomly pick',
@@ -1238,6 +1342,7 @@ sub docs_change_log {
$r->print(&LONCAPA::map::qtescape((split(/\:/,$docslog{$id}{'logentry'}{'parameter_res'}))[0]).':');
foreach my $parameter ('randompick','hiddenresource','encrypturl','randomorder') {
if ($docslog{$id}{'logentry'}{'parameter_action_'.$parameter}) {
+# FIXME: internationalization seems wrong here
$r->print('
');
$r->print(''.&mt('Move').' '
.''.&mt('Actions').' '
.''.&mt('Document').' ');
if ($folder !~ /^supplemental/) {
- $->print(''.&mt('Settings').' ');
+ $r->print(''.&mt('Settings').' ');
}
$r->print(&Apache::loncommon::end_data_table_header_row());
}
$r->print($output
.&Apache::loncommon::end_data_table()
+ .&Apache::loncommon::end_scrollbox()
);
} else {
$r->print('' => "$lt{'impo'}$help{'Importing_LON-CAPA_Resource'}" },
{ '
' => "$lt{'wish'}" },
);
- $simpleeditdefaultform .= create_form_ul(create_list_elements(@simpleeditdefaultforma));
+ $simpleeditdefaultform .= &create_form_ul(&create_list_elements(@simpleeditdefaultforma));
$simpleeditdefaultform .=(<
'=>$newpageform},
{'
'=>$newsylform},
- {'
'=>$newgroupfileform},
- );
+ {'
'=>$newnavform},
+ {'
'=>$newsmppageform},
+ );
+ $specialdocumentsform = &create_form_ul(&create_list_elements(@specialdocumentsforma));
+
my @importdoc = (
{'
'=>$extresourcesform},
{'
'=>$imspform},);
- $fileuploadform = create_form_ul(create_list_elements(@importdoc)) . '
' . $fileuploadform;
+ $fileuploadform = &create_form_ul(&create_list_elements(@importdoc)) . '
' . $fileuploadform;
- push @specialdocumentsforma, ({''=>$newnavform},
- {'
'=>$newsmppageform},
- {'
'=>$newsmpproblemform},
- {'
'=>$newdropboxform},
- {'
'=>$newexuploadform},
- {'
'=>$newbulform},
- {'
'=>$newaboutmeform},
- {'
'=>$newaboutsomeoneform},
- {'
'=>$newrosterform},);
+ @gradingforma=(
+ {'
'=>$newsmpproblemform},
+ {'
'=>$newdropboxform},
+ {'
'=>$newexuploadform},
+
+ );
+ $gradingform = &create_form_ul(&create_list_elements(@gradingforma));
+
+ @communityforma=(
+ {'
'=>$newbulform},
+ {'
'=>$newaboutmeform},
+ {'
'=>$newaboutsomeoneform},
+ {'
'=>$newrosterform},
+ {'
'=>$newgroupfileform},
+ );
+ $communityform = &create_form_ul(&create_list_elements(@communityforma));
- $specialdocumentsform = create_form_ul(create_list_elements(@specialdocumentsforma));
- }
-if($env{'form.pagepath'}) {
-
- @specialdocumentsforma=(
- {'
'=>$newsmpproblemform},
- {'
'=>$newexuploadform}
- );
- $specialdocumentsform= create_form_ul(create_list_elements(@specialdocumentsforma));
-}
my @tools = (
# {'
'=>$extresourcesform},
@@ -3275,37 +3395,40 @@ my @tools = (
my %orderhash = (
'aa' => ['Import Documents',$fileuploadform],
'bb' => ['Published Resources',$simpleeditdefaultform],
- 'cc' => ['Special Documents',$specialdocumentsform],
- 'dd' => ['Tools', create_form_ul(create_list_elements(@tools)).&generate_admin_options(\%help,\%env)],
+ 'cc' => ['Grading Resources',$gradingform],
+ 'ff' => ['Tools', &create_form_ul(&create_list_elements(@tools)).&generate_admin_options(\%help,\%env)],
);
-unless($env{'form.pagepath'}) {
+unless ($env{'form.pagepath'}) {
$orderhash{'00'} = ['Newfolder',$newfolderform];
+ $orderhash{'dd'} = ['Community Resources',$communityform];
+ $orderhash{'ee'} = ['Special Documents',$specialdocumentsform];
}
-my $tid='1';
$hadchanges=0;
- my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype);
- if ($error) {
- $r->print('
'
=>$supnewextform},
);
-$supupdocform = create_form_ul(create_list_elements(@supimportdoc)) . '
' . $supupdocform;
+$supupdocform = &create_form_ul(&create_list_elements(@supimportdoc)) . '
' . $supupdocform;
my %suporderhash = (
'00' => ['Supnewfolder', $supnewfolderform],
'ee' => ['Import Documents',$supupdocform],
- 'ff' => ['Special Documents',create_form_ul(create_list_elements(@specialdocs))]
+ 'ff' => ['Special Documents',&create_form_ul(&create_list_elements(@specialdocs))]
);
-
- my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype);
- if ($error) {
- $r->print(''
=>"$lt{'sl'}"},
);
- return '';
+ return '';
}
@@ -3559,7 +3682,7 @@ sub editing_js {
t_mnf => 'New Folder',
p_mnp => 'Name of New Page',
t_mnp => 'New Page',
- p_mxu => 'Title for the Uploaded Score',
+ p_mxu => 'Title for the External Score',
p_msp => 'Name of Simple Course Page',
p_msb => 'Title for the Problem',
p_mdb => 'Title for the Drop Box',
@@ -3588,7 +3711,7 @@ sub editing_js {
}
}
my $toplevelmain = 'default&Main%20'.$crstype.'%20Documents';
- my $toplevelsupp = 'supplemental&Supplemental%20'.$crstype.'%20Documents';
+ my $toplevelsupp = &supplemental_base();
return <