diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js
index bd7c9761..eb4b4963 100644
--- a/app/assets/javascripts/application.js
+++ b/app/assets/javascripts/application.js
@@ -48,6 +48,26 @@ $(document).on('turbolinks:load', function() {
'\n',
}
});
+
+ $("#product_image_path").fileinput({
+ previewFileType: "image",
+ allowedFileExtensions: ["jpg", "gif", "png"],
+ browseClass: "btn btn-success",
+ browseLabel: "Pick Image",
+ browseIcon: " ",
+ removeClass: "btn btn-danger",
+ removeLabel: "Delete",
+ removeIcon: " ",
+ showUpload: false,
+ // uploadClass: "btn btn-info",
+ // uploadLabel: "Upload",
+ // uploadIcon: " ",
+ previewTemplates: {
+ image: '
\n' +
+ '

\n' +
+ '
\n',
+ }
+ });
});
$(document).on("focus", "[data-behaviour~='datepicker']", function(e){
diff --git a/app/models/product.rb b/app/models/product.rb
index 042e1730..8f6811e2 100644
--- a/app/models/product.rb
+++ b/app/models/product.rb
@@ -1,3 +1,6 @@
class Product < ApplicationRecord
validates_presence_of :name
+
+ # Product Image Uploader
+ mount_uploader :image_path, ProductImageUploader
end
diff --git a/app/uploaders/product_image_uploader.rb b/app/uploaders/product_image_uploader.rb
new file mode 100644
index 00000000..04049127
--- /dev/null
+++ b/app/uploaders/product_image_uploader.rb
@@ -0,0 +1,58 @@
+class ProductImageUploader < CarrierWave::Uploader::Base
+
+ # Include RMagick or MiniMagick support:
+ # include CarrierWave::RMagick
+ # include CarrierWave::MiniMagick
+
+ # Choose what kind of storage to use for this uploader:
+ storage :file
+ # storage :fog
+
+ def root
+ Rails.root.join 'public/'
+ end
+
+ # Override the directory where uploaded files will be stored.
+ # This is a sensible default for uploaders that are meant to be mounted:
+ def store_dir
+ "image/product_images"
+ # "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
+ end
+
+ # def cache_dir
+ # '/tmp/images'
+ # end
+
+ # Provide a default URL as a default if there hasn't been a file uploaded:
+ # def default_url(*args)
+ # # For Rails 3.1+ asset pipeline compatibility:
+ # # ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
+ #
+ # "/images/fallback/" + [version_name, "default.png"].compact.join('_')
+ # end
+
+ # Process files as they are uploaded:
+ # process scale: [200, 300]
+ #
+ # def scale(width, height)
+ # # do something
+ # end
+
+ # Create different versions of your uploaded files:
+ # version :thumb do
+ # process resize_to_fit: [50, 50]
+ # end
+
+ # Add a white list of extensions which are allowed to be uploaded.
+ # For images you might use something like this:
+ def extension_whitelist
+ %w(jpg jpeg gif png)
+ end
+
+ # Override the filename of the uploaded files:
+ # Avoid using model.id or version_name here, see uploader/store.rb for details.
+ # def filename
+ # "something.jpg" if original_filename
+ # end
+
+end
diff --git a/app/views/settings/products/_form.html.erb b/app/views/settings/products/_form.html.erb
index a6711a82..ae651cb1 100644
--- a/app/views/settings/products/_form.html.erb
+++ b/app/views/settings/products/_form.html.erb
@@ -1,17 +1,33 @@
<%= simple_form_for([:settings,@settings_product]) do |f| %>
<%= f.error_notification %>
-
-