--- loncom/interface/londocs.pm 2002/08/27 12:18:13 1.11
+++ loncom/interface/londocs.pm 2002/09/04 19:24:46 1.18
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Documents
#
-# $Id: londocs.pm,v 1.11 2002/08/27 12:18:13 www Exp $
+# $Id: londocs.pm,v 1.18 2002/09/04 19:24:46 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -34,6 +34,7 @@ use Apache::lonnet;
use Apache::loncommon;
use Apache::lonratedt;
use Apache::lonratsrv;
+use Apache::lonxml;
my $iconpath;
@@ -54,20 +55,28 @@ sub storemap {
my ($coursenum,$coursedom,$map)=@_;
return
&Apache::lonratedt::storemap('/uploaded/'.$coursedom.'/'.$coursenum.'/'.
- $map);
+ $map,1);
}
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+)/)) {
@@ -82,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';
@@ -134,7 +147,8 @@ sub editor {
# Store the changed version
&storemap($coursenum,$coursedom,$folder.'.sequence');
}
- }
+ }
+# ---------------------------------------------------------------- End commands
# ---------------------------------------------------------------- Print screen
my $idx=0;
$r->print('
";
return $line;
}
@@ -192,23 +226,44 @@ sub handler {
# is this a standard course?
- &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['folder']);
my $standard=($ENV{'request.course.uri'}=~/^\/uploaded\//);
- my $forcestandard=($ENV{'form.folder'}=~/^default_/);
- my $forcesupplement=($ENV{'form.folder'}=~/^supplemental_/);
+ my $forcestandard;
+ my $forcesupplement;
+ my $script='';
+ my $allowed;
+ my $events='';
+ &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
+ ['folder','foldername','showdoc']);
+ unless ($ENV{'form.showdoc'}) { # got called from remote
+ $forcestandard=($ENV{'form.folder'}=~/^default_/);
+ $forcesupplement=($ENV{'form.folder'}=~/^supplemental_/);
# does this user have privileges to post, etc?
- my $allowed=&Apache::lonnet::allowed('srm',$ENV{'request.course.id'});
- my $script='';
- if ($allowed) {
- &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['cmd']);
- $script=&Apache::lonratedt::editscript('simple');
+ $allowed=&Apache::lonnet::allowed('srm',$ENV{'request.course.id'});
+ if ($allowed) {
+ &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['cmd']);
+ $script=&Apache::lonratedt::editscript('simple');
+ }
+ } else { # got called in sequence from course
+ $allowed=0;
+ $forcestandard=1;
+ $forcesupplement=0;
+ $script=&Apache::lonxml::registerurl(1,undef);
+ $events='onLoad="'.&Apache::lonxml::loadevents.
+ '" onUnload="'.&Apache::lonxml::unloadevents.'"';
}
# get course data
my $coursenum=$ENV{'course.'.$ENV{'request.course.id'}.'.num'};
my $coursedom=$ENV{'course.'.$ENV{'request.course.id'}.'.domain'};
+# get personal data
+
+ my $uname=$ENV{'user.name'};
+ my $udom=$ENV{'user.domain'};
+ my $plainname=&Apache::lonnet::escape(
+ &Apache::loncommon::plainname($uname,$udom));
+
# graphics settings
$iconpath = $r->dir_config('lonIconsURL') . "/";
@@ -218,23 +273,49 @@ sub handler {
The LearningOnline Network with CAPA
-
+
ENDDOCUMENT
-$r->print(&Apache::loncommon::bodytag('Course Documents'));
-# --------------------------------------------------0------ Standard documents
+$r->print(&Apache::loncommon::bodytag('Course Documents','',$events));
+# --------------------------------------------------------- Standard documents
if (($standard) && ($allowed) && (!$forcesupplement)) {
$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:
-
+
-
+
+
+
@@ -279,21 +384,76 @@ ENDFORM
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
+