1 class Pettanr.PanelPicture extends Peta.Element
\r
2 url: '/panel_pictures/'
\r
14 @pick_item_name: () ->
\r
17 @traceable_item_names: () ->
\r
18 ['ground_picture', 'picture']
\r
20 pick: (picked_item) ->
\r
22 picture_id: picked_item.get('picture_id'),
\r
23 width: picked_item.get('width'),
\r
24 height: picked_item.get('height')
\r
28 new Pettanr.Cache.Retriever(Pettanr.Picture, @get('picture_id'))
\r
31 new Pettanr.Cache.Retriever(Pettanr.Panel, @get('panel_id'))
\r
37 v = if @get('height') > 0
\r
41 h = if @get('width') > 0
\r
46 res = res # format of /1.png?subdir=v
\r
47 # res += '/' unless res.empty? # format of /v/1.png
\r
50 filename: (picture) ->
\r
51 q = if _.isEmpty(@flip())
\r
54 '?subdir=' + @flip()
\r
55 picture.filename() + q
\r
58 '/pictures/' + @filename(picture)
\r
60 tmb_opt_img_tag: (picture) ->
\r
61 new Pettanr.Image.SymbolPicture({
\r
63 src: picture.r_url(),
\r
64 alt: @escape('caption')
\r
69 symbol_option: () ->
\r
70 retriever = @picture()
\r
71 @listenTo(retriever, 'retrieve', @retrieve_symbol)
\r
72 retriever.retrieve()
\r
74 retrieve_symbol: (item) ->
\r
75 @trigger('ready:symbol', item.tmb_opt_img_tag())
\r
78 new Pettanr.Views.PanelPicture.ElementFace({element: this})
\r
80 initialize: (attr, options) ->
\r
81 super(attr, options)
\r
85 class Pettanr.PanelPicture.TraceFromPicture
\r
87 constructor: (options) ->
\r
88 _.extend(this, Backbone.Events)
\r
93 picture: (picture) ->
\r
94 resource_picture_picture_list = picture.has_one('resource_picture_picture')
\r
95 resource_picture_picture_list.open(() =>
\r
96 resource_picture_picture = resource_picture_picture_list.items()[0]
\r
97 retriever = new Pettanr.Cache.Retriever(Pettanr.ResourcePicture, resource_picture_picture.get('resource_picture_id'))
\r
98 @listenTo(retriever, 'retrieve', @resource_picture)
\r
99 retriever.retrieve()
\r
102 resource_picture: (resource_picture) ->
\r
103 @trigger('trace', resource_picture)
\r
105 class Pettanr.PanelPicture.TraceFromGroundPicture extends Pettanr.PanelPicture.TraceFromPicture
\r
107 trace: (ground_picture) ->
\r
108 @ground_picture(ground_picture)
\r
110 ground_picture: (ground_picture) ->
\r
111 retriever = new Pettanr.Cache.Retriever(Pettanr.Picture, ground_picture.get('picture_id'))
\r
112 @listenTo(retriever, 'retrieve', @picture)
\r
113 retriever.retrieve()
\r
115 picture: (picture) ->
\r
116 tracer = new Pettanr.PanelPicture.TraceFromPicture()
\r
117 @listenTo(tracer, 'trace', @success)
\r
118 tracer.trace(picture)
\r
120 success: (resource_picture) ->
\r
121 @trigger('trace', resource_picture)
\r