浏览代码

[spark] Query URL does not conflict anymore when loading a saved query

Improve empty result widget logic
Romain Rigaux 11 年之前
父节点
当前提交
e4e72d6

+ 6 - 0
apps/search/static/js/search.ko.js

@@ -910,6 +910,7 @@ var SearchViewModel = function (collection_json, query_json, initial_json) {
   self.search = function (callback) {
     self.isRetrievingResults(true);
     $(".jHueNotify").hide();
+    logGA('search');
 
     // Multi queries
     var multiQs = [];
@@ -1085,4 +1086,9 @@ var SearchViewModel = function (collection_json, query_json, initial_json) {
     });
   };
 
+  function logGA(page) {
+    if (typeof trackOnGA == 'function') {
+      trackOnGA('search/' + page);
+    }
+  }
 };

+ 3 - 1
apps/spark/src/spark/templates/editor.mako

@@ -181,7 +181,7 @@ ${ common.navbar('editor') }
             </div>
           </div>
 
-          <div data-bind="css: {'hide': !resultsEmpty()}" class="hide">
+          <div data-bind="visible: resultsEmpty()">
             <div class="scrollable">
               <div class="row-fluid">
                 <div class="span10 offset1 center empty-wrapper">
@@ -561,6 +561,7 @@ ${ common.createContextModal() }
     $("#executeQuery").button("loading");
     cleanResultsTable();
   });
+
   $(document).on('executed.query', function() {
     $('#wait-info').hide();
     $("#executeQuery").button("reset");
@@ -579,6 +580,7 @@ ${ common.createContextModal() }
   $(document).on('server.error', function(e, data) {
     $(document).trigger('error', "${_('Server error occured: ')}" + data.error);
   });
+
   $(document).on('server.unmanageable_error', function(e, responseText) {
     $(document).trigger('error', "${_('Unmanageable server error occured: ')}" + responseText);
   });

+ 2 - 2
apps/spark/src/spark/urls.py

@@ -21,11 +21,11 @@ from django.conf.urls.defaults import patterns, url
 # Views
 urlpatterns = patterns('spark.views',
   url(r'^$', 'editor', name='index'),
-  url(r'^editor/(?P<design_id>.+)?$', 'editor', name='editor'),
-  url(r'^editor/(?P<design_id>.+)?$', 'editor', name='execute_query'), # For Beeswax
   url(r'^editor/design/(?P<design_id>.+)$', 'editor', name='execute_design'), # For Beeswax
   url(r'^editor/query/(?P<query_history_id>.+)$', 'editor', name='watch_query_history'), # For Beeswax
   url(r'^editor/(?P<design_id>.+)?$', 'editor', name='view_job'), # For browser
+  url(r'^editor/(?P<design_id>.+)?$', 'editor', name='editor'),
+  url(r'^editor/(?P<design_id>.+)?$', 'editor', name='execute_query'), # For Beeswax  
   url(r'^list_jobs', 'list_jobs', name='list_jobs'),
   url(r'^list_contexts', 'list_contexts', name='list_contexts'),
   url(r'^delete_contexts', 'delete_contexts', name='delete_contexts'),

+ 1 - 1
apps/spark/src/spark/views.py

@@ -32,7 +32,6 @@ from beeswax.views import safe_get_design
 from spark.job_server_api import get_api
 from spark.forms import UploadApp
 from desktop.lib.exceptions import StructuredException
-from desktop.lib.rest.http_client import RestException
 from spark.api import design_to_dict
 
 from spark.decorators import view_error_handler
@@ -40,6 +39,7 @@ from spark.decorators import view_error_handler
 
 LOG = logging.getLogger(__name__)
 
+
 @view_error_handler
 def editor(request, design_id=None, query_history_id=None):
   api = get_api(request.user)

+ 1 - 0
apps/spark/static/js/spark.vm.js

@@ -243,6 +243,7 @@ function sparkViewModel() {
     data.autoContext = self.autoContext();
     data.context = self.context() ? self.context().name : '';
     data.params = ko.toJSON(self.query.params());
+    self.resultsEmpty(false);
     var request = {
       url: '/spark/api/execute',
       dataType: 'json',