Update frontend
This commit is contained in:
parent
e9e29da1fc
commit
b763b047eb
|
@ -1,53 +1,50 @@
|
|||
class JournalPapersController < ApplicationController
|
||||
def index
|
||||
journal_papers = JournalPaper.where(:is_hidden=>false).order_by(:year=>'desc').page(OrbitHelper.params[:page_no]).per(OrbitHelper.page_data_count)
|
||||
journal_paper_list = journal_papers.collect do |journal_paper|
|
||||
{
|
||||
journal_papers = JournalPaper.where(:is_hidden=>false).order_by(:year=>'desc').page(OrbitHelper.params[:page_no]).per(OrbitHelper.page_data_count)
|
||||
journal_paper_list = journal_papers.collect do |journal_paper|
|
||||
{
|
||||
"year" => journal_paper.year,
|
||||
"paper_title" => journal_paper.paper_title,
|
||||
"author" => journal_paper.authors,
|
||||
"link_to_show" => OrbitHelper.url_to_show(journal_paper.to_param)
|
||||
}
|
||||
end
|
||||
{
|
||||
"journal_papers" => journal_paper_list,
|
||||
"extras" => {
|
||||
"paper_title" => journal_paper.create_link,
|
||||
"author" => journal_paper.authors,
|
||||
"link_to_show" => OrbitHelper.url_to_show(journal_paper.to_param)
|
||||
}
|
||||
end
|
||||
{
|
||||
"journal_papers" => journal_paper_list,
|
||||
"extras" => {
|
||||
"widget-title" => t("module_name.journal_paper"),
|
||||
"th_year" => t('personal_plugins.year'),
|
||||
"th_title" => t("personal_conference.paper_title"),
|
||||
"th_author" => t('personal_plugins.author')
|
||||
},
|
||||
"total_pages" => journal_papers.total_pages
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
def show
|
||||
params = OrbitHelper.params
|
||||
journal_paper = JournalPaper.find_by(uid: params[:uid])
|
||||
field_to_show = ["year", "language", "vol_no", "issue_no", "form_to_start", "form_to_end", "total_pages", "isbn", "publication_date", "url", "note", "journal_title", "paper_title", "updated_at", "created_at", "uid", "journal_level_ids", "journal_paper_author_type_ids", "member_profile_id"]
|
||||
plugin = JournalPaper.find_by(uid: params[:uid])
|
||||
fields_to_show = [
|
||||
"paper_title",
|
||||
"journal_title",
|
||||
"level_type",
|
||||
"paper_type",
|
||||
"authors",
|
||||
"author_type",
|
||||
"year",
|
||||
"publication_date",
|
||||
"language",
|
||||
"vol_no",
|
||||
"issue_no",
|
||||
"form_to_start",
|
||||
"form_to_end",
|
||||
"total_pages",
|
||||
"isbn",
|
||||
"url",
|
||||
"note",
|
||||
"file"
|
||||
]
|
||||
|
||||
publication_date = journal_paper.publication_date.to_date.strftime("%Y/%m/%d") rescue nil
|
||||
files = journal_paper.journal_paper_files.map{|file| { "file_url" => file.journal_file.url, "file_title" => (file.title.blank? ? File.basename(file.file.path) : file.title) } } rescue []
|
||||
{
|
||||
"journal_paper_files" => files,
|
||||
"data" => {
|
||||
"title" => journal_paper.paper_title,
|
||||
"journal_title" => journal_paper.journal_title,
|
||||
"year" => journal_paper.year,
|
||||
"authors" => journal_paper.authors,
|
||||
"isbn" => journal_paper.isbn,
|
||||
"vol_no" => journal_paper.vol_no,
|
||||
"issue_no" => journal_paper.issue_no,
|
||||
"form_to_start" => journal_paper.form_to_start,
|
||||
"form_to_end" => journal_paper.form_to_end,
|
||||
"language" => journal_paper.language,
|
||||
"total_pages" => journal_paper.total_pages,
|
||||
"keywords" => journal_paper.keywords,
|
||||
"abstract" => journal_paper.abstract,
|
||||
"publication_date" => publication_date,
|
||||
"url" => journal_paper.url,
|
||||
"note" => journal_paper.note
|
||||
}
|
||||
}
|
||||
{"plugin_datas"=>plugin.get_plugin_data(fields_to_show)}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -65,7 +65,7 @@ class JournalPaper
|
|||
def authors
|
||||
authors = []
|
||||
authors << self.member_profile.name if self.member_profile_id.present?
|
||||
authors << (!self.journal_paper_authors.blank? ? "#{self.journal_paper_authors.collect{|j| j.name}.join(', ')}" : nil)
|
||||
authors << self.journal_paper_authors.collect{|j| j.name}.join(', ') unless self.journal_paper_authors.blank?
|
||||
authors.join(', ')
|
||||
end
|
||||
|
||||
|
@ -98,14 +98,47 @@ class JournalPaper
|
|||
end
|
||||
end
|
||||
|
||||
def values_for_view
|
||||
attribute_values = self.attributes.select{|k,v| v if (k.in?(["year","language","isbn","vol_no","issue_no","form_to_start","form_to_end","total_pages","keywords","abstract","publication_date","url","note"]) && v.present?)}
|
||||
localized_fields = {"paper_title" => self.attributes["paper_title"][I18n.locale], "journal_title" => self.attributes["journal_title"][I18n.locale]}
|
||||
authors = {"authors" => self.authors}
|
||||
files = {}
|
||||
files = self.journal_paper_files.collect do |f| {f.title => url_to_file(f.journal_file.url, f.title)} end
|
||||
values = [attribute_values, localized_fields, authors] + files
|
||||
values.inject(&:merge)
|
||||
def get_plugin_data(fields_to_show)
|
||||
plugin_datas = []
|
||||
fields_to_show.each do |field|
|
||||
plugin_data = self.get_plugin_field_data(field)
|
||||
next if plugin_data.blank? or plugin_data['value'].blank?
|
||||
plugin_datas << plugin_data
|
||||
end
|
||||
plugin_datas
|
||||
end
|
||||
|
||||
def get_plugin_field_data(field)
|
||||
case field
|
||||
when "level_type"
|
||||
value = self.journal_levels.collect{|level| level.title}.join(',') rescue ""
|
||||
when "author_type"
|
||||
value = self.journal_paper_author_types.collect{|type| type.title}.join(',') rescue ""
|
||||
when "paper_type"
|
||||
value = self.journal_paper_type.title rescue ""
|
||||
when "publication_date"
|
||||
value = self.publication_date.to_date.strftime("%Y-%m-%d") rescue ""
|
||||
when "language"
|
||||
value = I18n.t(self.language) rescue ""
|
||||
when "file"
|
||||
files = []
|
||||
self.journal_paper_files.each do |file|
|
||||
url = file.journal_file.url
|
||||
title = (file.title.blank? ? File.basename(file.journal_file.path) : file.title)
|
||||
files << "<li><a href='#{url}'' target='_blank'>#{title}</li>"
|
||||
end
|
||||
value = files.join("")
|
||||
else
|
||||
value = self.send(field) rescue ""
|
||||
end
|
||||
|
||||
{
|
||||
"key"=>field,
|
||||
"title_class"=>"journal-#{field.gsub('_','-')}-field",
|
||||
"value_class"=>"journal-#{field.gsub('_','-')}-value",
|
||||
"title"=>I18n.t('personal_journal.'+field),
|
||||
"value"=>value
|
||||
}
|
||||
end
|
||||
|
||||
protected
|
||||
|
|
|
@ -13,8 +13,8 @@ zh_tw:
|
|||
vol_no : "卷數"
|
||||
issue_no : "期數"
|
||||
form_to: "From To"
|
||||
form_to_start : "起"
|
||||
form_to_end : "訖"
|
||||
form_to_start : "起頁"
|
||||
form_to_end : "迄頁"
|
||||
total_pages : "總頁數"
|
||||
keywords : "關鍵字"
|
||||
abstract : "摘要"
|
||||
|
@ -23,6 +23,7 @@ zh_tw:
|
|||
note : "記事"
|
||||
level_type : "期刊等級"
|
||||
author_type : "作者類別"
|
||||
paper_type: "論文類型"
|
||||
from : "起"
|
||||
to : "訖"
|
||||
file : "檔案"
|
||||
|
|
Loading…
Reference in New Issue