50 lines
1.2 KiB
Ruby
50 lines
1.2 KiB
Ruby
|
class ArchivesController < ApplicationController
|
||
|
def index
|
||
|
categories = OrbitHelper.page_categories
|
||
|
@categories = []
|
||
|
if categories.first == "all"
|
||
|
module_app = OrbitHelper.this_module_app
|
||
|
# debugger
|
||
|
@categories = module_app.categories.collect do |cat|
|
||
|
{
|
||
|
"title" => cat.title,
|
||
|
"id" => cat.id.to_s
|
||
|
}
|
||
|
end
|
||
|
else
|
||
|
categories.each do |cat|
|
||
|
c = Category.find(cat)
|
||
|
@categories << {"title" => c.title, "id" => c.id.to_s}
|
||
|
end
|
||
|
end
|
||
|
cats = @categories.collect do |cat|
|
||
|
archives = ArchiveFile.where(:category_id => cat["id"]).collect do |archive|
|
||
|
statuses = archive.statuses.collect do |status|
|
||
|
{
|
||
|
"archive-status" => status
|
||
|
}
|
||
|
end
|
||
|
files = archive.archive_file_multiples.collect do |file|
|
||
|
{
|
||
|
"file-name" => file.file_title,
|
||
|
"file-type" => file.file.file.extension.downcase,
|
||
|
"file-url" => file.file.url
|
||
|
}
|
||
|
end
|
||
|
{
|
||
|
"archive-title" => archive.title,
|
||
|
"status" => statuses,
|
||
|
"files" => files
|
||
|
}
|
||
|
end
|
||
|
{
|
||
|
"category-title" => cat["title"],
|
||
|
"archives" => archives
|
||
|
}
|
||
|
end
|
||
|
{
|
||
|
"categories" => cats,
|
||
|
"extras" => {"widget-title" => "Archives"}
|
||
|
}
|
||
|
end
|
||
|
end
|