OSDN Git Service

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