X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fassets%2Fjavascripts%2Fviews%2Fballoons%2Fshow.js.coffee;fp=app%2Fassets%2Fjavascripts%2Fviews%2Fballoons%2Fshow.js.coffee;h=c5d91de97ab1d6c512e71594f942572660fd2a73;hb=28197aecf803b9332afeebb4db14fb7042606f5e;hp=10a520c7f8931e32230e3e56f7943e250197b6ba;hpb=810b67011df66ced6300f0891d38c8db0ed12803;p=pettanr%2Fpettanr.git diff --git a/app/assets/javascripts/views/balloons/show.js.coffee b/app/assets/javascripts/views/balloons/show.js.coffee index 10a520c7..c5d91de9 100644 --- a/app/assets/javascripts/views/balloons/show.js.coffee +++ b/app/assets/javascripts/views/balloons/show.js.coffee @@ -23,26 +23,32 @@ class Pettanr.Views.Balloon.Show extends Backbone.View prof_url: prof_url }) @listenTo(this, 'ready', @ready) - @speech_balloon = @item.speech_balloon() - @speech_balloon.fetch({cache: true}).done => - @panel = @speech_balloon.panel().with_elements() - @panel.fetch({cache: false}).done => # with elements - @author = new Pettanr.Views.Show.HeaderAuthor({item: @panel}) - @body = new Pettanr.Views.Panel.Body({ - panel: @panel, - operators: @operators, - spot: @item - }) - @credits = new Pettanr.Views.Panel.ShowModule.Credits({ - pictures: @panel.licensed_pictures() - }) - @listenTo(@header, 'click:pick', @click_pick) - @listenTo(@header, 'click:icon', @click_show) - @listenTo(@header, 'click:caption', @click_show) - @listenTo(@header, 'click:prof', @click_prof) - @listenTo(@author, 'click:author', @click_author) - @listenTo(@credits, 'click:credit:icon', @click_credit_icon) - @trigger('ready') + retriever = @item.speech_balloon() + @listenTo(retriever, 'retrieve', @retrieve_speech_balloon) + retriever.retrieve() + + retrieve_speech_balloon: (@speech_balloon) -> + retriever = @speech_balloon.panel().with_elements() + @listenTo(retriever, 'retrieve', @retrieve_panel) + retriever.retrieve() + + retrieve_panel: (@panel) -> + @author = new Pettanr.Views.Show.HeaderAuthor({item: @panel}) + @body = new Pettanr.Views.Panel.Body({ + panel: @panel, + operators: @operators, + spot: @item + }) + @credits = new Pettanr.Views.Panel.ShowModule.Credits({ + pictures: @panel.licensed_pictures() + }) + @listenTo(@header, 'click:pick', @click_pick) + @listenTo(@header, 'click:icon', @click_show) + @listenTo(@header, 'click:caption', @click_show) + @listenTo(@header, 'click:prof', @click_prof) + @listenTo(@author, 'click:author', @click_author) + @listenTo(@credits, 'click:credit:icon', @click_credit_icon) + @trigger('ready') render: () -> this.$el.html('')