diff --git a/app/controllers/order_comments_controller.rb b/app/controllers/order_comments_controller.rb new file mode 100644 index 00000000..a047dc3a --- /dev/null +++ b/app/controllers/order_comments_controller.rb @@ -0,0 +1,16 @@ +class OrderCommentsController < ApplicationController + + def new + @order = Order.find(params[:order_id]) + @order_comment = @order.comments.build(:user => current_user) + end + + def create + @order_comment = OrderComment.new(params[:order_comment]) + if @order_comment.save + render :layout => false + else + render :action => :new, :layout => false + end + end +end diff --git a/app/controllers/ordering_controller.rb b/app/controllers/ordering_controller.rb index 6953b072..5df56696 100644 --- a/app/controllers/ordering_controller.rb +++ b/app/controllers/ordering_controller.rb @@ -64,19 +64,6 @@ class OrderingController < ApplicationController end end - # adds a Comment to the Order - def add_comment - order = Order.find(params[:id]) - comment = order.comments.build(params[:comment]) - comment.user = @current_user - if !comment.text.blank? and comment.save - flash[:notice] = "Kommentar wurde erstellt." - else - flash[:error] = "Kommentar konnte nicht erstellt werden. Leerer Kommentar?" - end - redirect_to :action => 'show', :id => order - end - private # Returns true if @current_user is member of an Ordergroup. diff --git a/app/controllers/orders_controller.rb b/app/controllers/orders_controller.rb index c9bb0de7..ae4c9de5 100644 --- a/app/controllers/orders_controller.rb +++ b/app/controllers/orders_controller.rb @@ -159,17 +159,4 @@ class OrdersController < ApplicationController redirect_to @order end end - - # adds a Comment to the Order - def add_comment - order = Order.find(params[:id]) - comment = order.comments.build(params[:comment]) - comment.user = @current_user - if !comment.text.empty? and comment.save - flash[:notice] = "Kommentar wurde erstellt." - else - flash[:error] = "Kommentar konnte nicht erstellt werden. Leerer Kommentar?" - end - redirect_to order - end end \ No newline at end of file diff --git a/app/helpers/order_comments_helper.rb b/app/helpers/order_comments_helper.rb new file mode 100644 index 00000000..dfa87c2a --- /dev/null +++ b/app/helpers/order_comments_helper.rb @@ -0,0 +1,2 @@ +module OrderCommentsHelper +end diff --git a/app/models/order_comment.rb b/app/models/order_comment.rb index 98126d74..01042bac 100644 --- a/app/models/order_comment.rb +++ b/app/models/order_comment.rb @@ -4,6 +4,7 @@ class OrderComment < ActiveRecord::Base belongs_to :user validates_presence_of :order_id, :user_id, :text + validates_length_of :text, :minimum => 3 end # == Schema Information diff --git a/app/views/order_comments/_form.html.haml b/app/views/order_comments/_form.html.haml new file mode 100644 index 00000000..b8faff9d --- /dev/null +++ b/app/views/order_comments/_form.html.haml @@ -0,0 +1,5 @@ += simple_form_for order_comment, :remote => true, :validate => true do |f| + = f.hidden_field :order_id + = f.hidden_field :user_id + = f.input :text, :input_html => {:size => "50x6"} + = f.submit \ No newline at end of file diff --git a/app/views/order_comments/create.js.erb b/app/views/order_comments/create.js.erb new file mode 100644 index 00000000..3ad08df1 --- /dev/null +++ b/app/views/order_comments/create.js.erb @@ -0,0 +1 @@ +$('#comments').html('<%= escape_javascript(render(:partial => 'shared/comments', :locals => { :comments => @order_comment.order.comments })) %>'); \ No newline at end of file diff --git a/app/views/order_comments/new.js.erb b/app/views/order_comments/new.js.erb new file mode 100644 index 00000000..1ffe2e75 --- /dev/null +++ b/app/views/order_comments/new.js.erb @@ -0,0 +1 @@ +$('#new_comment').html('<%= escape_javascript(render('form', :locals => { :order_comment => @order_comment})) %>'); \ No newline at end of file diff --git a/app/views/ordering/show.html.haml b/app/views/ordering/show.html.haml index 8ed5fe4f..12f4e072 100644 --- a/app/views/ordering/show.html.haml +++ b/app/views/ordering/show.html.haml @@ -104,14 +104,8 @@ .single_column{:style => "width:70em;"} .box_title %h2 Kommentare - .column_content#comments - = render :partial => 'shared/comments', :locals => { :comments => @order.comments } - %p - - form_for :comment, :url => { :action => :add_comment, :id => @order } do |form| - %p - %b Neuen Kommentar hinzufügen: - %br/ - = form.text_area :text, :cols => 50, :rows => 6 - %br/ - = submit_tag "Kommentar hinzufügen" + .column_content + #comments + = render :partial => 'shared/comments', :locals => { :comments => @order.comments } + #new_comment= render :partial => 'order_comments/form', :locals => { :order_comment => @order.comments.build(:user => current_user)} = link_to_top diff --git a/app/views/orders/show.haml b/app/views/orders/show.haml index 7d16b185..84807aa8 100644 --- a/app/views/orders/show.haml +++ b/app/views/orders/show.haml @@ -79,15 +79,8 @@ .single_column{:style => "width:70em;"} .box_title %h2 Kommentare - .column_content#comments - = render :partial => "/shared/comments", :locals => { :comments => @order.comments } - %p - - form_for :comment, :url => add_comment_order_path(@order) do |form| - %p - %b Neuen Kommentar hinzufügen: - %br/ - = form.text_area :text, :cols => 50, :rows => 6 - %br/ - = submit_tag "Kommentar hinzufügen" - + .column_content + #comments + = render :partial => 'shared/comments', :locals => { :comments => @order.comments } + #new_comment= render :partial => 'order_comments/form', :locals => { :order_comment => @order.comments.build(:user => current_user)} = link_to_top \ No newline at end of file diff --git a/config/locales/de.yml b/config/locales/de.yml index 47ee7397..4b8adb23 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -164,6 +164,8 @@ de: delivery: Lieferung stock_taking: Inventur financial_transaction: Kontotransaktion + order: Bestellung + order_comment: Kommentar attributes: article: price: Nettopreis @@ -283,6 +285,8 @@ de: user: nick: "Benutzername" last_name: "Nachname" + order_comment: + text: 'Kommentar' hints: tax: 'In Prozent, Standard sind 7,0' diff --git a/config/routes.rb b/config/routes.rb index ca012ddd..548a29cf 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,5 +1,9 @@ Foodsoft::Application.routes.draw do + get "order_comments/new" + + get "comments/new" + get "sessions/new" root :to => redirect("/#{Foodsoft.env}") @@ -44,6 +48,8 @@ Foodsoft::Application.routes.draw do end match '/ordering' => 'ordering#index', :as => 'ordering' + resources :order_comments, :only => [:new, :create] + ############ Foodcoop orga resources :invites, :only => [:new, :create] diff --git a/test/functional/order_comments_controller_test.rb b/test/functional/order_comments_controller_test.rb new file mode 100644 index 00000000..40a3f872 --- /dev/null +++ b/test/functional/order_comments_controller_test.rb @@ -0,0 +1,9 @@ +require 'test_helper' + +class OrderCommentsControllerTest < ActionController::TestCase + test "should get new" do + get :new + assert_response :success + end + +end diff --git a/test/unit/helpers/order_comments_helper_test.rb b/test/unit/helpers/order_comments_helper_test.rb new file mode 100644 index 00000000..e00142fe --- /dev/null +++ b/test/unit/helpers/order_comments_helper_test.rb @@ -0,0 +1,4 @@ +require 'test_helper' + +class OrderCommentsHelperTest < ActionView::TestCase +end