El 28/09/14 a las #4, Donald Ziesig escribió:
> Hi Ignacio,
> 
> It works and is much cleaner than the hacks I had to use to get my app
> to work.  Now I have to re-factor my code to clean it up, but I feel
> much more comfortable with your solution.  I visited issue 122 and left
> a comment, but I couldn't find any way that I could close it.

Great, you are very welcome :). I'll close 122 myself, maybe you don't
have permissions.

Best regards,
Ignacio

> 
> There is one residual issue with the <a> tag that I will post separately
> later today.
> 
> Thanks for all your help,
> 
> Don
> 
> On 09/28/2014 08:28 AM, Ignacio Huerta wrote:
>> Hi Don,
>>
>> I have investigated a bit more, and I think I found a neat solution for
>> your example:
>>
>> https://github.com/iox/demo_ajax_button_problem/commit/6817c5226bbdd874d6808e5e0f72ba3d72ffd4a4
>>
>>
>> I have removed the JS responses, and instead rely on Hobo's default
>> partial system. As we are using a custom controller action, we need to
>> tell "hobo_ajax_response" the correct page_path where it has to find the
>> partial. I'm gonna create another issue to see if this can be
>> automatised in the future :).
>>
>> If you feel this solution is good enough, please close
>> https://github.com/Hobo/hobo/issues/122.
>>
>> Warm regards,
>> Ignacio
>>
>> El 28/09/14 a las #4, Ignacio Huerta escribió:
>>> Hi Don,
>>>
>>> I'm glad you found a workaround. I have reproduced the issue with your
>>> repository and indeed it seems we have one or two bugs:
>>>
>>> - After an Ajax update "Rails style", it looks like the data-rapid
>>> events are not set or something similar.
>>> - I tried to rewrite the code with an Ajax update "Hobo style" (with
>>> parts), but I get an error the part is not being found.
>>>
>>> This needs more time, so I'm creating an issue in Github. I'll come back
>>> to this.
>>>
>>> Warm regards,
>>> Ignacio
>>>
>>> El 27/09/14 a las #4, Donald Ziesig escribió:
>>>> Hi All!
>>>>
>>>> This turns out to be two separate issues.  The <a> tag in dryml does
>>>> not
>>>> work consistently (except to produce an HTML request when called from
>>>> within a partial).  I replaced it with a new tag <ajax-button>. 
>>>> This is
>>>> not quite finished (it does not check for missing but required
>>>> attributes), but it works whether it is called from an normal page or a
>>>> partial (and always produces a JS request):
>>>>
>>>> <def tag="ajax-button" attrs="label, image, subsite, action, title,
>>>> imgclass">
>>>> <%=  url = object_url(this, :method => :put, :subsite => subsite);
>>>> url = url + '/' + action if action;
>>>> link_to(url, :remote => true,:method => :put ) do
>>>>    image_tag(image, class: imgclass, title: title);
>>>> end %>
>>>> </def>
>>>>
>>>> Invoked with:
>>>>
>>>> <ajax-button action="up" image="up-arrow.png" title="Move UP"
>>>> imgclass="arrow-button" if="&can_edit?"/>
>>>>
>>>> Note the method => :put.  This was another area where the <a> tag has a
>>>> bug.  The only way I could get the <a> tag buttons to be active at all
>>>> was to use :get in the <a> tag and in the associatd routes.  With the
>>>> <ajax-button> tag, :put works in the tag and the routes.
>>>>
>>>> The second issue was what appears to be a rails bug.  I was updating
>>>> records in a belongs_to model but the changes were not propagating to
>>>> the associated has_many model.  The fix was easy, but finding it was
>>>> not.  All I needed was to call reload on the association after changing
>>>> the associated data.  I was using a pattern that I used in Rails 2 (but
>>>> not since) which worked then without needing the call to reload.  I got
>>>> to the point that I posted a question to StackOverflow, then
>>>> answered my
>>>> own question after a lot of googling.
>>>>
>>>> Don Ziesig
>>>>
>>>> On 09/25/2014 09:44 PM, Donald Ziesig wrote:
>>>>> Hi Ignacio,
>>>>>
>>>>> I extracted the failing code and put it into github.  Check
>>>>> [email protected]:dziesig/demo_ajax_button_problem.git
>>>>>
>>>>> The code is partially completed, I got to this point when I hit the
>>>>> problem.  Open the agenda, the show page illustrates the problem.
>>>>> Click on any one of the Up Arrow buttons (except the top one),  the
>>>>> behaviour is correct.  Click it again and see the problem.  The Down
>>>>> Arrow buttons have a slightly different problem of their own, but I
>>>>> think once I get the Up working properly the Down will follow quickly.
>>>>>
>>>>> The files up.html.erb and down.html.erb are there only because I got
>>>>> "template missing" errors on the second button click without them.
>>>>>
>>>>> Meanwhile, I am going to try to figure out why the second and later
>>>>> button clicks show as HTML rather than JS.
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Don
>>>>>
>>>>> P.S.  In the source application, I ran into the failure in rendering
>>>>> partials from dryml on the second try that I described a long while
>>>>> ago.  The somewhat convoluted code in this demo is part of my attempt
>>>>> to work around that issue.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On 09/25/2014 05:28 PM, Ignacio Huerta wrote:
>>>>>> Sorry Don, I could not follow your example :S. It's indeed a weird
>>>>>> bug. I suggest:
>>>>>>
>>>>>> * If you want to use Dryml and Ajax updates, it might be better to
>>>>>> use the <div part="something">...<a updates="#something"... syntax
>>>>>> * For updates with Jquery and Rails style, it might work easier a
>>>>>> small partial in ERB/Haml
>>>>>> * Still, it would be interesting to reproduce your issue, so if you
>>>>>> can provide some dummy code to reproduce, I'll be glad to play around
>>>>>>
>>>>>> Warm regards,
>>>>>> Ignacio
>>>>>>
>>>>>> On Thu, Sep 25, 2014 at 10:35 PM, Donald Ziesig <[email protected]
>>>>>> <mailto:[email protected]>> wrote:
>>>>>>
>>>>>>      Hi Ignacio!
>>>>>>
>>>>>>      The html_safe almost works.  (I tried that but put it in the
>>>>>>      wrong place :-[ ).
>>>>>>
>>>>>>      Now the only problem is much stranger.
>>>>>>
>>>>>>      When I click the button once, it generates a JS response and the
>>>>>>      page renders correctly with appropriate data changes.  The
>>>>>> second
>>>>>>      and all subsequejt times I click it generates an HTML response
>>>>>>      and the page renders without the data outside the <def> and with
>>>>>>      no styling.  The data that is displayed is correct, it just
>>>>>> looks
>>>>>>      funny =-O .  I did have to add an html template to get this far,
>>>>>>      without it I just get a missing template exception.  I didn't
>>>>>>      think I would have needed the html and I would really like to
>>>>>> get
>>>>>>      the buttons to always generate JS like the first time.
>>>>>>
>>>>>>      It must have something to do with context because the html for
>>>>>>      the button stays the same in firebug, it just works without ajax
>>>>>>      on all clicks but the first.
>>>>>>
>>>>>>      Any Ideas?
>>>>>>
>>>>>>      Don
>>>>>>
>>>>>>
>>>>>>      On 09/25/2014 12:06 PM, Ignacio Huerta wrote:
>>>>>>
>>>>>>          Hi Don,
>>>>>>
>>>>>>          Your HTML is being escaped. You need something like this:
>>>>>>
>>>>>>          $('#agenda_items').html('<%=j render(:partial =>
>>>>>>          'agendas/table_plus',
>>>>>>          :locals => { :this => @this }).html_safe %>');
>>>>>>
>>>>>>          You can also use "raw(html_string)" I think.
>>>>>>
>>>>>>          Please say if this doesn't help :)
>>>>>>
>>>>>>          Regards,
>>>>>>          Ignacio
>>>>>>
>>>>>>          El 25/09/14 a las #4, Donald Ziesig escribió:
>>>>>>
>>>>>>              Another strange one:
>>>>>>
>>>>>>              I am trying to render a partial (dryml) from javascript.
>>>>>>              The javascript
>>>>>>              is a one-liner:
>>>>>>
>>>>>>              $('#agenda_items').html('<%=j render :partial =>
>>>>>>              'agendas/table_plus',
>>>>>>              :locals => { :this => @this } %>');
>>>>>>
>>>>>>              The partial is also rather trivial:
>>>>>>
>>>>>>                   <table-plus with="&this.agenda_items"
>>>>>>              fields="position, this">
>>>>>>              <controls:><controls-with-up-dn/></controls:>
>>>>>>                   </table-plus>
>>>>>>
>>>>>>              Unfortunately, in the <div id="agenda_items" > ...
>>>>>> </div>
>>>>>>
>>>>>>              Instead of the table-plus and all its entries being
>>>>>>              rendered, the html
>>>>>>              (correct as near as I can tell) is rendered as text:
>>>>>>
>>>>>>              <div class="table-plus"><div class="header"><div
>>>>>>              class="search"> <form
>>>>>>              action="" class="search-form" method="get"><div
>>>>>>              class="hidden-fields"></div> <span
>>>>>>              class="label">Search</span> <input
>>>>>>              class="search" name="search" type="search"><input
>>>>>>              class="button
>>>>>>              submit-button search-button search-submit" type="submit"
>>>>>>              value="Go"></form> </div></div> <table> <thead><tr
>>>>>>              class="field-heading-row"> <th
>>>>>> class="position-heading"> <a
>>>>>>              class="column-sort position-heading-link"
>>>>>>             
>>>>>> href="/agenda_items/4-approval-of-last-month-s-minutes/ ****
>>>>>>
>>>>>>              The code in the partial renders correctly when invoked
>>>>>>              directly.
>>>>>>
>>>>>>              What am I missing?
>>>>>>
>>>>>>              Thanks,
>>>>>>
>>>>>>              Don Ziesig
>>>>>>
>>>>>>
>>>>>>      --
>>>>>>      You received this message because you are subscribed to the
>>>>>>      Google Groups "Hobo Users" group.
>>>>>>      To unsubscribe from this group and stop receiving emails from
>>>>>> it,
>>>>>>      send an email to [email protected]
>>>>>>      <mailto:hobousers%[email protected]>.
>>>>>>      To post to this group, send email to [email protected]
>>>>>>      <mailto:[email protected]>.
>>>>>>      Visit this group at http://groups.google.com/group/hobousers.
>>>>>>      For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> -- 
>>>>>> Ignacio Huerta Arteche
>>>>>> http://www.ihuerta.net
>>>>>> 0034 645 70 77 35
>>>>>> -- 
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "Hobo Users" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>> send an email to [email protected]
>>>>>> <mailto:[email protected]>.
>>>>>> To post to this group, send email to [email protected]
>>>>>> <mailto:[email protected]>.
>>>>>> Visit this group at http://groups.google.com/group/hobousers.
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>> -- 
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Hobo Users" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected]
>>>>> <mailto:[email protected]>.
>>>>> To post to this group, send email to [email protected]
>>>>> <mailto:[email protected]>.
>>>>> Visit this group at http://groups.google.com/group/hobousers.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>> -- 
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Hobo Users" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected]
>>>> <mailto:[email protected]>.
>>>> To post to this group, send email to [email protected]
>>>> <mailto:[email protected]>.
>>>> Visit this group at http://groups.google.com/group/hobousers.
>>>> For more options, visit https://groups.google.com/d/optout.
> 

-- 
You received this message because you are subscribed to the Google Groups "Hobo 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/hobousers.
For more options, visit https://groups.google.com/d/optout.

Reply via email to