--- loncom/interface/londocs.pm 2004/12/23 16:31:27 1.159 +++ loncom/interface/londocs.pm 2005/02/02 22:15:06 1.166 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.159 2004/12/23 16:31:27 raeburn Exp $ +# $Id: londocs.pm,v 1.166 2005/02/02 22:15:06 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -132,6 +132,11 @@ sub dumpbutton { } } +sub clean { + my ($title)=@_; + $title=~s/[^\w\/\!\$\%\^\*\-\_\=\+\;\:\,\\\|\`\~]+/\_/gs; + return $title; +} # -------------------------------------------------------- Actually dump course sub dumpcourse { @@ -149,7 +154,7 @@ sub dumpcourse { my ($ca,$cd)=split(/\@/,$ENV{'form.authorspace'}); $r->print('
'.&mt('Internal Filename').' | '.&mt('Title').' | '.&mt('Save as ...').' | '.($title?$title:' ').' | '); unless ($title) { $title=$_; } $title=~s/\.(\w+)$//; - $title=~s/[^\w\/]+/\_/gs; + $title=&clean($title); $title.='.'.$ext; $r->print("\n\n"); } @@ -242,6 +248,7 @@ sub dumpcourse { # ------------------------------------------------------ Generate "export" button sub exportbutton { + return ''; return ' | '.
''.
@@ -658,7 +665,6 @@ sub process_content {
my $content_type;
my $message;
# find where user is author or co-author
- my %roleshash = &Apache::lonnet::get_my_roles();
my @uploads = ();
if ($curRes->is_sequence()) {
$content_type = 'sequence';
@@ -705,29 +711,20 @@ sub process_content {
if ($contents) {
$$content_file = &store_template($contents,$tempexport,$count,$content_type);
}
- } elsif ($symb =~ m-uploaded/$cdom/$cnum-) {
- $$content_file = &replicate_content($cdom,$cnum,$tempexport,$symb,$count,\$message,$href,'uploaded');
} elsif ($symb =~ m-\.(sequence|page)___\d+___uploaded/$cdom/$cnum/-) {
$$content_file = &replicate_content($cdom,$cnum,$tempexport,$symb,$count,\$message,$href,'uploaded');
- } elsif ($symb =~ m-\.(sequence|page)___\d+___([^/])/([^/])-) {
- my $coauth = $3.':'.$2.':ca';
+ } elsif ($symb =~ m-\.(sequence|page)___\d+___([^/]+)/([^/]+)-) {
my $canedit = 0;
if ($2 eq $ENV{'user.domain'} && $3 eq $ENV{'user.name'}) {
$canedit= 1;
- } elsif (defined($roleshash{$coauth})) {
- if ($roleshash{$coauth} =~ /(\d+):(\d+)/) {
- if (($1 < time || $1 == 0) && ($2 == 0 || $2 >= time)) {
- $canedit = 1;
- }
- } elsif ($roleshash{$coauth} eq ':') {
- $canedit = 1;
- }
}
if ($canedit) {
$$content_file = &replicate_content($cdom,$cnum,$tempexport,$symb,$count,\$message,$href,'resource');
} else {
$$content_file = &replicate_content($cdom,$cnum,$tempexport,$symb,$count,\$message,$href,'noedit');
}
+ } elsif ($symb =~ m-uploaded/$cdom/$cnum-) {
+ $$content_file = &replicate_content($cdom,$cnum,$tempexport,$symb,$count,\$message,$href,'uploaded');
}
if (@uploads > 0) {
foreach my $item (@uploads) {
@@ -769,14 +766,14 @@ sub replicate_content {
if ($copiedfile = Apache::File->new('>'.$destination)) {
my $content;
if ($caller eq 'resource') {
- $content = &Apache::lonnet::getfile($url);
+ $content = &Apache::lonnet::getfile('/home/httpd/html/res/'.$url);
if ($content eq -1) {
$$message = 'Could not copy file '.$filename;
} else {
&extract_media($content,$count,$tempexport,$href,'resource');
$repstatus = 'ok';
}
- } elsif ($caller eq 'noedit' || $caller eq 'uploaded' || $caller eq 'templateupload') {
+ } elsif ($caller eq 'uploaded' || $caller eq 'templateupload') {
my $rtncode;
$repstatus = &Apache::lonnet::getuploaded('GET',$url,$cdom,$cnum,\$content,$rtncode);
if ($repstatus eq 'ok') {
@@ -786,6 +783,10 @@ sub replicate_content {
} else {
$$message = 'Could not render '.$url.' server message - '.$rtncode;
}
+ } elsif ($caller eq 'noedit') {
+# Need to render the resource without the LON-CAPA Internal header and the Post discussion footer, and then set $content equal to this.
+ $repstatus = 'ok';
+ $content = 'Not the owner of this resource';
}
if ($repstatus eq 'ok') {
print $copiedfile $content;
@@ -1005,7 +1006,8 @@ sub editor {
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,'docs');
+ my $newidx=$#Apache::lonratedt::resources+1;
+ my $url=&Apache::lonnet::userfileupload('uploaddoc',1,'docs/'.$newidx);
my $ext='false';
if ($url=~/^http\:\/\//) { $ext='true'; }
$url=~s/\:/\:/g;
@@ -1017,7 +1019,6 @@ sub editor {
$comment=time.'___&&&___'.$ENV{'user.name'}.'___&&&___'.
$ENV{'user.domain'}.'___&&&___'.$comment;
}
- my $newidx=$#Apache::lonratedt::resources+1;
$Apache::lonratedt::resources[$newidx]=
$comment.':'.$url.':'.$ext.':normal:res';
$Apache::lonratedt::order[$#Apache::lonratedt::order+1]=
@@ -1302,10 +1303,11 @@ END
$folderpath.=$folderarg.'&'.$foldername;
$url.='folderpath='.&Apache::lonnet::escape($folderpath);
$parameterset='';
+ '" />'.
+''.&mt('Store').'';
}
if ($ispage) {
@@ -1332,21 +1334,17 @@ END
if (($allowed) && ($folder!~/^supplemental/)) {
my %lt=&Apache::lonlocal::texthash(
'hd' => 'Hidden',
- 'ec' => 'URL hidden',
- 'sp' => 'Store Parameters');
+ 'ec' => 'URL hidden');
my $enctext=
((&Apache::lonratedt::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i?' checked="1"':'');
my $hidtext=
((&Apache::lonratedt::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i?' checked="1"':'');
$line.=(< |
+
- |
+$parameterset | -- - | ENDPARMS } $line.=""; @@ -1959,16 +1957,20 @@ function makeabout() { this.document.forms.newaboutsomeone.importdetail.value= 'About '+user+'=/adm/'+comp[1]+'/'+comp[0]+'/aboutme'; this.document.forms.newaboutsomeone.submit(); - } + } else { + alert("Not a valid user\@domain"); + } + } else { + alert("Please enter both user and domain in the format user\@domain"); } } } function makeims() { - var caller = document.forms.ims.folder.value - var newlocation = "/adm/imsimportdocs?folder="+caller+"&phase=one" - newWindow = window.open("","IMSimport","HEIGHT=700,WIDTH=750,scrollbars=yes") - newWindow.location.href = newlocation + var caller = document.forms.ims.folder.value; + var newlocation = "/adm/imsimportdocs?folder="+caller+"&phase=one"; + newWindow = window.open("","IMSimport","HEIGHT=700,WIDTH=750,scrollbars=yes"); + newWindow.location.href = newlocation; }
---|