--- loncom/interface/londocs.pm 2006/04/10 19:59:53 1.225
+++ loncom/interface/londocs.pm 2006/08/11 22:00:07 1.244
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Documents
#
-# $Id: londocs.pm,v 1.225 2006/04/10 19:59:53 albertel Exp $
+# $Id: londocs.pm,v 1.244 2006/08/11 22:00:07 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -36,12 +36,13 @@ use Apache::loncommon;
use Apache::lonratedt;
use Apache::lonratsrv;
use Apache::lonxml;
-use Apache::loncreatecourse;
+use Apache::lonclonecourse;
use Apache::lonnavmaps;
use HTML::Entities;
use GDBM_File;
use Apache::lonlocal;
use Cwd;
+use LONCAPA;
my $iconpath;
@@ -119,16 +120,18 @@ sub authorhosts {
sub dumpbutton {
my ($home,$other,%outhash)=&authorhosts();
+ my $type = &Apache::loncommon::course_type();
if ($home+$other==0) { return ''; }
my $output='
';
if ($home) {
return '
'.
''.
+ &mt('Dump '.$type.' DOCS to Construction Space').'" />'.
&Apache::loncommon::help_open_topic('Docs_Dump_Course_Docs');
} else {
return'
'.
- &mt('Dump Course DOCS to Construction Space: available on other servers');
+ &mt('Dump '.$type.
+ ' DOCS to Construction Space: available on other servers');
}
}
@@ -141,8 +144,8 @@ sub clean {
sub dumpcourse {
my ($r) = @_;
-
- $r->print(&Apache::loncommon::start_page('Dump Course DOCS to Construction Space').
+ my $type = &Apache::loncommon::course_type();
+ $r->print(&Apache::loncommon::start_page('Dump '.$type.' DOCS to Construction Space').
'');
+ '');
}
}
# ------------------------------------------------------ Generate "export" button
sub exportbutton {
+ my $type = &Apache::loncommon::course_type();
return '
'.
''.
+ &mt('Export '.$type.' to IMS').'" />'.
&Apache::loncommon::help_open_topic('Docs_Export_Course_Docs');
}
sub exportcourse {
my $r=shift;
+ my $type = &Apache::loncommon::course_type();
my %discussiontime = &Apache::lonnet::dump('discussiontimes',
$env{'course.'.$env{'request.course.id'}.'.domain'}, $env{'course.'.$env{'request.course.id'}.'.num'});
my $numdisc = keys %discussiontime;
@@ -299,7 +306,7 @@ sub exportcourse {
open(OUTPUT, "zip -r $imszip * 2> /dev/null |");
close(OUTPUT);
chdir $cwd;
- $outcome .= 'Download the zip file from IMS course archive ';
+ $outcome .= &mt('Download the zip file from IMS '.lc($type).' archive ',$imszipfile,);
if ($copyresult) {
$outcome .= 'The following errors occurred during export - '.$copyresult;
}
@@ -307,13 +314,13 @@ sub exportcourse {
$outcome = ' Unfortunately you will not be able to retrieve an IMS archive of this posts at this time, because there was a problem creating a manifest file. ';
}
}
- $r->print(&Apache::loncommon::start_page('Export course to IMS content package'));
+ $r->print(&Apache::loncommon::start_page('Export '.lc($type).' to IMS content package'));
$r->print($outcome);
$r->print(&Apache::loncommon::end_page());
} else {
my $display;
$display = ''.
+ &mt('Export '.$type.' DOCS').'" />'.
&Apache::loncommon::end_page());
}
}
@@ -948,30 +955,40 @@ sub breadcrumbs {
my $folderpath;
my $cpinfo='';
if ($env{'form.markedcopy_url'}) {
- &Apache::lonnet::logthis('Found '.$env{'form.markedcopy_url'});
$cpinfo='&markedcopy_url='.
- &Apache::lonnet::escape($env{'form.markedcopy_url'}).
+ &escape($env{'form.markedcopy_url'}).
'&markedcopy_title='.
- &Apache::lonnet::escape($env{'form.markedcopy_title'});
+ &escape($env{'form.markedcopy_title'});
}
+ my $randompick=-1;
+ my $isencrypted=0;
+ my $ishidden=0;
while (@folders) {
my $folder=shift(@folders);
my $foldername=shift(@folders);
if ($folderpath) {$folderpath.='&';}
$folderpath.=$folder.'&'.$foldername;
my $url='/adm/coursedocs?folderpath='.
- &Apache::lonnet::escape($folderpath);
+ &escape($folderpath);
+ my $name=&unescape($foldername);
+# randompick number, hidden, encrypted is appended with ":"s to the foldername
+ $name=~s/\:(\d*)\:(\w*)\:(\w*)$//;
+ if ($1 ne '') {
+ $randompick=$1;
+ } else {
+ $randompick=-1;
+ }
+ if ($2) { $ishidden=1; }
+ if ($3) { $isencrypted=1; }
&Apache::lonhtmlcommon::add_breadcrumb(
{'href'=>$url.$cpinfo,
- 'title'=>&Apache::lonnet::unescape($foldername),
+ 'title'=>$name,
'text'=>''.
- &Apache::lonnet::unescape($foldername).''
+ $name.''
});
-
-
}
- return &Apache::lonhtmlcommon::breadcrumbs(undef,undef,undef,undef,undef,
- 0,'nohelp');
+ return (&Apache::lonhtmlcommon::breadcrumbs(undef,undef,0,'nohelp',
+ 'LC_docs_path'),$randompick,$ishidden,$isencrypted);
}
sub editor {
@@ -996,7 +1013,8 @@ sub editor {
$env{'form.markedcopy_title'}=$title;
$env{'form.markedcopy_url'}=$url;
}
- $r->print(&breadcrumbs($folder));
+ my ($breadcrumbtrail,$randompick,$ishidden,$isencrypted)=&breadcrumbs($folder);
+ $r->print($breadcrumbtrail);
if ($fatal) {
$r->print('
'.$errtext.'
');
} else {
@@ -1079,7 +1097,7 @@ sub editor {
my $newurl=$1.$newid.'.'.$2;
my $storefn=$newurl;
$storefn=~s/^\/\w+\/\w+\/\w+\///;
- &Apache::loncreatecourse::writefile
+ &Apache::lonclonecourse::writefile
($env{'request.course.id'},$storefn,
&Apache::lonnet::getfile($url));
$url=$newurl;
@@ -1156,6 +1174,11 @@ sub editor {
$Apache::lonratedt::order[$idx]]=
$comment.':'.join(':',@rrest);
}
+# Devalidate title cache
+ my $renamed_url=$rrest[0];
+# Has the :-escaping
+ $renamed_url=~s/\&colon\;/\:/g;
+ &Apache::lonnet::devalidate_title_cache($renamed_url);
}
# Store the changed version
($errtext,$fatal)=&storemap($coursenum,$coursedom,
@@ -1168,11 +1191,12 @@ sub editor {
# Group import/search
if ($env{'form.importdetail'}) {
my @imports;
+# &Apache::lonnet::logthis("imp detail ".$env{'form.importdetail'});
foreach (split(/\&/,$env{'form.importdetail'})) {
if (defined($_)) {
my ($name,$url)=split(/\=/,$_);
- $name=&Apache::lonnet::unescape($name);
- $url=&Apache::lonnet::unescape($url);
+ $name=&unescape($name);
+ $url=&unescape($url);
push @imports, $name, $url;
}
}
@@ -1210,6 +1234,16 @@ sub editor {
# ---------------------------------------------------------------- Print screen
my $idx=0;
my $shown=0;
+ if (($ishidden) || ($isencrypted) || ($randompick>=0)) {
+ $r->print('
'.&mt('Caution: this folder is set to randomly pick a subset of resources. Adding or removing resources from this folder will change the set of resources that the students see, resulting in spurious or missing credit for completed problems, not limited to ones you modify. Do not modify the contents of this folder if it is in active student use.').'