Browse Source

[spark] Support Text snippet

Romain Rigaux 11 years ago
parent
commit
01499a0

+ 0 - 1
apps/spark/src/spark/api.py

@@ -25,7 +25,6 @@ from desktop.lib.exceptions_renderable import PopupException
 from desktop.lib.i18n import force_unicode
 from desktop.models import Document2
 
-from spark.decorators import json_error_handler
 from spark.models import get_api, Notebook
 
 

+ 19 - 0
apps/spark/src/spark/models.py

@@ -31,8 +31,11 @@ from desktop.lib.rest.http_client import RestException
 class Notebook():
   
   def __init__(self, document=None):
+    self.document = None
+    
     if document is not None:
       self.data = document.data
+      self.document = document
     else:    
       self.data = json.dumps({
           'name': 'My Notebook', 
@@ -47,12 +50,17 @@ class Notebook():
   def get_data(self):
     _data = json.loads(self.data)
   
+    if self.document is not None:
+      _data['id'] = self.document.id 
+  
     return _data
 
 
 def get_api(user, snippet):
   if snippet['type'] == 'hive':
     return HS2Api(user)
+  if snippet['type'] == 'text':
+    return TextApi(user)  
   else:
     return SparkApi(user)
 
@@ -61,6 +69,17 @@ def _get_snippet_session(notebook, snippet):
   return [session for session in notebook['sessions'] if session['type'] == snippet['type']][0] 
 
 
+class TextApi():
+  
+  def __init__(self, user):
+    self.user = user
+    
+  def create_session(self, lang):
+    return {
+        'type': lang,
+        'id': None
+    }
+  
 
 class HS2Api():
   

+ 4 - 0
apps/spark/src/spark/templates/editor.mako

@@ -149,6 +149,10 @@ ${ commonheader(_('Query'), app_name, user, "68px") | n,unicode }
            
         </span>
 
+        <!-- ko if: type() == 'text' -->
+        <i class="fa fa-header snippet-icon"></i><sup style="color: #338bb8; margin-left: -2px">${ _('Text') }</sup>
+        <!-- /ko -->
+
         <!-- ko if: type() == 'hive' -->
         <img src="/beeswax/static/art/icon_beeswax_48.png" class="snippet-icon">
         <!-- /ko -->

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

@@ -299,7 +299,7 @@ var Notebook = function (vm, notebook) {
   };  
 
   self.newSnippet = function() {
-	var snippet = new Snippet(self, {type: self.selectedSnippet()});	  
+	var snippet = new Snippet(self, {type: self.selectedSnippet(), result: {}});	  
 	self.snippets.push(snippet);
 	  
 	if (self.getSession(self.selectedSnippet()) == null) {