OSDN Git Service

fix: devise
[pettanr/pettanr.git] / app / assets / javascripts / locmare / form / field / tag / select.js.coffee
index 0a1eec3..ac07a01 100644 (file)
@@ -1,21 +1,24 @@
 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
@@ -52,14 +55,19 @@ class Locmare.FormModule.FieldModule.TagModule.SelectTag extends Locmare.FormMod
         {id: filter_id}\r
       else\r
         {}\r
-      list = Locmare.ListGroup.list(resource_model_name, resource_list_name, @form().operators, {})\r
-      list.open((page_status) ->\r
-        members = _.map list.models, (member) ->\r
-          [member.get(caption_name), member.get('id')]\r
-        cb(members)\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