-class SpeechBalloon < ActiveRecord::Base
+class SpeechBalloon < Pettanr::Item
include Element
include ElementInspire
has_one :balloon, :dependent => :destroy
validates :t, :presence => true, :numericality => {:greater_than_or_equal_to => 0}
validates :settings, :extend_speech_balloon => true
- before_validation :valid_encode
+ def self.singular
+ 'SpeechBalloon'
+ end
- def valid_encode
- ['caption', 'classname', 'settings'].each do |a|
- next if attributes[a] == nil
- raise Pettanr::BadRequest unless attributes[a].valid_encoding?
- end
+ def self.plural
+ 'SpeechBalloons'
+ end
+
+ def self.owner_type
+ :author
+ end
+
+ def self.valid_encode_columns
+ super.merge ['caption', 'classname', 'settings']
end
def self.list_opt_for_panel
false
end
+ def extend_column
+ 'classname'
+ end
+
def supply_default
if self.panel
self.t = self.panel.new_t
self.panel.visible? roles
end
- def new_sballoon
+ def symbol_option
+ self.speech_balloon_template.symbol_option
+ end
+
+ def new_balloon
@new_balloon
end
Kaminari.paginate_array(Array.new(SpeechBalloon.where(self.himlist_where(au)).includes(SpeechBalloon.list_opt).count, nil)).page(page).per(page_size)
end
+ def self.list_by_panel_where panel_id
+ ['speech_balloons.panel_id = ?', panel_id]
+ end
+
+ def self.list_by_panel panel_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_panel_where(panel_id)).includes(self.list_opt).order('speech_balloons.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
+ def self.list_by_speech_balloon_template_where speech_balloon_template_id
+ ['speech_balloons.speech_balloon_template_id = ?', speech_balloon_template_id]
+ end
+
+ def self.list_by_speech_balloon_template speech_balloon_template_id, roles, page = 1, page_size = self.default_page_size
+ self.where(self.list_by_speech_balloon_template_where(speech_balloon_template_id)).includes(self.list_opt).order('speech_balloons.updated_at desc').offset((page -1) * page_size).limit(page_size)
+ end
+
def self.list_opt
{:panel => {:author => {}}, :balloon => {}, :speech => {}, :speech_balloon_template => {} }
end