class Content extends Item @single: () -> 'Name' @plural: () -> 'Names' @class_name: () -> @single() @item_name: () -> @underscore(@single()) @table_name: () -> @underscore(@plural()) @path_name: (with_engine = false) -> @table_name() #>> https://gist.github.com/davidjbeveridge/3813724 @xeach: (arr, func, index=0) -> if index < arr.length then [ func(arr[index], index), @xeach(arr, func, index + 1)... ] else [] @camelize: (input) -> pieces = input.split(/[\W_-]/) @xeach(pieces, @capitalize).join("") @capitalize: (input) -> input.charAt(0).toUpperCase() + input.slice(1) @lowercase: (input) -> input.toLowerCase() @underscore: (input) -> pieces = input.replace(/([A-Z])/g, '_$1').split(/[\W_-]/).filter (n) -> !!n @xeach(pieces, @lowercase ).join("_") # << @is_a_string: (str) -> if (str instanceof String) or (typeof str == "string") true else false has_picture: () -> false has_helper: (column_name) -> c = @constructor.colum_structures() if c[column_name] and c[column_name]['helper'] true else false element_name: () -> @constructor.element_name() extend_column: () -> null extend_element_name: () -> if @extend_column() @get(@extend_column()) else @element_name() find_configurations: (hash, key) -> if @constructor.is_a_string(hash[key]) @find_configurations(hash, hash[key]) else return hash[key] tag_id: (c = null) -> 'panel' + @tag_panel_id() + @tag_element_type() + @tag_element_id() + c field_tag_id: (f) -> @tag_id() + f tag_panel_id: () -> @get_panel().get('id') || '0' tag_element_id: () -> @get('id') || '0' tag_element_type: () -> @constructor.element_name() tag_new_index: () -> @new_index() path_name: (with_engine = false) -> @constructor.path_name(with_engine) form_template: (with_engine = false) -> @path_name(with_engine) + '/form' form_helper_template: (column_name) -> c = @constructor.colum_structures() if @has_helper(column_name) c[colum_name]['helper'] else '' tag_attributes: (column = null, opt = {}) -> r = { id: @field_tag_id(column), panel_id: @tag_panel_id(), element_id: @tag_element_id(), element_type: @tag_element_type() } _.extend(r, opt) r field_tag_attributes: (column, no_attr, opt = {}) -> r = @tag_attributes(column) _.extend(r, {column: column, new_index: @tag_new_index(), no_attr: no_attr}) _.extend(r, opt) r #render element by body any_tag_attributes: (name = null, opt = {}) -> r = @tag_attributes(name) if @new_index() _.extend(r, {new_index: @tag_new_index()}) _.extend(r, opt) r select_tag_attributes: (selected, column, no_attr) -> [ 'last', 'first', {html: {selected: selected}}, @field_tag_attributes(column, no_attr) ] tag_attr: (column = null, opt = {}) -> @tag_attributes(column, opt).to_attr field_tag_attr: (column, no_attr, opt = {}) -> @field_tag_attributes(column, no_attr, opt).to_attr any_tag_attr: (name = null, opt = {}) -> @any_tag_attributes(name, opt).to_attr @Item = Item