180 lines
5.9 KiB
Ruby
180 lines
5.9 KiB
Ruby
class ExperimentsController < ApplicationController
|
|
def index
|
|
params = OrbitHelper.params
|
|
page = Page.where(:page_id => params[:page_id]).first rescue nil
|
|
member_page = Page.where(:module => "member").first rescue nil
|
|
subjects = Subject.can_display.order_by(:order_position => "asc").filter_by_categories
|
|
f = subjects.collect do |subject|
|
|
statuses = subject.statuses_with_classname.collect do |status|
|
|
{
|
|
"status" => status["name"],
|
|
"status-class" => "status-#{status['classname']}"
|
|
}
|
|
end
|
|
members = subject.email_members.collect do |member|
|
|
url = !member_page.nil? ? "/" + I18n.locale.to_s + member_page.url + "/" + member.to_param : "#"
|
|
{
|
|
"name" => member.name,
|
|
"id_to_show" => url
|
|
}
|
|
end
|
|
co_professors = subject.co_professors.collect do |member|
|
|
url = !member_page.nil? ? "/" + I18n.locale.to_s + member_page.url + "/" + member.to_param : "#"
|
|
{
|
|
"name" => member.name,
|
|
"id_to_show" => url
|
|
}
|
|
end
|
|
{
|
|
"link_to_show" => OrbitHelper.url_to_show(subject.to_param),
|
|
"subject" => subject.title,
|
|
"img_src" => subject.image.thumb.url || "/assets/experiment/experiment-default.gif",
|
|
"category" => subject.category.title,
|
|
"direction" => subject.direction,
|
|
"statuses" => statuses,
|
|
"members" => members,
|
|
"co_professors" => co_professors
|
|
}
|
|
end
|
|
{
|
|
"subjects" => f,
|
|
"extras" => {
|
|
"widget-title"=>"Experiment",
|
|
"th_image" => t('image'),
|
|
"th_category" => t('category'),
|
|
"th_subject" => t('experiment.subject'),
|
|
"th_direction" => t('experiment.direction'),
|
|
"th_professor1" => t('experiment.professor1'),
|
|
"th_professor2" => t('experiment.professor2')
|
|
},
|
|
"total_pages" => subjects.total_pages
|
|
}
|
|
end
|
|
|
|
def show
|
|
params = OrbitHelper.params
|
|
subject = Subject.find_by(:uid => params[:uid])
|
|
member_page = Page.where(:module => "member").first rescue nil
|
|
|
|
url_to_edit = OrbitHelper.user_can_edit?(subject) ? "/admin/experiments/#{subject.id.to_s}/edit" : ""
|
|
|
|
return {} if (subject.category.disable rescue false)
|
|
statuses = subject.statuses_with_classname.collect do |status|
|
|
{
|
|
"status" => status["name"],
|
|
"status-class" => "status-#{status['classname']}"
|
|
}
|
|
end
|
|
|
|
subject_links = subject.subject_links.collect do |f|
|
|
{
|
|
"link_url" => f.url,
|
|
"link_title" => (f.title.blank? ? f.url : f.title)
|
|
}
|
|
end
|
|
|
|
members = subject.email_members.collect do |member|
|
|
url = !member_page.nil? ? "/" + I18n.locale.to_s + member_page.url + "/" + member.to_param : "#"
|
|
{
|
|
"name" => member.name,
|
|
"id_to_show" => url
|
|
}
|
|
end
|
|
co_professors = subject.co_professors.collect do |member|
|
|
url = !member_page.nil? ? "/" + I18n.locale.to_s + member_page.url + "/" + member.to_param : "#"
|
|
{
|
|
"name" => member.name,
|
|
"id_to_show" => url
|
|
}
|
|
end
|
|
|
|
tags = subject.tags.map{|tag| { "tag" => tag.name } } rescue []
|
|
{
|
|
"data" => {
|
|
"subject" => subject.title,
|
|
"img_src" => subject.image.thumb.url || "/assets/experiment/experiment-default.gif",
|
|
"display" => subject.image.thumb.url.nil? ? "display:none;" : "",
|
|
"category" => subject.category.title,
|
|
"facility" => subject.facility,
|
|
"direction" => subject.direction,
|
|
"student" => subject.student,
|
|
"venue" => subject.venue,
|
|
"tel" => subject.tel,
|
|
"th_image" => t('image'),
|
|
"th_category" => t('category'),
|
|
"th_subject" => t('experiment.subject'),
|
|
"th_direction" => t('experiment.direction'),
|
|
"th_tel" => t('experiment.tel'),
|
|
"th_venue" => t('experiment.venue'),
|
|
"th_facility" => t('experiment.facility'),
|
|
"th_student" => t('experiment.student'),
|
|
"th_link" => t('link'),
|
|
"th_professor1" => t('experiment.professor1'),
|
|
"th_professor2" => t('experiment.professor2'),
|
|
"th_area" => t('experiment.area'),
|
|
"area" => tags.map{|t| t['tag']}.join(' / ')
|
|
},
|
|
"tags" => tags,
|
|
"subject_links" => subject_links,
|
|
"members" => members,
|
|
"co_professors" => co_professors,
|
|
"url_to_edit" => url_to_edit,
|
|
"statuses" => statuses
|
|
}
|
|
|
|
end
|
|
|
|
def widget
|
|
subjects = Subject.filter_by_widget_categories.collect do |subject|
|
|
statuses = subject.statuses_with_classname.collect do |status|
|
|
{
|
|
"status" => status["name"],
|
|
"status-class" => "status-#{status['classname']}"
|
|
}
|
|
end
|
|
|
|
subject_links = subject.subject_links.collect do |f|
|
|
{
|
|
"link_url" => f.url,
|
|
"link_title" => (f.title.blank? ? f.url : f.title)
|
|
}
|
|
end
|
|
|
|
members = subject.email_members.collect do |member|
|
|
{
|
|
"name" => member.name
|
|
}
|
|
end
|
|
co_professors = subject.co_professors.collect do |member|
|
|
url = !member_page.nil? ? "/" + I18n.locale.to_s + member_page.url + "/" + member.to_param : "#"
|
|
{
|
|
"name" => member.name,
|
|
"id_to_show" => url
|
|
}
|
|
end
|
|
{
|
|
"link_to_show" => OrbitHelper.widget_item_url(subject.to_param),
|
|
"subject" => subject.title,
|
|
"img_src" => subject.image.thumb.url || "/assets/experiment/experiment-default.gif",
|
|
"category" => subject.category.title,
|
|
"direction" => subject.direction,
|
|
"statuses" => statuses,
|
|
"postdate" => subject.created_at.strftime('%Y-%m-%d'),
|
|
"members" => members,
|
|
"co_professors" => co_professors
|
|
}
|
|
end
|
|
{
|
|
"subjects" => subjects,
|
|
"extras" => {
|
|
"widget-title"=>"Subjects",
|
|
"more_url"=>OrbitHelper.widget_more_url,
|
|
"th_subject" => t('experiment.subject'),
|
|
"th_direction" => t('experiment.direction'),
|
|
"th_postdate" =>t('date_'),
|
|
"th_category" => t('category')
|
|
}
|
|
}
|
|
end
|
|
|
|
end |