1 class Pettanr::Item < ActiveRecord::Base
2 self.abstract_class = true
7 before_validation :valid_encode
14 self.singular.pluralize
18 self.singular.underscore
29 def self.path_name with_engine = false
30 self.plural.underscore
33 def self.valid_encode_columns
37 def self.visible_count_options
53 def self.list_json_opt
57 def self.show item_id, operators
59 opt.merge!(self.show_opt)
60 item = self.find(item_id, opt)
61 raise ActiveRecord::Forbidden unless item.visible?(operators)
69 def self.show_json_opt
73 def self.visible_count
74 self.count self.visible_count_options
77 def self.visible_count_options
96 self.extend_column ? self.attributes[self.extend_column] : self.item_name
100 self.extend_item_name
104 self.class.valid_encode_columns.each do |a|
105 next if attributes[a] == nil
106 raise Pettanr::BadRequest unless attributes[a].valid_encoding?
116 def visible? operators
117 if Manifest.manifest.magic_numbers['run_mode'] == 0
118 return false unless operators.guest?
120 return false unless operators.resource_reader?
126 self.new_record? ? '0' : self.id.to_s
129 def tag_item_id c = nil
130 self.item_name + self.item_id + c.to_s
133 def dom_id_item_field field_name
134 self.tag_item_id + field_name.to_s
137 def path_name with_engine = false
138 self.class.path_name(with_engine)
141 def form_template with_engine = false
142 self.path_name(with_engine) + '/form'
145 def tag_item_attributes column = nil, opt = {}
147 :id => self.field_tag_id(column), :panel_id => self.tag_panel_id,
148 :element_id => self.tag_element_id, :element_type => self.tag_element_type
152 def field_tag_attributes column, no_attr, opt = {}
153 self.tag_attributes(column).merge(
154 {:column => column, :new_index => self.tag_new_index, :no_attr => no_attr}
158 #render element by body
159 def any_tag_attributes name = nil, opt = {}
160 r = self.tag_attributes(name)
162 {:new_index => self.tag_new_index}
167 def select_tag_attributes(selected, column, no_attr)
170 {:html => {:selected => selected}},
171 self.field_tag_attributes(column, no_attr)
175 def tag_attr column = nil, opt = {}
176 self.tag_attributes(column, opt).to_attr
179 def field_tag_attr column, no_attr, opt = {}
180 self.field_tag_attributes(column, no_attr, opt).to_attr
183 def any_tag_attr name = nil, opt = {}
184 self.any_tag_attributes(name, opt).to_attr