diff --git a/app/controllers/meals_controller.rb b/app/controllers/meals_controller.rb index 2af26b1..0f6c42b 100644 --- a/app/controllers/meals_controller.rb +++ b/app/controllers/meals_controller.rb @@ -33,6 +33,16 @@ class MealsController < ApplicationController def edit end + def update + if @meal.update(meal_params) + flash[:notice] = 'Updated meal' + prepare_meals + render :index + else + render :edit + end + end + def destroy end diff --git a/app/views/foods/_edit_form.html.erb b/app/views/foods/_edit_form.html.erb index da1d05f..0dbc0ff 100644 --- a/app/views/foods/_edit_form.html.erb +++ b/app/views/foods/_edit_form.html.erb @@ -1,7 +1,7 @@ <%= labelled_form_for @food, url: food_path(@food, view: view), method: :patch, remote: true, - html: {id: 'food-edit-form', name: 'food-edit-form'} do |f| %> + html: {id: 'edit-food-form', name: 'edit-food-form'} do |f| %> <%= render partial: 'foods/form', locals: {f: f} %> diff --git a/app/views/meals/_edit_form.html.erb b/app/views/meals/_edit_form.html.erb new file mode 100644 index 0000000..390bbf9 --- /dev/null +++ b/app/views/meals/_edit_form.html.erb @@ -0,0 +1,15 @@ +<%= labelled_form_for @meal, + url: meal_path(@meal), + method: :patch, remote: true, + html: {id: 'edit-meal-form', name: 'edit-meal-form'} do |f| %> + + <%= render partial: 'meals/form', locals: {f: f} %> + +
+

+ <%= submit_tag l(:button_save) %> + <%= link_to l(:button_cancel), "#", + onclick: '$(this).closest("tr").remove(); return false;' %> +

+
+<% end %> diff --git a/app/views/meals/_edit_notes_form.html.erb b/app/views/meals/_edit_notes_form.html.erb index 175d662..b55ce1e 100644 --- a/app/views/meals/_edit_notes_form.html.erb +++ b/app/views/meals/_edit_notes_form.html.erb @@ -3,7 +3,7 @@ remote: true, html: {id: 'edit-meal-notes-form', name: 'edit-meal-notes-form'} do |f| %> - <%= f.text_field :notes, size: 50, required: false, label: '' %> + <%= f.text_field :notes, size: 40, required: false, label: '' %> <%= link_to l(:button_save), '', class: 'icon icon-save', onclick: "$(event.target).closest('form').submit(); return false;" %> <%= link_to l(:button_cancel), '', class: 'icon icon-cancel', diff --git a/app/views/meals/_index.html.erb b/app/views/meals/_index.html.erb index ea18c05..8a4f246 100644 --- a/app/views/meals/_index.html.erb +++ b/app/views/meals/_index.html.erb @@ -8,6 +8,7 @@

<%= date == Date.current ? 'Today' : date.strftime('%F') %>

+ <% eaten, not_eaten = meals.partition { |m| m.eaten_at } eaten.sort_by! { |m| m.eaten_at } not_eaten.sort_by! { |m| m.created_at } diff --git a/app/views/meals/edit.js.erb b/app/views/meals/edit.js.erb new file mode 100644 index 0000000..3a26be6 --- /dev/null +++ b/app/views/meals/edit.js.erb @@ -0,0 +1,7 @@ +$('tr[id=meal-<%= @meal.id %>]').nextUntil('tr.primary, tr.date', ':not(.ingredient)').remove(); +var columns = $('table > tbody > tr.ingredient > td').length; +$('tr[id=meal-<%= @meal.id %>]').nextUntil('tr.primary, tr.date').addBack().last().after( + '
' + + '<%= j render partial: 'meals/edit_form' %>' + + '
' +); diff --git a/app/views/meals/index.js.erb b/app/views/meals/index.js.erb new file mode 100644 index 0000000..07e446d --- /dev/null +++ b/app/views/meals/index.js.erb @@ -0,0 +1 @@ +$('#meals').html('<%= j render partial: 'meals/index' %>'); diff --git a/app/views/measurements/_edit_form.html.erb b/app/views/measurements/_edit_form.html.erb index 9f51e7b..66ae19d 100644 --- a/app/views/measurements/_edit_form.html.erb +++ b/app/views/measurements/_edit_form.html.erb @@ -1,7 +1,7 @@ <%= labelled_form_for @measurement, url: measurement_path(@measurement, view: view), method: :patch, remote: true, - html: {id: 'measurement-edit-form', name: 'measurement-edit-form'} do |f| %> + html: {id: 'edit-measurement-form', name: 'edit-measurement-form'} do |f| %> <%= render partial: 'measurements/form', locals: {f: f} %>