yaz/commit
fix game
author | Michiel Hildebrand |
---|---|
Wed Feb 2 17:06:35 2011 +0100 | |
committer | Michiel Hildebrand |
Wed Feb 2 17:06:35 2011 +0100 | |
commit | a1d7c3bc176fa225c75e84ae1142776edf82361f |
tree | c5cf53d796cb45deba53211c8831dcb988ef181f |
parent | 722ea99ce72d8ae598369fd90739a15dd1c614a7 |
Diff style: patch stat
diff --git a/applications/yaz_game.pl b/applications/yaz_game.pl index 02a538d..b0710d1 100644 --- a/applications/yaz_game.pl +++ b/applications/yaz_game.pl @@ -298,7 +298,7 @@ html_page_yui(Game, URL, User, PlayHead, Players, Tags) --> })), \js_support_functions(Game, User, DataServer), \js_call('Y.later'(RequestInterval, symbol('Y'), - symbol(fetchData), symbol(null), symbol(true))), + symbol(fetchData), symbol({}), symbol(true))), \js_call('videoPlayer.render'('#videoplayer')), \js_input_method ]). @@ -307,7 +307,7 @@ js_support_functions(Game, User, DataServer) --> js_function_decl(fetchData, [e], \[ ' var data = {game:"',Game,'",user:"',User,'",playhead:videoPlayer.getTime()*1000}; - if(e) {data.tag=e.label;} + if(e.tag) {data.tag=e.tag;} Y.io("',DataServer,'", {data: data, on: {success:handleResponse} });\n' @@ -481,10 +481,12 @@ matched_json_term(_, @false). % % Tag is entered by User during Game. -user_matched_tag(Game, User, Playhead, Interval, Annotation, Match) :- +user_matched_tag(Game, User, Playhead, Interval, Annotation, Tag, Time, Match) :- Start is Playhead-Interval, rdf(Annotation, pprime:videoPlayhead, literal(between(Start,Playhead), _), Game), rdf(Annotation, pprime:creator, User), + rdf(Annotation, rdf:value, literal(Tag)), + rdf(Annotation, pprime:videoPlayhead, literal(Time), _), matched_json_term(Annotation, Match). %% tag_match(+Game, +User, +Tag, +VideoTime, +Interval, @@ -536,9 +538,9 @@ http_game_data(Request) :- active_player(Game, P, Name, Score), Players), - TagObj = json([annotation=A, match=Match]), + TagObj = json([annotation=A, label=Label, time=Time, match=Match]), findall(TagObj, - user_matched_tag(Game, User, Playhead, Interval, A, Match), + user_matched_tag(Game, User, Playhead, Interval, A, Label, Time, Match), Tags), reply_json(json([user=User, players=Players, tags=Tags])). diff --git a/web/js/game/input.js b/web/js/game/input.js index ef90959..31b5513 100644 --- a/web/js/game/input.js +++ b/web/js/game/input.js @@ -27,9 +27,6 @@ YUI.add('game-input', function(Y) { return tags; } } - }, - autoAddTag: { - value: true } }; @@ -56,13 +53,18 @@ YUI.add('game-input', function(Y) { updateTags : function(tags) { for(var i=0; i < tags.length; i++) { - var tag = tags[i]; - console.log(tag); - var node = this._tagNode(tag.annotation); - if(tag.score) { - node.one('.score').setContent(tag.score); + var tag = tags[i], + node = this._tagNode(tag.annotation); + + if(!node) { + this._addTag(tag); + } else if(tag.match) { + var match = tag.match; + if(match.score) { + node.one('.score').setContent(match.score); + } + this._setStyle(node, match); } - this._setStyle(node, tag); } }, @@ -80,28 +82,30 @@ YUI.add('game-input', function(Y) { var tags = this.get("tags"); if(tags) { for(var i=0; i < tags.length; i++) { - this.addTag(tags[i]); + var tag = tags[i]; + tag.node = Y.Node.create(this.formatTag(tag)); + this._setStyle(tag.node, tag.match); + this.list.prepend(tag.node); } } + this.set("tags", tag); }, formatTag : function(tag) { var score = (tag.match&&tag.match.score) ? tag.match.score : ""; - return = '<li><span class="label">' - +tag.label+'</span>' + return '<li><span class="label">' + +tag.label+'</span> ' +'<span class="score">'+score+'</span></li>'; }, - addTag : function(tag) { - this.input.set("value", ""); + _addTag : function(tag) { tag.node = Y.Node.create(this.formatTag(tag)); - this._setStyle(tag.node, tag); this.set("tags", tag); + this._setStyle(tag.node, tag.match); this.list.prepend(tag.node); }, - _setStyle : function(node, tag) { - var match = tag.match; + _setStyle : function(node, match) { if(match) { node.addClass(match.type); if(match.order===1) { @@ -113,19 +117,17 @@ YUI.add('game-input', function(Y) { _tagNode : function(id) { var tags = this.get("tags"); for (var i=0; i < tags.length; i++) { - if(tags[i].annotation == id) { + if(tags[i].annotation === id) { return tags[i].node; } } - } + }, _onKeyDown : function(e) { if(e.charCode === 13) { - var tag = this.input.get("value"); + var tag = {tag:this.input.get("value")}; + this.input.set("value", ""); this.fire("enter", tag); - if(this.get("autoAddTag")) { - this.addTag(tag); - } } } });