--- loncom/interface/londocs.pm 2005/07/26 16:41:43 1.198
+++ loncom/interface/londocs.pm 2005/11/04 20:52:35 1.208
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Documents
#
-# $Id: londocs.pm,v 1.198 2005/07/26 16:41:43 raeburn Exp $
+# $Id: londocs.pm,v 1.208 2005/11/04 20:52:35 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -166,7 +166,10 @@ sub dumpcourse {
$crs=~s/\_/\//g;
foreach (keys %replacehash) {
my $newfilename=$title.'/'.$replacehash{$_};
+ $newfilename=~s/\.(\w+)$//;
+ my $ext=$1;
$newfilename=&clean($newfilename);
+ $newfilename.='.'.$ext;
my @dirs=split(/\//,$newfilename);
my $path='/home/'.$ca.'/public_html';
my $makepath=$path;
@@ -252,7 +255,7 @@ sub exportbutton {
return '
'.
''.
- &Apache::loncommon::help_open_topic('Docs_Export_Course_Docs');
+ &Apache::loncommon::help_open_topic('Docs_Export_Course_Docs');
}
sub exportcourse {
@@ -490,10 +493,21 @@ sub create_ims_store {
' identifier="MANIFEST-'.$env{'request.course.id'}.'-'.$now.'"'.
' xsi:schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1imscp_v1p1.xsd'.
' http://www.imsglobal.org/xsd/imsmd_v1p2 imsmd_v1p2p2.xsd">'."\n".
+'
+
+
+
+ '.$env{'request.course.id'}.'
+
+ '.$env{'course.'.$env{'request.course.id'}.'.description'}.'
+
+
+
+ '."\n".
' '."\n".
' '."\n".
-' '.$env{'request.'.$env{'request.course.id'}.'.description'}.''
+' '.$env{'course.'.$env{'request.course.id'}.'.description'}.''
} else {
$$outcome .= 'An error occurred opening the IMS manifest file. '
;
@@ -541,7 +555,6 @@ sub build_package {
$count = 0;
my $imsresources;
my $pkgdepth;
- my $included = 0;
while ($curRes = $it->next()) {
if ($curRes == $it->BEGIN_MAP()) {
$prevdepth = $depth;
@@ -564,10 +577,13 @@ sub build_package {
unless ($curRes->is_sequence()) {
$resourceref = 'identifierref="RES-'.$env{'request.course.id'}.'-'.$count.'"';
}
- if (($depth <= $prevdepth) && ($count > 1) && ($included)) {
- print $ims_manifest "\n".' '."\n";
+ my $step = $prevdepth - $depth;
+ if (($step >= 0) && ($count > 1)) {
+ while ($step >= 0) {
+ print $ims_manifest "\n".' '."\n";
+ $step --;
+ }
}
- $included = 1;
$prevdepth = $depth;
my $itementry =
@@ -609,8 +625,6 @@ sub build_package {
}
}
$pkgdepth = $depth;
- } else {
- $included = 0;
}
}
}
@@ -645,7 +659,6 @@ sub process_content {
my ($count,$curRes,$cdom,$cnum,$symb,$content_file,$href,$copyresult,$tempexport) = @_;
my $content_type;
my $message;
-# find where user is author or co-author
my @uploads = ();
if ($curRes->is_sequence()) {
$content_type = 'sequence';
@@ -699,6 +712,7 @@ sub process_content {
if ($2 eq $env{'user.domain'} && $3 eq $env{'user.name'}) {
$canedit= 1;
}
+# only include problem code where current user is author
if ($canedit) {
$$content_file = &replicate_content($cdom,$cnum,$tempexport,$symb,$count,\$message,$href,'resource');
} else {
@@ -1100,7 +1114,7 @@ sub editor {
if ($cmd eq 'del') {
my (undef,$url)=split(':',$Apache::lonratedt::resources[$Apache::lonratedt::order[$idx]]);
if (($url=~m|/+uploaded/\Q$coursedom\E/\Q$coursenum\E/|) &&
- ($url!~/\.(page|sequence|problem|exam|quiz|assess|survey|form|library)$/)) {
+ ($url!~/\.(page|sequence|problem|exam|quiz|assess|survey|form|library|task)$/)) {
&Apache::lonnet::removeuploadedurl($url);
} else {
&Apache::lonratedt::makezombie($Apache::lonratedt::order[$idx]);
@@ -1201,6 +1215,8 @@ sub editor {
$r->print('');
foreach (@Apache::lonratedt::order) {
my ($name,$url)=split(/\:/,$Apache::lonratedt::resources[$_]);
+ $name=&Apache::lonratsrv::qtescape($name);
+ $url=&Apache::lonratsrv::qtescape($url);
unless ($name) { $name=(split(/\//,$url))[-1]; }
unless ($name) { $idx++; next; }
$r->print(&entryline($idx,$name,$url,$folder,$allowed,$_,$coursenum));
@@ -1705,6 +1721,24 @@ sub checkonthis {
#
+# ----------------------------------------------------------------- List Symbs
+#
+sub list_symbs {
+ my $r=shift;
+ my $html=&Apache::lonxml::xmlbegin();
+ $r->print($html.'Symb List'.
+ &Apache::loncommon::bodytag('Symb List'));
+ my $navmap = Apache::lonnavmaps::navmap->new();
+ $r->print("\n");
+ foreach my $res ($navmap->retrieveResources()) {
+ $r->print($res->compTitle()."\t".$res->symb()."\n");
+ }
+ $r->print("\n \n");
+ $r->print(''.&mt('Return to DOCS').'');
+}
+
+
+#
# -------------------------------------------------------------- Verify Content
#
sub verifycontent {
@@ -2071,6 +2105,8 @@ sub handler {
if ($env{'form.verify'}) {
&verifycontent($r);
+ } elsif ($env{'form.listsymbs'}) {
+ &list_symbs($r);
} elsif ($env{'form.versions'}) {
&checkversions($r);
} elsif ($env{'form.dumpcourse'}) {
@@ -2438,6 +2474,7 @@ ENDNEWSCRIPT
my %lt=&Apache::lonlocal::texthash(
'vc' => 'Verify Content',
'cv' => 'Check/Set Resource Versions',
+ 'ls' => 'List Symbs',
);
my $folderpath=$env{'form.folderpath'};
@@ -2472,7 +2509,9 @@ $uploadtag
$help{'Check_Resource_Versions'}
$dumpbut
$exportbut
-
+ |
ENDCOURSEVERIFY
$r->print(&Apache::loncommon::help_open_topic('Docs_Adding_Course_Doc',