order by category and tags for index and widget fixed by alex
This commit is contained in:
parent
23022850eb
commit
07a0b33a62
|
@ -1,50 +1,80 @@
|
|||
class ArchivesController < ApplicationController
|
||||
def index
|
||||
def index
|
||||
categories = OrbitHelper.page_categories
|
||||
@categories = []
|
||||
if categories.first == "all"
|
||||
tags = OrbitHelper.page_tags
|
||||
@tags = []
|
||||
|
||||
if tags.first == "all"
|
||||
module_app = OrbitHelper.this_module_app
|
||||
@categories = module_app.categories
|
||||
@tags = module_app.tags
|
||||
else
|
||||
categories.each do |cat|
|
||||
@categories << Category.find(cat)
|
||||
tags.each do |tag|
|
||||
@tags << Tag.find(tag)
|
||||
end
|
||||
end
|
||||
cats = @categories.collect do |cat|
|
||||
url_to_edit = OrbitHelper.user_has_cateogry?(cat) ? "/admin/archive_files?filters[category][]=#{cat.id.to_s}" : ""
|
||||
archives = ArchiveFile.where(:category_id => cat.id).order_by(:sort_number=>'asc').collect do |archive|
|
||||
statuses = archive.statuses_with_classname.collect do |status|
|
||||
{
|
||||
"status" => status["name"] || "",
|
||||
"status-class" => "status-#{status['classname']}"
|
||||
}
|
||||
end
|
||||
files = []
|
||||
archive.archive_file_multiples.order_by(:sort_number=>'asc').each do |file|
|
||||
if file.choose_lang.include?(I18n.locale.to_s)
|
||||
title = (file.file_title.blank? ? File.basename(file.file.path) : file.file_title) rescue ""
|
||||
extension = file.file.file.extension.downcase rescue ""
|
||||
# url = file.file.url rescue ""
|
||||
files << {
|
||||
"file-name" => title,
|
||||
"file-type" => extension,
|
||||
"file-url" => "/xhr/archive/download?file=#{file.id}"
|
||||
}
|
||||
end
|
||||
|
||||
files_by_cateogry = ArchiveFile.filter_by_categories.group_by(&:category)
|
||||
cats = files_by_cateogry.keys.collect do |cat|
|
||||
|
||||
files_by_category_tag = files_by_cateogry[cat].group_by(&:tags)
|
||||
|
||||
files_by_category_tag.keys.each do |f|
|
||||
if(!@tags.include?(f[0]))
|
||||
files_by_category_tag.delete(f)
|
||||
end
|
||||
end
|
||||
|
||||
ts = files_by_category_tag.keys.collect do |t|
|
||||
url_to_edit = OrbitHelper.user_has_cateogry?(cat) ? "/admin/archive_files?filters[category][]=#{cat.id.to_s}" : ""
|
||||
archives = files_by_category_tag[t].collect do |archive|
|
||||
|
||||
statuses = archive.statuses_with_classname.collect do |status|
|
||||
{
|
||||
"status" => status["name"] || "",
|
||||
"status-class" => "status-#{status['classname']}"
|
||||
}
|
||||
end
|
||||
files = []
|
||||
archive.archive_file_multiples.order_by(:sort_number=>'asc').each do |file|
|
||||
if file.choose_lang.include?(I18n.locale.to_s)
|
||||
title = (file.file_title.blank? ? File.basename(file.file.path) : file.file_title) rescue ""
|
||||
extension = file.file.file.extension.downcase rescue ""
|
||||
# url = file.file.url rescue ""
|
||||
files << {
|
||||
"file-name" => title,
|
||||
"file-type" => extension,
|
||||
"file-url" => "/xhr/archive/download?file=#{file.id}"
|
||||
}
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
{
|
||||
"archive-title" => archive.title || "",
|
||||
"statuses" => statuses,
|
||||
"files" => files
|
||||
}
|
||||
end
|
||||
{
|
||||
"archive-title" => archive.title || "",
|
||||
"statuses" => statuses,
|
||||
"files" => files
|
||||
"tag-name" => t[0].name,
|
||||
"archives" => archives,
|
||||
"url_to_edit" => url_to_edit
|
||||
}
|
||||
end
|
||||
{
|
||||
"category-title" => cat.title || "",
|
||||
"archives" => archives ,
|
||||
"url_to_edit" => url_to_edit
|
||||
}
|
||||
if(files_by_category_tag.empty?)
|
||||
{
|
||||
"category-title" => "",
|
||||
"tags" => ts
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
"category-title" => cat.title || "",
|
||||
"tags" => ts
|
||||
|
||||
}
|
||||
end
|
||||
|
||||
end
|
||||
{
|
||||
"categories" => cats
|
||||
|
@ -65,30 +95,47 @@ class ArchivesController < ApplicationController
|
|||
def widget
|
||||
categories = OrbitHelper.widget_categories
|
||||
@categories = []
|
||||
if categories.first == "all"
|
||||
module_app = OrbitHelper.widget_module_app
|
||||
@categories = module_app.categories.collect do |cat|
|
||||
{
|
||||
"title" => cat.title,
|
||||
"id" => cat.id.to_s
|
||||
}
|
||||
end
|
||||
|
||||
tags = OrbitHelper.widget_tags
|
||||
@tags = []
|
||||
|
||||
|
||||
if tags.first == "all"
|
||||
module_app = OrbitHelper.widget_module_app
|
||||
@tags = module_app.tags
|
||||
else
|
||||
categories.each do |cat|
|
||||
c = Category.find(cat)
|
||||
@categories << {"title" => c.title, "id" => c.id.to_s}
|
||||
tags.each do |tag|
|
||||
@tags << Tag.find(tag)
|
||||
end
|
||||
end
|
||||
cats = @categories.collect do |cat|
|
||||
archives = ArchiveFile.can_display.where(:category_id => cat["id"]).collect do |archive|
|
||||
|
||||
files_by_cateogry = ArchiveFile.filter_by_widget_categories.group_by(&:category)
|
||||
|
||||
cats = files_by_cateogry.keys.collect do |cat|
|
||||
files_by_category_tag = files_by_cateogry[cat].group_by(&:tags)
|
||||
|
||||
files_by_category_tag.keys.each do |f|
|
||||
if(!@tags.include?(f[0]))
|
||||
files_by_category_tag.delete(f)
|
||||
end
|
||||
end
|
||||
|
||||
ts = files_by_category_tag.keys.collect do |t|
|
||||
archives = files_by_category_tag[t].collect do |archive|
|
||||
{
|
||||
"archive-title" => archive.title,
|
||||
"archive_url" => OrbitHelper.widget_more_url
|
||||
}
|
||||
end
|
||||
{
|
||||
"archive-title" => archive.title,
|
||||
"archive_url" => OrbitHelper.widget_more_url
|
||||
"tag-name" => t[0].name,
|
||||
"archives" => archives
|
||||
|
||||
}
|
||||
end
|
||||
{
|
||||
"category-title" => cat["title"],
|
||||
"archives" => archives
|
||||
"category-title" => cat.title,
|
||||
"tags" => ts
|
||||
}
|
||||
end
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue