OSDN Git Service

v07
[pettanr/pettanr.git] / app / assets / javascripts / tags.js.coffee
1 class Tag\r
2 \r
3 class Tag.Img extends Pettanr.View\r
4   tagName: 'img'\r
5   \r
6   # attr: {src: '/hoge', width: 80, ...}\r
7   # class_name: 'El-Class'\r
8   initialize: (options) ->\r
9     @attr = options.attr || {}\r
10     @class_name = options.class_name\r
11   \r
12   render: () ->\r
13     this.$el.attr(@attr)\r
14     this.$el.addClass(@class_name) if @class_name\r
15     this\r
16 \r
17 class Tag.A_ extends Pettanr.View\r
18   tagName: 'a'\r
19   \r
20   initialize: (options) ->\r
21     @attr = options.attr || {}\r
22     @content = options.content\r
23     @class_name = options.class_name\r
24   \r
25   render: () ->\r
26     this.$el.attr(@attr)\r
27     @el.className = @class_name if @class_name\r
28     this.$el.html(@content)\r
29     this\r
30   \r
31 class Tag.A extends Tag.A_\r
32   \r
33   initialize: (options) ->\r
34     super(options)\r
35   \r
36   render: () ->\r
37     super()\r
38     @events = {click: 'click'}\r
39     @delegateEvents(@events)\r
40     this\r
41   \r
42   click: () ->\r
43     @trigger('click')\r
44     return false\r
45   \r
46 class Tag.Div extends Pettanr.View\r
47   tagName: 'div'\r
48   \r
49   initialize: (options) ->\r
50     @attr = options.attr || {}\r
51     @content = options.content\r
52     @class_name = options.class_name\r
53   \r
54   render: () ->\r
55     @el.className = @class_name if @class_name\r
56     this.$el.attr(@attr)\r
57     this.$el.html(@content)\r
58     this\r
59   \r
60 class Tag.Span extends Tag.Div\r
61   tagName: 'span'\r
62     \r
63 class Tag.Ul extends Pettanr.View\r
64   tagName: 'ul'\r
65   \r
66   initialize: (options) ->\r
67     @attr = options.attr || {}\r
68     @contents = options.contents\r
69     @class_name = options.class_name\r
70   \r
71   render: () ->\r
72     @el.className = @class_name if @class_name\r
73     this.$el.attr(@attr)\r
74     this.$el.html('')\r
75     _.each @contents, (content) =>\r
76       this.$el.append(content.render().el)\r
77     this\r
78   \r
79 class Tag.RowBreak extends Tag.Div\r
80   initialize: (options) ->\r
81     @attr = {}\r
82     @content = null\r
83     @class_name = 'row_break'\r
84   \r
85 class Tag.H3 extends Pettanr.View\r
86   tagName: 'h3'\r
87   \r
88   initialize: (options) ->\r
89     @attr = options.attr || {}\r
90     @content = options.content\r
91     @class_name = options.class_name\r
92   \r
93   render: () ->\r
94     this.$el.attr(@attr)\r
95     @el.className = @class_name if @class_name\r
96     this.$el.html(@content)\r
97     this\r
98   \r
99 class Tag.H2 extends Tag.H3\r
100   tagName: 'h2'\r
101   \r
102 class Tag.Input extends Pettanr.View\r
103   tagName: 'input'\r
104   \r
105   initialize: (options) ->\r
106     @type = options.type || 'text'\r
107     @class_name = options.class_name\r
108     @attr = {}\r
109   \r
110   render: () ->\r
111     this.$el.attr(@attr)\r
112     @el.className = @class_name if @class_name\r
113     this.$el.html('')\r
114     this\r
115   \r
116 class Tag.Checkbox extends Tag.Input\r
117   events: {\r
118     click: 'click'\r
119   }\r
120   \r
121   initialize: (options) ->\r
122     super(options)\r
123     @type = 'checkbox'\r
124     @value = options.value\r
125     @checked = options.checked\r
126     @attr = {\r
127       type: @type,\r
128       value: @value,\r
129       checked: @checked,\r
130     }\r
131   \r
132   refresh: () ->\r
133     @attr['checked'] = @checked\r
134     this.$el.attr(@attr)\r
135   \r
136   click: () ->\r
137     @checked = this.$el.prop('checked')\r
138     @refresh()\r
139     @trigger('click')\r
140     return true\r
141   \r
142 class Tag.Submit extends Tag.Input\r
143   events: {\r
144     click: 'click'\r
145   }\r
146   \r
147   initialize: (options) ->\r
148     super(options)\r
149     @type = 'submit'\r
150     @value = options.value\r
151     @attr = {\r
152       type: @type,\r
153       value: @value,\r
154     }\r
155   \r
156   click: () ->\r
157     @trigger('click')\r
158     return false\r
159   \r
160 class Tag.Option extends Pettanr.View\r
161   tagName: 'option'\r
162   \r
163   initialize: (options) ->\r
164     super(options)\r
165     @selected = options.selected\r
166     @value = options.value || ''\r
167     @caption = options.caption\r
168   \r
169   render: () ->\r
170     this.$el.attr({value: @value, selected: @sel_attr()})\r
171     this.$el.html(@caption)\r
172     this\r
173   \r
174   sel_attr: () ->\r
175     if @selected\r
176       'selected'\r
177     else\r
178       ''\r
179   \r
180 @Tag = Tag\r