Mercurial > code > home > repos > light9
changeset 1054:4595a82f5a90
effecteval has a delete button on effect rows
Ignore-this: 6a66737cd6857d2f7be4ec382e4890
author | Drew Perttula <drewp@bigasterisk.com> |
---|---|
date | Sun, 01 Jun 2014 10:22:14 +0000 |
parents | 9937e2e3d17b |
children | 6ce00faec207 |
files | bin/effecteval light9/effecteval/index.coffee light9/effecteval/index.html |
diffstat | 3 files changed, 24 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/bin/effecteval Sun Jun 01 10:05:50 2014 +0000 +++ b/bin/effecteval Sun Jun 01 10:22:14 2014 +0000 @@ -20,9 +20,17 @@ 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 @@ 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})
--- a/light9/effecteval/index.coffee Sun Jun 01 10:05:50 2014 +0000 +++ b/light9/effecteval/index.coffee Sun Jun 01 10:22:14 2014 +0000 @@ -12,8 +12,18 @@ 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)
--- a/light9/effecteval/index.html Sun Jun 01 10:05:50 2014 +0000 +++ b/light9/effecteval/index.html Sun Jun 01 10:22:14 2014 +0000 @@ -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>