--- loncom/homework/lonsimpleproblemedit.pm	2010/06/06 02:40:35	1.32
+++ loncom/homework/lonsimpleproblemedit.pm	2012/11/09 03:28:01	1.34
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Simple Problem Parameter Setting "Editor"
 #
-# $Id: lonsimpleproblemedit.pm,v 1.32 2010/06/06 02:40:35 raeburn Exp $
+# $Id: lonsimpleproblemedit.pm,v 1.34 2012/11/09 03:28:01 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -205,7 +205,7 @@ sub handler {
     my $weightprefix=$env{'request.course.id'}.'.'.$symb.'.';
     
 # ---------------------------------------------------------- Anything to store?
-
+    my $storeresult;
     if (($symb) && (defined($env{'form.questiontype'}))) {
         my %storecontent=();
         undef %storecontent;
@@ -247,7 +247,16 @@ sub handler {
         &Apache::lonnet::devalidatecourseresdata(
                             $env{'course.'.$env{'request.course.id'}.'.num'},
                             $env{'course.'.$env{'request.course.id'}.'.domain'});
-
+        if ($reply eq 'ok') {
+            if ($env{'form.forceview'}) {
+                my $dest = &get_parent_uri($symb);
+                if ($dest) {
+                    $r->internal_redirect($dest);
+                }
+            }
+        } else {
+            $storeresult = $reply;
+        }
     }
 # ------------------------------------------------------------------- Read Data
 
@@ -256,21 +265,34 @@ sub handler {
 		     $env{'course.'.$env{'request.course.id'}.'.num'},
 		     $env{'request.course.id'}.'.'.$symb);
 
+    my $js = <<"ENDJS";
+
+<script type="text/javascript">
+// <![CDATA[
+
+function setForceView() {
+    if (document.getElementById('spview')) {
+        document.getElementById('spview').value = 1;
+    }
+    return true;
+}
+// END LON-CAPA Internal -->
+// ]]>
+</script>
+
+ENDJS
+
 # ------------------------------------------------------------ Print the screen
     my $spell_header=&Apache::lonhtmlcommon::spellheader();
     $r->print(&Apache::loncommon::start_page('Simple Problem Editor',
-					     $spell_header));
+					     $spell_header.$js));
     if ($symb) {
 	    my $title='<h1>'.&Apache::lonnet::gettitle($symb).'</h1>';
-        my $displaylink = &get_parent_uri($symb);
-        if ($displaylink ne '') {
-            my $functions=&Apache::lonhtmlcommon::start_funclist()
-                         .&Apache::lonhtmlcommon::add_item_funclist(
-                              '<a href="'.$displaylink.'">'
-                             .&mt('Student View').'</a>')
-                             .&Apache::lonhtmlcommon::end_funclist();
-            $r->print(&Apache::loncommon::head_subbox($functions)
-                     .$title);
+        if (&get_parent_uri($symb)) {
+            $r->print($title);
+            if ($storeresult) {
+                $r->print('<p class="LC_error">'.&mt('An error: [_1] occurred saving your changes',$storeresult).'</p>'); 
+            }
         } else {
             $r->print($title
                      .'<p class="LC_error">'
@@ -314,7 +336,10 @@ sub handler {
         );
         $r->print(
             '<p>'
+           .'<input type="hidden" name="forceview" value="" id="spview" />' 
            .'<input type="submit" value="'.&mt('Save and Edit').'" />'
+           .('&nbsp;' x3)
+           .'<input type="submit" value="'.&mt('Save and View').'" onclick="javascript:setForceView();" />'
            .'</p>'
         );
 # Script
@@ -414,13 +439,16 @@ sub handler {
         }
 # Store Button
 	$r->print(
-  '<input type="submit" value="'.&mt('Save and Edit').'" /></form>');
+  '<input type="submit" value="'.&mt('Save and Edit').'" />'.
+  ('&nbsp;' x3).
+  '<input type="submit" value="'.&mt('Save and View').'" onclick="javascript:setForceView();" />'.
+  '</form>');
     } else {
 	$r->print(&mt('Could not identify problem.'));
     }
     $r->print(&Apache::loncommon::end_page());
     return OK;
-} 
+}
 
 1;
 __END__