| 
					
				 | 
			
			
				@@ -26,7 +26,8 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           updatePreviewSelect(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           $("#query_data_source").selectize().change(updatePreviewSelect); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <%= link_to "Run", "#", class: "btn btn-info", id: "run", style: "vertical-align: top;" %> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <%= link_to "Run", "#", class: "btn btn-info", id: "run", style: "vertical-align: top; width: 70px;" %> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <%= link_to "Cancel", "#", class: "btn btn-danger hide", id: "cancel", style: "vertical-align: top; width: 70px;" %> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     <div class="col-xs-4"> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -128,22 +129,41 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   var params = <%= raw blazer_json_escape(variable_params.to_json) %>; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   var previewStatement = <%= raw blazer_json_escape(Hash[Blazer.data_sources.map { |k, v| [k, v.preview_statement] }].to_json) %>; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $("#run").click(function (e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  function queryDone() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $("#run").removeClass("hide") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $("#cancel").addClass("hide") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (xhr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      xhr.abort() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $("#cancel").click( function (e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    e.preventDefault() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    queryDone() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $("#results").html("") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $("#run").click( function (e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     e.preventDefault(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $(this).addClass("hide") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $("#cancel").removeClass("hide") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (error_line) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       editor.getSession().removeGutterDecoration(error_line - 1, "error"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       error_line = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     $("#results").html('<p class="text-muted">Loading...</p>'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (xhr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      xhr.abort(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     var data = $.extend({}, params, {statement: getSQL(), data_source: $("#query_data_source").val()}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     xhr = runQuery(data, function (data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      queryDone() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       $("#results").html(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       error_line = getErrorLine(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -153,6 +173,9 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         editor.gotoLine(error_line, 0, true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         editor.focus(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, function (data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // TODO show error 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      queryDone() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |