OSDN Git Service

mrg
[pettanr/pettanr.git] / app / assets / javascripts / locmare / form / field / tag / select.js.coffee
1 class Locmare.FormModule.FieldModule.TagModule.SelectTag extends Locmare.FormModule.FieldModule.TagModule.Base\r
2   tagName: 'select'\r
3   \r
4   render: () ->\r
5     this.$el.html('')\r
6     @attr = {\r
7       name: @form_field_name(),\r
8     }\r
9     _.extend(@attr, @options())\r
10     this.$el.attr(@attr)\r
11     _this = this\r
12     _.each @select_values(), (member) ->\r
13       selected = if _this.is_selected(member)\r
14         ' selected'\r
15       else\r
16         ''\r
17       _this.$el.append('<option value="' + member[1] + '"' + selected + '>' + member[0] + '</option>')\r
18     this\r
19   \r
20   model_manifest: () ->\r
21     Manifest.manifest().models[@field.field_manifest.model_name()]\r
22   \r
23   model_attribute_manifest: () ->\r
24     @model_manifest().attributes[@field.field_manifest.column_name()]\r
25   \r
26   select_item_name: () ->\r
27     @model_attribute_manifest().source.select_item_name\r
28   \r
29   items: () ->\r
30     if @model_attribute_manifest().source.type == 'magic_number'\r
31       Manifest.manifest().system_resources.select_items[@select_item_name()]\r
32     else\r
33       resource_model_name = @model_attribute_manifest().source.resource_model_name\r
34       resource_list_name = @model_attribute_manifest().source.resource_list_name\r
35       filter_column_name = @model_attribute_manifest().source.filter_column_name\r
36       filter_id = @form().item().get(filter_column_name)\r
37       list = Locmare.ListGroup.list resource_model_name, resource_list_name\r
38       _.map list.items(null, {id: filter_id}), (i) ->\r
39         [i.caption, i.id]\r
40   \r
41   source_by_model: () ->\r
42     switch @model_attribute_manifest().source.type\r
43       when 'model', 'filter'\r
44         true\r
45       when 'magic_number'\r
46         false\r
47       else\r
48         null\r
49   \r
50   is_selected: (member) ->\r
51     @value() == member[1]\r
52   \r
53   select_values: () ->\r
54     if @source_by_model()\r
55       @items()\r
56     else\r
57       Pettanr.AppHelper.t_select_items(@items())\r
58   \r