diff --git a/app/controllers/admin/personal_plugin_fields_controller.rb b/app/controllers/admin/personal_plugin_fields_controller.rb index 52cd83e..1b5ef35 100644 --- a/app/controllers/admin/personal_plugin_fields_controller.rb +++ b/app/controllers/admin/personal_plugin_fields_controller.rb @@ -11,6 +11,22 @@ class Admin::PersonalPluginFieldsController < OrbitAdminController @member = MemberProfile.find_by(:uid=>params['uid']) rescue nil @personal_plugin_field = PersonalPluginField.new end + def download + zip_path = "tmp/" + FileUtils.mkdir_p(zip_path) if !Dir.exist?(zip_path) + personal_plugin_field = PersonalPluginField.find(params[:personal_plugin_field_id]) rescue nil + if personal_plugin_field + zip_file_path = zip_path + "#{personal_plugin_field.module_name}.zip" + zip_file= ZipFileGenerator.new(zip_path + personal_plugin_field.module_name ,zip_file_path) + begin + zip_file.write + rescue + File.delete(zip_path + "#{personal_plugin_field.module_name}.zip") + zip_file.write + end + send_file(zip_file_path) + end + end def copy @member = MemberProfile.find_by(:uid=>params['uid']) rescue nil attributes = PersonalPluginField.find(params[:personal_plugin_field_id]).attributes rescue {} diff --git a/app/views/admin/personal_plugin_fields/_personal_plugin_fields.html.erb b/app/views/admin/personal_plugin_fields/_personal_plugin_fields.html.erb index 51ac488..a017dc8 100644 --- a/app/views/admin/personal_plugin_fields/_personal_plugin_fields.html.erb +++ b/app/views/admin/personal_plugin_fields/_personal_plugin_fields.html.erb @@ -6,6 +6,7 @@ <%= link_to thead_field('fields_display_setting') ,admin_personal_plugin_field_fields_setting_path(personal_plugin_field.id),:class=> "btn btn-primary" %> <%= link_to thead_field(:copy) ,admin_personal_plugin_field_copy_path(personal_plugin_field.id),:class=> "btn btn-primary" %> + <%= link_to thead_field(:download) ,admin_personal_plugin_field_download_path(personal_plugin_field.id),:class=> "btn btn-primary" %> <%= t(:delete_) %> diff --git a/config/locales/en.yml b/config/locales/en.yml index b0e85b4..8c00dd2 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -4,6 +4,7 @@ en: restful_actions: fields_setting: Fields Setting personal_plugin_generator: + download: Download author_translation_name: Author translation name personal_plugin_generator: Personal Plugin Generate personal_plugin_name: Personal Plugin Name Translation diff --git a/config/locales/zh_tw.yml b/config/locales/zh_tw.yml index 15c99bc..04df5f9 100644 --- a/config/locales/zh_tw.yml +++ b/config/locales/zh_tw.yml @@ -4,6 +4,7 @@ zh_tw: restful_actions: fields_setting: 欄位設定 personal_plugin_generator: + download: 下載 author_translation_name: 著作人翻譯名稱 personal_plugin_generator: 個人外掛生成 personal_plugin_name: 個人外掛翻譯名稱 diff --git a/config/routes.rb b/config/routes.rb index 0799707..2a2daab 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -8,6 +8,7 @@ Rails.application.routes.draw do patch 'update_fields_setting' , to: 'personal_plugin_fields#update_fields_setting' get 'generate_plugin' , to: 'personal_plugin_fields#generate_plugin' get 'copy' , to: 'personal_plugin_fields#copy' + get 'download' , to: 'personal_plugin_fields#download' end resource :personal_plugin_field do post 'check_plugin_exist' ,to: 'personal_plugin_fields#check_plugin_exist'