Commit Graph

49 Commits

Author SHA1 Message Date
Maikel Linke
0d8df5d2a8 Replace Bugsnag calls with Alert.raise 2024-11-21 15:58:55 +11:00
Maikel Linke
f21aca234c Remove direct dependency on MiniMagick
We still depend on it as long as we set it as image processor but now we
can switch to another image processor without changing the code around
error handling.

We now rescue from unknown errors during image processing which should
make the app more robust.
2024-08-13 15:25:58 +10:00
Maikel Linke
93edf4e3ad Load MiniMagick before use
We only reference MiniMagick when rescuing errors but when it's not
loaded, that code fails to find the error class itself to apply the
rescue block.

The rescue block is covered by a spec but the code passes there as
MiniMagick is loaded.

We can see this error only in development, staging and production.
2024-08-09 14:25:29 +10:00
Matt-Yorkley
91fc4b51b4 Rescue ImageMagick errors 2023-07-31 17:21:49 +01:00
Maikel Linke
33d212d274 Gracefully deal with missing S3 config
I could have split this into several commits:

* DRY direct linking to images.
* Check S3 config before direct linking.
* Just check if service is public instead of relying on name.

Developers may copy a staging or production database or experiment with
S3 storage. But when the S3 config is missing then calling `service`
raises an ArgumentError due to a missing name.

Now we only try to call `service` if the S3 config is present.
2023-06-23 12:41:36 +10:00
Matt-Yorkley
776eac9f52 Add image error Bugsnag notifications 2023-06-20 14:14:19 +01:00
Matt-Yorkley
5ad37ce6a5 Return default image url on ActiveStorage errors in image loading 2023-06-14 12:53:20 +01:00
Matt-Yorkley
b510668ecf Render direct URLs for s3 images 2023-06-14 10:56:10 +01:00
Matt-Yorkley
551d0d3a93 Simplify calling #url_for in models 2023-06-14 10:56:10 +01:00
Matt-Yorkley
a898915724 Use named image variants 2023-06-14 10:56:10 +01:00
Matt-Yorkley
e54cff2274 Set images to public-read
Defining an alternate s3 configuration set to `public: true` means we can use it selectively. It sets the objects to `acl: "public-read"` by default (read-only) and means any image tags for those assets can use direct public links in the src attribute (without hitting the ActiveStorage::Representation endpoint). The default non-public service will still be used by default for any other files on instances using s3.
2023-06-14 10:56:10 +01:00
saunmanoj888
c3d274c84f Fix corrupt and invalid image upload issue 2023-04-19 16:11:46 +10:00
Neal Chambers
940f806e5f Fix Rubocop Layout/LineLength 2023-04-04 09:44:15 +09:00
Maikel Linke
3ebd896c3e Remove outdated ignoring of columns
Those columns have been removed from the database and don't need to be
ignored any more.
2022-10-26 10:42:19 +11:00
AthiraKadampatta
80eef9c302 9726 Add attachment_width and attachment_height to the list of ignored columns for spree images 2022-10-10 16:52:02 +02:00
AthiraKadampatta
1f161bee1f Add paperclip columns to ignored columns list for enterprise, enterprise group, terms_of_service_file, spree/image models 2022-10-10 16:52:02 +02:00
Maikel Linke
b419f063dc Support WEBP images again
We introduced a list of formats we support and forgot to add webp. Now I
added that as allowed format again and modified the error message.

I removed the first sentence from the error message because it's very
similar to the default error which is shown as well.
2022-07-26 11:09:41 +10:00
Jean-Baptiste Bellet
2b67a0fa80 Specify a list of content-types
Then remove specific image format that aren't handled by a web browser (such as `image/x+xcf)`

+ List allowed image formats for enterprises and groups
2022-07-21 08:42:17 +02:00
Maikel Linke
004c7eef9e Show SVG product images 2022-06-14 15:35:55 +10:00
Maikel Linke
b7efa1b018 Replace Paperclip on Spree::Image 2022-06-01 17:16:55 +10:00
Maikel Linke
c36ad96acc Move file duplication code to concern to share
I chose `has_one_migrating` as method name for two reasons:

 1. It reflects Active Storage's method `has_one_attached`.
 2. And it has the same length as Paperclip's `has_attached_file`.
    Therefore the commits don't need any whitespace changes.

When we change it to `has_one_attached`, we will also remove the
Paperclip options which then don't need whitespace changes either.
2022-04-25 13:00:31 +10:00
Maikel Linke
ec64e5c8f7 Store images with Active Storage as well
While we migrate from Paperclip to Active Storage, we need to use both
at the same time to avoid any downtime or lost images.

Once the migration is complete, we want to use the same name for
attachment as before. Using Paperclip and Active Storage at the same
time creates a name conflict on a couple of methods.

I'm using alias_method as a temporary solution to access Active Storage
methods. We will remove that after the migration. I declare Paperclip
afterwards so that we have those methods declarations for backwards
compatibility now.
2022-04-25 13:00:31 +10:00
Luis Azcuaga
e8fd89a6d2 Run rubocop over existing todo 2021-10-25 21:28:28 -05:00
Adrien Chauve
3d6654a4b5 Cleanup errors on wrong image format
-> Remove all duplicates and use the same error message than in product
creation.
2021-10-17 22:47:12 +02:00
Luis Ramos
23627c5453 Run rubocop -a (safe corrections) removing all exceptions so all possible fixes are applied
9290 issues fixed
2021-06-17 22:19:26 +01:00
Maikel Linke
6bf041aa74 Reduce complexity 2020-12-10 15:33:34 +11:00
Maikel Linke
e6c411684f Don't fail on missing images when resizing
The changed code obtains the image dimensions when you first upload an
image. Unfortunately it's also triggered when thumbnails are refreshed.
That doesn't change the size of the original image though.
2020-12-10 15:32:43 +11:00
Luis Ramos
88ac5dc955 Fix rubocop issues by refactoring code 2020-11-10 00:03:34 +00:00
Luis Ramos
e879aa1bed Switch to s3_alias_url that enabble virtual host type of path 2020-11-10 00:03:33 +00:00
Luis Ramos
94a815a9ef Upgrade aws-sdk and set s3 host name using the provided url config.
This will enable us to set hostnames with the s3 region defined and that
will make our image upload work for all s3 regions.
2020-11-10 00:03:33 +00:00
Luis Ramos
f6d0905517 Add s3_support require to image.rb 2020-11-04 12:15:45 +00:00
Matt-Yorkley
df3ac0394c Fix #s3_credentials 2020-10-25 14:04:33 +00:00
Matt-Yorkley
28590fdad4 Merge pull request #6223 from luisramos0/image_default_styles
Update image default styles
2020-10-22 17:54:32 +02:00
Matt-Yorkley
eb026f2e22 Use "sRBG" colourspace.
This seems to be the correct setting, and fixes a bug with the colouring of uploaded images. Further details:
https://imagemagick.org/script/color-management.php
https://www.imagemagick.org/discourse-server/viewtopic.php?t=20501
2020-10-21 14:26:26 +01:00
Matt-Yorkley
92d6168a14 Don't restrict image filetypes to JPG 2020-10-21 13:42:07 +01:00
Luis Ramos
3dc3e0970e Update image default styles 2020-10-20 11:31:01 +01:00
Luis Ramos
10ed1f04c1 Revert default styles to what they were before, we can do this in a separate PR 2020-10-20 11:25:55 +01:00
Luis Ramos
16f9ef4ace Simplify method 2020-10-20 11:20:37 +01:00
Luis Ramos
f4d8bdc17e Fix easy rubocop issues 2020-10-20 11:20:37 +01:00
Luis Ramos
f3490e5668 Replace Spree::Image with self 2020-10-20 11:20:37 +01:00
Luis Ramos
7cf6518175 Set default values for styles directly in the attachment property without using Spree::Config
Only use ENV vars for attachment path and url coming from ofn-install
2020-10-20 11:20:37 +01:00
Luis Ramos
d15abe14d1 Join reformat styles and set attachement definitions and explain why we need to run them every time Spree::Image is loaded although this is also done in the spree initializer 2020-10-20 11:20:37 +01:00
Luis Ramos
6151c7420b Move S3 attachment definitions to Spree::Image 2020-10-20 11:20:37 +01:00
Luis Ramos
fdd7049857 Reuse Spree::Image.set_attachment_definitions 2020-10-20 11:20:37 +01:00
Luis Ramos
98c5fdcf26 Reuse some code from Spree::Image in the spree initializer and extract some code to a class method so we can reuse afterwards 2020-10-20 11:20:37 +01:00
Luis Ramos
b36d0bc4f3 Fix easy rubocop isssues 2020-09-01 17:09:22 +01:00
Luis Ramos
5958c2f68c Rubocop autocorrect 2020-09-01 17:09:22 +01:00
Luis Ramos
13f0a46bc2 Merge decorator with original file from spree 2020-09-01 17:09:22 +01:00
Luis Ramos
b9f7a98c46 Bring image, asset and images_helper from spree_core 2020-09-01 17:09:22 +01:00