75 lines
1.9 KiB
Ruby
75 lines
1.9 KiB
Ruby
|
class VLog
|
||
|
include Mongoid::Document
|
||
|
include Mongoid::Timestamps
|
||
|
|
||
|
include OrbitModel::Impression
|
||
|
|
||
|
include OrbitTag::Taggable
|
||
|
include OrbitCategory::Categorizable
|
||
|
include Slug
|
||
|
|
||
|
field :create_user_id, type: BSON::ObjectId
|
||
|
field :title, as: :slug_title, type: String, localize: true
|
||
|
field :subtitle, localize: true
|
||
|
field :type
|
||
|
field :display_in_profile, type: Boolean, default: false
|
||
|
field :youtube_link
|
||
|
|
||
|
mount_uploader :image, ImageUploader
|
||
|
mount_uploader :video, AssetUploader
|
||
|
|
||
|
has_many :v_log_files, :dependent => :destroy, :autosave => true
|
||
|
|
||
|
accepts_nested_attributes_for :v_log_files, :allow_destroy => true
|
||
|
|
||
|
# scope :sort_for_frontend, ->{ order_by(:created_at => "desc") }
|
||
|
|
||
|
def thumbnail
|
||
|
self.image.url.nil? || self.image.url == "" ? "/assets/vlog/video-thumbnail.png" : self.image.thumb.url
|
||
|
end
|
||
|
|
||
|
def youtube_thumbnail
|
||
|
thumb = ""
|
||
|
if !self.youtube_link.nil?
|
||
|
id = self.youtube_link.split("/").last
|
||
|
thumb = "http://img.youtube.com/vi/#{id}/0.jpg"
|
||
|
end
|
||
|
return thumb
|
||
|
end
|
||
|
|
||
|
def self.get_plugin_datas_to_member(datas)
|
||
|
|
||
|
fields_to_show = [
|
||
|
"thumbnail",
|
||
|
"title"
|
||
|
]
|
||
|
|
||
|
pd_title = fields_to_show.collect do |t|
|
||
|
{
|
||
|
"plugin_data_title" => I18n.t("vlog.#{t}")
|
||
|
}
|
||
|
end
|
||
|
|
||
|
plugin_datas = datas.order_by(:created_at => "desc").collect do |p|
|
||
|
|
||
|
pd_data = []
|
||
|
fields_to_show.collect do |t|
|
||
|
if t == "thumbnail"
|
||
|
thumbnail = (p.type == "youtube" ? p.youtube_thumbnail : p.thumbnail)
|
||
|
pd_data << { "data_title" => "<a href='#{OrbitHelper.url_to_plugin_show(p.to_param,"vlog")}'><div class='video-thumbnail'><img src='#{thumbnail}' /><div class='video-thumbnail-overlay'></div><i class='icons-play'></i></div></a>" }
|
||
|
else
|
||
|
pd_data << { "data_title" => p.send(t) }
|
||
|
end
|
||
|
end
|
||
|
|
||
|
{
|
||
|
"pd_datas" => pd_data
|
||
|
}
|
||
|
|
||
|
end
|
||
|
|
||
|
return [pd_title,plugin_datas]
|
||
|
|
||
|
end
|
||
|
|
||
|
end
|