--- loncom/interface/londocs.pm 2002/10/16 19:15:55 1.29
+++ loncom/interface/londocs.pm 2003/02/07 15:05:37 1.48
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Documents
#
-# $Id: londocs.pm,v 1.29 2002/10/16 19:15:55 www Exp $
+# $Id: londocs.pm,v 1.48 2003/02/07 15:05:37 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -35,6 +35,7 @@ use Apache::loncommon;
use Apache::lonratedt;
use Apache::lonratsrv;
use Apache::lonxml;
+use HTML::Entities;
use GDBM_File;
my $iconpath;
@@ -44,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
@@ -59,6 +66,7 @@ sub mapread {
sub storemap {
my ($coursenum,$coursedom,$map)=@_;
+ $hadchanges=1;
return
&Apache::lonratedt::storemap('/uploaded/'.$coursedom.'/'.$coursenum.'/'.
$map,1);
@@ -118,15 +126,32 @@ sub editor {
}
$#Apache::lonratedt::order--;
} elsif ($cmd eq 'up') {
+ if (($idx) && (defined($Apache::lonratedt::order[$idx-1]))) {
my $i=$Apache::lonratedt::order[$idx-1];
$Apache::lonratedt::order[$idx-1]=
$Apache::lonratedt::order[$idx];
$Apache::lonratedt::order[$idx]=$i;
+ }
} elsif ($cmd eq 'down') {
+ if (defined($Apache::lonratedt::order[$idx+1])) {
my $i=$Apache::lonratedt::order[$idx+1];
$Apache::lonratedt::order[$idx+1]=
$Apache::lonratedt::order[$idx];
$Apache::lonratedt::order[$idx]=$i;
+ }
+ } elsif ($cmd eq 'rename') {
+ my ($rtitle,@rrest)=split(/\:/,
+ $Apache::lonratedt::resources[
+ $Apache::lonratedt::order[$idx]]);
+ my $comment=
+ &HTML::Entities::decode($ENV{'form.title'});
+ $comment=~s/\\<\;/g;
+ $comment=~s/\>/\>\;/g;
+ $comment=~s/\:/\:/g;
+ $Apache::lonratedt::resources[
+ $Apache::lonratedt::order[$idx]]=
+ $comment.':'.join(':',@rrest);
+
}
# Store the changed version
&storemap($coursenum,$coursedom,$folder.'.sequence');
@@ -145,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';
}
@@ -161,7 +187,7 @@ sub editor {
foreach (@Apache::lonratedt::order) {
my ($name,$url)=split(/\:/,$Apache::lonratedt::resources[$_]);
unless ($name) { $name=(split(/\//,$url))[-1]; }
- unless ($name) { $name='EMPTY'; }
+ unless ($name) { $name='NO RESOURCE'; $url='/adm/notfound.html'; }
$r->print(&entryline($idx,$name,$url,$folder,$allowed));
$idx++;
}
@@ -173,6 +199,21 @@ sub editor {
sub entryline {
my ($index,$title,$url,$folder,$allowed)=@_;
+ $title=~s/\&colon\;/\:/g;
+ $title=&HTML::Entities::encode(&HTML::Entities::decode(
+ &Apache::lonnet::unescape($title)),'\"\<\>\&\'');
+ my $renametitle=$title;
+ my $foldertitle=$title;
+ if ($title=~
+ /^(\d+)\_\_\_\&\;\&\;\&\;\_\_\_(\w+)\_\_\_\&\;\&\;\&\;\_\_\_(\w+)\_\_\_\&\;\&\;\&\;\_\_\_(.*)$/
+ ) {
+ $foldertitle=&Apache::lontexconvert::msgtexconverted($4);
+ $renametitle=$4;
+ $title=''.localtime($1).' '.
+ &Apache::loncommon::plainname($2,$3).':
'.
+ $foldertitle;
+ }
+ $renametitle=~s/\"\;/\\\"/g;
my $line='
File | Modification Date | +Version | Differences |
---|---|---|---|
'.$linkurl. + ' | '. + localtime($changes{$_}).' | '.$currentversion.' | '. + '');
+ my $lastold=1;
+ for (my $prevvers=1;$prevvers<$currentversion;$prevvers++) {
+ my $url=$root.'.'.$prevvers.'.'.$extension;
+ if (&Apache::lonnet::metadata($url,'lastrevisiondate')<
+ $starttime) {
+ $lastold=$prevvers;
+ }
+ }
+ for (my $prevvers=$lastold;$prevvers<$currentversion;$prevvers++) {
+ my $url=$root.'.'.$prevvers.'.'.$extension;
+ $r->print('Version '.$prevvers.' ('.
+ localtime(&Apache::lonnet::metadata($url,'lastrevisiondate')).
+ ')');
+ if (&Apache::loncommon::fileembstyle($extension) eq 'ssi') {
+ $r->print(' Diffs');
+ }
+ $r->print(' '); + } + $r->print(' |
No content modifications yet.
'); + } &untiehash(); } else { # is this a standard course? @@ -383,17 +538,21 @@ function makenewext(targetname) { } function makesmppage() { - var title=prompt('Listed Title for the Page'); + var title=prompt('Listed Title for the Page'); + if (title) { this.document.forms.newsmppg.importdetail.value= title+'=/adm/$udom/$uname/$now/smppg'; this.document.forms.newsmppg.submit(); + } } function makebulboard() { - var title=prompt('Listed Title for the Bulletin Board'); + var title=prompt('Listed Title for the Bulletin Board'); + if (title) { this.document.forms.newbul.importdetail.value= title+'=/adm/$udom/$uname/$now/bulletinboard'; this.document.forms.newbul.submit(); + } } function finishpick() { @@ -404,7 +563,18 @@ function finishpick() { ('this.document.forms.'+form+'.importdetail.value="'+title+'='+url+ '";this.document.forms.'+form+'.submit();'); } + +function changename(folder,index,oldtitle) { + var title=prompt('New Title',oldtitle); + if (title) { + this.document.forms.renameform.title.value=title; + this.document.forms.renameform.cmd.value='rename_'+index; + this.document.forms.renameform.folder.value=folder; + this.document.forms.renameform.submit(); + } +} + ENDNEWSCRIPT } # -------------------------------------------------------------------- Body tag @@ -412,7 +582,18 @@ ENDNEWSCRIPT &Apache::loncommon::bodytag('Course Documents','',$events)); 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(<