OSDN Git Service

fix: js models
[pettanr/pettanr.git] / app / assets / javascripts / models / panel_picture.js.coffee
1 class Pettanr.PanelPicture extends Peta.Element\r
2   @singular: () ->\r
3     'PanelPicture'\r
4   \r
5   @plural: () ->\r
6     'PanelPictures'\r
7   \r
8   defaults: {\r
9     id: null\r
10   } \r
11   \r
12   @has_picture: () ->\r
13     true\r
14   \r
15   flip: () ->\r
16     v = if @get('height') > 0\r
17       ''\r
18     else\r
19       'v'\r
20     h = if @get('width') > 0\r
21       ''\r
22     else\r
23       'h'\r
24     res = v + h\r
25     res = res # format of /1.png?subdir=v\r
26     # res += '/' unless res.empty? # format of /v/1.png\r
27     res\r
28   \r
29   filename: () ->\r
30     @picture().filename() + '?subdir=' + @flip()\r
31   \r
32   r_url: () ->\r
33     '/pictures/' + @filename()\r
34   \r
35   opt_div_style: () ->\r
36     "top:#{@get('y')}px; left:#{@get('x')}px; z-index:#{@get('z')}; position: absolute;"\r
37   \r
38   opt_img_tag: (spot = null, opacity = 20) ->\r
39     o = if spot and spot != this\r
40       "opacity: #{opacity.to_f/100}; filter:alpha(opacity=#{opacity});"\r
41     else\r
42       ''\r
43     @tag_attributes('img', {\r
44       class: "panel-picture", \r
45       vPicture: @get('id'), \r
46       src: @r_url(), \r
47       width: Math.abs(@get('width')), \r
48       height: Math.abs(@get('height')), \r
49       picture_id: @get('picture_id'), \r
50       ext: @picture.ext, \r
51       alt: @get('caption'), \r
52       style: "#{o}"\r
53     })\r
54   \r
55   tmb_opt_img_tag: () ->\r
56     wh = Pettanr.Imager.thumbnail_size(@get('width'), @get('height'))\r
57     {src: @r_url(), width: Math.abs(wh[0]), height: Math.abs(wh[1]), alt: @get('caption')}\r
58   \r
59   symbol_option: () ->\r
60     @picture().symbol_option()\r
61   \r
62   initialize: () ->\r
63     if @id\r
64       @url = @url + @id\r
65   \r
66 class Pettanr.PanelPicture.Collection extends Backbone.Collection\r
67   model: Pettanr.PanelPicture\r
68   url: '/panel_pictures'\r