On Tue, Nov 20, 2012 at 9:10 PM, Werner Laude < [email protected]> wrote:
> > Am 20.11.2012 um 13:55 schrieb Jim Ruther Nill <[email protected]>: > > I try to explain.. > > I have this edit form where I can edit hours > On top of the insert form itself I give Information about the complete > amount of hours. > > So I ask for the complete amount of hours by asking for the part / main > project and add them . > > When I edit hours in the form.... I want of course not only update the > house by form-field, but also actualize the all-together hours. (sum the > table) > > Normally this is done by the submit request parsing the edit action. > But now with editing the hour fields with js, this is not happening ... > ... > Hope this gets more clear now. > Ok. It's clearer now but you still need to show the html code above the form where you use @main_hours, @part_hours and @all_hours. If you some sort of code before your form like this one <div id='main-hours'> <label>Main Hours</label> <span><%= @main_hours %> </div> you can add this line in update.js.erb to update the main hours $('#main-hours span').text('<%= @main_hours %>'); Good luck! > > > > > > > > On Tue, Nov 20, 2012 at 8:45 PM, Werner Laude < > [email protected]> wrote: > >> here...is the essential >> >> def edit >> @booking = Booking.new >> >> @project = Project.find(params[:id]) >> @partprojects = Project.find_all_by_parent_id(@project.id) >> >> @bookings = Booking.zwischen(start, ende) >> >> @main_hours = main_hours_sum(@project.id) >> @part_hours = part_hours_sum(@partprojects.id) >> @all_hours = @main_hours + @part_hours >> end >> >> form >> <%= simple_form_for @booking, :url => booking_path, :remote => true, >> :method => :put do %> >> <% @bookings.each do |booking|%> >> >> <%= fields_for "booking[]", booking do |f|%> >> <%= f.text_field :hour, :class => 'submittable' %> >> <%= hidden_field_tag "booking_ids[]", booking.id %> >> <% end %> >> >> <% end %> >> >> coffee >> $(".submittable").live "change", -> >> $(this).parents("form:first").submit() >> >> >> >> def update >> if params[:booking_ids] >> params[:booking_ids].each do >> Booking.update(params[:booking].keys, >> params[:booking].values).reject { |p| p.errors.empty? } >> end >> end >> >> respond_to do |format| >> format.js{ >> @project = Project.find(params[:id]) >> @main_hours = main_hours_sum(@project.id) >> >> } >> end >> end >> > > Ok. sorry but now I'm confused. Where are you using @main_hours, > @part_hours and @all_hours? > I need the part of the template that uses these variables. > > >> >> >> >> >> >> >> Am 20.11.2012 um 13:22 schrieb Jim Ruther Nill <[email protected]>: >> >> >> >> >> On Tue, Nov 20, 2012 at 7:48 PM, Werner >> <[email protected]>wrote: >> >>> o.k. >>> Now it is like that: >>> >>> def update >>> >>> if params[:booking_ids] >>> params[:booking_ids].each do >>> Booking.update(params[:booking].keys, >>> params[:booking].values).reject { |p| p.errors.empty? } >>> end >>> end >>> >>> respond_to do |format| >>> format.js{ >>> >>> @project = Project.find(params[:id]) >>> @main_hours = main_hours_sum(@project.id) >>> } >>> end >>> end >>> >>> def main_hours_sum(id) >>> hours ||= Booking.where(project_id: id).sum("hour") >>> end >>> >>> >>> update.js.erb >>> >>> alert('<%= @main_hours %>') >>> >>> The alert pops up and shows the correct amount of hours.. >>> Thanks so far.....but I dont have an idea how to update/reset the >>> @main_hours on the edit page where it is shown. As I dont leave this page, >>> no request - no update. >>> May be my understanding of this process is not enough yet. >>> >> >> If you can show us the code of your edit template, I can help you with >> the javascript >> to update the total number of hours. >> >> >>> >>> Greetings >>> >>> >>> >>> Am Dienstag, 20. November 2012 11:04:53 UTC+1 schrieb jim: >>>> >>>> >>>> >>>> >>>> On Tue, Nov 20, 2012 at 5:46 PM, Werner >>>> <webagent...@googlemail.**com>wrote: >>>> >>>>> Sure.. >>>>> >>>>> def edit >>>>> @booking = Booking.new >>>>> @project = Project.find(params[:id]) >>>>> @main_hours = main_hours_sum(@project.id) >>>>> ... >>>>> end >>>>> >>>>> def main_hours_sum(id) >>>>> Booking.where(project_id: id).sum("hour") >>>>> end >>>>> >>>>> def update >>>>> respond_to do |format| >>>>> >>>>> format.js >>>>> end >>>>> end >>>>> >>>>> update.js.erb >>>>> <% if params[:booking_ids] %> >>>>> <% params[:booking_ids].each do %> >>>>> <% Booking.update(params[:**booking].keys, >>>>> params[:booking].values).**reject { |p| p.errors.empty? } %> >>>>> <% end %> >>>>> >>>>> <%end%> >>>>> >>>> >>>> You need to move the logic in update.js.erb to the update action. I >>>> was looking for >>>> the edit template. I'd like to see how you use the @main_hours >>>> variable. What I'm thinking >>>> is this on this update action and erb. >>>> >>>> def update >>>> @project = ... #fetch project here >>>> >>>> # move your logic in the view here >>>> # there's something missing here :D >>>> if params[:booking_ids] >>>> params[:booking_ids].each do >>>> Booking.update(params[:**booking].keys, params[:booking].values). >>>> **reject { |p| p.errors.empty? } >>>> end >>>> end >>>> >>>> respond_to do |format| >>>> format.html >>>> format.js { @main_hours = main_hours_sum(@project.id) } >>>> end >>>> end >>>> >>>> # update.js.erb >>>> # use @main_hours to update whatever you need to update on the view >>>> >>>> alert('<%= @main_hours %>') >>>> >>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> Am Dienstag, 20. November 2012 09:59:58 UTC+1 schrieb jim: >>>>>> >>>>>> >>>>>> Hi! >>>>>> >>>>>> On Tue, Nov 20, 2012 at 4:53 PM, Werner <webagent...@googlemail.**com >>>>>> > wrote: >>>>>> >>>>>>> Hi jim >>>>>>> >>>>>>> As I am using remote: true I created a update.js.erb and a >>>>>>> respond_to do |format| block. >>>>>>> Copied the format html ocde into the update.js.erb and the update >>>>>>> process is still working.. so far so good. >>>>>>> >>>>>>> But it is unclear to me how to update the >>>>>>> Model.where(model_id: id).sum("attribute") query which is in edit >>>>>>> action. >>>>>>> >>>>>> >>>>>> Can you paste in part of the edit template where you use the result >>>>>> of this query? >>>>>> >>>>>> >>>>>>> Using html, after update the edit action is called and the query is >>>>>>> refreshed. How to get this working with js? >>>>>>> Something like a submit or refreshing the edit action..? >>>>>>> >>>>>> >>>>>> Can you also paste your edit and update actions so we can work on the >>>>>> code >>>>>> level. >>>>>> >>>>>> >>>>>>> >>>>>>> Thanks for sharing.. >>>>>> >>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> Am Montag, 19. November 2012 15:30:42 UTC+1 schrieb jim: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Mon, Nov 19, 2012 at 10:25 PM, Werner <webagent...@googlemail.** >>>>>>>> com> wrote: >>>>>>>> >>>>>>>>> On my edit page I can update values using ajax. >>>>>>>>> >>>>>>>>> In my edit action I also have something like: >>>>>>>>> Model.where(model_id: id).sum("attribute") >>>>>>>>> As the edit action is not executed anymore, I dont get a proper >>>>>>>>> result after I add some new value, have to reload the page. >>>>>>>>> >>>>>>>>> How is the best way to actualize the sum after edit.. ? >>>>>>>>> >>>>>>>> >>>>>>>> Are you updating the values by calling $.ajax or just passing in >>>>>>>> remote: true on your forms? >>>>>>>> >>>>>>>> If you use $.ajax, I suggest that you pass in the sum as json which >>>>>>>> $.ajax can process. If you're >>>>>>>> using remote: true, you can create an update.js.erb or >>>>>>>> update.js.haml which will be rendered >>>>>>>> after you update. >>>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> Thanks >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "Ruby on Rails: Talk" group. >>>>>>>>> To post to this group, send email to rubyonra...@googlegroups.** >>>>>>>>> com. >>>>>>>>> To unsubscribe from this group, send email to rubyonrails-ta...@** >>>>>>>>> googlegroups****.com. >>>>>>>>> >>>>>>>>> To view this discussion on the web visit >>>>>>>>> https://groups.google.com/d/**ms****g/rubyonrails-talk/-/** >>>>>>>>> RHAW38e5g****OwJ<https://groups.google.com/d/msg/rubyonrails-talk/-/RHAW38e5gOwJ> >>>>>>>>> . >>>>>>>>> For more options, visit https://groups.google.com/**grou**** >>>>>>>>> ps/opt_out <https://groups.google.com/groups/opt_out>. >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> ------------------------------******------------------------------* >>>>>>>> *****- >>>>>>>> visit my blog at http://jimlabs.heroku.com >>>>>>>> >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Ruby on Rails: Talk" group. >>>>>>> To post to this group, send email to rubyonra...@googlegroups.**com. >>>>>>> To unsubscribe from this group, send email to rubyonrails-ta...@** >>>>>>> googlegroups**.com. >>>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/d/**ms**g/rubyonrails-talk/-/**GktAGfGYQ** >>>>>>> m4J<https://groups.google.com/d/msg/rubyonrails-talk/-/GktAGfGYQm4J> >>>>>>> . >>>>>>> >>>>>>> For more options, visit >>>>>>> https://groups.google.com/**grou**ps/opt_out<https://groups.google.com/groups/opt_out> >>>>>>> . >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> ------------------------------****------------------------------****- >>>>>> visit my blog at http://jimlabs.heroku.com >>>>>> >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Ruby on Rails: Talk" group. >>>>> To post to this group, send email to rubyonra...@googlegroups.**com. >>>>> To unsubscribe from this group, send email to rubyonrails-ta...@** >>>>> googlegroups.com. >>>>> To view this discussion on the web visit https://groups.google.com/d/* >>>>> *msg/rubyonrails-talk/-/**aGQY2mvKhoUJ<https://groups.google.com/d/msg/rubyonrails-talk/-/aGQY2mvKhoUJ> >>>>> . >>>>> >>>>> For more options, visit >>>>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out> >>>>> . >>>>> >>>>> >>>>> >>>> >>>> >>>> >>>> -- >>>> ------------------------------**------------------------------**- >>>> visit my blog at http://jimlabs.heroku.com >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Ruby on Rails: Talk" group. >>> To post to this group, send email to [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msg/rubyonrails-talk/-/Uww8jzoTzJcJ. >>> >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >>> >>> >> >> >> >> -- >> ------------------------------------------------------------- >> visit my blog at http://jimlabs.heroku.com >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Ruby on Rails: Talk" 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 https://groups.google.com/groups/opt_out. >> >> >> >> >> Werner Laude >> [email protected] >> >> >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Ruby on Rails: Talk" 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 https://groups.google.com/groups/opt_out. >> >> >> > > > > -- > ------------------------------------------------------------- > visit my blog at http://jimlabs.heroku.com > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" 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 https://groups.google.com/groups/opt_out. > > > > > Werner Laude > [email protected] > > > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" 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 https://groups.google.com/groups/opt_out. > > > -- ------------------------------------------------------------- visit my blog at http://jimlabs.heroku.com -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" 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 https://groups.google.com/groups/opt_out.

