X-Git-Url: http://git.osdn.net/view?p=pettanr%2Fpettanr.git;a=blobdiff_plain;f=app%2Fassets%2Fjavascripts%2Fmodels%2Fspeech_balloon.js.coffee;h=57fd0169ff82f55b2e5332db9a444cd6faef1c8f;hp=f77322a0d82e2b1b9d4f8d82275ed5fe48a24ef1;hb=aa9eca25671c772ffec8f2f65aecc8a978a2f375;hpb=d7efc0f68adc2d5aac765213b3358b982b0a0700 diff --git a/app/assets/javascripts/models/speech_balloon.js.coffee b/app/assets/javascripts/models/speech_balloon.js.coffee index f77322a0..57fd0169 100644 --- a/app/assets/javascripts/models/speech_balloon.js.coffee +++ b/app/assets/javascripts/models/speech_balloon.js.coffee @@ -1,5 +1,4 @@ class Pettanr.SpeechBalloon extends Peta.Element - url: '/speech_balloons/' @singular: () -> 'SpeechBalloon' @@ -19,13 +18,9 @@ class Pettanr.SpeechBalloon extends Peta.Element @traceable_item_names: () -> ['speech', 'balloon'] - trace_from_speech: () -> - - trace_from_balloon: () -> - - pick: (templates) -> + pick: () -> # - speech_balloon_template = templates.speech_balloon_template + speech_balloon_template = @templates.speech_balloon_template { speech_balloon_template_id: speech_balloon_template.get('id'), speech_balloon_template_module_name: speech_balloon_template.get('module_name') @@ -70,6 +65,36 @@ class Pettanr.SpeechBalloon extends Peta.Element initialize: (attr, options) -> super(attr, options) - if @id - @url = @url + @id + +class Pettanr.SpeechBalloon.TraceFromBalloon + + constructor: (options) -> + _.extend(this, Backbone.Events) + + trace: (balloon) -> + @balloon(balloon) + + balloon: (balloon) -> + retriever = new Pettanr.Cache.Retriever(Pettanr.SpeechBalloon, balloon.get('speech_balloon_id')) + @listenTo(retriever, 'retrieve', @speech_balloon) + retriever.retrieve() + + speech_balloon: (speech_balloon) -> + @trigger('trace', speech_balloon) + +class Pettanr.SpeechBalloon.TraceFromSpeech + + constructor: (options) -> + _.extend(this, Backbone.Events) + + trace: (speech) -> + @speech(speech) + + speech: (speech) -> + retriever = new Pettanr.Cache.Retriever(Pettanr.SpeechBalloon, speech.get('speech_balloon_id')) + @listenTo(retriever, 'retrieve', @speech_balloon) + retriever.retrieve() + + speech_balloon: (speech_balloon) -> + @trigger('trace', speech_balloon)