--- loncom/interface/londocs.pm 2002/12/04 16:19:05 1.39
+++ loncom/interface/londocs.pm 2003/02/25 19:30:51 1.50
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Documents
#
-# $Id: londocs.pm,v 1.39 2002/12/04 16:19:05 www Exp $
+# $Id: londocs.pm,v 1.50 2003/02/25 19:30:51 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -45,6 +45,12 @@ my %hash;
my $hashtied;
my %alreadyseen=();
+my $hadchanges;
+
+# Available help topics
+
+my %help=();
+
# Mapread read maps into lonratedt::global arrays
# @order and @resources, determines status
# sets @order - pointer to resources in right order
@@ -60,6 +66,7 @@ sub mapread {
sub storemap {
my ($coursenum,$coursedom,$map)=@_;
+ $hadchanges=1;
return
&Apache::lonratedt::storemap('/uploaded/'.$coursedom.'/'.$coursenum.'/'.
$map,1);
@@ -163,6 +170,7 @@ sub editor {
my $ext='false';
if ($url=~/^http\:\/\//) { $ext='true'; }
$url=~s/\:/\:/g;
+ $name=~s/\:/\:/g;
$Apache::lonratedt::resources[$idx]=
$name.':'.$url.':'.$ext.':normal:res';
}
@@ -180,7 +188,7 @@ sub editor {
my ($name,$url)=split(/\:/,$Apache::lonratedt::resources[$_]);
unless ($name) { $name=(split(/\//,$url))[-1]; }
unless ($name) { $name='NO RESOURCE'; $url='/adm/notfound.html'; }
- $r->print(&entryline($idx,$name,$url,$folder,$allowed));
+ $r->print(&entryline($idx,$name,$url,$folder,$allowed,$_));
$idx++;
}
$r->print('');
@@ -190,7 +198,7 @@ sub editor {
# --------------------------------------------------------------- An entry line
sub entryline {
- my ($index,$title,$url,$folder,$allowed)=@_;
+ my ($index,$title,$url,$folder,$allowed,$residx)=@_;
$title=~s/\&colon\;/\:/g;
$title=&HTML::Entities::encode(&HTML::Entities::decode(
&Apache::lonnet::unescape($title)),'\"\<\>\&\'');
@@ -241,7 +249,18 @@ END
}
}
$url=~s/^http\&colon\;\/\//\/adm\/wrapper\/ext\//;
- if ($isfolder) { $url.='&foldername='.$foldertitle; }
+ if ($residx) {
+ $url.=(($url=~/\?/)?'&':'?').'symb='.
+ &Apache::lonnet::escape(&Apache::lonnet::symbclean(
+ &Apache::lonnet::declutter('uploaded/'.
+ $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}.'/'.
+ $ENV{'course.'.$ENV{'request.course.id'}.'.num'}.'/'.$folder.
+ '.sequence').
+ '___'.$residx.'___'.
+ &Apache::lonnet::declutter($url)));
+ }
+ if ($isfolder) { $url.='&foldername='.
+ &Apache::lonnet::escape($foldertitle); }
$line.='
 | '.
@@ -272,7 +291,7 @@ sub checkonthis {
my ($r,$url,$level,$title)=@_;
$alreadyseen{$url}=1;
$r->rflush();
- if ($url) {
+ if (($url) && ($url!~/^\/uploaded\//) && ($url!~/\*$/)) {
$r->print('
');
for (my $i=0;$i<=$level*5;$i++) {
$r->print(' ');
@@ -337,7 +356,15 @@ sub handler {
$r->send_http_header;
return OK if $r->header_only;
-
+# --------------------------------------------- Initialize help topics for this
+ foreach ('Adding_Course_Doc','Main_Course_Documents',
+ 'Adding_External_Resource','Navigate_Content',
+ 'Adding_Folders','Docs_Overview',
+ 'Creating_From_Template','Supplemental',
+ 'Importing_LON-CAPA_Resource','Uploading_From_Harddrive') {
+ $help{$_}=&Apache::loncommon::help_open_topic('Docs_'.$_);
+ }
+
if ($ENV{'form.verify'}) {
my $loaderror=&Apache::lonnet::overloaderror($r);
@@ -455,6 +482,7 @@ ENDHEADERS
my $script='';
my $allowed;
my $events='';
+ my $buttons='';
my $showdoc=0;
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
['folder','foldername']);
@@ -473,9 +501,10 @@ ENDHEADERS
}
} else { # got called in sequence from course
$allowed=0;
- $script=''.&Apache::lonxml::registerurl(1,undef).''.&Apache::lonmenu::registerurl(1,undef).'
+
+ENDNEWSCRIPT
+ }
+# -------------------------------------------------------------------- Body tag
+ $r->print(''.
+ &Apache::loncommon::bodytag('Course Documents','',$events).
+ $buttons);
+ unless ($showdoc) {
+ if ($allowed) {
+ $r->print(&Apache::loncommon::help_open_topic('Docs_Adding_Course_Doc',
+ 'Editing the Table of Contents for your Course'));
+ $r->print(<
@@ -566,15 +607,6 @@ function changename(folder,index,oldtitl
-
-ENDNEWSCRIPT
- }
-# -------------------------------------------------------------------- Body tag
- $r->print(''.
- &Apache::loncommon::bodytag('Course Documents','',$events));
- unless ($showdoc) {
- if ($allowed) {
- $r->print(<
@@ -582,16 +614,24 @@ ENDNEWSCRIPT
ENDCOURSEVERIFY
}
# --------------------------------------------------------- Standard documents
- $r->print('');
+ $r->print('');
if (($standard) && ($allowed) && (!$forcesupplement)) {
- $r->print('Main Course Documents');
+ $r->print(' |
Main Course Documents'.
+ ($allowed?' '.$help{'Main_Course_Documents'}:'').'');
my $folder=$ENV{'form.folder'};
unless ($folder=~/^default/) { $folder='default'; }
+ $hadchanges=0;
&editor($r,$coursenum,$coursedom,$folder,$allowed);
+ if ($hadchanges) {
+ $r->print('');
+ }
my $folderseq='/uploaded/'.$coursedom.'/'.$coursenum.'/default_'.time.
'.sequence';
+
$r->print(<
+
ENDFORM
@@ -675,7 +716,8 @@ ENDFORM
# ----------------------------------------------------- Supplemental documents
if (!$forcestandard) {
$r->print(
- ' Supplemental Course Documents');
+ ' | Supplemental Course Documents'.
+ ($allowed?' '.$help{'Supplemental'}:'').'');
my $folder=$ENV{'form.folder'};
unless ($folder=~/supplemental/) { $folder='supplemental'; }
&editor($r,$coursenum,$coursedom,$folder,$allowed);
@@ -685,7 +727,7 @@ ENDFORM
'.sequence';
$r->print(<
+
ENDSUPFORM
| |