--- loncom/interface/londocs.pm 2004/02/19 21:51:11 1.107
+++ loncom/interface/londocs.pm 2004/04/24 23:03:49 1.119
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Documents
#
-# $Id: londocs.pm,v 1.107 2004/02/19 21:51:11 albertel Exp $
+# $Id: londocs.pm,v 1.119 2004/04/24 23:03:49 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -258,11 +258,34 @@ sub group_import {
return &storemap($coursenum, $coursedom, $folder.'.sequence');
}
+sub breadcrumbs {
+ my ($where)=@_;
+ &Apache::lonhtmlcommon::clear_breadcrumbs();
+ my (@folders)=split('&',$ENV{'form.folderpath'});
+ my $folderpath;
+ 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);
+ &Apache::lonhtmlcommon::add_breadcrumb(
+ {'href'=>$url,
+ 'title'=>&Apache::lonnet::unescape($foldername),
+ 'text'=>''.
+ &Apache::lonnet::unescape($foldername).''
+ });
+
+
+ }
+ return &Apache::lonhtmlcommon::breadcrumbs(undef,undef,undef,undef,undef,0);
+}
+
sub editor {
my ($r,$coursenum,$coursedom,$folder,$allowed)=@_;
- if ($ENV{'form.foldername'}) {
- $r->print('
Folder: '.$ENV{'form.foldername'}.'
');
- }
+
+ $r->print(&breadcrumbs($folder));
my $errtext='';
my $fatal=0;
($errtext,$fatal)=
@@ -280,7 +303,7 @@ sub editor {
# upload a file, if present
if (($ENV{'form.uploaddoc.filename'}) &&
($ENV{'form.cmd'}=~/^upload_(\w+)/)) {
- if ($folder=~/^$1/) {
+ if ( ($folder=~/^$1/) || ($1 eq 'default') ) {
# this is for a course, not a user, so set coursedoc flag
# probably the only place in the system where this should be "1"
my $url=&Apache::lonnet::userfileupload('uploaddoc',1);
@@ -398,7 +421,7 @@ sub editor {
my ($name,$url)=split(/\:/,$Apache::lonratedt::resources[$_]);
unless ($name) { $name=(split(/\//,$url))[-1]; }
unless ($name) { next; }
- $r->print(&entryline($idx,$name,$url,$folder,$allowed,$_));
+ $r->print(&entryline($idx,$name,$url,$folder,$allowed,$_,$coursenum));
$idx++;
}
$r->print('');
@@ -408,41 +431,45 @@ sub editor {
# --------------------------------------------------------------- An entry line
sub entryline {
- my ($index,$title,$url,$folder,$allowed,$residx)=@_;
+ my ($index,$title,$url,$folder,$allowed,$residx,$coursenum)=@_;
$title=~s/\&colon\;/\:/g;
$title=&HTML::Entities::encode(&HTML::Entities::decode(
- &Apache::lonnet::unescape($title)),'\"\<\>\&\'');
+ &Apache::lonnet::unescape($title)),'"<>&\'');
my $renametitle=$title;
my $foldertitle=$title;
- if ($title=~
- /^(\d+)\_\_\_\&\;\&\;\&\;\_\_\_(\w+)\_\_\_\&\;\&\;\&\;\_\_\_(\w+)\_\_\_\&\;\&\;\&\;\_\_\_(.*)$/
- ) {
- $foldertitle=&Apache::lontexconvert::msgtexconverted($4);
- $renametitle=$4;
- $title=''.&Apache::lonlocal::locallocaltime($1).' '.
- &Apache::loncommon::plainname($2,$3).':
'.
- $foldertitle;
- }
+ if ($title=~ /^(\d+)___&&&___(\w+)___&&&___(\w+)___&&&___(.*)$/ ) {
+ $foldertitle=&Apache::lontexconvert::msgtexconverted($4);
+ $renametitle=$4;
+ $title=''.&Apache::lonlocal::locallocaltime($1).' '.
+ &Apache::loncommon::plainname($2,$3).':
'.
+ $foldertitle;
+ }
$renametitle=~s/\"\;/\\\"/g;
my $line='';
# Edit commands
- if ($allowed) {
- my %lt=('up' => 'Move Up',
- 'dw' => 'Move Down',
- 'rm' => 'Remove',
- 'rn' => 'Rename');
- $line.=(< 'Move Up',
+ 'dw' => 'Move Down',
+ 'rm' => 'Remove',
+ 'rn' => 'Rename');
+ my $folderpath;
+ if ($ENV{'form.folderpath'}) {
+ $folderpath=&Apache::lonnet::escape($ENV{'form.folderpath'});
+ # $htmlfoldername=&HTML::Entities::encode($ENV{'form.foldername'},'<>&"');
+ }
+ $line.=(<
-
+
$lt{'rm'}
-
+
$lt{'rn'} |
END
}
@@ -451,32 +478,49 @@ END
my $uploaded=($url=~/^\/*uploaded\//);
my $icon=&Apache::loncommon::icon($url);
my $isfolder=0;
+ my $folderarg;
if ($uploaded) {
if ($extension eq 'sequence') {
$icon=$iconpath.'/folder_closed.gif';
- $url=~/\/(\w+)\.sequence/;
- $url='/adm/coursedocs?folder='.$1;
+ $url=~/$coursenum\/([\/\w]+)\.sequence$/;
+ $url='/adm/coursedocs?';
+ $folderarg=$1;
$isfolder=1;
- } else {
- $url=&Apache::lonnet::tokenwrapper($url);
- }
+ }
}
$url=~s/^http\&colon\;\/\//\/adm\/wrapper\/ext\//;
- if (($residx) && ($folder!~/supplemental/)) {
- $url.=(($url=~/\?/)?'&':'?').'symb='.
- &Apache::lonnet::escape(&Apache::lonnet::symbclean(
+ if ((!$isfolder) && ($residx) && ($folder!~/supplemental/)) {
+ my $symb=&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)));
+ &Apache::lonnet::declutter($url));
+ (undef,undef,$url)=&Apache::lonnet::decode_symb($symb);
+ $url=&Apache::lonnet::clutter($url);
+ $url.=(($url=~/\?/)?'&':'?').'symb='.&Apache::lonnet::escape($symb);
+ }
+ my $parameterset='';
+ if ($isfolder) {
+ my $foldername=&Apache::lonnet::escape($foldertitle);
+ my $folderpath=$ENV{'form.folderpath'};
+ if ($folderpath) { $folderpath.='&' };
+ $folderpath.=$folderarg.'&'.$foldername;
+ $url.='folderpath='.&Apache::lonnet::escape($folderpath);
+ $parameterset='';
+ }
+ $line.=' | '.
+ "$title | ";
+ if ($allowed) {
+ my %lt=&Apache::lonlocal::texthash(
+ 'hd' => 'Hidden',
+ 'ec' => 'URL hidden',
+ 'rp' => 'Randomly Pick Number of Resources',
+ 'sp' => 'Store Parameters');
}
- if ($isfolder) { $url.='&foldername='.
- &Apache::lonnet::escape($foldertitle); }
- $line.=' | '.
- "$title |
";
+ $line.="";
return $line;
}
@@ -504,7 +548,7 @@ sub checkonthis {
$alreadyseen{$url}=1;
$r->rflush();
if (($url) && ($url!~/^\/uploaded\//) && ($url!~/\*$/)) {
- $r->print('
');
+ $r->print("\n
");
for (my $i=0;$i<=$level*5;$i++) {
$r->print(' ');
}
@@ -592,7 +636,8 @@ sub verifycontent {
}
}
&untiehash();
- $r->print(''.&mt('Done').'.
');
+ $r->print(''.&mt('Done').'.
'.''.
+ &mt('Return to DOCS').'');
}
# -------------------------------------------------------------- Check Versions
@@ -639,7 +684,6 @@ sub checkversions {
foreach (keys %ENV) {
if ($_=~/^form\.set_version_(.+)$/) {
my $src=$1;
- &Apache::lonnet::logthis('Found: '.$1.' '.$ENV{$_});
if (($ENV{$_}) && ($ENV{$_} ne $setversions{$src})) {
$newsetversions{$src}=$ENV{$_};
}
@@ -841,7 +885,9 @@ sub changewarning {
$r->print(
''.
'