OSDN Git Service

fix:replace row break
[pettanr/pettanr.git] / app / assets / javascripts / views / stories / play.js.coffee
1 class Pettanr.Views.Story.PlayModule\r
2 class Pettanr.Views.Story.PlayModule.Header extends Pettanr.Views.Show.Header\r
3   \r
4   initialize: (options) ->\r
5     super(options)\r
6   \r
7 class Pettanr.Views.Story.PlayModule.Owner extends Pettanr.Views.Show.Owner\r
8   \r
9   initialize: (options) ->\r
10     super(options)\r
11   \r
12 class Pettanr.Views.Story.PlayModule.Footer extends Pettanr.View\r
13   tagName: 'table'\r
14   className: 'no-border'\r
15   \r
16   initialize: (options) ->\r
17     @panel = options.panel\r
18     @scroll_panel = options.scroll_panel\r
19   \r
20   render: () ->\r
21     this.$el.html('')\r
22     this.$el.append(\r
23       (new Pettanr.Views.Panel.Icon({item: @panel, half: true})).render().el\r
24     )\r
25     this.$el.append(\r
26       (new Pettanr.Views.Author.Icon({item: @panel.author(), half: true})).render().el\r
27     )\r
28     this.$el.append(Pettanr.AppHelper.distance_of_time_in_words_to_now(@panel.get('updated_at')))\r
29     #\r
30     this.$el.append(\r
31       (new Pettanr.Views.Panel.Icon({item: @scroll_panel, half: true})).render().el\r
32     )\r
33     this.$el.append(\r
34       (new Pettanr.Views.Author.Icon({item: @panel.author(), half: true})).render().el\r
35     )\r
36     this.$el.append(Pettanr.AppHelper.distance_of_time_in_words_to_now(@scroll_panel.get('updated_at')))\r
37     #\r
38     if @panel.is_own()\r
39       this.$el.append('')\r
40     this\r
41   \r
42 class Pettanr.Views.Story.PlayModule.Credits extends Pettanr.View\r
43   tagName: 'div'\r
44   className: 'credits'\r
45   \r
46   initialize: (options) ->\r
47     @parent = options.parent\r
48     @licensed_pictures = {}\r
49   \r
50   render: () ->\r
51     this.$el.html('')\r
52     this\r
53   \r
54   push: (append_pictures) ->\r
55     _.each append_pictures, (retriever, pid) =>\r
56       return if @licensed_pictures[pid]\r
57       @listenTo(retriever, 'retrieve', @retrieve_picture)\r
58       retriever.retrieve()\r
59   \r
60   retrieve_picture: (picture) ->\r
61     @licensed_pictures[pid] = picture\r
62     credit = picture.credit_view()\r
63     this.$el.append(credit.render().el)\r
64   \r
65 class Pettanr.Views.Story.PlayModule.Sheet extends Pettanr.View\r
66   tagName: 'div'\r
67   \r
68   initialize: (options) ->\r
69     @story_sheet = options.story_sheet\r
70     retriever = @story_sheet.sheet()\r
71     @listenTo(retriever, 'retrieve', @retrieve_sheet)\r
72     retriever.retrieve()\r
73   \r
74   retrieve_sheet: (@sheet) ->\r
75     @render()\r
76   \r
77   render: () ->\r
78     this.$el.html('')\r
79     body = new Pettanr.Views.Sheet.PlayModule.Body({\r
80       parent: this,\r
81       list: [], # list of sheets/by_story/1\r
82     })\r
83     this.$el.append(body.render().el)\r
84     this\r
85   \r
86 class Pettanr.Views.Story.PlayModule.Sheets extends Pettanr.View\r
87   tagName: 'div'\r
88   \r
89   initialize: (options) ->\r
90     @parent = options.parent\r
91     @items = options.items\r
92   \r
93   render: () ->\r
94     this.$el.html('')\r
95     _.each @items, (story_sheet) =>\r
96       return if not story_sheet.has_sheet()\r
97       sheet_view = new Pettanr.Views.Story.PlayModule.Sheet({\r
98         story_sheet: story_sheet,\r
99       })\r
100       this.$el.append(sheet_view.render().el)\r
101     this\r
102   \r
103 class Pettanr.Views.Story.PlayModule.Body extends Pettanr.View\r
104   tagName: 'div'\r
105   \r
106   initialize: (options) ->\r
107     @parent = options.parent\r
108     @list = options.list\r
109     @items = @list.items()\r
110     if @items.length < 1\r
111       @render_empty()\r
112     else\r
113       @render()\r
114   \r
115   render_empty: () ->\r
116     this.$el.html('')\r
117     this.$el.append((new Tag.H2({content: I18n.t('stories.play.empty')})).render().el)\r
118     this\r
119   \r
120   render: () ->\r
121     this.$el.html('')\r
122     # paginate(@pager)\r
123     sheets = new Pettanr.Views.Story.PlayModule.Sheets({\r
124       parent: this,\r
125       items: @items,\r
126     })\r
127     this.$el.append(sheets.render().el)\r
128     # paginate(@pager)\r
129     this\r
130   \r
131 class Pettanr.Views.Story.Play extends Pettanr.View\r
132   tagName: 'div'\r
133   className: 'show'\r
134   \r
135   initialize: (options) ->\r
136     @item = options.item\r
137     @list = options.list\r
138     icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})\r
139     caption_url = Pettanr.url(@item.table_name(), 'play', {id: @item.get('id')})\r
140     prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'})\r
141     @header = new Pettanr.Views.Story.PlayModule.Header({\r
142       item: @item, \r
143       caption: @item.get('title'), \r
144       icon_url: icon_url,\r
145       caption_url: caption_url,\r
146       prof_url: prof_url\r
147     })\r
148     @author = new Pettanr.Views.Show.HeaderAuthor({item: @item})\r
149     @body = new Pettanr.Views.Story.PlayModule.Body({\r
150       parent: this,\r
151       list: @list, \r
152     })\r
153     @owner = new Pettanr.Views.Story.PlayModule.Owner({item: @item})\r
154   \r
155   render: () ->\r
156     this.$el.html('')\r
157     this.$el.append(@header.render().el)\r
158     this.$el.append(@author.render().el)\r
159     this.$el.append(@body.render().el)\r
160     this.$el.append(@owner.render().el) if @item.is_own()\r
161     this\r
162   \r