class Pettanr.PanelPicture extends Peta.Element\r
- url: '/panel_pictures/'\r
\r
@singular: () ->\r
'PanelPicture'\r
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: (options = {}) ->\r
- new Pettanr.Panel({id: @get('panel_id')}, options)\r
+ panel: () ->\r
+ new Pettanr.Cache.Retriever(Pettanr.Panel, @get('panel_id'))\r
\r
@has_picture: () ->\r
true\r
res\r
\r
filename: (picture) ->\r
- picture.filename() + '?subdir=' + @flip()\r
+ q = if _.isEmpty(@flip())\r
+ ''\r
+ else\r
+ '?subdir=' + @flip()\r
+ picture.filename() + q\r
\r
r_url: (picture) ->\r
'/pictures/' + @filename(picture)\r
new Pettanr.Image.SymbolPicture({\r
attr: {\r
src: picture.r_url(), \r
- alt: @get('caption')\r
+ alt: @escape('caption')\r
},\r
picture: picture\r
})\r
\r
- symbol_option: (cb) ->\r
- i = @picture()\r
- _this = this\r
- i.fetch({cache: true}).done ->\r
- cb(_this.tmb_opt_img_tag(i))\r
+ symbol_option: () ->\r
+ retriever = @picture()\r
+ @listenTo(retriever, 'retrieve', @retrieve_symbol)\r
+ retriever.retrieve()\r
+ \r
+ retrieve_symbol: (item) -> \r
+ @trigger('ready:symbol', item.tmb_opt_img_tag())\r
+ \r
+ element_face: () ->\r
+ new Pettanr.Views.PanelPicture.ElementFace({element: this})\r
+ \r
+ initialize: (attr, options) ->\r
+ super(attr, options)\r
+ \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
- initialize: () ->\r
- if @id\r
- @url = @url + @id\r
+ picture: (picture) ->\r
+ tracer = new Pettanr.PanelPicture.TraceFromPicture()\r
+ @listenTo(tracer, 'trace', @success)\r
+ tracer.trace(picture)\r
\r
-class Pettanr.PanelPictures extends Backbone.Collection\r
- model: Pettanr.PanelPicture\r
- url: '/panel_pictures/'\r
+ success: (resource_picture) ->\r
+ @trigger('trace', resource_picture)\r
\r