You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.4 KiB
42 lines
1.4 KiB
Trestle.resource(:cover_letters) do
|
|
menu do
|
|
item :cover_letters, icon: "fa fa-envelope", priority: 2
|
|
end
|
|
|
|
form do |item|
|
|
concat Trestle::Form::Automatic.new(admin).render(self, item)
|
|
# text_area :objective
|
|
end
|
|
|
|
# Customize the table columns shown on the index view.
|
|
table do
|
|
column :company_name
|
|
column :title
|
|
column :user
|
|
column :created_at, align: :center
|
|
actions do |toolbar, instance, admin|
|
|
toolbar.edit if admin && admin.actions.include?(:edit)
|
|
toolbar.delete if admin && admin.actions.include?(:destroy)
|
|
toolbar.link 'Coverletter', instance, action: :generate_coverletter, method: :get, style: :primary, icon: "fa fa-file-pdf", target: "_blank"
|
|
end
|
|
end
|
|
|
|
controller do
|
|
def generate_coverletter
|
|
cover_letter = admin.find_instance(params)
|
|
ac = ActionController::Base.new()
|
|
tex_content = ac.render_to_string(layout: false, template: 'templates/awesome/coverletter', locals: { "@cover_letter": cover_letter } )
|
|
destination_dir = "#{Rails.root}/app/views/templates/awesome"
|
|
`cd #{destination_dir} && make clean`
|
|
File.open("#{destination_dir}/coverletter.tex", "w") do |f|
|
|
f << tex_content
|
|
end
|
|
`cd #{destination_dir} && make coverletter.pdf`
|
|
render file: "#{destination_dir}/coverletter.pdf", layout: false
|
|
end
|
|
end
|
|
|
|
routes do
|
|
get :generate_coverletter, on: :member
|
|
end
|
|
end
|
|
|