--- loncom/interface/londocs.pm 2002/09/02 15:27:08 1.15
+++ loncom/interface/londocs.pm 2002/10/09 20:16:12 1.24
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Documents
#
-# $Id: londocs.pm,v 1.15 2002/09/02 15:27:08 www Exp $
+# $Id: londocs.pm,v 1.24 2002/10/09 20:16:12 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -60,15 +60,23 @@ sub storemap {
sub editor {
my ($r,$coursenum,$coursedom,$folder,$allowed)=@_;
+ if ($ENV{'form.foldername'}) {
+ $r->print('
Folder: '.$ENV{'form.foldername'}.'
');
+ }
my $errtext='';
my $fatal=0;
($errtext,$fatal)=
&mapread($coursenum,$coursedom,$folder.'.sequence');
+ if ($#Apache::lonratedt::order<1) {
+ $Apache::lonratedt::order[0]=1;
+ $Apache::lonratedt::resources[1]='';
+ }
if ($fatal) {
$r->print(''.$errtext.'
');
} else {
# ------------------------------------------------------------ Process commands
- if ($allowed) {
+# ---------------- if they are for this folder and user allowed to make changes
+ if (($allowed) && ($ENV{'form.folder'} eq $folder)) {
# upload a file, if present
if (($ENV{'form.uploaddoc.filename'}) &&
($ENV{'form.cmd'}=~/^upload_(\w+)/)) {
@@ -83,6 +91,10 @@ sub editor {
$comment=~s/\\<\;/g;
$comment=~s/\>/\>\;/g;
$comment=~s/\:/\:/g;
+ if ($folder=~/^supplemental/) {
+ $comment=time.'___&&&___'.$ENV{'user.name'}.'___&&&___'.
+ $ENV{'user.domain'}.'___&&&___'.$comment;
+ }
my $newidx=$#Apache::lonratedt::resources+1;
$Apache::lonratedt::resources[$newidx]=
$comment.':'.$url.':'.$ext.':normal:res';
@@ -135,7 +147,8 @@ sub editor {
# Store the changed version
&storemap($coursenum,$coursedom,$folder.'.sequence');
}
- }
+ }
+# ---------------------------------------------------------------- End commands
# ---------------------------------------------------------------- Print screen
my $idx=0;
$r->print('');
@@ -167,20 +180,41 @@ sub entryline {
Remove
END
}
-# URL
- if ($url=~/^\/*uploaded\//) {
- $url=&Apache::lonnet::tokenwrapper($url);
+# Figure out what kind of a resource this is
+ my ($extension)=($url=~/\.(\w+)$/);
+ my $uploaded=($url=~/^\/*uploaded\//);
+ my $icon='unknown';
+ if (-e "/home/httpd/html/adm/lonIcons/$extension.gif") {
+ $icon=$extension;
}
- $line.='View | ';
+ my $isfolder=0;
+ if ($uploaded) {
+ if ($extension eq 'sequence') {
+ $icon='folder_closed';
+ $url=~/\/(\w+)\.sequence/;
+ $url='/adm/coursedocs?folder='.$1;
+ $isfolder=1;
+ } else {
+ $url=&Apache::lonnet::tokenwrapper($url);
+ }
+ }
+ $url=~s/^http\&colon\;\/\//\/adm\/wrapper\/ext\//;
# Title
$title=&Apache::lonnet::unescape($title);
+ my $foldertitle=$title;
if ($title=~
/^(\d+)\_\_\_\&\&\&\_\_\_(\w+)\_\_\_\&\&\&\_\_\_(\w+)\_\_\_\&\&\&\_\_\_(.*)$/
- ) { $title=''.localtime($1).' '.$2.' at '.$3.':
'.
- &Apache::lontexconvert::msgtexconverted($4);
+ ) {
+ $foldertitle=&Apache::lontexconvert::msgtexconverted($4);
+ $title=''.localtime($1).' '.
+ &Apache::loncommon::plainname($2,$3).':
'.
+ $foldertitle;
}
- $line.="$title | ";
- $line.='';
+ if ($isfolder) { $url.='&foldername='.$foldertitle; }
+ $line.=' | '.
+ "$title | ";
return $line;
}
@@ -199,9 +233,13 @@ sub handler {
my $script='';
my $allowed;
my $events='';
+ my $showdoc=0;
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
- ['folder','showdoc']);
- unless ($ENV{'form.showdoc'}) { # got called from remote
+ ['folder','foldername']);
+ if ($r->uri=~/^\/adm\/coursedocs\/showdoc\/(.*)$/) {
+ $showdoc=$1;
+ }
+ unless ($showdoc) { # got called from remote
$forcestandard=($ENV{'form.folder'}=~/^default_/);
$forcesupplement=($ENV{'form.folder'}=~/^supplemental_/);
@@ -213,9 +251,7 @@ sub handler {
}
} else { # got called in sequence from course
$allowed=0;
- $forcestandard=1;
- $forcesupplement=0;
- $script=&Apache::&Apache::lonxml::registerurl(1,undef);
+ $script=''.&Apache::lonxml::registerurl(1,undef).'
-
+
ENDDOCUMENT
-$r->print(&Apache::loncommon::bodytag('Course Documents','',$events));
-# --------------------------------------------------0------ Standard documents
+ if ($allowed) {
+ $r->print(<
+function makenewfolder(targetform,folderseq) {
+ var foldername=prompt('Name of New Folder','New Folder');
+ if (foldername) {
+ targetform.importdetail.value=foldername+"="+folderseq;
+ targetform.submit();
+ }
+}
+
+function makenewext(targetname) {
+ this.document.forms.extimport.useform.value=targetname;
+ window.open('/adm/rat/extpickframe.html');
+}
+
+function makesmppage() {
+ var title=prompt('Listed Title for the Page');
+ 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');
+ this.document.forms.newbul.importdetail.value=
+ title+'=/adm/$udom/$uname/$now/bulletinboard';
+ this.document.forms.newbul.submit();
+}
+
+function finishpick() {
+ var title=this.document.forms.extimport.title.value;
+ var url=this.document.forms.extimport.url.value;
+ var form=this.document.forms.extimport.useform.value;
+ eval
+ ('this.document.forms.'+form+'.importdetail.value="'+title+'='+url+
+ '";this.document.forms.'+form+'.submit();');
+}
+
+ENDNEWSCRIPT
+ }
+# -------------------------------------------------------------------- Body tag
+ $r->print(''.
+ &Apache::loncommon::bodytag('Course Documents','',$events));
+ unless ($showdoc) {
+# --------------------------------------------------------- Standard documents
+ $r->print('');
if (($standard) && ($allowed) && (!$forcesupplement)) {
- $r->print('Main Course Documents
');
+ $r->print('Main Course Documents');
my $folder=$ENV{'form.folder'};
unless ($folder=~/^default/) { $folder='default'; }
&editor($r,$coursenum,$coursedom,$folder,$allowed);
+ my $folderseq='/uploaded/'.$coursedom.'/'.$coursenum.'/default_'.time.
+ '.sequence';
$r->print(<
-Upload a new main course document |
-Import a published document |
-Special documents |
+
+Upload a new main course document |
+Import a published document |
+Special documents |
-
+ |
File:
|
-
+ |
- |
+ |
-
+
+
|
ENDFORM
- $r->print(' ');
+ $r->print(' ');
}
# ----------------------------------------------------- Supplemental documents
if (!$forcestandard) {
- $r->print('Supplemental Course Documents');
+ $r->print(
+ 'Supplemental Course Documents');
my $folder=$ENV{'form.folder'};
unless ($folder=~/supplemental/) { $folder='supplemental'; }
&editor($r,$coursenum,$coursedom,$folder,$allowed);
if ($allowed) {
+ my $folderseq=
+ '/uploaded/'.$coursedom.'/'.$coursenum.'/supplemental_'.time.
+ '.sequence';
+
$r->print(<Post a new supplemental course document
+ |
ENDSUPFORM
}
}
-
- $r->print(' |