1 class Item extends Backbone.Model
\r
12 @underscore(@single())
\r
15 @underscore(@plural())
\r
17 @path_name: (with_engine = false) ->
\r
20 #>> https://gist.github.com/davidjbeveridge/3813724
\r
21 @xeach: (arr, func, index=0) ->
\r
22 if index < arr.length then [ func(arr[index], index), @xeach(arr, func, index + 1)... ] else []
\r
24 @camelize: (input) ->
\r
25 pieces = input.split(/[\W_-]/)
\r
26 @xeach(pieces, @capitalize).join("")
\r
28 @capitalize: (input) ->
\r
29 input.charAt(0).toUpperCase() + input.slice(1)
\r
31 @lowercase: (input) ->
\r
34 @underscore: (input) ->
\r
35 pieces = input.replace(/([A-Z])/g, '_$1').split(/[\W_-]/).filter (n) -> !!n
\r
36 @xeach(pieces, @lowercase ).join("_")
\r
38 @is_a_string: (str) ->
\r
39 if (str instanceof String) or (typeof str == "string")
\r
47 has_helper: (column_name) ->
\r
48 c = @constructor.colum_structures()
\r
49 if c[column_name] and c[column_name]['helper']
\r
55 @constructor.element_name()
\r
57 extend_column: () ->
\r
60 extend_element_name: () ->
\r
62 @get(@extend_column())
\r
66 find_configurations: (hash, key) ->
\r
67 if @constructor.is_a_string(hash[key])
\r
68 @find_configurations(hash, hash[key])
\r
72 tag_id: (c = null) ->
\r
73 'panel' + @tag_panel_id() + @tag_element_type() + @tag_element_id() + c
\r
75 field_tag_id: (f) ->
\r
79 @get_panel().get('id') || '0'
\r
81 tag_element_id: () ->
\r
84 tag_element_type: () ->
\r
85 @constructor.element_name()
\r
87 tag_new_index: () ->
\r
90 path_name: (with_engine = false) ->
\r
91 @constructor.path_name(with_engine)
\r
93 form_template: (with_engine = false) ->
\r
94 @path_name(with_engine) + '/form'
\r
96 form_helper_template: (column_name) ->
\r
97 c = @constructor.colum_structures()
\r
98 if @has_helper(column_name)
\r
99 c[colum_name]['helper']
\r
103 tag_attributes: (column = null, opt = {}) ->
\r
105 id: @field_tag_id(column), panel_id: @tag_panel_id(),
\r
106 element_id: @tag_element_id(), element_type: @tag_element_type()
\r
111 field_tag_attributes: (column, no_attr, opt = {}) ->
\r
112 r = @tag_attributes(column)
\r
113 _.extend(r, {column: column, new_index: @tag_new_index(), no_attr: no_attr})
\r
117 #render element by body
\r
118 any_tag_attributes: (name = null, opt = {}) ->
\r
119 r = @tag_attributes(name)
\r
121 _.extend(r, {new_index: @tag_new_index()})
\r
125 select_tag_attributes: (selected, column, no_attr) ->
\r
128 {html: {selected: selected}},
\r
129 @field_tag_attributes(column, no_attr)
\r
132 tag_attr: (column = null, opt = {}) ->
\r
133 @tag_attributes(column, opt).to_attr
\r
135 field_tag_attr: (column, no_attr, opt = {}) ->
\r
136 @field_tag_attributes(column, no_attr, opt).to_attr
\r
138 any_tag_attr: (name = null, opt = {}) ->
\r
139 @any_tag_attributes(name, opt).to_attr
\r