class Locmare.FormModule.FieldModule.TagModule.SelectTag extends Locmare.FormModule.FieldModule.TagModule.Base\r
tagName: 'select'\r
+ events: {\r
+ 'change': 'change'\r
+ }\r
\r
render: () ->\r
- this.$el.html('')\r
- @attr = {\r
- name: @form_field_name(),\r
- }\r
- _.extend(@attr, @options())\r
- this.$el.attr(@attr)\r
- _this = this\r
- @select_values((members) ->\r
- _.each members, (member) ->\r
- selected = if _this.is_selected(member)\r
+ @select_values((members) =>\r
+ values = if @model_attribute_manifest().source.translate()\r
+ Pettanr.AppHelper.t_select_items(members)\r
+ else\r
+ members\r
+ this.$el.html('')\r
+ this.$el.attr(@attr())\r
+ _.each values, (member) =>\r
+ selected = if @is_selected(member)\r
' selected'\r
else\r
''\r
- _this.$el.append('<option value="' + member[1] + '"' + selected + '>' + member[0] + '</option>')\r
+ this.$el.append('<option value="' + member[1] + '"' + selected + '>' + member[0] + '</option>')\r
+ @trigger('ready:select')\r
)\r
this\r
\r
model_manifest: () ->\r
- Manifest.manifest().models[@field.field_manifest.model_name()]\r
+ Manifest.manifest().models[@field.field_manifest.item_name()]\r
\r
model_attribute_manifest: () ->\r
@model_manifest().attributes[@field.field_manifest.column_name()]\r
select_item_name: () ->\r
@model_attribute_manifest().source.select_item_name\r
\r
- source_by_model: () ->\r
+ source_by_filter: () ->\r
switch @model_attribute_manifest().source.type\r
when 'model', 'filter'\r
true\r
@value() == member[1]\r
\r
select_values: (cb) ->\r
- if @source_by_model()\r
- resource_model_name = @model_attribute_manifest().source.resource_model_name\r
- resource_list_name = @model_attribute_manifest().source.resource_list_name\r
+ if @source_by_filter()\r
+ resource_item_name = @model_attribute_manifest().source.resource_item_name\r
+ resource_action_name = @model_attribute_manifest().source.resource_action_name\r
filter_column_name = @model_attribute_manifest().source.filter_column_name\r
filter_id = @form().item.get(filter_column_name)\r
- list = Locmare.ListGroup.list resource_model_name, resource_list_name\r
- @select_values = _.map list.items(null, {id: filter_id}), (i) ->\r
- [i.caption, i.id]\r
+ resource_controller_name = Manifest.manifest().models[resource_item_name].classify().table_name()\r
+ caption_name = @model_attribute_manifest().source.caption_name\r
+ params = if filter_column_name\r
+ {id: filter_id}\r
+ else\r
+ {}\r
+ controller = Manifest.manifest().controllers[resource_controller_name]\r
+ action = controller.actions[resource_action_name]\r
+ list = action.find(params)\r
+ list.open(this, {\r
+ success: (page_status) ->\r
+ members = _.map list.models, (member) ->\r
+ [member.get(caption_name), member.get('id')]\r
+ cb(members)\r
+ })\r
else\r
- s = Manifest.manifest().system_resources.select_items[@select_item_name()]\r
- members = Pettanr.AppHelper.t_select_items(s)\r
+ members = Manifest.manifest().system_resources.select_items[@select_item_name()]\r
cb(members)\r
\r
+ change: () ->\r
+ @field.trigger('change')\r
+ \r