OSDN Git Service

04be484c9099b8019db5539e10b8b99fd45f8a7d
[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.Sheet extends Pettanr.View\r
43   tagName: 'div'\r
44   \r
45   initialize: (options) ->\r
46     @story_sheet = options.story_sheet\r
47     @story_sheet.get_parent('sheet', this, {\r
48       success: (@sheet) =>\r
49         @render()\r
50     })\r
51   \r
52   render: () ->\r
53     this.$el.html('')\r
54     @sheet.get_children('panel', this, {\r
55       success: (panels) => \r
56         body = new Pettanr.Views.Sheet.PlayModule.Body({\r
57           parent: this,\r
58           list: [], # list of sheets/by_story/1\r
59         })\r
60         this.$el.append(body.render().el)\r
61     })\r
62     this\r
63   \r
64 class Pettanr.Views.Story.PlayModule.Sheets extends Pettanr.View\r
65   tagName: 'div'\r
66   \r
67   initialize: (options) ->\r
68     @parent = options.parent\r
69     @items = options.items\r
70   \r
71   render: () ->\r
72     this.$el.html('')\r
73     _.each @items, (story_sheet) =>\r
74       return if not story_sheet.has_sheet()\r
75       sheet_view = new Pettanr.Views.Story.PlayModule.Sheet({\r
76         story_sheet: story_sheet,\r
77       })\r
78       this.$el.append(sheet_view.render().el)\r
79     this\r
80   \r
81 class Pettanr.Views.Story.PlayModule.Body extends Pettanr.View\r
82   tagName: 'div'\r
83   \r
84   initialize: (options) ->\r
85     @parent = options.parent\r
86     @list = options.list\r
87     @items = @list.items()\r
88     if @items.length < 1\r
89       @render_empty()\r
90     else\r
91       @render()\r
92   \r
93   render_empty: () ->\r
94     this.$el.html('')\r
95     this.$el.append((new Tag.H2({content: I18n.t('stories.play.empty')})).render().el)\r
96     this\r
97   \r
98   render: () ->\r
99     this.$el.html('')\r
100     # paginate(@pager)\r
101     sheets = new Pettanr.Views.Story.PlayModule.Sheets({\r
102       parent: this,\r
103       items: @items,\r
104     })\r
105     this.$el.append(sheets.render().el)\r
106     # paginate(@pager)\r
107     this\r
108   \r
109 class Pettanr.Views.Story.Play extends Pettanr.View\r
110   tagName: 'div'\r
111   className: 'show'\r
112   \r
113   initialize: (options) ->\r
114     @item = options.item\r
115     @list = options.list\r
116     icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})\r
117     caption_url = Pettanr.url(@item.table_name(), 'play', {id: @item.get('id')})\r
118     prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'})\r
119     @header = new Pettanr.Views.Story.PlayModule.Header({\r
120       item: @item, \r
121       caption: @item.get('title'), \r
122       icon_url: icon_url,\r
123       caption_url: caption_url,\r
124       prof_url: prof_url\r
125     })\r
126     @author = new Pettanr.Views.Show.HeaderAuthor({item: @item})\r
127     @body = new Pettanr.Views.Story.PlayModule.Body({\r
128       parent: this,\r
129       list: @list, \r
130     })\r
131     @owner = new Pettanr.Views.Story.PlayModule.Owner({item: @item})\r
132   \r
133   render: () ->\r
134     this.$el.html('')\r
135     this.$el.append(@header.render().el)\r
136     this.$el.append(@author.render().el)\r
137     this.$el.append(@body.render().el)\r
138     this.$el.append(@owner.render().el) if @item.is_own()\r
139     this\r
140   \r