OSDN Git Service

6e4df9ad2f50c6ef20a9dd97e96a40b5c8a5385f
[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 ||= Manifest.manifest().singularize(@parent.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   path_name: () ->\r
14     @parent.name\r
15     #Manifest.manifest().pluralize(@item_name)\r
16   \r
17   encode_query: (params) ->\r
18     q = []\r
19     q.push('page=' + Pettanr.to_s(params['page'])) if params['page']\r
20     q.push('page_size=' + Pettanr.to_s(params['page_size'])) if params['page_size']\r
21     if q.length > 0\r
22       '?' + q.join('&')\r
23     else\r
24       ''\r
25   \r
26   encode_url: (action_name, params) ->\r
27     controller_name = @path_name()\r
28     c = controller_name\r
29     a = if action_name == 'index' or action_name == 'show' or action_name == 'destroy'\r
30       ''\r
31     else\r
32       '/' + action_name\r
33     # f = if params['format']   # json request? so bad. html request as get rest api\r
34     f = if params['format'] == 'prof'\r
35       '.' + params['format']\r
36     else\r
37       ''\r
38     i = if params['id']\r
39       '/' + Pettanr.to_s(params['id'])\r
40     else\r
41       ''\r
42     q = @encode_query(params)\r
43     switch @param_id\r
44       when 'prefix'\r
45         c + i + a + f + q\r
46       when 'suffix'\r
47         c + a + i + f + q\r
48       else\r
49         c + a + f + q\r
50   \r
51   url: (params) ->\r
52     @encode_url(@name, params)\r
53   \r