--- loncom/xml/lonxml.pm	2006/11/10 19:41:34	1.425
+++ loncom/xml/lonxml.pm	2006/11/23 22:11:21	1.427
@@ -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.427 2006/11/23 22:11:21 banghart Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -1332,11 +1332,13 @@ 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',
 					 'ed' => 'Edit');
       my $buttons=(<<BUTTONS);
 $cleanbut
+<input type="submit" name="discardview" accesskey="d"  value="$lt{'dv'}" /><hr>
 <input type="submit" name="savethisfile" accesskey="s"  value="$lt{'st'}" />
 <input type="submit" name="viewmode" accesskey="v" value="$lt{'vi'}" />
 BUTTONS
@@ -1417,7 +1419,7 @@ sub handler {
 # Edit action? Save file.
 #
     unless ($env{'request.state'} eq 'published') {
-	if ($env{'form.savethisfile'}) {
+	if ($env{'form.savethisfile'} || $env{'form.viewmode'}) {
 	    if (&storefile($file,$env{'form.filecont'})) {
 		&Apache::lonxml::info("<font COLOR=\"#0000FF\">".
 				      &mt('Updated').": ".
@@ -1457,7 +1459,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 +1474,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 = ();