Thanks again for your reply,

Yes, that is exactly what I'm trying to so, refresh part of the page,
after selecting a specific option in the drop-down menu. And yep, I am
just looking at choosing between views of All and Latest.

Sorry, my naming was perhaps a little ambiguous!

I have added the <do> section wrapped around my table, but the update/
refresh does not seem to be happening still.

I think what is happening, is when I select :update =>
'finished_article_table', in an attempt to update this specific part,
as I have also used :with => 'Form.Element.Serialize(this)', the
update is just using the string of 'this' context, so am just shown a
page with 'Latest' text at the top. (or 'All' depending on the
selection)

What I think I need to to, is: because this value is being passed back
to the controller to instantiate the @myOption instance variable, and
therefore select different options through my chained named_scope, I
think I would then need to re-render the page with these new options -
a complete re-render would be perfectly fine, as long as the selected
variable was still being passed to build the correct table-plus,

Is there a page re-render option I can call in the controller, which
will build the new page based on current options?

Thanks again

Pete




On Nov 18, 12:22 am, kevinpfromnm <[email protected]> wrote:
> ok, so I'm fully clear, this is an index view that you want to be able
> to switch between viewing latest and viewing all with an ajax update
> rather than re-rendering the page?  Some of the naming was throwing me
> off assuming that's the case.
>
> Try something like this.
>
> <do part='finished_article_table' part-locals="@page">
>   <table-plus with="&page" fields="page, created_at" >
>   </table-plus>
> </do>
>
> I think what's going on, is it's not using the updated context (which,
> this still might not get it there) because it's passed as an instance
> variable.  I'm not sure by any means but maybe it will get you going
> again.
>
> On Nov 17, 1:09 pm, Pete <[email protected]> wrote:
>
>
>
> > ... sorry again (what am I doing.... long day!)
>
> > :update => 'finished_article_table'
>
> > On Nov 17, 8:06 pm, Pete <[email protected]> wrote:
>
> > > yep, sorry! it is a typo should be :update =>
> > > '''inished_article_table'
>
> > > this was correct in my code, just a typo here........
>
> > > On Nov 17, 7:40 pm, kevinpfromnm <[email protected]> wrote:
>
> > > > Is :update => ''finished_article_table' a typo?  mismatched quote
> > > > types.
>
> > > > On Nov 17, 8:15 am, Pete <[email protected]> wrote:
>
> > > > > Thanks Kevin,
>
> > > > > The part mechanism certainly seems like a good logical step in
> > > > > updating specific sections of the page, I like it! :)
>
> > > > > I had a look at a lambda in the named scope, but this seemed to
> > > > > restrict what I was trying to achieve with my particular models and
> > > > > fields.
>
> > > > > What I have managed to build so far is:
>
> > > > > my controller method -----
>
> > > > > def finishedArticle
>
> > > > >     �...@myoption = params[:stateSelect]
>
> > > > >               if @myOption == 'Latest'
>
> > > > >             �...@page =
> > > > > Page.finished_pages.latest_finished.apply_scopes( :search =>
> > > > > [params[:search], :page, :created_at ], :order_by =>
> > > > > parse_sort_param(:page, :created_at )).paginate(:per_page => 25, :page
> > > > > => params[:page])
>
> > > > >              else
>
> > > > >             �...@page = Page.finished_pages.apply_scopes( :search =>
> > > > > [params[:search], :page, :created_at], :order_by =>
> > > > > parse_sort_param(:page, :created_at :)).paginate(:per_page =>
> > > > > 25, :page => params[:page])
>
> > > > >              end
> > > > > end
>
> > > > > Then in my view for finished Articles, I have:
>
> > > > > <%= select_tag "stateSelect", options_for_select(['All', 'Latest'],
> > > > > 'All'),  { :onchange => remote_function(
> > > > >                  :update => 'finishedArticles',
> > > > >                  :with => 'Form.Element.serialize(this)',
> > > > >                                  :url => {:action =>
> > > > > 'finishedArticles'})    } %>
>
> > > > > <table-plus part='finished_article_table' with="&@page fields="page,
> > > > > created_at" >
> > > > > </table-plus>
>
> > > > > I feel like I am almost there with what I am trying to achieve, the
> > > > > webpage loads initially with all of the finished articles showing in
> > > > > the table, and when I use the select menu, to choose 'Latest, I can
> > > > > see from the console that the correct data is extracted from the
> > > > > database - and has picked up the chained named scope - (if @myOption =
> > > > > 'Latest' .... Page.finished_pages.latest_finished), however, I cannot
> > > > > get the contents of the table to update. If I change :update =>
> > > > > 'finishedArticles', to :update => ''finished_article_table', I get a
> > > > > blank page with the text 'Latest' shown in the top corner?
>
> > > > > I have thought about trying to use render :update do |page|
> > > > > page.replace_html, 'theTable' 'relevant code to replace table'-  but I
> > > > > am unsure how to call the html correctly here to render the changed
> > > > > table on the webpage?
>
> > > > > Any help here would be greatly appreciated!
>
> > > > > Thanks again
>
> > > > > Pete
>
> > > > > On Nov 12, 11:15 pm, kevinpfromnm <[email protected]> wrote:
>
> > > > > > I'm thinking, move the option list to a named_scope that takes an
> > > > > > argument, then something like:
>
> > > > > > <table-plus with="&ModelName.by_state(@my_option)"
> > > > > > part="table_by_state">
>
> > > > > > Then you should be able to use hobo's part mechanism but you'll have
> > > > > > to poke a little to see how to make it update a part from JS.
>
> > > > > > On Nov 12, 3:54 am, Pete <[email protected]> wrote:
>
> > > > > > > Hi,
>
> > > > > > > I am trying to update a page I have which displays a table of 
> > > > > > > data,
> > > > > > > but which I would like to dynamically update depending on what is
> > > > > > > selected in the <select-input> field.
>
> > > > > > > I have a controller with a method containing the table plus info 
> > > > > > > - but
> > > > > > > in my view, I would like to dynamically change the content of the
> > > > > > > table plus, I would imagine I could change something here.......
>
> > > > > > > <table-plus with="&@myOption" fields="field1, field2etc" >
>
> > > > > > > where myOption is the result of the select-input field,
>
> > > > > > > <select-input options"&[['Latest', '@latestFinished'], ['All',
> > > > > > > '@allFinished'] ]", onchange="update @myOption" />
>
> > > > > > > @latestFinished, and @allFinished are defined in my Controller 
> > > > > > > using
> > > > > > > my own named_scopes to gather the relevant data. I realise my 
> > > > > > > select
> > > > > > > input is probably completely wrong, but is there something along 
> > > > > > > these
> > > > > > > lines that will work?- Hide quoted text -
>
> > > > > > - Show quoted text -- Hide quoted text -
>
> > > > - Show quoted text -- Hide quoted text -
>
> > > - Show quoted text -- Hide quoted text -
>
> - Show quoted text -

-- 
You received this message because you are subscribed to the Google Groups "Hobo 
Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/hobousers?hl=en.

Reply via email to