OSDN Git Service

fix filer
[pettanr/pettanr.git] / app / assets / javascripts / manifest / controller / action / base.js.coffee
1 class Manifest.ControllerModule.ActionModule.Base extends ManifestBase.TypeNameArgs\r
2   \r
3   set_default: () ->\r
4     super()\r
5     @args.item_name ||= @parent.item_name  # not parent.name. follow singularized name\r
6     @args.param_id ||= 'prefix'\r
7     \r
8   init: () ->\r
9     super()\r
10     @item_name = @args.item_name\r
11     @param_id = @args.param_id\r
12   \r
13   encode_query: (params) ->\r
14     q = []\r
15     q.push('page=' + Pettanr.to_s(params['page'])) if params['page']\r
16     q.push('page_size=' + Pettanr.to_s(params['page_size'])) if params['page_size']\r
17     if q.length > 0\r
18       '?' + q.join('&')\r
19     else\r
20       ''\r
21   \r
22   encode_url: (action_name, params) ->\r
23     c = @parent.name\r
24     a = if action_name != 'index'\r
25       '/' + action_name\r
26     else\r
27       ''\r
28     i = if params['id']\r
29       '/' + Pettanr.to_s(params['id'])\r
30     else\r
31       ''\r
32     q = @encode_query(params)\r
33     switch @param_id\r
34       when 'prefix'\r
35         c + i + a + q\r
36       when 'suffix'\r
37         c + a + i + q\r
38       else\r
39         c + a + q\r
40   \r
41   url: (params) ->\r
42     @encode_url(@name, params)\r
43   \r