Hi Rails Developers
I want to create addEventListener to button. I have two method like def work_sheet_csv summary = [ "site_name=#{current_project.site.name}", "site_code=#{current_project.site.m_site_config.site_code}", "year=#{current_project.index_code_year}", '%s=%s' % [current_project.week? ? 'week' : 'month', current_project.index_code_suffix], "day_count=#{current_project.days}", "staff_count=#{current_project.t_project_staffs.length}", ]
header = %w( number staff_last_name staff_first_name staff_code year month day shift_name kyuka from_jikoku to_jikoku jitsudo_minutes location_name )
io = StringIO.new
CSV::Writer.generate(io) do |csv| csv << summary << header
cells = TProjectWorkSheetCell.structured_data(current_project.work_sheet.id, current_project)
XProjectShiftXLocation.append_to(current_project.t_project_shifts, current_project.t_project_locations) shifts_hash = current_project.t_project_shifts.inject({}) {|h, r| h[r.id] = r; h }
number = 0
current_project.t_project_staffs.sort.each do |t_project_staff| current_project.days.times do |date_index| date = current_project.date_by_date_index(date_index)
shift = nil shift_name = if cell = cells[date_index][t_project_staff.id] if cell.fixed? shift = shifts_hash[cell.shift_ids.first] shift && shift.display_name elsif cell.only? _('Only-Shift') elsif cell.except? _('Except-Shift') else nil end else nil end
csv << [ number += 1, t_project_staff.last_name, t_project_staff.first_name, t_project_staff.staff_code, date.year, date.month, date.day, shift_name, shift && shift.kyuka ? 1 : 0, shift && shift.formatted_from_jikoku, shift && shift.formatted_to_jikoku, shift && shift.jitsudo_minutes, shift && shift.location && shift.location.name, ] end end end
io.rewind send_data NKF.nkf('-Ws', io.read), :filename => NKF.nkf('-Ws', work_sheet_csv_filename) end
and
def index @plugin_root = get_plugin_root @templates_array = get_templates "#{get_plugin_root}/public/converter/templates/" end
def generate_excel
template_path = "#{get_plugin_root}/public/converter/templates/#{params[:template]}" output_path = "#{RAILS_ROOT}/public/converter/output/#{params[:output]}.xml"
puts "===========" puts template_path puts output_path
#converter_generate(sheet_id, from_date, output_path=OUTPUT_PATH, template_path=TEMPLATE_PATH) converter_generate(params[:sheet_id], params[:date], output_path, template_path)
end def get_templates(templates_path) dir = Dir.new(templates_path) templates = Array.new dir.each do |d| templates << File.basename(d.gsub(/\\/, '/'), '.xml') unless (d=~/^\./) #except hidden files templates.sort! end templates end
second method gets parameters from select_tag, and add it to converter_generate
I want to create select_tag like
<select id="temp" name="template"><option value=temp1>temp1</option> <option value=temp2>temp2</option> <option value=temp3>temp3</option> <option value=temp41>temp4</option> <option value=csv>csv</option></select>
and when I select template I want to run converter_generate with that template but when I select csv want to run work_sheet_csv.
thanks for any help..