Orbit/app/controllers/desktop/journal_pages_controller.rb

120 lines
3.5 KiB
Ruby
Raw Normal View History

class Desktop::JournalPagesController < ApplicationController
#before_filter :check_for_cancel, :only => [:create, :update]
2012-11-19 04:07:24 +00:00
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
2012-11-19 04:07:24 +00:00
def show
end
def new
@writing_journal = WritingJournal.new
@level_types = JournalLevelType.all
@author_types = JournalAuthorType.all
@paper_types= JournalPaperType.all
2012-11-26 06:44:35 +00:00
@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
2012-11-20 09:20:05 +00:00
end
def edit
2012-11-26 06:44:35 +00:00
@writing_journal = WritingJournal.find(params[:id])
2012-11-19 04:07:24 +00:00
@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: "Paper successfully saved!"}.to_json
else
error_msg = @writing_journal.errors.full_messages.join("<br />")
render json: {success: false, msg: error_msg}.to_json
end
end
2012-11-19 04:07:24 +00:00
def update
params[:writing_journal][:update_user_id] = current_user.id
@writing_journal= WritingJournal.find(params[:id])
2012-11-19 04:07:24 +00:00
respond_to do |format|
if @writing_journal.update_attributes(params[:writing_journal])
render json: {success: true, msg: "Paper successfully saved!"}.to_json
2012-11-19 04:07:24 +00:00
else
error_msg = @writing_journal.errors.full_messages.join("<br />")
render json: {success: false, msg: error_msg}.to_json
2012-11-19 04:07:24 +00:00
end
end
end
2012-11-19 04:07:24 +00:00
def check_file_type file
if not file.nil?
file_type = MIME::Types.type_for(file).first.to_s.split("/")[1]
2012-11-20 09:20:05 +00:00
file_type = "/assets/ft-icons/#{file_type}/#{file_type}-48_32.png"
2012-11-19 04:07:24 +00:00
else
file_type = ""
end
end
2012-11-19 04:07:24 +00:00
2012-11-23 04:28:36 +00:00
def destroy
@writing_journal = WritingJournal.find(params[:id])
@writing_journal.destroy
2012-11-26 01:37:24 +00:00
render :json => {success: true, msg: "Paper deleted successfully!"}
2012-11-23 04:28:36 +00:00
end
2012-11-19 04:07:24 +00:00
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),
2012-11-22 07:21:43 +00:00
url_delete: desktop_journal_page_path(publication),
2012-11-19 04:07:24 +00:00
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