require 'csv' class HandsOnController < ApplicationController layout 'hands_on' before_filter :load_persons def save_sort_order_ajax @order = params[:list] render :text => "Saved new order (#{@order.join(', ')})", :layout => false end def data_filter if @term = @params[:term] @persons = persons_with_term(@term) end end def ajax_data_filter @content_for_header = render_to_string :partial => 'data_filter_javascript' if @term = @params[:term] @persons = persons_with_term(@term) end if @params[:ajax] render :partial => 'xml_data' else render 'hands_on/data_filter' end end def autocompleting_text_field @message = Struct.new(:message,:to).new end def auto_complete_for_message_to @persons = persons_with_term(@params[:message][:to]) render :partial => 'contacts' end private def load_persons @persons = CSV.readlines("#{RAILS_ROOT}/app/controllers/table_filter_data.csv") end def persons_with_term(term) terms = term.split(' ') @persons.reject do |p| not terms.all? do |t| p[0].to_s.include?(t) or p[1].to_s.include?(t) end end end end