generate journal page by rails side and fixed model name bug
This commit is contained in:
parent
8b0ffe747c
commit
4ac0f19011
|
@ -11,7 +11,7 @@
|
|||
<li class="d_cate"><a callback-method='' href="" class="widget_fn wh3 hh3" id='d_publication' onclick="return false;"><span class="widget_icon"><img src="" alt="Publication" id="publication_icon" width="30" height="30"/></span></a>
|
||||
<ul class="dock_child hh3 thmc4" style="width: 180px;">
|
||||
|
||||
<li class="dock_item"><a callback-method='initializeJournalPapers' href="<%= panel_personal_journal_desktop_journal_p_path %>" class="widget_fn wh3 hh3" id='d_journal_p' custom-load="journal" onclick="return false;"><span class="widget_icon"><img src="" alt="Journal Papers" id="journal_p_icon" width="30" height="30"/></span></a></li>
|
||||
<li class="dock_item"><a callback-method='initializeJournalPapers' href="<%= panel_personal_journal_desktop_journal_window_path %>" class="widget_fn wh3 hh3" id='d_journal_p' custom-load="journal" onclick="return false;"><span class="widget_icon"><img src="" alt="Journal Papers" id="journal_p_icon" width="30" height="30"/></span></a></li>
|
||||
|
||||
<li class="dock_item"><a callback-method='initializeConference' href="<%= panel_personal_conference_desktop_conference_window_path %>" class="widget_fn wh3 hh3" id='d_conference_p' custom-load="conference" onclick="return false;"><span class="widget_icon"><img src="" alt="Conference Papers" id="conference_p_icon" width="30" height="30"/></span></a></li>
|
||||
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
class Panel::PersonalJournal::Desktop::JournalPController < ApplicationController
|
||||
def journal_p
|
||||
render panel_personal_journal_desktop_journal_p_path, :layout => false
|
||||
end
|
||||
end
|
|
@ -1,7 +1,16 @@
|
|||
class Panel::PersonalJournal::Desktop::JournalPagesController < ApplicationController
|
||||
def index
|
||||
@writing_journal = WritingJournal.where(create_user_id: current_user.id)
|
||||
@writing_journals = WritingJournal.where(create_user_id: current_user.id)
|
||||
@level_types = JournalLevelType.all
|
||||
@view_by = params[:view]
|
||||
|
||||
if @view_by.nil?
|
||||
@writing_journals = @writing_journals.asc(:paper_title)
|
||||
else
|
||||
@writing_journals = @writing_journals.asc(@view_by).asc(:paper_title)
|
||||
end
|
||||
|
||||
@level_types = ConferencePaperType.all
|
||||
|
||||
respond_to do |format|
|
||||
format.html { render :layout => false}
|
||||
|
@ -73,37 +82,6 @@ class Panel::PersonalJournal::Desktop::JournalPagesController < ApplicationContr
|
|||
render :json => {success: true, msg: t('delete.success.paper')}
|
||||
end
|
||||
|
||||
def get_journals_json
|
||||
publications = WritingJournal.where(create_user_id: current_user.id)
|
||||
|
||||
sort_publications= Hash.new
|
||||
data = Array.new
|
||||
|
||||
publications.each do |publication|
|
||||
if sort_publications[publication.journal_title].nil?
|
||||
sort_publications[publication.journal_title] = Array.new
|
||||
end
|
||||
sort_publications[publication.journal_title] <<
|
||||
{ title: publication.paper_title,
|
||||
keywords: publication.keywords,
|
||||
abstract: publication.abstract,
|
||||
coauthors: publication.authors,
|
||||
year: publication.year,
|
||||
url_edit: edit_panel_personal_journal_desktop_journal_page_path(publication),
|
||||
url_delete: panel_personal_journal_desktop_journal_page_path(publication),
|
||||
files: publication.writing_journal_files.collect{|file|
|
||||
{title: file.title, url: file.file.url, icon: check_file_type(file.file.url)}
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
sort_publications.each do |journal, papers|
|
||||
data << {title: journal, papers: papers}
|
||||
end
|
||||
|
||||
render json: JSON.pretty_generate(data)
|
||||
end
|
||||
|
||||
def journal_type
|
||||
level_types = JournalLevelType.all
|
||||
all_journal_lists = WritingJournal.where(create_user_id: current_user.id)
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
class Panel::PersonalJournal::Desktop::JournalWindowsController < ApplicationController
|
||||
def journal_window
|
||||
render panel_personal_journal_desktop_journal_window_path, :layout => false
|
||||
end
|
||||
end
|
|
@ -0,0 +1,74 @@
|
|||
module Panel::PersonalJournal::Desktop::JournalPagesHelper
|
||||
def publication_record publication, view
|
||||
content_tag :li,
|
||||
:class => "list_t_item" do
|
||||
marker + \
|
||||
content(publication, view) + \
|
||||
edit_or_delete(publication)
|
||||
end
|
||||
end
|
||||
|
||||
def marker
|
||||
content_tag :div,
|
||||
:class => "list_item_action"
|
||||
content_tag(:a, "", :class => "icon-check-empty") + \
|
||||
content_tag(:a, "", :class => "icon-star-empty")
|
||||
end
|
||||
|
||||
def content publication, view
|
||||
case view
|
||||
when "journal_title"
|
||||
des = content_tag(:div, publication.journal_title,
|
||||
:class => "list_t_des")
|
||||
when "keywords"
|
||||
des = content_tag(:div, publication.keywords,
|
||||
:class => "list_t_des")
|
||||
when "abstract"
|
||||
des = content_tag(:div, publication.abstract,
|
||||
:class => "list_t_des")
|
||||
when "file"
|
||||
des = content_tag(:div, link_publication_file(publication),
|
||||
:class => "list_t_des")
|
||||
else
|
||||
end
|
||||
|
||||
content_tag(:div, publication.paper_title,
|
||||
:class => "list_t_title") + des
|
||||
|
||||
end
|
||||
|
||||
def edit_or_delete publication
|
||||
content_tag :div,
|
||||
:class => "list_item_function" do
|
||||
content_tag(:a, t("edit"),
|
||||
:class => "journal_paper_edit admbg2 admtxt",
|
||||
:href => edit_panel_personal_journal_desktop_journal_page_path(publication),
|
||||
"ajax-remote" => "get") + \
|
||||
content_tag(:a, t("delete"),
|
||||
"ajax-remote" => "delete",
|
||||
"confirm-message" => t("sure?"),
|
||||
"callback-method" => "paperDelete",
|
||||
:class => "journal_paper_delete admbg2 admtxt",
|
||||
:href => panel_personal_journal_desktop_journal_page_path(publication))
|
||||
end
|
||||
end
|
||||
|
||||
def link_publication_file publication
|
||||
publication.writing_journal_files.map{|file|
|
||||
link_to(image_tag(check_file_type(file.file.url)) + \
|
||||
content_tag(:span, file.title, :class => "filetitle"),
|
||||
file.file.url,
|
||||
:class => "file",
|
||||
"target" => "_blank")
|
||||
}.inject(:+)
|
||||
end
|
||||
|
||||
def check_file_type file
|
||||
if not file.nil?
|
||||
file_type = MIME::Types.type_for(file).first.to_s.split("/")[1]
|
||||
file_type = "/assets/ft-icons/#{file_type}/#{file_type}-48_32.png"
|
||||
else
|
||||
file_type = ""
|
||||
end
|
||||
end
|
||||
end
|
|
@ -47,11 +47,11 @@ class WritingJournal
|
|||
current_user = update_user_id
|
||||
end
|
||||
|
||||
authors_db = CoAuthor.where(:name_id => current_user).map(&:co_author)
|
||||
authors_db = JournalCoAuthor.where(:name_id => current_user).map(&:co_author)
|
||||
authors_list.delete(User.find(current_user).name)
|
||||
authors_list = authors_list.delete_if{|author| authors_db.include?author}
|
||||
authors_list.each do |author|
|
||||
CoAuthor.new(:co_author => author, :name_id => current_user).save
|
||||
JournalCoAuthor.new(:co_author => author, :name_id => current_user).save
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -143,7 +143,7 @@
|
|||
</li>
|
||||
|
||||
<li class="s_grid_row">
|
||||
<%= f.text_field :tags, size: "20", placeholder: t("personal_journal.tags"), class: "s_grid_6 s_grid"%>
|
||||
<li class="s_grid_row"><input class="s_grid s_grid_6" type="text" placeholder=<%= t("personal_journal.tags") %>><span class="icon-plus input_append"></li>
|
||||
<span class="icon-plus input_append"></span>
|
||||
</li>
|
||||
<li class="s_grid_row">
|
||||
|
|
|
@ -41,11 +41,11 @@
|
|||
<div class="sdm_t hh2">View</div>
|
||||
<div class="admbg sdm_o">
|
||||
<ul id="journal_view_selection">
|
||||
<li><a class="hp hh2 admtxt" href="journal">Journal</a></li>
|
||||
<li><a class="hp hh2 admtxt" href="title">Title</a></li>
|
||||
<li><a class="hp hh2 admtxt" href="file">File</a></li>
|
||||
<li><a class="hp hh2 admtxt" href="keywords">Keywords</a></li>
|
||||
<li><a class="hp hh2 admtxt" href="abstract">Abstract</a></li>
|
||||
<li><%= link_to "Journal", panel_personal_journal_desktop_journal_pages_path + "?view=journal_title", :class => "hp hh2 admtxt", "ajax-remote" => "get" %></li>
|
||||
<li><%= link_to "Title", panel_personal_journal_desktop_journal_pages_path + "?view=paper_title", :class => "hp hh2 admtxt", "ajax-remote" => "get" %></li>
|
||||
<li><%= link_to "File", panel_personal_journal_desktop_journal_pages_path + "?view=file", :class => "hp hh2 admtxt", "ajax-remote" => "get" %></li>
|
||||
<li><%= link_to "Keywords", panel_personal_journal_desktop_journal_pages_path + "?view=keywords", :class => "hp hh2 admtxt", "ajax-remote" => "get" %></li>
|
||||
<li><%= link_to "Abstract", panel_personal_journal_desktop_journal_pages_path + "?view=abstract", :class => "hp hh2 admtxt", "ajax-remote" => "get" %></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -81,7 +81,9 @@
|
|||
<div class="scrollbar sb_h vp"><div class="track"><div class="thumb thmc2"><div class="end"></div></div></div></div>
|
||||
<div class="viewport">
|
||||
<div class="overview">
|
||||
|
||||
<% @writing_journals.each do |w| %>
|
||||
<%= publication_record w, @view_by%>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -2,7 +2,7 @@ Rails.application.routes.draw do
|
|||
namespace :panel do
|
||||
namespace :personal_journal do
|
||||
namespace :desktop do
|
||||
match 'journal_p'=>'journal_p#journal_p'
|
||||
match 'journal_window'=>'journal_windows#journal_window'
|
||||
match 'get_journals_json' => 'journal_pages#get_journals_json'
|
||||
match 'journal_type' => 'journal_pages#journal_type'
|
||||
resources :journal_pages, except: :show
|
||||
|
|
Reference in New Issue