OSDN Git Service

Merge branch 'v06' of git.sourceforge.jp:/gitroot/pettanr/pettanr into v06
[pettanr/pettanr.git] / app / assets / javascripts / deprecated / element.js.coffee
1 class Element extends Item\r
2   @single: () ->\r
3     'Name'\r
4   \r
5   @plural: () ->\r
6     'Names'\r
7   \r
8   @class_name: () ->\r
9     @single()\r
10   \r
11   @element_name: () ->\r
12     @underscore(@single())\r
13   \r
14   @table_name: () ->\r
15     @underscore(@plural())\r
16   \r
17   @path_name: (with_engine = false) ->\r
18     @table_name()\r
19   \r
20   @colum_structures: ->\r
21     {}\r
22   \r
23   #>> https://gist.github.com/davidjbeveridge/3813724\r
24   @xeach: (arr, func, index=0) ->\r
25     if index < arr.length then [ func(arr[index], index), @xeach(arr, func, index + 1)... ] else []\r
26   \r
27   @camelize: (input) ->\r
28     pieces = input.split(/[\W_-]/)\r
29     @xeach(pieces, @capitalize).join("")\r
30   \r
31   @capitalize: (input) ->\r
32     input.charAt(0).toUpperCase() + input.slice(1)\r
33   \r
34   @lowercase: (input) ->\r
35     input.toLowerCase()\r
36    \r
37   @underscore: (input) ->\r
38     pieces = input.replace(/([A-Z])/g, '_$1').split(/[\W_-]/).filter (n) -> !!n\r
39     @xeach(pieces, @lowercase ).join("_")\r
40   # <<\r
41   @is_a_string: (str) ->\r
42     if (str instanceof String) or (typeof str == "string")\r
43       true\r
44     else\r
45       false\r
46   \r
47   has_picture: () ->\r
48     false\r
49   \r
50   has_part: () ->\r
51     false\r
52   \r
53   parts: () ->\r
54     @_parts ? @_parts = []\r
55   \r
56   has_helper: (column_name) ->\r
57     c = @constructor.colum_structures()\r
58     if c[column_name] and c[column_name]['helper']\r
59       true\r
60     else\r
61       false\r
62   \r
63   element_name: () ->\r
64     @constructor.element_name()\r
65   \r
66   extend_column: () ->\r
67     null\r
68   \r
69   extend_element_name: () ->\r
70     if @extend_column()\r
71       @get(@extend_column())\r
72     else\r
73       @element_name()\r
74   \r
75   find_configurations: (hash, key) ->\r
76     if @constructor.is_a_string(hash[key])\r
77       @find_configurations(hash, hash[key])\r
78     else\r
79       return hash[key]\r
80   \r
81   new_index: () ->\r
82     @_new_index\r
83   \r
84   set_new_index: (v) ->\r
85     @_new_index = v\r
86   \r
87   get_new_panel: () ->\r
88     @_new_panel\r
89   \r
90   set_new_panel: (v) ->\r
91     @_new_panel = v\r
92   \r
93   set_panel: (v) ->\r
94     @_panel = v\r
95   \r
96   get_panel: () ->\r
97     @_panel || @_new_panel\r
98   \r
99   tag_id: (c = null) ->\r
100     'panel' + @tag_panel_id() + @tag_element_type() + @tag_element_id() + c\r
101   \r
102   field_tag_id: (f) ->\r
103     @tag_id() + f\r
104   \r
105   tag_panel_id: () ->\r
106     @get_panel().get('id') || '0'\r
107   \r
108   tag_element_id: () ->\r
109     @get('id') || '0'\r
110   \r
111   tag_element_type: () ->\r
112     @constructor.element_name()\r
113   \r
114   tag_new_index: () ->\r
115     @new_index()\r
116   \r
117   path_name: (with_engine = false) ->\r
118     @constructor.path_name(with_engine)\r
119   \r
120   form_template: (with_engine = false) ->\r
121     @path_name(with_engine) + '/form'\r
122   \r
123   scenario_template: (with_engine = false) ->\r
124     @path_name(with_engine) + '/scenario'\r
125   \r
126   element_face_template: (with_engine = false) ->\r
127     @path_name(with_engine) + '/element_face'\r
128   \r
129   form_helper_template: (column_name) ->\r
130     c = @constructor.colum_structures()\r
131     if @has_helper(column_name)\r
132       c[colum_name]['helper']\r
133     else\r
134       ''\r
135   \r
136   tag_attributes: (column = null, opt = {}) ->\r
137     r = {\r
138       id: @field_tag_id(column), panel_id: @tag_panel_id(), \r
139       element_id: @tag_element_id(), element_type: @tag_element_type()\r
140     }\r
141     _.extend(r, opt)\r
142     r\r
143   \r
144   field_tag_attributes: (column, no_attr, opt = {}) ->\r
145     r = @tag_attributes(column)\r
146     _.extend(r, {column: column, new_index: @tag_new_index(), no_attr: no_attr})\r
147     _.extend(r, opt)\r
148     r\r
149   \r
150   #render element by body\r
151   any_tag_attributes: (name = null, opt = {}) ->\r
152     r = @tag_attributes(name)\r
153     if @new_index()\r
154        _.extend(r, {new_index: @tag_new_index()})\r
155     _.extend(r, opt)\r
156     r\r
157   \r
158   select_tag_attributes: (selected, column, no_attr) ->\r
159     [\r
160       'last', 'first', \r
161       {html: {selected: selected}}, \r
162       @field_tag_attributes(column, no_attr)\r
163     ]\r
164   \r
165   tag_attr: (column = null, opt = {}) ->\r
166     @tag_attributes(column, opt).to_attr\r
167   \r
168   field_tag_attr: (column, no_attr, opt = {}) ->\r
169     @field_tag_attributes(column, no_attr, opt).to_attr\r
170   \r
171   any_tag_attr: (name = null, opt = {}) ->\r
172     @any_tag_attributes(name, opt).to_attr\r
173 \r
174 @Element = Element\r