Progressive updates


#1

I have a list view and have it sorting the data presented in the list
view by clicking on the top of the column - that works fine.

Now, I want to add a pop up-list which controls 3 different levels of
record select to be presented in this list…

  • ALL
  • placement.discharge_date IS NULL
  • placement.discharge_date IS NOT NULL

I can have 3 different ‘methods’ and ‘views’ and switch between them
using and use render => :partial but what I am struggling with is
passing the selection from my pop-up list to the link_to tag.

<%= options = [[params[:vw], “”]] + Placement::VW_STRING
select("", :vw, options) %>

<%= link_to ‘Update’,
:action => ‘list’,
:vw => params[:vw],
:sort_by => params[:sort_by] %>

My problem is that what I select from the list doesn’t change the
value :vw in the ‘link_to’

How does one do this sort of thing?

Craig


#2

Craig,

I’m not sure I understand what you are trying to do, but that’s not
going to
stop me from trying to help!

I think I do the same thing you are attempting to do. I have a view of
things that are associated with people, and I sometimes filter them by a
single person. The people
are in a select list.

Here’s the relevant view code:

<%= form_tag(:action => 'list', :id=>nil) %> <%= end_form_tag %>
person filter: <%= select_tag(:pf, options_for_select(people_list, @selected_person)) %> <%= submit_tag "update display" %>

So there is an array of people and a selected person (@selected_person).
The
1st entry in the array is ‘-all-’

Then the relevant controller code looks like this:

def list
if params.include?(:pf)
@session[:person_filter] = nil
@session[:person_filter] = params[:pf] unless params[:pf].blank?
||
params[:pf]==’-all-’
end
if @request.post?
options = {:action=>‘list’}
unless @session[:person_filter].blank?
options[:filter] = ‘who’
options[:value] = @session[:person_filter]
end
redirect_to options
return
end

@selected_person = nil
unless @session[:person_filter].blank?
  options = add_conditions(options, 

[“who=?”,@session[:person_filter]])
@selected_person = @session[:person_filter]
end

a paginator

:

end

So the html form parameter is “pf” and it gets set to a name or the
string
‘-all-’.
I want it to be sticky and I want it to show up in the url. To
accomplish
these 2 things I put the parameter in the session as “:person_filter”.
If I
get to the list via a post I redirect so that the url now contains the
person.

Before going to the list view I set the value @selected_person. The
select
list, ah, selects the currently selected person.

This is a little messy, but I like the way it works. It allows someone
to
filter the display, and then copy the url and send it to a buddy or
bookmark
it. But there must be an easier way.

-Kelly


#3

On Tue, 2006-02-21 at 18:10 -0800, Kelly F. wrote:

Here’s the relevant view code:
(@selected_person). The 1st entry in the array is ‘-all-’
options = {:action=>‘list’}
options = add_conditions(options,
accomplish these 2 things I put the parameter in the session as
“:person_filter”. If I get to the list via a post I redirect so that
the url now contains the person.

Before going to the list view I set the value @selected_person. The
select list, ah, selects the currently selected person.

This is a little messy, but I like the way it works. It allows someone
to filter the display, and then copy the url and send it to a buddy or
bookmark it. But there must be an easier way.


thanks Kelly - I don’t know if you followed the track but Ezra has a
plug-in called ez_where which was precisely what I was looking for.

In case anyone is interested…I wanted to have this large find screen
with most of the columns in the table and allow a free form type of
search and the ez_where allowed me to easily ‘AND’ the search strings
that had data and discard the ones that didn’t and I was even able to do
things like date ranges as part of the find too.

So I started with a 3 option view…All records, Current records or
‘Filtered’ where filtered represented the found set.

Then I put all of these results of the find into session variables which
allows me to retain them as the list view has column headers and
clicking the top of the column allows me to ‘re-order’ the view, whether
it was All, Current or Filtered.

Thanks

Craig