id: null\r
} \r
\r
+ @pick_item_name: () ->\r
+ 'resource_picture'\r
+ \r
+ @traceable_item_names: () ->\r
+ ['ground_picture', 'picture']\r
+ \r
+ pick: (picked_item) ->\r
+ {\r
+ picture_id: picked_item.get('picture_id'),\r
+ width: picked_item.get('width'),\r
+ height: picked_item.get('height')\r
+ }\r
+ \r
picture: () ->\r
- new Pettanr.Picture({id: @get('picture_id')})\r
+ new Pettanr.Cache.Retriever(Pettanr.Picture, @get('picture_id'))\r
+ \r
+ panel: () ->\r
+ new Pettanr.Cache.Retriever(Pettanr.Panel, @get('panel_id'))\r
\r
@has_picture: () ->\r
true\r
# res += '/' unless res.empty? # format of /v/1.png\r
res\r
\r
- filename: () ->\r
- @picture().filename() + '?subdir=' + @flip()\r
- \r
- r_url: () ->\r
- '/pictures/' + @filename()\r
+ filename: (picture) ->\r
+ q = if _.isEmpty(@flip())\r
+ ''\r
+ else\r
+ '?subdir=' + @flip()\r
+ picture.filename() + q\r
\r
- opt_div_style: () ->\r
- "top:#{@get('y')}px; left:#{@get('x')}px; z-index:#{@get('z')}; position: absolute;"\r
+ r_url: (picture) ->\r
+ '/pictures/' + @filename(picture)\r
\r
- opt_img_tag: (spot = null, opacity = 20) ->\r
- o = if spot and spot != this\r
- "opacity: #{opacity.to_f/100}; filter:alpha(opacity=#{opacity});"\r
- else\r
- ''\r
- @tag_attributes('img', {\r
- class: "panel-picture", \r
- vPicture: @get('id'), \r
- src: @r_url(), \r
- width: Math.abs(@get('width')), \r
- height: Math.abs(@get('height')), \r
- picture_id: @get('picture_id'), \r
- ext: @picture.ext, \r
- alt: @get('caption'), \r
- style: "#{o}"\r
+ tmb_opt_img_tag: (picture) ->\r
+ new Pettanr.Image.SymbolPicture({\r
+ attr: {\r
+ src: picture.r_url(), \r
+ alt: @escape('caption')\r
+ },\r
+ picture: picture\r
})\r
\r
- tmb_opt_img_tag: (picture) ->\r
- wh = Pettanr.Imager.thumbnail_size(@get('width'), @get('height'))\r
- new Pettanr.AppHelperImg({src: picture.r_url(), size: Math.abs(wh[0]), alt: @get('caption')})\r
+ symbol_option: () ->\r
+ retriever = @picture()\r
+ @listenTo(retriever, 'retrieve', @retrieve_symbol)\r
+ retriever.retrieve()\r
\r
- symbol_option: (cb) ->\r
- i = @picture()\r
- _this = this\r
- i.fetch().done ->\r
- cb(_this.tmb_opt_img_tag(i))\r
+ retrieve_symbol: (item) -> \r
+ @trigger('ready:symbol', item.tmb_opt_img_tag())\r
\r
- initialize: () ->\r
+ element_face: () ->\r
+ new Pettanr.Views.PanelPicture.ElementFace({element: this})\r
+ \r
+ initialize: (attr, options) ->\r
+ super(attr, options)\r
if @id\r
@url = @url + @id\r
\r
-class Pettanr.PanelPicture.Collection extends Backbone.Collection\r
- model: Pettanr.PanelPicture\r
- url: '/panel_pictures'\r
+class Pettanr.PanelPicture.TraceFromPicture\r
+ \r
+ constructor: (options) ->\r
+ _.extend(this, Backbone.Events)\r
+ \r
+ trace: (picture) ->\r
+ @picture(picture)\r
+ \r
+ picture: (picture) ->\r
+ resource_picture_picture_list = picture.has_one('resource_picture_picture')\r
+ resource_picture_picture_list.open(() =>\r
+ resource_picture_picture = resource_picture_picture_list.items()[0]\r
+ retriever = new Pettanr.Cache.Retriever(Pettanr.ResourcePicture, resource_picture_picture.get('resource_picture_id'))\r
+ @listenTo(retriever, 'retrieve', @resource_picture)\r
+ retriever.retrieve()\r
+ )\r
+ \r
+ resource_picture: (resource_picture) ->\r
+ @trigger('trace', resource_picture)\r
+ \r
+class Pettanr.PanelPicture.TraceFromGroundPicture extends Pettanr.PanelPicture.TraceFromPicture\r
+ \r
+ trace: (ground_picture) ->\r
+ @ground_picture(ground_picture)\r
+ \r
+ ground_picture: (ground_picture) ->\r
+ retriever = new Pettanr.Cache.Retriever(Pettanr.Picture, ground_picture.get('picture_id'))\r
+ @listenTo(retriever, 'retrieve', @picture)\r
+ retriever.retrieve()\r
+ \r
+ picture: (picture) ->\r
+ tracer = new Pettanr.PanelPicture.TraceFromPicture()\r
+ @listenTo(tracer, 'trace', @success)\r
+ tracer.trace(picture)\r
+ \r
+ success: (resource_picture) ->\r
+ @trigger('trace', resource_picture)\r
+ \r