5 def self.included(base)
6 base.extend(ClassMethods)
7 base.__send__ :include, InstanceMethods
26 def self.default_page_size
30 def self.max_page_size
34 def self.page prm = nil
40 def self.page_size prm = self.default_page_size
42 page_size = self.max_page_size if page_size > self.max_page_size
43 page_size = self.default_page_size if page_size < 1
51 def self.list page = 1, page_size = self.default_page_size
52 PanelPicture.where(self.list_where()).includes(PanelPicture.list_opt).order('panel_pictures.updated_at desc').offset((page -1) * page_size).limit(page_size)
55 def self.list_paginate page = 1, page_size = self.default_page_size
56 Kaminari.paginate_array(Array.new(PanelPicture.where(self.list_where()).includes(PanelPicture.list_opt).count, nil)).page(page).per(page_size)
60 {:panel => {:author => {}}, :picture => {:artist => {}, :license => {}} }
63 def self.list_json_opt
64 {:include => {:panel => {:include => {:author => {}}}, :picture => {:include => {:artist => {}, :license => {}}} }}
69 opt.merge!(PanelPicture.show_opt)
70 res = PanelPicture.find(cid, opt)
71 raise ActiveRecord::Forbidden unless res.visible?(au)
76 {:include => {:panel => {:author => {}}, :picture => {:artist => {}, :license => {}}}}
79 def self.show_json_opt
80 {:include => {:panel => {:include => {:author => {}}}, :picture => {:include => {:artist => {}, :license => {}}} }}
85 module InstanceMethods
94 self.new_record? ? '0' : self.id.to_s
97 def tag_item_id c = nil
98 self.item_name + self.item_id + c.to_s
101 def tag_item_field_id field_name
102 self.tag_item_id + field_name.to_s
105 def path_name with_engine = false
106 self.class.path_name(with_engine)
109 def form_template with_engine = false
110 self.path_name(with_engine) + '/form'
113 def tag_item_attributes column = nil, opt = {}
115 :id => self.field_tag_id(column), :panel_id => self.tag_panel_id,
116 :element_id => self.tag_element_id, :element_type => self.tag_element_type
120 def field_tag_attributes column, no_attr, opt = {}
121 self.tag_attributes(column).merge(
122 {:column => column, :new_index => self.tag_new_index, :no_attr => no_attr}
126 #render element by body
127 def any_tag_attributes name = nil, opt = {}
128 r = self.tag_attributes(name)
130 {:new_index => self.tag_new_index}
135 def select_tag_attributes(selected, column, no_attr)
138 {:html => {:selected => selected}},
139 self.field_tag_attributes(column, no_attr)
143 def tag_attr column = nil, opt = {}
144 self.tag_attributes(column, opt).to_attr
147 def field_tag_attr column, no_attr, opt = {}
148 self.field_tag_attributes(column, no_attr, opt).to_attr
151 def any_tag_attr name = nil, opt = {}
152 self.any_tag_attributes(name, opt).to_attr