class GalleriesController < ApplicationController find_tag = Tag.all.select{|value| value.name==I18n.t('gallery.not_show_desc')} if find_tag.length==0 module_app_id = ModuleApp.where(:key=>"gallery").first[:_id] tags = ModuleApp.where(:key=>"gallery").first.tags tag0 = Tag.new(is_default: false,module_app_ids: [module_app_id]) tag1 = Tag.new(is_default: false,module_app_ids: [module_app_id]) nowlocale = I18n.locale I18n.available_locales.each do |locale| I18n.locale = locale tag0.name = I18n.t('gallery.show_desc') tag1.name = I18n.t('gallery.not_show_desc') end I18n.locale = nowlocale tag0.save tag1.save tags << tag0 tags << tag1 end def index albums = Album.filter_by_categories.filter_by_tags.asc(:order) galleries = albums.collect do |a| doc = Nokogiri::HTML(a.description.to_s) alt_text = doc.text.empty? ? 'gallery image' : doc.text { "album-name" => a.name, "album-description" => a.description, "alt_title" => alt_text, "link_to_show" => OrbitHelper.url_to_show(a.to_param), "thumb-src" => a.cover_path || "/assets/gallery/default.jpg" } end { "albums" => galleries, "extras" => {"widget-title"=>"Gallery"}, "total_pages" => albums.total_pages } end def show params = OrbitHelper.params album = Album.find_by_param(params[:uid]) flag = show_desc? images = album.album_images.asc(:order).collect do |a| alt_text = (a.description.nil? || a.description == "" ? "gallery image" : a.description) { "image-description" => a.description, "alt_title" => alt_text, "link_to_show" => "/xhr/galleries/theater/" + a.id.to_s, "thumb-src" => a.file.thumb.url } end { "images" => images, "data" => {"album-title"=>album.name, "album-description" => (flag ? "

#{album.description}

" : "")} } end def widget tags = OrbitHelper.widget_tags.empty? ? ["all"] : OrbitHelper.widget_tags albums = Album.filter_by_widget_categories.filter_by_tags(tags) params = OrbitHelper.params counts = OrbitHelper.widget_data_count images = [] total_images = 0 if !albums.blank? albums.each do |album| total_images = total_images + album.album_images.count end counts = counts > total_images ? total_images : counts abc = AlbumImage.count counts = counts > abc ? abc : counts while images.count < counts albums.each do |album| img = album.album_images.sample if !images.include?(img) && img != nil images << img end end end end images = images.collect do |a| alt_text = (a.description.nil? || a.description == "" ? "gallery image" : a.description) { "link_to_show" => OrbitHelper.widget_more_url + "/" + a.album.to_param + "#" + a.id.to_s, "alt_title" => alt_text, "src" => a.file.url, "thumb-src" => a.file.thumb.url, "thumb-large-src" => a.file.thumb_large.url, "image_description" => a.description, "mobile-src" => a.file.mobile.url, "theater-src" => a.file.theater.url } end { "images" => images, "extras" => {"widget-title"=>"Gallery","more_url" => OrbitHelper.widget_more_url} } end def imgs(album_id) album = Album.find(album_id) tag_names = Array.new images = album.album_images.asc(:order) output = Array.new images.each do |values| alt_text = (values.description.nil? || values.description == "" ? "gallery image" : values.description) output << { _id: values.id.to_s, description: values.description, title: values.title, alt_title: alt_text, url: values.file.url, file: values.file.as_json[:file], gallery_album_id: values.album_id, tags: values.tags} end return output end def theater image = AlbumImage.find(params[:id]) albumid = image.album_id album = Album.find(albumid) images = album.album_images.asc(:order) data = { "album" => album, "image" => image.id.to_s, "images" => imgs(albumid) } render :json => {"data" => data}.to_json end private def show_desc? tags = OrbitHelper.page_tags if tags.blank? tags = [tags].flatten.uniq flag = true tag_temp = Tag.all.select{|value| tags.include? value.id.to_s} tag_temp_length = 0 tag_temp.each do |value| if value.name==I18n.t('gallery.show_desc') flag = true elsif value.name==I18n.t('gallery.not_show_desc') flag = false end end flag end end