Author: Hugo Melo <hugo@riseup.net>
Fix product modal fields not emptying on add product
%!v(PANIC=String method: strings: negative Repeat count)
diff --git a/plugins/suppliers/controllers/myprofile/suppliers_plugin/product_controller.rb b/plugins/suppliers/controllers/myprofile/suppliers_plugin/product_controller.rb index aad63f8165131283815a8c7d4f0f72fb0d959591..b3e793f5115898dc630fd550320bf8d319a9b930 100644 --- a/plugins/suppliers/controllers/myprofile/suppliers_plugin/product_controller.rb +++ b/plugins/suppliers/controllers/myprofile/suppliers_plugin/product_controller.rb @@ -24,9 +24,9 @@ end def edit @product = profile.products.supplied.find params[:id] - @product.update params.require(:product).permit(:name, :product_category_id, :margin_percentage, :available, :unit_id, :supplier_price) + @product.update params.require(:product).permit(:name, :description, :product_category_id, :margin_percentage, :available, :unit_id, :supplier_price) - render nothing: true + render json: @product.reload, serializer: SuppliersPlugin::ProductSerializer end def set_image diff --git a/plugins/suppliers/public/javascripts/views/product-modal.tag.slim b/plugins/suppliers/public/javascripts/views/product-modal.tag.slim index fab4833563d1bb028e1a020df56485580e474f1b..73853576501c7b53af095a2386bf4ba071d02f3b 100644 --- a/plugins/suppliers/public/javascripts/views/product-modal.tag.slim +++ b/plugins/suppliers/public/javascripts/views/product-modal.tag.slim @@ -32,7 +32,7 @@ |{t("views.product.product_name")} small.title if="{product.id}" |{t("views.product.name_change_warning")} input type="text" value="{product.name}" id="p-name" - small.supplier_product_name show="{product.supplier_product_name != product.name}" + small.supplier_product_name show="{product.supplier_product_name != product.name && product.supplier_product_name != undefined}" strong |{t("views.product.supplier_product_name")} |{this.product.supplier_product_name} diff --git a/plugins/suppliers/public/javascripts/views/product-page.tag.slim b/plugins/suppliers/public/javascripts/views/product-page.tag.slim index 13754128116d3d10fd945f72b391890ab03481ca..8c3f4bbbd3c98247e55f893e3a8f677d4c7fd967 100644 --- a/plugins/suppliers/public/javascripts/views/product-page.tag.slim +++ b/plugins/suppliers/public/javascripts/views/product-page.tag.slim @@ -251,6 +251,8 @@ completeEdition(product, productItem) { this.tags['product-modal'].product = product this.tags['product-modal'].productItem = productItem this.tags['product-modal'].update() + // riot is buggy!! + $("#p-description").val(this.tags['product-modal'].product.description) } typeaheadCategoryInit (input, selected) { @@ -288,9 +290,15 @@ } add() { var product = { + name: " ", available: true, - margin_percentage: 0, - supplier_price: 0 + margin_percentage: " ", + supplier_price: " ", + product_category_id: " ", + supplier_id: " ", + unit_id: " ", + category: " ", + unit: " " } this.completeEdition(product, {update: function(){}, product: {}}) } diff --git a/plugins/suppliers/serializers/suppliers_plugin/product_serializer.rb b/plugins/suppliers/serializers/suppliers_plugin/product_serializer.rb index 76210bdea4fc1b5716391c79ba8d9323db5e7f4e..091c63d78efceb2f013ca85b38763ba17524e0b9 100644 --- a/plugins/suppliers/serializers/suppliers_plugin/product_serializer.rb +++ b/plugins/suppliers/serializers/suppliers_plugin/product_serializer.rb @@ -28,6 +28,9 @@ def name product[:name] || product[:from_product_name] end + def description + product[:description] || product[:from_product_description] + end def unit_id product[:unit_id] || product[:from_product_unit_id] end @@ -36,7 +39,7 @@ product[:from_product_price] || product.supplier_price end def supplier_product_name - product[:from_product_name] || product.supplier_product_name + product[:from_product_name] || (product.supplier_product && product.supplier_product.name) end def available