OSDN Git Service

fix filer
[pettanr/pettanr.git] / app / assets / javascripts / manifest / controller / action / base.js.coffee
index 1ef6a23..a2dfa15 100644 (file)
@@ -3,9 +3,41 @@ class Manifest.ControllerModule.ActionModule.Base extends ManifestBase.TypeNameA
   set_default: () ->\r
     super()\r
     @args.item_name ||= @parent.item_name  # not parent.name. follow singularized name\r
+    @args.param_id ||= 'prefix'\r
     \r
   init: () ->\r
     super()\r
     @item_name = @args.item_name\r
+    @param_id = @args.param_id\r
+  \r
+  encode_query: (params) ->\r
+    q = []\r
+    q.push('page=' + Pettanr.to_s(params['page'])) if params['page']\r
+    q.push('page_size=' + Pettanr.to_s(params['page_size'])) if params['page_size']\r
+    if q.length > 0\r
+      '?' + q.join('&')\r
+    else\r
+      ''\r
+  \r
+  encode_url: (action_name, params) ->\r
+    c = @parent.name\r
+    a = if action_name != 'index'\r
+      '/' + action_name\r
+    else\r
+      ''\r
+    i = if params['id']\r
+      '/' + Pettanr.to_s(params['id'])\r
+    else\r
+      ''\r
+    q = @encode_query(params)\r
+    switch @param_id\r
+      when 'prefix'\r
+        c + i + a + q\r
+      when 'suffix'\r
+        c + a + i + q\r
+      else\r
+        c + a + q\r
+  \r
+  url: (params) ->\r
+    @encode_url(@name, params)\r
   \r
-\r