--- loncom/interface/lonsource.pm 2005/06/23 23:24:53 1.13
+++ loncom/interface/lonsource.pm 2006/06/22 18:17:23 1.17
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Souce Code handler
#
-# $Id: lonsource.pm,v 1.13 2005/06/23 23:24:53 www Exp $
+# $Id: lonsource.pm,v 1.17 2006/06/22 18:17:23 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -40,6 +40,7 @@ use Apache::lonmeta;
use Apache::File;
use Apache::lonlocal;
use HTML::Entities;
+use LONCAPA;
sub make_link {
my ($filename, $listname) = @_;
@@ -54,16 +55,14 @@ sub stage_2 {
&Apache::loncommon::content_type($r,'text/html');
my ($uname, $udom) = &Apache::loncacc::constructaccess('/~'.$author.'/',$r->dir_config('lonDefDomain'));
$r->send_http_header;
- my $html=&Apache::lonxml::xmlbegin();
- $r->print($html.'
LON-CAPA Move source to construction space');
- $r->print(&Apache::loncommon::bodytag('Problem source code moving operation'));
+ $r->print(&Apache::loncommon::start_page('Problem source code moving operation'));
$r->print("Please enter the directory that you would like the source code to go into, a default has also been provided
");
$r->print("Also note, the path is in reference to the root of your construction space, and new directories will be automatically created.
");
$r->print('');
return OK;
@@ -94,9 +93,7 @@ sub copy_stage {
}
&Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
- my $html=&Apache::lonxml::xmlbegin();
- $r->print($html.'LON-CAPA Move source to construction space');
- $r->print(&Apache::loncommon::bodytag('Copying Source'));
+ $r->print(&Apache::loncommon::start_page('Copying Source'));
my $result = &Apache::loncfile::exists($uname, $udom, $path_to_new_file);
$r->print($result);
if(($result) && ($result =~ m|published|) ) {
@@ -170,7 +167,7 @@ sub copy_file {
}
$r->print("
Copying File");
my $problem_filename = $Apache::lonnet::perlvar{'lonDocRoot'}.$filename;
- my $file_output = &Apache::lonnet::getfile($problem_filename);
+ my $file_output = &includemeta(&Apache::lonnet::getfile($problem_filename),$filename);
my $fs=Apache::File->new(">$path_to_new_file");
if (defined($fs)) {
print $fs $file_output;
@@ -182,9 +179,7 @@ sub copy_file {
sub print_item {
my ($r, $filename) = @_;
- $filename = $Apache::lonnet::perlvar{'lonDocRoot'}.$filename;
- &Apache::lonnet::logthis("print_item filename = $filename");
- my $file_output = &Apache::lonnet::getfile($filename);
+ my $file_output = &includemeta(&Apache::lonnet::getfile($Apache::lonnet::perlvar{'lonDocRoot'}.$filename),$filename);
my $count=0;
my $maxlength=-1;
foreach (split ("\n", $file_output)) {
@@ -202,6 +197,22 @@ sub print_item {
}
+sub includemeta {
+ my ($file_output,$orgfilename)=@_;
+ my $escfilename=&escape($orgfilename);
+ my $copytime=time;
+ if ($file_output=~/\]*\>)/$1\n\/i;
+ }
+ if ($file_output=~/\]*\>)/$1\n\/i;
+ }
+ return $file_output;
+}
sub handler {
my $r=shift;
@@ -214,8 +225,8 @@ sub handler {
$env{'user.error.msg'}="$filename:cre:1:1:Source code not available";
return HTTP_NOT_ACCEPTABLE;
}
- if ((!&Apache::lonnet::allowed('cre',$filename)) ||
- (!&Apache::lonnet::allowed('bre',$filename))) {
+ unless ((&Apache::lonnet::allowed('bre',$filename)) &&
+ (&Apache::lonnet::allowed('cre','/'))) {
$env{'user.error.msg'}="$filename:bre:1:1:Access to resource denied";
return HTTP_NOT_ACCEPTABLE;
}