OSDN Git Service

add credit
[pettanr/pettanr.git] / app / assets / javascripts / models / original_picture.js.coffee
1 class Pettanr.OriginalPicture extends Peta.Content\r
2   url: '/original_pictures/'\r
3   \r
4   @singular: () ->\r
5     'OriginalPicture'\r
6   \r
7   @plural: () ->\r
8     'OriginalPictures'\r
9   \r
10   defaults: {\r
11     id: null,\r
12     artist_id: null\r
13   } \r
14   \r
15   is_visible: (operators) ->\r
16     @is_own(operators)\r
17   \r
18   filename: () ->\r
19     @get('id') + '.' + @get('ext')\r
20   \r
21   mime_type: () ->\r
22     'image/' + @get('ext')\r
23   \r
24   r_url: () ->\r
25     '/original_pictures/' + @filename()\r
26   \r
27   opt_img_tag: () ->\r
28     {src: @r_url(), width: @get('width'), height: @get('height')}\r
29   \r
30   tmb_opt_img_tag: () ->\r
31     new Pettanr.Image.SymbolPicture({\r
32       attr: {\r
33         src: @r_url()\r
34       },\r
35       picture: this\r
36     })\r
37   \r
38   symbol_option: (cb) ->\r
39     _this = this\r
40     this.fetch().done ->\r
41       cb(_this.tmb_opt_img_tag())\r
42   \r
43   revision: () ->\r
44     new Pettanr.OriginalPicture.Head({original_picture: this})\r
45   \r
46   history: () ->\r
47     new Pettanr.OriginalPicture.History({original_picture: this})\r
48   \r
49   is_unpublished: () ->\r
50     @get('published_at') == null and @get('stopped_at') == null\r
51   \r
52   is_stopped: () ->\r
53     @get('stopped_at') != null\r
54   \r
55   is_unlicensed: () ->\r
56     dt = @get('published_at') || @get('stopped_at')\r
57     return false if not dt\r
58     @get('uploaded_at') > dt\r
59   \r
60   is_published: () ->\r
61     @get('published_at') != null\r
62   \r
63   initialize: () ->\r
64     if @id\r
65       @url = @url + @id\r
66   \r
67 class Pettanr.OriginalPicture.History extends Backbone.Collection\r
68   url: '/original_pictures/'\r
69   \r
70   initialize: (options) ->\r
71     @model = Pettanr.Picture\r
72     @url = @url + options.id + '/history'\r
73   \r
74 class Pettanr.OriginalPicture.Head extends Backbone.View\r
75   tagName: 'span'\r
76   initialize: (options) ->\r
77     @original_picture = options.original_picture\r
78     @pictures = new Pettanr.OriginalPicture.History({id: @original_picture.get('id')})\r
79   \r
80   render: () ->\r
81     _this = this\r
82     @pictures.fetch().done ->\r
83       head = _this.pictures.models[0]\r
84       value = if head\r
85         head.get('revision')\r
86       else\r
87         'unpublished'\r
88       _this.$el.html(value)\r
89     this\r
90   \r