From 44f02be4cb2e366fb34e9344e7febf2bc8f0b36a Mon Sep 17 00:00:00 2001 From: Nweni Date: Tue, 22 Aug 2017 14:11:13 +0630 Subject: [PATCH] nested form --- app/assets/javascripts/application.js | 21 +++---- .../settings/promotions_controller.rb | 3 +- app/views/settings/promotions/_form.html.erb | 56 ++++--------------- 3 files changed, 22 insertions(+), 58 deletions(-) diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index eb4b4963..cd056d1c 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -11,6 +11,7 @@ // about supported directives. // //= require jquery +//= require jquery_nested_form //= require tether //= require bootstrap //= require jquery_ujs @@ -26,14 +27,14 @@ $(document).on('turbolinks:load', function() { autoclose: true }); $('.datepicker').attr('ReadOnly','true'); - $('.datepicker').css('cursor','pointer'); + $('.datepicker').css('cursor','pointer'); // Image Upload $("#simple_menu_item_image_path").fileinput({ previewFileType: "image", allowedFileExtensions: ["jpg", "gif", "png"], browseClass: "btn btn-success", - browseLabel: "Pick Image", + browseLabel: "Pick Image", browseIcon: " ", removeClass: "btn btn-danger", removeLabel: "Delete", @@ -41,10 +42,10 @@ $(document).on('turbolinks:load', function() { showUpload: false, // uploadClass: "btn btn-info", // uploadLabel: "Upload", - // uploadIcon: " ", + // uploadIcon: " ", previewTemplates: { image: '
\n' + - ' {caption}\n' + + ' {caption}\n' + '
\n', } }); @@ -53,7 +54,7 @@ $(document).on('turbolinks:load', function() { previewFileType: "image", allowedFileExtensions: ["jpg", "gif", "png"], browseClass: "btn btn-success", - browseLabel: "Pick Image", + browseLabel: "Pick Image", browseIcon: " ", removeClass: "btn btn-danger", removeLabel: "Delete", @@ -61,10 +62,10 @@ $(document).on('turbolinks:load', function() { showUpload: false, // uploadClass: "btn btn-info", // uploadLabel: "Upload", - // uploadIcon: " ", + // uploadIcon: " ", previewTemplates: { image: '
\n' + - ' {caption}\n' + + ' {caption}\n' + '
\n', } }); @@ -72,7 +73,7 @@ $(document).on('turbolinks:load', function() { $(document).on("focus", "[data-behaviour~='datepicker']", function(e){ $(this).datepicker({"format": "yyyy-M-dd", "weekStart": 1, "autoclose": true}); - $('.dropdown-toggle').dropdown(); + $('.dropdown-toggle').dropdown(); }); function export_to(path) @@ -80,7 +81,3 @@ function export_to(path) var form_params = $("#frm_report").serialize(); window.location = path+"?"+ form_params; } - - - - diff --git a/app/controllers/settings/promotions_controller.rb b/app/controllers/settings/promotions_controller.rb index 63773b01..246bd51b 100644 --- a/app/controllers/settings/promotions_controller.rb +++ b/app/controllers/settings/promotions_controller.rb @@ -71,6 +71,7 @@ class Settings::PromotionsController < ApplicationController # Never trust parameters from the scary internet, only allow the white list through. def promotion_params - params.require(:promotion).permit(:promo_code, :promo_start_date, :promo_end_date, :promo_start_hour,:promo_end_hour ,:promo_day, :promo_type,:original_product ,:min_qty ,:created_by,:promotion_products_attributes => [:item_code, :min_qty, :net_off, :net_price, :percentage, :_destroy]) + params.require(:promotion).permit(:promo_code, :promo_start_date, :promo_end_date, :promo_start_hour,:promo_end_hour ,:promo_day, :promo_type,:original_product ,:min_qty ,:created_by, + :promotion_products_attributes => [:item_code, :min_qty, :net_off, :net_price, :percentage, :_destroy]) end end diff --git a/app/views/settings/promotions/_form.html.erb b/app/views/settings/promotions/_form.html.erb index dfdd40c2..474dcb3d 100644 --- a/app/views/settings/promotions/_form.html.erb +++ b/app/views/settings/promotions/_form.html.erb @@ -39,54 +39,20 @@
<%= f.input :original_product,collection: MenuItem.order("name desc"),input_html: { selected: 2 } %>
<%= f.input :min_qty %>
- -
- - - - - - - - - - - - <% @promotion.promotion_products.each do |pp| %> - - - - - - - - - - - +

<%= f.link_to_add "Add Product", :promotion_products, :class => 'btn btn-primary' %>

+
+ <%= f.fields_for :promotion_products do |p| %> +
+
<%= p.input :item_code , :class => "form-control" %>
+
<%= p.input :min_qty , :class => "form-control" %>
+
<%= p.input :net_off , :class => "form-control" %>
+
<%= p.input :net_price , :class => "form-control" %>
+
<%= p.input :percentage , :class => "form-control" %>
+
<%= p.link_to_remove "X"%>
+
<% end %> - <%= f.fields_for :promotion_products, PromotionProduct.new do |pro| %> - - - - - - - - - - - <% end %> - -
Item CodeMin QtyNet offNet PricePercentage<%= f.link_to_add "Add Product", :promotion_products, :class => 'btn btn-primary' %>
<%= pp.item_code %><%= pp.min_qty %><%= pp.net_off %><%= pp.net_price %><%= pp.percentage %><%= link_to 'Edit', edit_settings_promotion_promotion_product_path(@promotion,pp) %><%= link_to 'Destroy', settings_promotion_promotion_product_path(@promotion,pp), method: :delete, data: { confirm: 'Are you sure?' } %>
<%= pro.input :item_code , :class => "form-control" %><%= pro.input :min_qty , :class => "form-control"%><%= pro.input :net_off , :class => "form-control" %><%= pro.input :net_price , :class => "form-control" %><%= pro.input :percentage , :class => "form-control" %><%= pro.link_to_remove "X" %>