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} %>