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' + + ' {caption}\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 %> - -
+
+
<%= f.input :item_code, :input_html => { :id => 'item_code' } %> <%= f.input :name %> <%= f.input :alt_name %> <%= f.input :unit_price %> - <%= f.input :image_path %> - <%= f.input :description %> <%= f.input :information %>
+
+ + +
+
+
+ + <%= f.file_field :image_path, :class => "img-thumbnail" %> +
+
<%= f.button :submit %> diff --git a/public/image/product_images/19403447_1137374939742115_1285237333_o.jpg b/public/image/product_images/19403447_1137374939742115_1285237333_o.jpg new file mode 100644 index 00000000..da3d4eae Binary files /dev/null and b/public/image/product_images/19403447_1137374939742115_1285237333_o.jpg differ diff --git a/public/image/product_images/Screenshot_from_2017-08-21_11-56-42.png b/public/image/product_images/Screenshot_from_2017-08-21_11-56-42.png new file mode 100644 index 00000000..646573fd Binary files /dev/null and b/public/image/product_images/Screenshot_from_2017-08-21_11-56-42.png differ diff --git a/public/image/product_images/Screenshot_from_2017-08-21_11-57-41.png b/public/image/product_images/Screenshot_from_2017-08-21_11-57-41.png new file mode 100644 index 00000000..4a9bff39 Binary files /dev/null and b/public/image/product_images/Screenshot_from_2017-08-21_11-57-41.png differ