module Admin::JournalPapersHelper def page_for_journal_paper(journal_paper_object) journal_paper_page = nil pages = Page.where(:module=>"journal_paper") journal_paper_page = pages.first if journal_paper_page.nil? request.protocol+(request.host_with_port+journal_paper_page.url+'/'+journal_paper_object.to_param).gsub('//','/') rescue "/" end def get_paper_list user = current_user.nil? ? OrbitHelper.current_user : current_user user_profile = user.member_profile journals = JournalPaper.where(:member_profile_id => user_profile.id) journals = journals.collect do |j| files = j.journal_paper_files.collect do |jpf| { "title" => jpf.title, "description" => jpf.description, "link" => jpf.journal_file.url, "extension" => (jpf.journal_file.url.split(".").last rescue "") } end { "id" => j.id.to_s, "edit_url" => "/#{I18n.locale.to_s}/admin/members/#{user_profile.to_param}/journal_papers/#{j.to_param}/edit", "delete_url" => "/#{I18n.locale.to_s}/admin/journal_papers/#{j.id.to_s}", "paper_title" => j.paper_title, "journal_title" => j.journal_title, "keywords" => j.keywords, "abstract" => j.abstract, "files" => files } end journals end def import_this_journal_paper(row,mp) value = nil jp = JournalPaper.new row.cells.each_with_index do |cell,index| next if index < 2 next if cell.nil? val = cell.value next if val.nil? || val == "" case index when 2 value = {"en" => val} when 3 begin value["zh_tw"] = val rescue value = {"zh_tw" => val} end jp.paper_title_translations = value when 4 value = {"en" => val} when 5 begin value["zh_tw"] = val rescue value = {"zh_tw" => val} end jp.journal_title_translations = value when 6 value = {"en" => val} when 7 begin value["zh_tw"] = val rescue value = {"zh_tw" => val} end jp.authors_translations = value when 8 jp.year = val when 9 jp.language = val when 10 jp.vol_no = val when 11 jp.issue_no = val when 12 jp.total_pages = val when 13 jls = JournalLevel.asc(:created_at).all.to_a ts = val.to_s.split(",") ts.each do |t| jp.journal_level_ids << jls[t.to_i].id if t.to_s.is_i? && t.to_i < jls.count end when 14 jpts = JournalPaperType.asc(:created_at).all.to_a jp.journal_paper_type = jpts[val.to_i] if val.to_s.is_i? && val.to_i < jpts.count when 15 jpas = JournalPaperAuthorType.asc(:created_at).all.to_a ts = val.to_s.split(",") ts.each do |t| jp.journal_paper_author_type_ids << jpas[t.to_i].id if t.to_s.is_i? && t.to_i < jpas.count end when 16 jp.number_of_authors = val when 17 jp.isbn = val when 18 jp.publication_date = val when 19 jp.url = val when 20 jp.keywords = val when 21 jp.abstract = val when 22 jp.note = val when 23 jp.associated_project_translations = {"en" => val, "zh_tw" => val} end end jp.member_profile = mp jp.save end end