Method: Anoubis::Data::Actions#export
- Defined in:
- app/controllers/anoubis/data/actions.rb
#export ⇒ Object
Export data from database
878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 |
# File 'app/controllers/anoubis/data/actions.rb', line 878 def export self.etc.data = Anoubis::Etc::Data.new self.set_parent_model 'export' self.output = Anoubis::Output::Data.new if self.etc.tab.export self.output.count = self.get_table_data_count count = (self.output.count / 40).to_i + 1 self.setup_fields self.exports = Anoubis::Export.new format: self.export_format, fields: self.get_fields_properties case self.exports.format when 'xls' headers['Content-Disposition'] = 'attachment; filename="export.xlsx" filename*="export.xlsx"' end self.etc.data.limit = 40 self.etc.data.offset = 0 self.output.data = self.get_table_data self.after_get_table_data self.before_output self.exports.add self.output.data if count > 1 for i in 2..count self.etc.data.offset = (i-1)*40 self.output.data = self.get_table_data self.after_get_table_data self.before_output self.exports.add self.output.data end end respond_to do |format| case self.exports.format when 'xls' format.xlsx { send_data self.render_xls_file, type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' } end end else respond_to do |format| format.any { render json: {result: -1}, status: :unprocessable_entity } end end end |