From 916ca6d9ce9874c99fc3a05b3274393f7953988d Mon Sep 17 00:00:00 2001 From: rodley82 Date: Tue, 24 Feb 2026 15:38:07 +1300 Subject: [PATCH] better admin with an export tab --- app/admin/users_admin.rb | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/app/admin/users_admin.rb b/app/admin/users_admin.rb index 3b546b9..3b21ee0 100644 --- a/app/admin/users_admin.rb +++ b/app/admin/users_admin.rb @@ -9,6 +9,14 @@ Trestle.resource(:users) do text_area :objective end + tab :export, label: "Export Resume" do + safe_join([ + link_to("Export as PDF", generate_users_admin_path(item), class: "btn btn-primary has-icon", target: "_blank"), + link_to("Export as TeX", generate_cls_users_admin_path(item), class: "btn btn-secondary has-icon", target: "_blank"), + link_to("Export as JSON", generate_json_users_admin_path(item), class: "btn btn-secondary has-icon", target: "_blank") + ], " ") + end + tab :work_experiences, badge: (item.persisted? ? item.work_experiences.size : 0) do concat content_tag(:p, "User: #{item.to_s}") if item.persisted? @@ -106,9 +114,6 @@ Trestle.resource(:users) do actions do |toolbar, instance, admin| toolbar.edit if admin && admin.actions.include?(:edit) toolbar.delete if admin && admin.actions.include?(:destroy) - toolbar.link 'CV', instance, action: :generate, method: :get, style: :primary, icon: "fa fa-file-pdf", target: "_blank" - toolbar.link 'CLS', instance, action: :generate_cls, method: :get, style: :secondary, icon: "fa", target: "_blank" - toolbar.link 'JSON', instance, action: :generate_json, method: :get, style: :secondary, icon: "fa", target: "_blank" toolbar.link 'Clone', instance, action: :clone, method: :post, style: :secondary, icon: "fa fa-copy" end end @@ -135,11 +140,8 @@ Trestle.resource(:users) do end def generate_json - generate_json_resume - end - - def generate_json_resume @user = admin.find_instance(params) + response.headers["Content-Disposition"] = "attachment; filename=resume.json" render template: "users/show", formats: [:json], layout: false end