OSDN Git Service

fix:replace row break
[pettanr/pettanr.git] / app / assets / javascripts / views / scroll_panels / new_element.js.coffee
1 class Pettanr.Views.ScrollPanel.NewElementLauncher extends Pettanr.View\r
2   \r
3   initialize: (options) ->\r
4     @parent = options.parent\r
5     @model = options.model\r
6     @links_conf = {}\r
7     _.extend(@links_conf, {\r
8       users: {\r
9         caption: "User's",\r
10         params: {\r
11           controller: @model.pick_model().path_name(), action: 'index',\r
12           page_size: 8, format: 'html'\r
13         }\r
14       }\r
15     })\r
16     _.extend(@links_conf, {\r
17       mine: {\r
18         caption: 'Mine',\r
19         params: {\r
20           controller: @model.pick_model().path_name(), action: 'by_author', id: Pettanr.cache.operators.author.get('id'), \r
21           page_size: 8, format: 'html'\r
22         }\r
23       }\r
24     })\r
25     _.extend(@links_conf, {\r
26       authors: {\r
27         caption: "Authors",\r
28         params: {\r
29           controller: 'authors', action: 'index',\r
30           page_size: 8, format: 'html'\r
31         }\r
32       }\r
33     })\r
34   \r
35   render: () ->\r
36     this.$el.html('')\r
37     header = new Editor.EditorModule.DockModule.NewElementLauncherHeader({model: @model})\r
38     this.$el.append(header.render().el)\r
39     @add_links()\r
40     this\r
41   \r
42   get_action: (params) ->\r
43     controller = Manifest.manifest().controllers[params['controller']]\r
44     controller.actions[params['action']]\r
45   \r
46   add_links: () ->\r
47     _.each @links_conf, (conf, name) =>\r
48       @add_link(name, conf.caption, @get_action(conf.params).url(conf.params))\r
49   \r
50   add_link: (name, caption, url) ->\r
51     link = new Tag.A({\r
52       attr: {href: '/' + url},\r
53       content: caption\r
54     })\r
55     span = new Tag.Span({\r
56       content: link.render().el\r
57     })\r
58     @listenTo(link, 'click', this['click_' + name])\r
59     this.$el.append(span.render().el)\r
60   \r
61   click_users: () ->\r
62     params = @links_conf.users.params\r
63     url = @get_action(params).url(params)\r
64     @trigger('http_get', url)\r
65   \r
66   click_mine: () ->\r
67     params = @links_conf.mine.params\r
68     url = @get_action(params).url(params)\r
69     @trigger('http_get', url)\r
70   \r
71   click_authors: () ->\r
72     params = @links_conf.authors.params\r
73     url = @get_action(params).url(params)\r
74     @trigger('http_get', url)\r
75   \r