--- loncom/interface/lonsource.pm 2004/07/08 20:17:59 1.8
+++ loncom/interface/lonsource.pm 2007/08/28 22:46:32 1.20
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Souce Code handler
#
-# $Id: lonsource.pm,v 1.8 2004/07/08 20:17:59 taceyjo1 Exp $
+# $Id: lonsource.pm,v 1.20 2007/08/28 22:46:32 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -31,7 +31,7 @@
package Apache::lonsource;
use strict;
-use Apache::lonnet();
+use Apache::lonnet;
use Apache::loncommon();
use Apache::lonhtmlcommon();
use Apache::lonsequence();
@@ -40,30 +40,26 @@ use Apache::lonmeta;
use Apache::File;
use Apache::lonlocal;
use HTML::Entities;
+use LONCAPA;
sub make_link {
my ($filename, $listname) = @_;
- my $sourcelink = "http://".$ENV{'SERVER_NAME'}.
- "/adm/source/?filename=".$filename."&listname=".$listname;
+ my $sourcelink = "/adm/source?inhibitmenu=yes&filename=".$filename."&listname=".$listname;
return $sourcelink;
}
sub stage_2 {
my ($r, $filename, $author, $listname) = @_;
- $filename = $filename;
- &Apache::loncommon::content_type($r,'text/html');
my ($uname, $udom) = &Apache::loncacc::constructaccess('/~'.$author.'/',$r->dir_config('lonDefDomain'));
- $r->send_http_header;
- $r->print('
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;
@@ -72,48 +68,51 @@ sub stage_2 {
sub copy_stage {
my ($r, $filename, $listname, $newpath) = @_;
+
+#Figure out if we are author or co-author
my $role;
my $domain;
my $author_name;
-#Figure out if we are author or co-author
-
- if($ENV{'request.role'} =~ m|ca.|) {
- ($role, $domain, $author_name) = split(/\//,$ENV{'request.role'});
+ if ($env{'request.role'} =~ m{^ca\.}) {
+ ($role, $domain, $author_name) = split(/\//,$env{'request.role'});
} else {
$role = "au.";
- $domain = $ENV{'user.domain'};
- $author_name = $ENV{'user.name'};
+ $domain = $env{'user.domain'};
+ $author_name = $env{'user.name'};
}
my $path_to_new_file = '/home/'.$author_name.'/public_html/'.$newpath.'/'.$listname;
#Just checking again for access as we want to make sure that it is really ok now that we have the real path
my ($uname,$udom)= &Apache::loncacc::constructaccess($path_to_new_file,$domain);
- unless (($uname) && ($udom)) {
- return HTTP_NOT_ACCEPTABLE;
+
+ if (!$uname || !$udom) {
+ $r->print(&Apache::loncommon::start_page('Not Allowed'));
+ $r->print(&mt('Not allowed to create file [_1]', $path_to_new_file));
+ $r->print(&Apache::loncommon::end_page());
+ return;
}
- &Apache::loncommon::content_type($r,'text/html');
- $r->send_http_header;
- $r->print('LON-CAPA Move source to construction space');
- $r->print(&Apache::loncommon::bodytag('Copying Source'));
+
+
+ #allowed
+ $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|) ) {
- &delete_copy_file($r, $author_name, $newpath, $filename, $path_to_new_file, '1');
+ &delete_copy_file($r, $author_name, $newpath, $filename, $path_to_new_file, '1');
} elsif(($result) && ($result =~ m|exists!|)) {
- &confirm($r, $author_name, $newpath, $filename, $path_to_new_file);
+ &confirm($r, $author_name, $newpath, $filename, $path_to_new_file);
} else {
- ©_file($r, $author_name, $newpath, $filename, $path_to_new_file);
+ ©_file($r, $author_name, $newpath, $filename, $path_to_new_file);
}
-
- return OK;
-
+
+ $r->print(&Apache::loncommon::end_page());
}
sub confirm {
my ($r, $author_name, $newpath, $filename, $path_to_new_file) = @_;
$r->print("Press delete to remove file and replace it with a copy of the source you are viewing
");
- $r->print('');
$r->print('
');
- &print_item($r, $ENV{'form.filename'});
+ &print_item($r, $env{'form.filename'});
}
return OK;
}