Преглед на файлове

[beeswax] Avoid NaN columns on un-managed backend error

Enrico Berti преди 10 години
родител
ревизия
6abc9ae
променени са 1 файла, в които са добавени 10 реда и са изтрити 4 реда
  1. 10 4
      apps/beeswax/src/beeswax/static/beeswax/js/beeswax.vm.js

+ 10 - 4
apps/beeswax/src/beeswax/static/beeswax/js/beeswax.vm.js

@@ -683,7 +683,6 @@ function BeeswaxViewModel(server) {
   };
   };
 
 
   self.isFetchingResults = ko.observable(false);
   self.isFetchingResults = ko.observable(false);
-
   self.fetchResults = function () {
   self.fetchResults = function () {
     if (!self.isFetchingResults()) {
     if (!self.isFetchingResults()) {
       self.isFetchingResults(true);
       self.isFetchingResults(true);
@@ -696,11 +695,16 @@ function BeeswaxViewModel(server) {
         type: 'GET',
         type: 'GET',
         success: function (data) {
         success: function (data) {
           data = JSON.bigdataParse(data);
           data = JSON.bigdataParse(data);
-          if (data.error) {
+          if (data.traceback) {
+            self.design.isRunning(false);
+            $(document).trigger('server.unmanageable_error', data.traceback.length > 0 ? data.traceback[data.traceback.length - 1].join("\n") : "");
+          }
+          else if (data.error) {
             self.design.results.errors.push(data.message);
             self.design.results.errors.push(data.message);
             self.design.isRunning(false);
             self.design.isRunning(false);
             self.design.results.empty(true);
             self.design.results.empty(true);
-          } else {
+          }
+          else {
             self.design.isRunning(false);
             self.design.isRunning(false);
             self.design.isFinished(data.is_finished);
             self.design.isFinished(data.is_finished);
             if (self.design.results.columns().length == 0) {
             if (self.design.results.columns().length == 0) {
@@ -718,7 +722,9 @@ function BeeswaxViewModel(server) {
             }
             }
           }
           }
           self.isFetchingResults(false);
           self.isFetchingResults(false);
-          $(document).trigger('fetched.results', [data]);
+          if (!data.traceback) {
+            $(document).trigger('fetched.results', [data]);
+          }
         },
         },
         error: function (jqXHR, status, errorThrown) {
         error: function (jqXHR, status, errorThrown) {
           self.isFetchingResults(false);
           self.isFetchingResults(false);