--- loncom/xml/lonxml.pm 2006/11/10 19:41:34 1.425
+++ loncom/xml/lonxml.pm 2006/12/28 03:00:24 1.430.2.1
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# XML Parser Module
#
-# $Id: lonxml.pm,v 1.425 2006/11/10 19:41:34 albertel Exp $
+# $Id: lonxml.pm,v 1.430.2.1 2006/12/28 03:00:24 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -780,8 +780,8 @@ sub init_safespace {
$safehole->wrap(\&Apache::lonnet::logthis,$safeeval,'&LONCAPA_INTERNAL_LOGTHIS');
$safehole->wrap(\&Apache::inputtags::finalizeawards,$safeeval,'&LONCAPA_INTERNAL_FINALIZEAWARDS');
$safehole->wrap(\&Apache::caparesponse::get_sigrange,$safeeval,'&LONCAPA_INTERNAL_get_sigrange');
- use Data::Dumper;
- $safehole->wrap(\&Data::Dumper::Dumper,$safeeval,'&LONCAPA_INTERNAL_Dumper');
+# use Data::Dumper;
+# $safehole->wrap(\&Data::Dumper::Dumper,$safeeval,'&LONCAPA_INTERNAL_Dumper');
#need to inspect this class of ops
# $safeeval->deny(":base_orig");
$safeeval->permit("require");
@@ -1332,11 +1332,15 @@ FULLPAGE
my $cleanbut = '';
my $titledisplay=&display_title();
- my %lt=&Apache::lonlocal::texthash('st' => 'Save this',
- 'vi' => 'View',
+ my %lt=&Apache::lonlocal::texthash('st' => 'Save and Edit',
+ 'vi' => 'Save and View',
+ 'dv' => 'Discard Edits and View',
+ 'un' => 'undo',
'ed' => 'Edit');
my $buttons=(<
+
BUTTONS
@@ -1416,14 +1420,10 @@ sub handler {
#
# Edit action? Save file.
#
- unless ($env{'request.state'} eq 'published') {
- if ($env{'form.savethisfile'}) {
- if (&storefile($file,$env{'form.filecont'})) {
- &Apache::lonxml::info("".
- &mt('Updated').": ".
- &Apache::lonlocal::locallocaltime(time).
- " ");
- }
+ if (!($env{'request.state'} eq 'published')) {
+ if ($env{'form.savethisfile'} || $env{'form.viewmode'} || $env{'form.Undo'}) {
+ my $html_file=&Apache::lonnet::getfile($file);
+ my $error = &Apache::lonhomework::handle_save_or_undo($request, \$html_file, \$env{'form.filecont'});
}
}
my %mystyle;
@@ -1457,7 +1457,8 @@ ENDNOTFOUND
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
['editmode']);
}
- if (!$env{'form.editmode'} || $env{'form.viewmode'}) {
+ &Apache::lonnet::logthis("edit mode is ".$env{'form.editmode'});
+ if (!$env{'form.editmode'} || $env{'form.viewmode'} || $env{'form.discardview'}) {
$result = &Apache::lonxml::xmlparse($request,$target,$filecontents,
'',%mystyle);
undef($Apache::lonhomework::parsing_a_task);
@@ -1471,7 +1472,8 @@ ENDNOTFOUND
# Edit action? Insert editing commands
#
unless ($env{'request.state'} eq 'published') {
- if ($env{'form.editmode'} && (!($env{'form.viewmode'}))) {
+ if ($env{'form.editmode'} && (!($env{'form.viewmode'})) && (!($env{'form.discardview'})))
+ {
my $displayfile=$request->uri;
$displayfile=~s/^\/[^\/]*//;
my %options = ();
@@ -1571,8 +1573,11 @@ sub error {
$cdom,$cnum);
my $now=time;
if ($now-$lastnotified{$key}>86400) {
+ my $title = &Apache::lonnet::gettitle($symb);
+ my $sentmessage;
&Apache::lonmsg::user_normal_msg($user,$domain,
- "Error [$declutter]",$msg);
+ "Error [$title]",$msg,'','','','',
+ \$sentmessage,$symb,$title,1);
&Apache::lonnet::put('nohist_xmlerrornotifications',
{$key => $now},
$cdom,$cnum);