Update galleries_controller.rb

merge change with eric's
This commit is contained in:
chiu 2019-11-05 21:31:11 +08:00
parent bf0f561c2e
commit 3925c22408
1 changed files with 54 additions and 61 deletions

View File

@ -17,53 +17,49 @@ class GalleriesController < ApplicationController
tags << tag0 tags << tag0
tags << tag1 tags << tag1
end end
def index def index
albums = Album.filter_by_categories.filter_by_tags.asc(:order) albums = Album.filter_by_categories.filter_by_tags.asc(:order)
galleries = albums.collect do |a| galleries = albums.collect do |a|
doc = Nokogiri::HTML(a.description.to_s) doc = Nokogiri::HTML(a.description.to_s)
alt_text = doc.text.empty? ? 'gallery image' : doc.text alt_text = doc.text.empty? ? 'gallery image' : doc.text
{ {
"album-name" => a.name, "album-name" => a.name,
"album-description" => a.description, "album-description" => a.description,
"alt_title" => alt_text, "alt_title" => alt_text,
"link_to_show" => OrbitHelper.url_to_show(a.to_param), "link_to_show" => OrbitHelper.url_to_show(a.to_param),
"thumb-src" => a.cover_path || "/assets/gallery/default.jpg" "thumb-src" => a.cover_path || "/assets/gallery/default.jpg"
} }
end end
{ {
"albums" => galleries, "albums" => galleries,
"extras" => {"widget-title"=>"Gallery"}, "extras" => {"widget-title"=>"Gallery"},
"total_pages" => albums.total_pages "total_pages" => albums.total_pages
} }
end end
def show def show
params = OrbitHelper.params params = OrbitHelper.params
album = Album.find_by_param(params[:uid]) album = Album.find_by_param(params[:uid])
flag = show_desc? flag = show_desc?
images = album.album_images.asc(:order).collect do |a| images = album.album_images.asc(:order).collect do |a|
alt_text = (a.description.nil? || a.description == "" ? "gallery image" : a.description) alt_text = (a.description.nil? || a.description == "" ? "gallery image" : a.description)
{ {
"image-description" => a.description, "image-description" => a.description,
"alt_title" => alt_text, "alt_title" => alt_text,
"link_to_show" => "/xhr/galleries/theater/" + a.id.to_s, "link_to_show" => "/xhr/galleries/theater/" + a.id.to_s,
"thumb-src" => a.file.thumb.url "thumb-src" => a.file.thumb.url
} }
end end
{ {
"images" => images, "images" => images,
"data" => {"album-title"=>album.name, "data" => {"album-title"=>album.name,
"album-description" => (flag ? "<p><span>#{album.description}</span></p>" : "")} "album-description" => (flag ? "<p><span>#{album.description}</span></p>" : "")}
} }
end end
def widget def widget
tags = OrbitHelper.widget_tags.empty? ? ["all"] : OrbitHelper.widget_tags tags = OrbitHelper.widget_tags.empty? ? ["all"] : OrbitHelper.widget_tags
albums = Album.filter_by_widget_categories.filter_by_tags(tags) albums = Album.filter_by_widget_categories.filter_by_tags(tags)
params = OrbitHelper.params params = OrbitHelper.params
counts = OrbitHelper.widget_data_count counts = OrbitHelper.widget_data_count
images = [] images = []
total_images = 0 total_images = 0
if !albums.blank? if !albums.blank?
@ -76,7 +72,7 @@ class GalleriesController < ApplicationController
while images.count < counts while images.count < counts
albums.each do |album| albums.each do |album|
img = album.album_images.sample img = album.album_images.sample
if !images.include?(img) && img != nil if !images.include?(img) && img != nil
images << img images << img
end end
end end
@ -84,7 +80,6 @@ class GalleriesController < ApplicationController
end end
images = images.collect do |a| images = images.collect do |a|
alt_text = (a.description.nil? || a.description == "" ? "gallery image" : a.description) 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, "link_to_show" => OrbitHelper.widget_more_url + "/" + a.album.to_param + "#" + a.id.to_s,
"alt_title" => alt_text, "alt_title" => alt_text,
@ -93,61 +88,59 @@ class GalleriesController < ApplicationController
"thumb-large-src" => a.file.thumb_large.url, "thumb-large-src" => a.file.thumb_large.url,
"image_description" => a.description, "image_description" => a.description,
"mobile-src" => a.file.mobile.url, "mobile-src" => a.file.mobile.url,
"theater-src" => a.file.theater.url "theater-src" => a.file.theater.url,
"album-name" => a.album.name_translations[I18n.locale]
} }
end end
{ {
"images" => images, "images" => images,
"extras" => {"widget-title"=>"Gallery","more_url" => OrbitHelper.widget_more_url} "extras" => {"widget-title"=>"Gallery","more_url" => OrbitHelper.widget_more_url}
} }
end end
def imgs(album_id) def imgs(album_id)
album = Album.find(album_id) album = Album.find(album_id)
tag_names = Array.new tag_names = Array.new
images = album.album_images.asc(:order) images = album.album_images.asc(:order)
output = Array.new output = Array.new
images.each do |values| images.each do |values|
alt_text = (values.description.nil? || values.description == "" ? "gallery image" : values.description) alt_text = (values.description.nil? || values.description == "" ? "gallery image" : values.description)
output << { _id: values.id.to_s, output << { _id: values.id.to_s,
description: values.description, description: values.description,
title: values.title, title: values.title,
alt_title: alt_text, alt_title: alt_text,
url: values.file.url, url: values.file.url,
file: values.file.as_json[:file], file: values.file.as_json[:file],
gallery_album_id: values.album_id, gallery_album_id: values.album_id,
tags: values.tags} tags: values.tags}
end end
return output return output
end end
def theater def theater
image = AlbumImage.find(params[:id]) image = AlbumImage.find(params[:id])
albumid = image.album_id albumid = image.album_id
album = Album.find(albumid) album = Album.find(albumid)
images = album.album_images.asc(:order) images = album.album_images.asc(:order)
data = { data = {
"album" => album, "album" => album,
"image" => image.id.to_s, "image" => image.id.to_s,
"images" => imgs(albumid) "images" => imgs(albumid)
} }
render :json => {"data" => data}.to_json
render :json => {"data" => data}.to_json
end end
private private
def show_desc? def show_desc?
tags = OrbitHelper.page_tags if tags.blank? tags = OrbitHelper.page_tags if tags.blank?
tags = [tags].flatten.uniq 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 flag = true
tag_temp = Tag.all.select{|value| tags.include? value.id.to_s} elsif value.name==I18n.t('gallery.not_show_desc')
tag_temp_length = 0 flag = false
tag_temp.each do |value| end
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
flag
end
end end