--- loncom/interface/londocs.pm 2004/12/23 20:50:35 1.162 +++ loncom/interface/londocs.pm 2005/01/30 12:51:21 1.165 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.162 2004/12/23 20:50:35 raeburn Exp $ +# $Id: londocs.pm,v 1.165 2005/01/30 12:51:21 www 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('Copying Files').'

'); my $title=$ENV{'form.authorfolder'}; - $title=~s/[^\w\/]+/\_/g; + $title=&clean($title); my %replacehash=(); foreach (keys %ENV) { if ($_=~/^form\.namefor\_(.+)/) { @@ -160,7 +165,7 @@ sub dumpcourse { $crs=~s/\_/\//g; foreach (keys %replacehash) { my $newfilename=$title.'/'.$replacehash{$_}; - $newfilename=~s/[^\w\/\.\/]+/\_/g; + $newfilename=&clean($newfilename); my @dirs=split(/\//,$newfilename); my $path='/home/'.$ca.'/public_html'; my $makepath=$path; @@ -214,7 +219,7 @@ sub dumpcourse { } my $title=$origcrsdata{'description'}; $title=~s/\s+/\_/gs; - $title=~s/\W//gs; + $title=&clean($title); $r->print('

'.&mt('Folder in Construction Space').'


'); &tiehash(); $r->print('

'.&mt('Filenames in Construction Space').'

'); @@ -223,12 +228,13 @@ sub dumpcourse { my ($ext)=($_=~/\.(\w+)$/); my $title=$hash{'title_'.$hash{ 'ids_/uploaded/'.$origcrsdata{'domain'}.'/'.$origcrsdata{'num'}.'/'.$_}}; + $title=~s/:/:/g; $r->print(''); unless ($title) { $title=$_; } $title=~s/\.(\w+)$//; - $title=~s/[^\w\/]+/\_/gs; + $title=&clean($title); $title.='.'.$ext; $r->print("\n\n"); } @@ -1297,10 +1303,11 @@ END $folderpath.=$folderarg.'&'.$foldername; $url.='folderpath='.&Apache::lonnet::escape($folderpath); $parameterset=''; + '" />'. +''.&mt('Store').''; } if ($ispage) { @@ -1327,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.=(< - + + - ENDPARMS } $line.=""; @@ -1954,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; }
'.&mt('Internal Filename').''.&mt('Title').''.&mt('Save as ...').'
'.($title?$title:' ').'
-$parameterset - -