OSDN Git Service

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