From a107111c137ca825ccc59cb032d11f8a9a4a1ed1 Mon Sep 17 00:00:00 2001
From: pabois <pierreandre.boissinot@noesya.coop>
Date: Mon, 29 Jan 2024 17:37:09 +0100
Subject: [PATCH] move file limits in application config

---
 app/helpers/application_helper.rb                             | 4 ++--
 app/models/communication/block.rb                             | 2 --
 .../admin/communication/blocks/components/file/_edit.html.erb | 2 +-
 .../communication/blocks/components/image/_edit.html.erb      | 2 +-
 app/views/admin/communication/blocks/edit.html.erb            | 2 +-
 .../communication/blocks/templates/gallery/_edit.html.erb     | 2 +-
 config/application.rb                                         | 4 ++++
 7 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index f26c463fe..83551e553 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -69,7 +69,7 @@ module ApplicationHelper
     Rails.application.config.default_audio_formats.join(', ')
   end
 
-  def file_hint(filesize: number_to_human_size(Communication::Block::FILE_MAX_SIZE), formats: [])
+  def file_hint(filesize: number_to_human_size(Rails.application.config.default_files_size_max), formats: [])
     if formats.empty?
       t('file_hint_without_formats', filesize: filesize)
     else
@@ -78,7 +78,7 @@ module ApplicationHelper
   end
 
   def images_formats_accepted_hint(formats: default_images_formats_accepted)
-    file_hint(filesize: number_to_human_size(Communication::Block::IMAGE_MAX_SIZE), formats: formats)
+    file_hint(filesize: number_to_human_size(Rails.application.config.default_images_size_max), formats: formats)
   end
   
   def audio_formats_accepted_hint(formats: default_audio_formats_accepted)
diff --git a/app/models/communication/block.rb b/app/models/communication/block.rb
index aad6c670d..8ce38b141 100644
--- a/app/models/communication/block.rb
+++ b/app/models/communication/block.rb
@@ -39,8 +39,6 @@ class Communication::Block < ApplicationRecord
   include WithUniversity
   include Sanitizable
 
-  IMAGE_MAX_SIZE = 5.megabytes
-  FILE_MAX_SIZE = 100.megabytes
   BLOCK_COPY_COOKIE = 'osuny-content-editor-block-copy'
 
   belongs_to  :about, polymorphic: true
diff --git a/app/views/admin/communication/blocks/components/file/_edit.html.erb b/app/views/admin/communication/blocks/components/file/_edit.html.erb
index ec26c7673..7535ae4a1 100644
--- a/app/views/admin/communication/blocks/components/file/_edit.html.erb
+++ b/app/views/admin/communication/blocks/components/file/_edit.html.erb
@@ -14,7 +14,7 @@ accept ||= '*'
             type="file"
             accept="<%= accept %>"
             @change="onFileImageChange( $event, <%= model %>, '<%= property %>' )"
-            data-size-limit="<%= Communication::Block::FILE_MAX_SIZE %>"
+            data-size-limit="<%= Rails.application.config.default_files_size_max %>"
             :id="<%= dom_id.html_safe %>">
   </div>
   <div v-if="<%= model %>.<%= property %>.id">
diff --git a/app/views/admin/communication/blocks/components/image/_edit.html.erb b/app/views/admin/communication/blocks/components/image/_edit.html.erb
index a16a19052..2e57c936d 100644
--- a/app/views/admin/communication/blocks/components/image/_edit.html.erb
+++ b/app/views/admin/communication/blocks/components/image/_edit.html.erb
@@ -13,7 +13,7 @@ hint = images_formats_accepted_hint
             type="file"
             accept="<%= default_images_formats_accepted %>"
             @change="onFileImageChange( $event, <%= model %>, '<%= property %>' )"
-            data-size-limit="<%= Communication::Block::IMAGE_MAX_SIZE %>"
+            data-size-limit="<%= Rails.application.config.default_images_size_max %>"
             :id="<%= dom_id.html_safe %>"
             >
   </div>
diff --git a/app/views/admin/communication/blocks/edit.html.erb b/app/views/admin/communication/blocks/edit.html.erb
index a5ad1b8da..4b678750a 100644
--- a/app/views/admin/communication/blocks/edit.html.erb
+++ b/app/views/admin/communication/blocks/edit.html.erb
@@ -84,7 +84,7 @@
       },
       uploadFile(input, file, object, key) {
         var size = Math.round(file.size / 1024 / 1024),
-            sizeLimit = <%= Communication::Block::IMAGE_MAX_SIZE %>,
+            sizeLimit = <%= Rails.application.config.default_images_size_max %>,
             sizeLimitMo = 0,
             controller;
         if (input.hasAttribute('data-size-limit')) {
diff --git a/app/views/admin/communication/blocks/templates/gallery/_edit.html.erb b/app/views/admin/communication/blocks/templates/gallery/_edit.html.erb
index e86595717..a107499c4 100644
--- a/app/views/admin/communication/blocks/templates/gallery/_edit.html.erb
+++ b/app/views/admin/communication/blocks/templates/gallery/_edit.html.erb
@@ -12,7 +12,7 @@
         type="file"
         accept="<%= default_images_formats_accepted %>"
         @change="onMultipleFileImageChange( $event, 'image' )"
-        data-size-limit="<%= Communication::Block::IMAGE_MAX_SIZE %>"
+        data-size-limit="<%= Rails.application.config.default_images_size_max %>"
         multiple>
 
 <div class="form-text mb-2">
diff --git a/config/application.rb b/config/application.rb
index c81a51f8a..edde33281 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -70,6 +70,10 @@ module Osuny
     ]
 
     config.allowed_special_chars = '#?!,_@$%^&*+:;£µ-'
+
+    # FILES
+    config.default_files_size_max = 100.megabytes
+    config.default_images_size_max = 5.megabytes
     config.default_images_formats = ['.jpg', '.jpeg', '.png', '.svg']
     config.default_audio_formats = ['.mp3']
 
-- 
GitLab