OSDN Git Service

52b1fd030dc624f2d13d4e2c5373940db95280cc
[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   @pick_model: () ->\r
18     Manifest.item_name_to_model(@pick_item_name())\r
19   \r
20   @traceable_item_names: () ->\r
21     ['ground_picture', 'picture']\r
22   \r
23   @is_traceable: (item_name) ->\r
24     _.contains(@traceable_item_names(), item_name)\r
25   \r
26   trace_from_ground_picture: () ->\r
27   \r
28   trace_from_picture: () ->\r
29   \r
30   pick: (picked_item) ->\r
31     {\r
32       picture_id: picked_item.get('picture_id'),\r
33       width: picked_item.get('width'),\r
34       height: picked_item.get('height')\r
35     }\r
36   \r
37   picture: () ->\r
38     new Pettanr.Picture({id: @get('picture_id')})\r
39   \r
40   panel: (options = {}) ->\r
41     new Pettanr.Panel({id: @get('panel_id')}, options)\r
42   \r
43   @has_picture: () ->\r
44     true\r
45   \r
46   flip: () ->\r
47     v = if @get('height') > 0\r
48       ''\r
49     else\r
50       'v'\r
51     h = if @get('width') > 0\r
52       ''\r
53     else\r
54       'h'\r
55     res = v + h\r
56     res = res # format of /1.png?subdir=v\r
57     # res += '/' unless res.empty? # format of /v/1.png\r
58     res\r
59   \r
60   filename: (picture) ->\r
61     q = if _.isEmpty(@flip())\r
62       ''\r
63     else\r
64       '?subdir=' + @flip()\r
65     picture.filename() + q\r
66   \r
67   r_url: (picture) ->\r
68     '/pictures/' + @filename(picture)\r
69   \r
70   tmb_opt_img_tag: (picture) ->\r
71     new Pettanr.Image.SymbolPicture({\r
72       attr: {\r
73         src: picture.r_url(), \r
74         alt: @escape('caption')\r
75       },\r
76       picture: picture\r
77     })\r
78   \r
79   symbol_option: () ->\r
80     i = @picture()\r
81     i.fetch({cache: true}).done =>\r
82       @trigger('ready:symbol', i.tmb_opt_img_tag())\r
83   \r
84   element_face: () ->\r
85     new Pettanr.Views.PanelPicture.ElementFace({element: this})\r
86   \r
87   initialize: (attr, options) ->\r
88     super(attr, options)\r
89     if @id\r
90       @url = @url + @id\r
91     @bind('change:width', () ->\r
92       console.log('cng')\r
93     )\r
94   \r