119 lines
3.4 KiB
Ruby
119 lines
3.4 KiB
Ruby
class Desktop::JournalPagesController < ApplicationController
|
|
#before_filter :check_for_cancel, :only => [:create, :update]
|
|
|
|
def index
|
|
@writing_journal = WritingJournal.where(create_user_id: current_user.id)
|
|
@level_types = JournalLevelType.all
|
|
|
|
respond_to do |format|
|
|
format.html { render :layout => false}
|
|
end
|
|
end
|
|
|
|
def show
|
|
end
|
|
|
|
def new
|
|
@writing_journal = WritingJournal.new
|
|
@level_types = JournalLevelType.all
|
|
@author_types = JournalAuthorType.all
|
|
@paper_types= JournalPaperType.all
|
|
@co_author_candidate =
|
|
CoAuthor.where(name_id: current_user.id).map{|c|c.co_author}
|
|
@journal_candidate =
|
|
WritingJournal.where(create_user_id: current_user.id).map{|j|j.journal_title}.uniq
|
|
|
|
respond_to do |format|
|
|
format.html { render :layout => false}
|
|
end
|
|
|
|
end
|
|
|
|
def edit
|
|
@writing_journal = WritingJournal.find(params[:id])
|
|
@level_types = JournalLevelType.all
|
|
@author_types = JournalAuthorType.all
|
|
@paper_types= JournalPaperType.all
|
|
respond_to do |format|
|
|
format.html { render :layout => false}
|
|
end
|
|
end
|
|
|
|
def create
|
|
params[:writing_journal][:create_user_id] = current_user.id
|
|
@writing_journal = WritingJournal.new(params[:writing_journal])
|
|
|
|
if @writing_journal.save
|
|
render json: {success: true, msg: t('create.success.paper')}.to_json
|
|
else
|
|
error_msg = @writing_journal.errors.full_messages.join("<br />")
|
|
render json: {success: false, msg: error_msg}.to_json
|
|
end
|
|
end
|
|
|
|
def update
|
|
params[:writing_journal][:update_user_id] = current_user.id
|
|
@writing_journal= WritingJournal.find(params[:id])
|
|
|
|
if @writing_journal.update_attributes(params[:writing_journal])
|
|
render json: {success: true, msg: t('update.success.paper')}.to_json
|
|
else
|
|
error_msg = @writing_journal.errors.full_messages.join("<br />")
|
|
render json: {success: false, msg: error_msg}.to_json
|
|
end
|
|
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
|
|
|
|
def destroy
|
|
@writing_journal = WritingJournal.find(params[:id])
|
|
@writing_journal.destroy
|
|
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_desktop_journal_page_path(publication),
|
|
url_delete: 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
|
|
|
|
private
|
|
|
|
def check_for_cancel
|
|
if params[:commit] == "Cancel"
|
|
end
|
|
end
|
|
end
|