Changeset - 4595a82f5a90
[Not reviewed]
default
0 3 0
Drew Perttula - 11 years ago 2014-06-01 10:22:14
drewp@bigasterisk.com
effecteval has a delete button on effect rows
Ignore-this: 6a66737cd6857d2f7be4ec382e4890
3 files changed with 24 insertions and 4 deletions:
0 comments (0 inline, 0 general)
bin/effecteval
Show inline comments
 
@@ -20,9 +20,17 @@ sys.path.append("/my/proj/homeauto/lib")
 
sys.path.append("/home/drewp/projects/homeauto/lib")
 
from cycloneerr import PrettyErrorHandler
 

	
 
class EffectEdit(cyclone.web.RequestHandler):
 
class EffectEdit(PrettyErrorHandler, cyclone.web.RequestHandler):
 
    def get(self):
 
        self.write(open("light9/effecteval/effect.html").read())
 
    def delete(self):
 
        graph = self.settings.graph
 
        uri = URIRef(self.get_argument('uri'))
 
        with graph.currentState(tripleFilter=(None, L9['effect'], uri)) as g:
 
            song = ctx = list(g.subjects(L9['effect'], uri))[0]
 
        self.settings.graph.patch(Patch(delQuads=[
 
            (song, L9['effect'], uri, ctx),
 
            ]))
 

	
 
class SongEffects(PrettyErrorHandler, cyclone.web.RequestHandler):
 
    def post(self):
 
@@ -61,7 +69,7 @@ class SongEffectsUpdates(cyclone.websock
 
        out = []
 
        for s in songs:
 
            out.append({'uri': s, 'label': self.graph.label(s)})
 
            out[-1]['effects'] = sorted(self.graph.objects(s, L9['effect']))
 
            out[-1]['effects'] = [{'uri': uri} for uri in sorted(self.graph.objects(s, L9['effect']))]
 
        self.sendMessage({'songs': out})
 
        
 
        
light9/effecteval/index.coffee
Show inline comments
 
@@ -12,8 +12,18 @@ model.drop = (uri, event) ->
 
dropped = (songTargetUri, dropUri) ->
 
  $.post('songEffects', {uri: songTargetUri, drop: dropUri})
 

	
 
deleteEffect = (uri) ->
 
  $.ajax
 
    type: 'DELETE'
 
    url: 'effect?' + $.param({uri: uri})
 
  console.log("del", uri)
 
  
 
reconnectingWebSocket "ws://localhost:8070/songEffectsUpdates", (msg) ->
 
  console.log(msg.songs)
 
  for s in msg.songs
 
    for e in s.effects
 
      do (e) ->
 
        e.deleteEffect = -> deleteEffect(e.uri)
 

	
 
  model.songs(msg.songs)
 
  
 
ko.applyBindings(model)
light9/effecteval/index.html
Show inline comments
 
@@ -14,7 +14,9 @@
 
        <a class="song" data-bind="attr: {href: uri}">Song <span data-bind="text: label"></span></a>
 
        <ul>
 
          <!-- ko foreach: effects -->
 
          <li><a class="effect" data-bind="attr: {href: 'effect?'+jQuery.param({uri: $data})}, text: $data"></a></li>
 
          <li>
 
            <a class="effect" data-bind="attr: {href: 'effect?'+jQuery.param({uri: uri})}, text: uri"></a> <button data-bind="click: deleteEffect">Delete</button>
 
          </li>
 
          <!-- /ko -->
 
          <li class="dropTarget" data-bind="event: {dragover: $root.dragover, dragenter: $root.dragover, drop: function(data, event) { $root.drop(uri, event); }}">Add another (drop a sub or effect class)</li>
 
        </ul>
0 comments (0 inline, 0 general)