OSDN Git Service

Merge branch 'v06' of git.sourceforge.jp:/gitroot/pettanr/pettanr into v06
[pettanr/pettanr.git] / app / assets / javascripts / models / panel_picture.js.coffee
1 class Pettanr.PanelPicture extends Peta.Element\r
2   url: '/panel_pictures/'\r
3   \r
4   @singular: () ->\r
5     'PanelPicture'\r
6   \r
7   @plural: () ->\r
8     'PanelPictures'\r
9   \r
10   defaults: {\r
11     id: null\r
12   } \r
13   \r
14   @pick_item_name: () ->\r
15     'resource_picture'\r
16   \r
17   @traceable_item_names: () ->\r
18     ['ground_picture', 'picture']\r
19   \r
20   trace_from_ground_picture: () ->\r
21   \r
22   trace_from_picture: () ->\r
23   \r
24   pick: (picked_item) ->\r
25     {\r
26       picture_id: picked_item.get('picture_id'),\r
27       width: picked_item.get('width'),\r
28       height: picked_item.get('height')\r
29     }\r
30   \r
31   picture: () ->\r
32     new Pettanr.Cache.Retriever(Pettanr.Picture, @get('picture_id'))\r
33   \r
34   panel: () ->\r
35     new Pettanr.Cache.Retriever(Pettanr.Panel, @get('panel_id'))\r
36   \r
37   @has_picture: () ->\r
38     true\r
39   \r
40   flip: () ->\r
41     v = if @get('height') > 0\r
42       ''\r
43     else\r
44       'v'\r
45     h = if @get('width') > 0\r
46       ''\r
47     else\r
48       'h'\r
49     res = v + h\r
50     res = res # format of /1.png?subdir=v\r
51     # res += '/' unless res.empty? # format of /v/1.png\r
52     res\r
53   \r
54   filename: (picture) ->\r
55     q = if _.isEmpty(@flip())\r
56       ''\r
57     else\r
58       '?subdir=' + @flip()\r
59     picture.filename() + q\r
60   \r
61   r_url: (picture) ->\r
62     '/pictures/' + @filename(picture)\r
63   \r
64   tmb_opt_img_tag: (picture) ->\r
65     new Pettanr.Image.SymbolPicture({\r
66       attr: {\r
67         src: picture.r_url(), \r
68         alt: @escape('caption')\r
69       },\r
70       picture: picture\r
71     })\r
72   \r
73   symbol_option: () ->\r
74     retriever = @picture()\r
75     @listenTo(retriever, 'retrieve', @retrieve_symbol)\r
76     retriever.retrieve()\r
77   \r
78   retrieve_symbol: (item) -> \r
79     @trigger('ready:symbol', item.tmb_opt_img_tag())\r
80   \r
81   element_face: () ->\r
82     new Pettanr.Views.PanelPicture.ElementFace({element: this})\r
83   \r
84   initialize: (attr, options) ->\r
85     super(attr, options)\r
86     if @id\r
87       @url = @url + @id\r
88     @bind('change:width', () ->\r
89       console.log('cng')\r
90     )\r
91   \r