OSDN Git Service

991f90f13ed79f87c0c5da52acc84f436c66753d
[pettanr/pettanr.git] / app / assets / javascripts / views / users / account.js.coffee
1 # page header for signed in user\r
2 class Pettanr.Views.User.Account extends Backbone.View\r
3   tagName: 'div'\r
4   \r
5   initialize: (options) ->\r
6     @author = Pettanr.cache.operators.author\r
7     @artist = Pettanr.cache.operators.artist\r
8   \r
9   render: () ->\r
10     this.$el.html('')\r
11     @logo = new Pettanr.Views.Common.Logo({})\r
12     @listenTo(@logo, 'click', @logo_click)\r
13     this.$el.append(@logo.render().el)\r
14     if @author\r
15       @author_view = @author.icon_with_caption_view()\r
16       @listenTo(@author_view, 'click', @author_click)\r
17       this.$el.append(@author_view.render().el)\r
18     if @artist\r
19       @artist_view = @artist.icon_with_caption_view()\r
20       @listenTo(@artist_view, 'click', @artist_click)\r
21       this.$el.append(@artist_view.render().el)\r
22     if @author\r
23       @quick = new Pettanr.Views.User.Account.Quick()\r
24       @listenTo(@quick, 'click:mydoc', @click_mydoc)\r
25       @listenTo(@quick, 'click:mynew', @click_mynew)\r
26       this.$el.append(@quick.render().el)\r
27     sign_out = new Tag.A({\r
28       attr: {href: '/users/sign_out'}, \r
29       class_name: 'sign_out', \r
30       content: 'sign out'\r
31     })\r
32     @listenTo(sign_out, 'click', @sign_out_click)\r
33     this.$el.append(sign_out.render().el)\r
34     this\r
35   \r
36   logo_click: () ->\r
37     @trigger('http_get', '')\r
38   \r
39   author_click: () ->\r
40     @trigger('http_get', @author_view.url())\r
41   \r
42   artist_click: () ->\r
43     @trigger('http_get', @artist_view.url())\r
44   \r
45   sign_out_click: () ->\r
46     @trigger('http_post', 'users/sign_out')\r
47     return false\r
48   \r
49   click_mydoc: (url) ->\r
50     @trigger('http_get', url)\r
51     return false\r
52   \r
53   click_mynew: (url) ->\r
54     @trigger('http_get', url)\r
55     return false\r
56   \r
57 class Pettanr.Views.User.Account.Quick extends Backbone.View\r
58   tagName: 'span'\r
59   \r
60   initialize: (options) ->\r
61   \r
62   render: () ->\r
63     this.$el.html('')\r
64     @home()\r
65     @create()\r
66     this\r
67   \r
68   home: () ->\r
69     params = {\r
70       controller: 'folders',\r
71       action: 'index',\r
72       path: '/my documents/create/'\r
73     }\r
74     list = Locmare.ListGroup.list(\r
75       'folders', 'index', params\r
76     )\r
77     list.open(() =>\r
78       if !_.isEmpty(list.items())\r
79         @mydoc = list.items()[0]\r
80         @add_mydoc()\r
81     )\r
82   \r
83   create: () ->\r
84     params = {\r
85       controller: 'folders',\r
86       action: 'index',\r
87       path: '/my documents/'\r
88     }\r
89     list = Locmare.ListGroup.list(\r
90       'folders', 'index', params\r
91     )\r
92     list.open(() =>\r
93       if !_.isEmpty(list.items())\r
94         @mynew = list.items()[0]\r
95         @add_mynew()\r
96     )\r
97   \r
98   add_mydoc: () ->\r
99     mydoc_icon = new  Pettanr.Views.User.Account.LinkedMydocIcon({item: @mydoc, half: true})\r
100     @listenTo(mydoc_icon, 'click', @click_mydoc_icon)\r
101     this.$el.append(mydoc_icon.render().el)\r
102   \r
103   add_mynew: () ->\r
104     mynew_icon = new  Pettanr.Views.User.Account.LinkedCreateIcon({item: @mynew, half: true})\r
105     @listenTo(mynew_icon, 'click', @click_mynew_icon)\r
106     this.$el.append(mynew_icon.render().el)\r
107   \r
108   click_mydoc_icon: () ->\r
109     @trigger('click:mydoc', @mydoc.show_url())\r
110   \r
111   click_mynew_icon: () ->\r
112     @trigger('click:mynew', @mynew.show_url())\r
113   \r
114 class Pettanr.Views.User.Account.LinkedMydocIcon extends Tag.A\r
115   \r
116   initialize: (options) ->\r
117     item = options.item\r
118     half = options.half\r
119     img = new Pettanr.Image.SymbolImg({\r
120       attr: {src: '/images/home.gif'}, half: half\r
121     })\r
122     super({\r
123       attr: {href: '/' + item.show_url()}, \r
124       content: img.render().el\r
125     })\r
126   \r
127 class Pettanr.Views.User.Account.LinkedCreateIcon extends Tag.A\r
128   \r
129   initialize: (options) ->\r
130     item = options.item\r
131     half = options.half\r
132     img = new Pettanr.Image.SymbolImg({\r
133       attr: {src: '/images/inspire.gif'}, half: half\r
134     })\r
135     super({\r
136       attr: {href: '/' + item.show_url()}, \r
137       content: img.render().el\r
138     })\r
139   \r