\ No newline at end of file
diff --git a/app/views/admin/communication/library/files/picker.json.jbuilder b/app/views/admin/communication/library/files/picker.json.jbuilder
new file mode 100644
index 0000000000..5a53b4652a
--- /dev/null
+++ b/app/views/admin/communication/library/files/picker.json.jbuilder
@@ -0,0 +1,17 @@
+json.parameters @picker.parameters
+json.pagination @picker.pagination
+json.results do
+ json.list @picker.results do |file|
+ l10n = file.localized_in(current_language)
+ json.data do
+ json.communication_file_id file.id
+ json.filename l10n.original_filename
+ json.name l10n.name
+ end
+ json.snippet render(
+ partial: 'admin/communication/library/files/file',
+ locals: { file: file },
+ formats: [:html]
+ )
+ end
+end
\ No newline at end of file
diff --git a/app/views/admin/layouts/application.html.erb b/app/views/admin/layouts/application.html.erb
index 63a1b4decf..fd49d221ad 100644
--- a/app/views/admin/layouts/application.html.erb
+++ b/app/views/admin/layouts/application.html.erb
@@ -1,5 +1,5 @@
-
+">
diff --git a/config/initializers/vue_i18n.rb b/config/initializers/vue_i18n.rb
index 22f123e897..1d3b492081 100644
--- a/config/initializers/vue_i18n.rb
+++ b/config/initializers/vue_i18n.rb
@@ -1,13 +1,15 @@
-# Génère les fichiers de traduction statiques des apps Vue dans
-# public/vue/.json. Ils servent de messages à vue-i18n (cf.
-# app/javascript/apps/index.js) et sont chargés une seule fois, en statique
-# cacheable, plutôt que sérialisés dans chaque page.
+# Génère les messages de traduction des apps Vue dans app/assets/builds/vue/,
+# aux côtés de vue-apps.js (cf. app/assets/config/manifest.js: link_tree
+# ../builds). Sprockets les prend donc en charge comme n'importe quel asset :
+# digest de cache-busting et far-future cache-control automatiques, servis via
+# asset_path("vue/#{locale}.json") (cf. layout admin et app/javascript/apps/i18n.js).
#
-# after_initialize garantit que tous les config/locales/**/*.yml sont bien
-# ajoutés à I18n.load_path. En dev, redémarrer le serveur régénère les fichiers
-# après modification d'une traduction.
Rails.application.config.after_initialize do
- output_dir = Rails.root.join('public', 'vue')
+ # after_initialize garantit que tous les config/locales/**/*.yml sont bien
+ # ajoutés à I18n.load_path, et s'exécute avant assets:precompile (jsbundling-rails
+ # le fait dépendre de la tâche `environment`). En dev, redémarrer le serveur
+ # régénère les fichiers après modification d'une traduction.
+ output_dir = Rails.root.join('app', 'assets', 'builds', 'vue')
FileUtils.mkdir_p(output_dir)
I18n.available_locales.each do |locale|
translations = I18n.t('vue', locale: locale, default: {})
diff --git a/config/locales/vue/en.yml b/config/locales/vue/en.yml
index cf32651fd1..47125fa183 100644
--- a/config/locales/vue/en.yml
+++ b/config/locales/vue/en.yml
@@ -115,6 +115,21 @@ en:
title: Photo library
remove: Remove image
title: Image
+ picker:
+ pagination:
+ next: Next page
+ previous: Previous page
+ parameters:
+ search:
+ title: Search
+ placeholder: Type your search here
+ filters: Filter
+ sorts: Sort
+ kind:
+ files:
+ button: Choose a file in the library
+ modal:
+ title: File library
timeSlots:
add: Add a time slot
datetime:
diff --git a/config/locales/vue/fr.yml b/config/locales/vue/fr.yml
index 94f65e3cad..fcde6ad5fd 100644
--- a/config/locales/vue/fr.yml
+++ b/config/locales/vue/fr.yml
@@ -115,6 +115,21 @@ fr:
title: Photothèque
remove: Supprimer l'image
title: Image
+ picker:
+ pagination:
+ next: Page suivante
+ previous: Page précédente
+ parameters:
+ search:
+ title: Chercher
+ placeholder: Tapez le texte
+ filters: Filtrer
+ sorts: Trier
+ kind:
+ files:
+ button: Choisir un fichier dans la bibliothèque
+ modal:
+ title: Bibliothèque de fichiers
timeSlots:
add: Ajouter un créneau horaire
datetime:
diff --git a/config/routes/admin/communication.rb b/config/routes/admin/communication.rb
index 58cfb1278f..890f7bd80d 100644
--- a/config/routes/admin/communication.rb
+++ b/config/routes/admin/communication.rb
@@ -292,7 +292,7 @@
resources :files do
collection do
post 'direct-upload' => 'files#direct_upload', as: :direct_upload
- post 'pick' => 'files#pick', as: :pick
+ get 'picker' => 'files#picker', as: :picker
resources :categories, controller: '/admin/communication/library/files/categories', as: 'file_categories' do
collection do
post :reorder