OSDN Git Service

27fa31c0c90da55c81fcd70005e6cf6e51192afe
[pettanr/pettanr.git] / app / assets / javascripts / views / authors / show.js.coffee
1 class Pettanr.Views.Author.ShowModule extends Pettanr.View.Show\r
2 class Pettanr.Views.Author.ShowModule.Scrolls extends Pettanr.View\r
3   \r
4   initialize: (options) ->\r
5     super(options)\r
6     @item = options.item\r
7   \r
8   render: () ->\r
9     params = {\r
10       controller: 'scrolls', action: 'by_author', id: @item.get('id'),\r
11       page_size: 5\r
12     }\r
13     controller = Manifest.manifest().controllers[params['controller']]\r
14     action = controller.actions[params['action']]\r
15     @list = action.find(params)\r
16     @list.to_filer(this, {\r
17       success: (filer) => \r
18         pager = Locmare.ListGroupModule.LibModule.Pager.factory(@list.page_status, params)\r
19         @listenTo(filer, 'http_get', @http_get)\r
20         this.$el.append(filer.render().el)\r
21     })\r
22     this\r
23   \r
24   http_get: (url) ->\r
25     @trigger('http_get', url)\r
26   \r
27 class Pettanr.Views.Author.ShowModule.PanelsBody extends Pettanr.View\r
28   \r
29   initialize: (options) ->\r
30     super(options)\r
31     @item = options.item\r
32   \r
33   render: () ->\r
34     params = {\r
35       controller: 'panels', action: 'by_author', id: @item.get('id'),\r
36       page_size: 5\r
37     }\r
38     @list = Locmare.ListGroup.list(\r
39       params['controller'], params['action'], params\r
40     )\r
41     @list.open(this, {\r
42       success: (items) => \r
43         pager = Locmare.ListGroupModule.LibModule.Pager.factory(@list.page_status, params)\r
44         _.each items, (panel) =>\r
45           panel = panel.play() # retake panel for 'with_elements' mode\r
46           panel.fetch({cache: false}).done =>\r
47             panel.attributes = panel.decoded_attributes()\r
48             body = new Pettanr.Views.Panel.Body({\r
49               panel: panel,\r
50               spot: null\r
51             })\r
52             @trigger('ready', panel)\r
53             this.$el.append(body.render().el)\r
54     })\r
55     this\r
56   \r
57 class Pettanr.Views.Author.ShowModule.Panels extends Pettanr.View.Show\r
58   \r
59   initialize: (options) ->\r
60     super(options)\r
61     @panels_body = new Pettanr.Views.Author.ShowModule.PanelsBody({item: @item})\r
62     @credits = new Pettanr.View.Credits(this, {icon: true})\r
63   \r
64   render: () ->\r
65     @listenTo(@panels_body, 'ready', @ready)\r
66     @listenTo(@panels_body, 'http_get', @http_get)\r
67     @listenTo(@credits, 'click:credit:icon', @click_credit_icon)\r
68     this.$el.append(@panels_body.render().el)\r
69     this.$el.append(@credits.render().el)\r
70     @append_rb()\r
71     this\r
72   \r
73   http_get: (url) ->\r
74     @trigger('http_get', url)\r
75   \r
76   ready: (panel) ->\r
77     @credits.push(panel.licensed_pictures())\r
78   \r
79   click_credit_icon: (item) ->\r
80     @trigger('http_get', item.show_url())\r
81   \r
82 class Pettanr.Views.Author.ShowModule.Body extends Pettanr.View\r
83   \r
84   initialize: (options) ->\r
85     super(options)\r
86     @item = options.item\r
87     @scrolls = new Pettanr.Views.Author.ShowModule.Scrolls({item: @item})\r
88     @panels = new Pettanr.Views.Author.ShowModule.Panels(@item, {})\r
89   \r
90   render: () ->\r
91     this.$el.html('')\r
92     @listenTo(@scrolls, 'http_get', @http_get)\r
93     @listenTo(@panels, 'http_get', @http_get)\r
94     this.$el.append(@scrolls.render().el)\r
95     this.$el.append(@panels.render().el)\r
96     this\r
97   \r
98   http_get: (url) ->\r
99     @trigger('http_get', url)\r
100   \r
101 class Pettanr.Views.Author.Show extends Pettanr.View.Show\r
102   \r
103   initialize: (options) ->\r
104     @header = new Pettanr.View.Show.Header(@item, this, @default_header_options())\r
105     @body = new Pettanr.Views.Author.ShowModule.Body({\r
106       item: @item, \r
107     })\r
108     @owner = new Pettanr.View.Show.Footer(@item, this, @edit_only_footer_options())\r
109     @listenTo(@body, 'http_get', @http_get)\r
110   \r
111   render: () ->\r
112     this.$el.html('')\r
113     this.$el.append(@header.render().el)\r
114     this.$el.append(@body.render().el)\r
115     this.$el.append(@owner.render().el) if @item.is_own()\r
116     this\r
117   \r
118   http_get: (url) ->\r
119     @trigger('http_get', url)\r
120   \r