#628132: fix Views preview.

From: Damien Tournoud <damien@tournoud.net>


---
 admin.inc |    6 ++----
 ajax.js   |    7 +++++++
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git includes/admin.inc includes/admin.inc
index 3a669c0..5e6dbcc 100644
--- includes/admin.inc
+++ includes/admin.inc
@@ -448,7 +448,7 @@ function views_ui_preview($js, $view) {
     $output .= $preview . $info;
   }
 
-  if (!$js) {
+  if ($js !== 'ajax') {
     views_add_css('views-admin');
     drupal_set_title($view->get_title());
     return $output;
@@ -464,9 +464,7 @@ function views_ui_preview($js, $view) {
       $display = '<div class="views-messages">' . $messages . '</div>';
     }
     $display .= $output;
-    if ($display) {
-      $commands[] = views_ajax_command_set_form($display, $view->get_title());
-    }
+    $commands[] = ajax_command_replace('#views-ui-preview-form', $display);
     ajax_render($commands);
   }
 }
diff --git js/ajax.js js/ajax.js
index 3c1a8d8..3170797 100644
--- js/ajax.js
+++ js/ajax.js
@@ -73,6 +73,13 @@ Drupal.behaviors.viewsAjax = {
       var base = $(this).attr('id');
       Drupal.ajax[base] = new Drupal.ajax(base, this, element_settings);
     });
+
+    $('form#views-ui-preview-form', context).once('views-ajax').each(function () {
+      var element_settings = { 'url': $(this).attr('action'), 'event': 'submit', 'progress': { 'type': 'throbber' } };
+      var form = $(this)[0];
+      form.form = form;
+      Drupal.ajax[$(this).attr('id')] = new Drupal.ajax($(this).attr('id'), form, element_settings);
+    });
   }
 };
 
