');
+ }
+ }
+ &Apache::lonhomework::showhash(%overall);
+ return $result;
}
sub editxmlmode {
@@ -296,22 +401,34 @@ sub editxmlmode {
\$ENV{'form.editxmltext'});
if (!$error) { $problem=&Apache::lonnet::getfile($file); }
}
- my ($rows,$cols) = &Apache::edit::textarea_sizes(\$problem);
- if ($cols > 80) { $cols = 80; }
- $result.='
+ &Apache::lonhomework::showhashsubset(\%ENV,'^form');
+ if ( $ENV{'form.submit'} eq 'Submit Changes and View' ) {
+ &Apache::lonhomework::showhashsubset(\%ENV,'^form');
+ $ENV{'form.problemmode'}='View';
+ &renderpage($request,$file);
+ } else {
+ my ($rows,$cols) = &Apache::edit::textarea_sizes(\$problem);
+ my $xml_help = Apache::loncommon::help_open_topic("Problem_Editor_XML_Index");
+ if ($cols > 80) { $cols = 80; }
+ if ($cols < 70) { $cols = 70; }
+ if ($rows < 20) { $rows = 20; }
+ $result.='
';
- $request->print($result);
+ $request->print($result);
+ }
return '';
}
@@ -330,29 +447,16 @@ sub renderpage {
my %mystyle;
my $result = '';
- &Apache::inputtags::initialize_inputtags;
- &Apache::edit::initialize_edit;
+ &Apache::inputtags::initialize_inputtags();
+ &Apache::outputtags::initialize_outputtags();
+ &Apache::edit::initialize_edit();
if ($target eq 'analyze') { %Apache::lonhomework::anaylze=(); }
- if ($target eq 'web') {
- my ($symb)=&Apache::lonxml::whichuser();
- if ($symb eq '') {
- if ($ENV{'request.state'} eq "construct") {
- } else {
- $request->print("Browsing or ambiguous reference, submissions ignored ");
- }
- }
- #if ($Apache::lonhomework::viewgrades eq 'F') {&createmenu('grade',$request); }
- }
- #if ($target eq 'grade') { &showhash(%Apache::lonhomework::history); }
+ if ($target eq 'answer') { &showhash(%Apache::lonhomework::history); }
+ if ($target eq 'web') {&Apache::lonhomework::showhashsubset(\%ENV,'^form');}
- my $default=&Apache::lonnet::getfile('/home/httpd/html/res/adm/includes/default_homework.lcpm');
- if ($default == -1) {
- &Apache::lonxml::error("Unable to find default_homework.lcpm");
- $default='';
- }
&Apache::lonxml::debug("Should be parsing now");
$result = &Apache::lonxml::xmlparse($request, $target, $problem,
- $default.&setup_vars($target),%mystyle);
+ &setup_vars($target),%mystyle);
#$request->print("Result follows:");
if ($target eq 'modified') {
@@ -379,6 +483,7 @@ sub renderpage {
sub get_template_list {
my ($namewanted,$extension) = @_;
my $result;
+ my @allnames;
&Apache::lonxml::debug("Looking for :$extension:");
foreach my $file () {
my $name=&Apache::lonnet::metadata($file,'title');
@@ -386,9 +491,13 @@ sub get_template_list {
$result=$file;
last;
} else {
- $result.="";
+ if ($name) { push (@allnames, $name); }
}
}
+ if (@allnames && !$result) {
+ $result="\n';
+ }
return $result;
}
@@ -397,7 +506,8 @@ sub newproblem {
my $extension=$request->uri;
$extension=~s:^.*\.([\w]+)$:$1:;
&Apache::lonxml::debug("Looking for :$extension:");
- if ($ENV{'form.template'}) {
+ if ($ENV{'form.template'} &&
+ $ENV{'form.template'} ne "Select a $extension type") {
use File::Copy;
my $file = &get_template_list($ENV{'form.template'},$extension);
my $dest = &Apache::lonnet::filelocation("",$request->uri);
@@ -412,33 +522,26 @@ sub newproblem {
my $dest = &Apache::lonnet::filelocation("",$request->uri);
copy($templatefilename,$dest);
&renderpage($request,$dest);
- }else {
+ } else {
my $templatelist=&get_template_list('',$extension);
my $url=$request->uri;
my $dest = &Apache::lonnet::filelocation("",$request->uri);
- if (!defined($templatelist)) {
- # We didn't find a template, so just create a blank problem.
- $request->print(<
-The requested file $url doesn\'t exist. You can create a new $extension
-
-
-ENDNEWPROBLEM
- return '';
- }
+ my $instructions;
+ if ($templatelist) { $instructions=", select a template from the pull-down menu below. Then";}
$request->print(<
-The requested file $url doesn\'t exist. You can create a new $extension
-
-
+
Creating a new $extension resource
+The requested file $url currently does not exist.
+
+To create a new $extension$instructions click on the "Create $extension" button.
+
+");
}
return '';
}
@@ -460,7 +563,8 @@ sub handler {
#my $t0 = [&gettimeofday()];
my $request=$_[0];
- if ( $ENV{'user.name'} eq 'albertel' ) {$Apache::lonxml::debug=1;}
+# if ( $ENV{'user.name'} eq 'albertel' ) {$Apache::lonxml::debug=1;}
+ $Apache::lonxml::debug=$ENV{'user.debug'};
if (&setupheader($request)) { return OK; }
$ENV{'request.uri'}=$request->uri;
@@ -471,8 +575,10 @@ sub handler {
&Apache::lonxml::debug("Permissions:$Apache::lonhomework::browse:$Apache::lonhomework::viewgrades:");
# some times multiple problemmodes are submitted, need to select
# the last one
+ &Apache::lonxml::debug("Problem Mode ".$ENV{'form.problemmode'});
if ( defined($ENV{'form.problemmode'}) &&
ref($ENV{'form.problemmode'}) ) {
+ &Apache::lonxml::debug("Problem Mode ".join(",",@$ENV{'form.problemmode'}));
my $mode=$ENV{'form.problemmode'}->[-1];
undef $ENV{'form.problemmode'};
$ENV{'form.problemmode'}=$mode;
500 Internal Server Error
Internal Server Error
The server encountered an internal error or
misconfiguration and was unable to complete
your request.
Please contact the server administrator at
root@localhost to inform them of the time this error occurred,
and the actions you performed just before this error.
More information about this error may be available
in the server error log.