changeset 1101:3074f635ee23

effect page can write code edits back Ignore-this: 756a3e3a40e4a6c823629e146d6c2799
author Drew Perttula <drewp@bigasterisk.com>
date Mon, 09 Jun 2014 03:56:25 +0000
parents 1583e997fe0e
children d588211a0b4e
files bin/effecteval light9/effecteval/effect.coffee
diffstat 2 files changed, 19 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/bin/effecteval	Mon Jun 09 03:55:50 2014 +0000
+++ b/bin/effecteval	Mon Jun 09 03:56:25 2014 +0000
@@ -97,7 +97,19 @@
     def messageReceived(self, message):
         log.info("got message %s" % message)
         # write a patch back to the graph
-        
+
+class Code(PrettyErrorHandler, cyclone.web.RequestHandler):
+    def put(self):
+        effect = URIRef(self.get_argument('uri'))
+        code = Literal(self.get_argument('code'))
+        with self.settings.graph.currentState(tripleFilter=(None, L9['effect'], effect)) as g:
+            song = g.subjects(L9['effect'], effect).next()
+        self.settings.graph.patchObject(
+            context=song,
+            subject=effect,
+            predicate=L9['code'],
+            newObject=code)
+        self.send_error(202)
         
 class EffectEval(PrettyErrorHandler, cyclone.web.RequestHandler):
     @inlineCallbacks
@@ -148,6 +160,7 @@
             (r'/effect\.js', StaticCoffee, {'src': 'light9/effecteval/effect.coffee'}),
             (r'/index\.js', StaticCoffee, {'src': 'light9/effecteval/index.coffee'}),
             (r'/effectUpdates', EffectUpdates),
+            (r'/code', Code),
             (r'/songEffectsUpdates', SongEffectsUpdates),
             (r'/static/(.*)', SFH, {'path': 'static/'}),
             (r'/effect/eval', EffectEval),
--- a/light9/effecteval/effect.coffee	Mon Jun 09 03:55:50 2014 +0000
+++ b/light9/effecteval/effect.coffee	Mon Jun 09 03:56:25 2014 +0000
@@ -3,14 +3,17 @@
   uri: ko.observable(qs.value('uri'))
   code: ko.observable()
   
-reconnectingWebSocket "ws://localhost:8070/effectUpdates" + window.location.search, (msg) ->
+socket = reconnectingWebSocket "ws://localhost:8070/effectUpdates" + window.location.search, (msg) ->
   console.log('effectData ' + JSON.stringify(msg))
   # there's a shorter unpack thing
     
   model.code(msg.code)
   
 writeBack = ko.computed ->
-  console.log('sendback' ,{code: model.code()})
+  $.ajax
+    type: 'PUT'
+    url: 'code'
+    data: {uri: model.uri(), code: model.code()}
   
 ko.applyBindings(model)
   
\ No newline at end of file