spina 2.7.0 → 2.9.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of spina might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/README.md +0 -2
- data/Rakefile +2 -1
- data/app/assets/builds/spina/tailwind.css +3480 -0
- data/app/assets/config/spina/manifest.js +3 -1
- data/app/assets/javascripts/spina/controllers/image_collection_controller.js +5 -3
- data/app/assets/javascripts/spina/controllers/infinite_scroll_controller.js +4 -2
- data/app/assets/stylesheets/spina/{_animate.css → animate.css} +0 -0
- data/app/assets/stylesheets/spina/{tailwind/custom.css → application.tailwind.css} +40 -46
- data/app/assets/stylesheets/spina/{_fonts.css.erb → fonts.css.erb} +0 -0
- data/app/components/spina/forms/trix_toolbar_component.html.erb +1 -1
- data/app/components/spina/media_picker/image_component.html.erb +1 -1
- data/app/components/spina/media_picker/modal_component.html.erb +4 -4
- data/app/components/spina/user_interface/tab_link_component.html.erb +1 -1
- data/app/components/spina/user_interface/translations_component.html.erb +21 -0
- data/app/components/spina/user_interface/translations_component.rb +26 -0
- data/app/controllers/concerns/spina/frontend.rb +1 -1
- data/app/controllers/spina/admin/images_controller.rb +3 -2
- data/app/controllers/spina/admin/layout_controller.rb +1 -1
- data/app/controllers/spina/admin/navigation_items_controller.rb +1 -1
- data/app/helpers/spina/images_helper.rb +15 -0
- data/app/models/concerns/spina/partable.rb +1 -1
- data/app/models/spina/parts/attachment.rb +1 -1
- data/app/models/spina/parts/base.rb +2 -1
- data/app/presenters/spina/menu_presenter.rb +26 -3
- data/app/views/layouts/spina/admin/admin.html.erb +1 -1
- data/app/views/layouts/spina/admin/application.html.erb +2 -2
- data/app/views/spina/admin/images/_image.html.erb +34 -26
- data/app/views/spina/admin/images/index.html.erb +1 -1
- data/app/views/spina/admin/images/show.html.erb +3 -1
- data/app/views/spina/admin/layout/edit.html.erb +2 -0
- data/app/views/spina/admin/media_folders/_media_folder.html.erb +5 -3
- data/app/views/spina/admin/navigation_items/_form.html.erb +5 -1
- data/app/views/spina/admin/navigations/edit.html.erb +1 -1
- data/app/views/spina/admin/pages/_form.html.erb +2 -2
- data/app/views/spina/admin/pages/index.html.erb +1 -1
- data/app/views/spina/admin/parts/attachments/_form.html.erb +2 -1
- data/app/views/spina/admin/parts/image_collections/_form.html.erb +1 -0
- data/app/views/spina/admin/parts/images/_form.html.erb +1 -0
- data/app/views/spina/admin/parts/lines/_form.html.erb +1 -0
- data/app/views/spina/admin/parts/options/_form.html.erb +2 -1
- data/app/views/spina/admin/parts/repeaters/_form.html.erb +2 -1
- data/app/views/spina/admin/parts/texts/_form.html.erb +1 -0
- data/app/views/spina/admin/resources/edit.html.erb +6 -1
- data/app/views/spina/admin/shared/_navigation.html.erb +1 -1
- data/config/locales/de.yml +63 -28
- data/config/locales/fr.yml +190 -152
- data/lib/generators/spina/install_generator.rb +8 -3
- data/lib/generators/spina/tailwind_config_generator.rb +10 -0
- data/{app/assets/config/spina/tailwind.config.js → lib/generators/spina/templates/app/assets/config/spina/tailwind.config.js.tt} +5 -7
- data/lib/generators/spina/templates/config/initializers/themes/default.rb +1 -1
- data/lib/generators/spina/templates/config/initializers/themes/demo.rb +2 -2
- data/lib/spina/version.rb +1 -1
- data/lib/spina.rb +22 -11
- data/lib/tasks/install.rake +45 -0
- data/lib/tasks/tailwind.rake +22 -0
- metadata +27 -11
- data/app/assets/stylesheets/spina/_tailwind.css +0 -203643
- data/app/assets/stylesheets/spina/application.css +0 -6
- data/lib/spina/tailwind_purger.rb +0 -147
- data/lib/tasks/spina_tasks.rake +0 -75
data/config/locales/fr.yml
CHANGED
@@ -1,4 +1,10 @@
|
|
1
1
|
fr:
|
2
|
+
activemodel:
|
3
|
+
attributes:
|
4
|
+
spina/embeds/youtube:
|
5
|
+
url: youtube.com/watch?v=...
|
6
|
+
spina/embeds/vimeo:
|
7
|
+
url: vimeo.com/...
|
2
8
|
activerecord:
|
3
9
|
attributes:
|
4
10
|
spina/account:
|
@@ -37,21 +43,21 @@ fr:
|
|
37
43
|
pages_description: Sélectionnez les pages que vous voulez utiliser dans cette navigation
|
38
44
|
spina/page:
|
39
45
|
ancestry: Page parente
|
40
|
-
created_at:
|
46
|
+
created_at: Créer le
|
41
47
|
description: Meta description
|
42
48
|
description_description: Cette description sera affichée dans les résultats de recherche
|
43
49
|
description_placeholder: Petite description de votre page
|
44
50
|
draft: Brouillon
|
45
51
|
draft_description: Idéal lorsque votre page n'est pas tout à fait terminée
|
46
|
-
link_url:
|
47
|
-
link_url_description:
|
48
|
-
link_url_placeholder:
|
52
|
+
link_url: URL de redirection
|
53
|
+
link_url_description: Rediriger vers
|
54
|
+
link_url_placeholder: e.g. http://www.example.com/
|
49
55
|
menu_title: Titre dans la navigation
|
50
56
|
menu_title_placeholder: Laissez vide pour utiliser le titre de la page
|
51
57
|
no_parent: Pas de parent
|
52
|
-
resource:
|
58
|
+
resource: Ressource
|
53
59
|
seo_title: Balise SEO <title>
|
54
|
-
seo_title_description:
|
60
|
+
seo_title_description: Assurez vous que vos résultats de recherche sont clairs dans les moteurs de recherche
|
55
61
|
seo_title_placeholder: Ce titre est utilisé dans a balise <title>
|
56
62
|
show_in_menu: Afficher dans la navigation
|
57
63
|
show_in_menu_description: Si désactivé cette page ne sera pas affichée dans la navigation
|
@@ -59,15 +65,15 @@ fr:
|
|
59
65
|
skip_to_first_child_description: Renvoyer vers la première page enfant
|
60
66
|
title: Titre
|
61
67
|
title_placeholder: Titre de la page
|
62
|
-
url_title:
|
63
|
-
url_title_description:
|
64
|
-
url_title_placeholder:
|
68
|
+
url_title: Remplacez le slug
|
69
|
+
url_title_description: Optionnel
|
70
|
+
url_title_placeholder: Slug
|
65
71
|
view_template: Modèle de page
|
66
72
|
spina/resource:
|
67
|
-
label:
|
68
|
-
order_by:
|
69
|
-
parent_page:
|
70
|
-
view_template:
|
73
|
+
label: Label
|
74
|
+
order_by: Trier par
|
75
|
+
parent_page: Page parente
|
76
|
+
view_template: Modèle de page par défaut
|
71
77
|
spina/user:
|
72
78
|
admin: Administrateur
|
73
79
|
admin_description: Les administrateurs peuvent créer des utilisateurs
|
@@ -94,21 +100,31 @@ fr:
|
|
94
100
|
spina/user:
|
95
101
|
one: Utilisateur
|
96
102
|
other: Utilisateurs
|
103
|
+
helpers:
|
104
|
+
label:
|
105
|
+
spina/embeds/button:
|
106
|
+
url: URL
|
107
|
+
label: Label du bouton
|
108
|
+
spina/embeds/youtube:
|
109
|
+
url: URL Youtube
|
110
|
+
spina/embeds/vimeo:
|
111
|
+
url: URL Vimeo
|
97
112
|
spina:
|
98
113
|
accounts:
|
99
|
-
contact_details:
|
100
|
-
contact_details_description:
|
101
|
-
couldnt_be_saved:
|
102
|
-
name_description:
|
103
|
-
save:
|
104
|
-
saved:
|
114
|
+
contact_details: Informations de contact
|
115
|
+
contact_details_description: Email et téléphone
|
116
|
+
couldnt_be_saved: "Le compte n'a pas pu être enregistré"
|
117
|
+
name_description: Le nom de votre site
|
118
|
+
save: Enregistrer le compte
|
119
|
+
saved: Compte enregistré
|
105
120
|
ago: Il y a
|
106
121
|
attachments:
|
107
|
-
choose_attachment:
|
108
|
-
delete_confirmation_html:
|
122
|
+
choose_attachment: Choisir la pièce jointe
|
123
|
+
delete_confirmation_html: Êtes-vous sûr ? Cette pièce jointe pourrait être utilisée sur une page
|
124
|
+
download: Télécharger
|
109
125
|
insert: Insérer un document
|
110
126
|
insert_multiple: Insérer des documents
|
111
|
-
upload:
|
127
|
+
upload: Télécharger
|
112
128
|
cancel: Annuler
|
113
129
|
choose_from_library: Choisir parmi la bibliothèque
|
114
130
|
close: Fermer
|
@@ -116,6 +132,9 @@ fr:
|
|
116
132
|
delete_confirmation: 'Êtes-vous sûr de vouloir supprimer : <strong>%{subject}</strong> ?'
|
117
133
|
edit: Editer
|
118
134
|
edit_website: Éditer votre site
|
135
|
+
embeds:
|
136
|
+
embed_a_component: Insérer un composant
|
137
|
+
embed_component: Insérer composant
|
119
138
|
forgot_password:
|
120
139
|
expired: Votre jeton pour réinitialiser votre mot de passe a expiré
|
121
140
|
mail_subject: Réinitialiser votre mot de passe
|
@@ -123,135 +142,138 @@ fr:
|
|
123
142
|
request: Réinitialiser
|
124
143
|
save: Enregistrer le nouveau mot de passe
|
125
144
|
success: Vous pouvez utiliser votre nouveau mot de passe
|
126
|
-
unknown_user: Cet utilisateur n'existe pas
|
145
|
+
unknown_user: "Cet utilisateur n'existe pas"
|
127
146
|
images:
|
128
|
-
all_images:
|
129
|
-
back:
|
130
|
-
cannot_be_created:
|
131
|
-
choose_image:
|
132
|
-
choose_images:
|
133
|
-
confirm_selection:
|
134
|
-
delete:
|
135
|
-
delete_confirmation_html:
|
136
|
-
delete_folder:
|
137
|
-
done_organizing:
|
138
|
-
insert_image:
|
139
|
-
insert_photo:
|
140
|
-
insert_photos:
|
141
|
-
link:
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
+
all_images: Toutes les images
|
148
|
+
back: Retour
|
149
|
+
cannot_be_created: Ne peut pas être créé
|
150
|
+
choose_image: Choisir image
|
151
|
+
choose_images: Choisir les images
|
152
|
+
confirm_selection: Confirmer la sélection
|
153
|
+
delete: Supprimer
|
154
|
+
delete_confirmation_html: 'Êtes-vous sûr de vouloir supprimer cette <strong>image</strong> ?'
|
155
|
+
delete_folder: Supprimer le dossier
|
156
|
+
done_organizing: Organisation terminée
|
157
|
+
insert_image: Insérer image
|
158
|
+
insert_photo: Insérer photo
|
159
|
+
insert_photos: Insérer les photos
|
160
|
+
link: Lien
|
161
|
+
missing_image: Image manquante
|
162
|
+
new_folder: Nouveau dossier
|
163
|
+
organize: Organiser
|
164
|
+
remove_image: Supprimer image
|
165
|
+
upload: Télécharger
|
166
|
+
upload_image: Télécharger image
|
147
167
|
languages:
|
148
|
-
bg:
|
149
|
-
de:
|
168
|
+
bg: Bulgare
|
169
|
+
de: Allemand
|
150
170
|
en: Anglais
|
151
|
-
es:
|
171
|
+
es: Espagnol
|
152
172
|
fr: Français
|
153
|
-
id:
|
154
|
-
it:
|
173
|
+
id: Indonésien
|
174
|
+
it: Italien
|
155
175
|
nl: Néerlandais
|
156
|
-
pl:
|
157
|
-
pt-BR:
|
158
|
-
ro:
|
159
|
-
ru:
|
160
|
-
sv:
|
161
|
-
th:
|
162
|
-
tr:
|
163
|
-
zh-CN:
|
176
|
+
pl: Polonais
|
177
|
+
pt-BR: Portuguais brésilien
|
178
|
+
ro: Roumain
|
179
|
+
ru: Russe
|
180
|
+
sv: Suédois
|
181
|
+
th: Thaï
|
182
|
+
tr: Turque
|
183
|
+
zh-CN: Chinois simplifié
|
164
184
|
layout:
|
165
|
-
couldnt_be_saved:
|
166
|
-
layout:
|
167
|
-
no_layout_parts:
|
168
|
-
save:
|
169
|
-
saved:
|
185
|
+
couldnt_be_saved: "La mise en page n'a pas pu être enregistrée"
|
186
|
+
layout: Mise en page
|
187
|
+
no_layout_parts: Aucun élément de mise en page
|
188
|
+
save: Sauvegarder
|
189
|
+
saved: Sauvegarder
|
170
190
|
login: Connexion
|
171
191
|
logout: Déconnexion
|
172
192
|
main_menu: Menu principal
|
173
193
|
media_library:
|
174
|
-
add_folder:
|
175
|
-
add_image:
|
194
|
+
add_folder: Ajouter un dossier
|
195
|
+
add_image: Ajouter une image
|
176
196
|
attachments: Documents
|
177
|
-
back_to_all:
|
178
|
-
filename:
|
179
|
-
images:
|
197
|
+
back_to_all: Revenir à tous
|
198
|
+
filename: Nom de fichier
|
199
|
+
images: Images
|
180
200
|
images_count:
|
181
|
-
|
182
|
-
|
183
|
-
|
201
|
+
one: 1 image
|
202
|
+
other: "%{count} images"
|
203
|
+
insert: Insérer image
|
204
|
+
media_folder_delete_confirmation_html: 'Êtes-vous sûr ? Les images ne seront <strong>pas</strong> supprimées ?'
|
205
|
+
no_folder: Pas de dossier
|
184
206
|
photos: Images
|
185
|
-
rename_folder:
|
186
|
-
save_media_folder:
|
187
|
-
upload_from_device:
|
188
|
-
uploading:
|
207
|
+
rename_folder: Renommer la dossier
|
208
|
+
save_media_folder: Enregistrer le dossier
|
209
|
+
upload_from_device: Télécharger depuis votre appareil
|
210
|
+
uploading: En cours de téléchargement
|
189
211
|
modal:
|
190
212
|
agree: Oui, je suis sûr
|
191
213
|
cancel: Non, annuler
|
192
214
|
navigations:
|
193
|
-
add_menu_item:
|
194
|
-
add_sub_item:
|
195
|
-
choose_page:
|
196
|
-
delete_item:
|
197
|
-
delete_item_confirmation_html:
|
198
|
-
description:
|
199
|
-
navigations:
|
200
|
-
no_navigations:
|
201
|
-
sorting_saved:
|
215
|
+
add_menu_item: Ajouter un élément de menu
|
216
|
+
add_sub_item: Ajouter un sous-élément
|
217
|
+
choose_page: Choisir la page
|
218
|
+
delete_item: Supprimer élément
|
219
|
+
delete_item_confirmation_html: 'Êtes-vous sûr de vouloir <strong>supprimer</strong> cet élément de menu ?'
|
220
|
+
description: Description
|
221
|
+
navigations: Navigations
|
222
|
+
no_navigations: Aucune navigation
|
223
|
+
sorting_saved: Trier les éléments sauvegardés
|
202
224
|
notifications:
|
203
225
|
alert: Oups! Quelque chose a mal fonctionné
|
204
226
|
information: Information
|
205
|
-
login: Vous devez d'abord vous identifier
|
227
|
+
login: "Vous devez d'abord vous identifier"
|
206
228
|
wrong_username_or_password: Mauvais email ou mot de passe
|
207
229
|
options:
|
208
|
-
choose_option:
|
230
|
+
choose_option: Choisir option
|
209
231
|
pages:
|
210
|
-
add_page_to:
|
211
|
-
add_translation:
|
232
|
+
add_page_to: Ajouter la page à
|
233
|
+
add_translation: Ajouter traduction
|
212
234
|
advanced: Avancé
|
213
|
-
cannot_be_deleted:
|
214
|
-
change_order: Changer l'ordre
|
215
|
-
change_view_template:
|
216
|
-
change_view_template_confirmation:
|
235
|
+
cannot_be_deleted: Ne peut pas être supprimée
|
236
|
+
change_order: "Changer l'ordre"
|
237
|
+
change_view_template: Changer le modèle de vue
|
238
|
+
change_view_template_confirmation: Changer la confirmation du modèle de vue
|
217
239
|
concept: brouillon
|
218
|
-
create:
|
240
|
+
create: Créer
|
219
241
|
create_page: Nouvelle page %{template}
|
220
|
-
delete:
|
242
|
+
delete: Supprimer
|
221
243
|
delete_confirmation: 'Êtes-vous sûr de vouloir supprimer la page : <strong>%{subject}</strong> ?'
|
222
|
-
deleted:
|
223
|
-
done_changing_order: Changement d'ordre effectué
|
224
|
-
edit_translation:
|
225
|
-
invisible_to_search_engines: Votre site n'apparait pas sur les moteurs de recherche
|
226
|
-
invisible_to_search_engines_description: Allez dans vos préférences pour activer l'indexation sur les moteurs de recherche.
|
227
|
-
main_collection:
|
244
|
+
deleted: Supprimé
|
245
|
+
done_changing_order: "Changement d'ordre effectué"
|
246
|
+
edit_translation: Modifier traduction
|
247
|
+
invisible_to_search_engines: "Votre site n'apparait pas sur les moteurs de recherche"
|
248
|
+
invisible_to_search_engines_description: "Allez dans vos préférences pour activer l'indexation sur les moteurs de recherche."
|
249
|
+
main_collection: Collection principale
|
228
250
|
materialize_path_confirmation: Êtes-vous sûr de vouloir reconstruire le chemin pour cette page ?
|
229
|
-
missing_translations:
|
230
|
-
move_page:
|
231
|
-
moved:
|
251
|
+
missing_translations: Traductions manquantes
|
252
|
+
move_page: Déplacer la page
|
253
|
+
moved: Déplacé
|
232
254
|
new: Nouvelle page
|
233
|
-
no_pages_yet:
|
234
|
-
no_parent_page:
|
255
|
+
no_pages_yet: Pas encore de page
|
256
|
+
no_parent_page: Pas de page parente
|
235
257
|
page_content: Contenu
|
236
258
|
page_part: Section de page
|
237
259
|
page_seo: Moteurs de recherche
|
238
|
-
path:
|
260
|
+
path: Chemin
|
239
261
|
photo_picker: Choisir une image
|
240
262
|
photos_picker: Choisir des images
|
241
|
-
preview:
|
242
|
-
publish:
|
243
|
-
published:
|
263
|
+
preview: Aperçu
|
264
|
+
publish: Publier
|
265
|
+
published: Publié
|
244
266
|
rebuild_materialized_path: Reconstruire le chemin matérialisé
|
245
|
-
recommended:
|
267
|
+
recommended: Recommandé
|
246
268
|
save: Sauvegarder la page
|
247
|
-
save_changes:
|
248
|
-
save_draft:
|
269
|
+
save_changes: Enregistrer les changements
|
270
|
+
save_draft: Enregistrer brouillon
|
249
271
|
saved: Page enregistrée
|
250
272
|
saving: Enregistrement...
|
251
|
-
search_engines:
|
273
|
+
search_engines: Moteurs de recherche
|
252
274
|
show_in_menu: invisible
|
253
275
|
skip_to_first_child: Renvoyer vers la première page enfant
|
254
|
-
sorting_saved:
|
276
|
+
sorting_saved: Trier les éléments sauvegardés
|
255
277
|
permanently_delete: Supprimer définitivement
|
256
278
|
photos:
|
257
279
|
cannot_be_created: 'L''image n''a pas pu être traitée :'
|
@@ -265,16 +287,16 @@ fr:
|
|
265
287
|
link: 'URL de votre image:'
|
266
288
|
new_folder: Nouveau dossier
|
267
289
|
organize: Organiser les images
|
268
|
-
rename_folder:
|
269
|
-
select_images:
|
290
|
+
rename_folder: Renommer dossier
|
291
|
+
select_images: Choisir images
|
270
292
|
upload_image: Envoyer une image
|
271
293
|
preferences:
|
272
|
-
Analytics:
|
294
|
+
Analytics: "Outils d'analyse"
|
273
295
|
account: Général
|
274
296
|
account_description: Les préférences personnelles
|
275
297
|
account_save: Sauvegarder les préférences
|
276
298
|
analytics: Analytics et moteurs de recherche
|
277
|
-
analytics_description: Connectez votre compte pour faire de l'analyse en temps réel
|
299
|
+
analytics_description: "Connectez votre compte pour faire de l'analyse en temps réel"
|
278
300
|
analytics_save: Sauvegarder vos préférences
|
279
301
|
domain_name_settings: Paramètres de domaine
|
280
302
|
domain_name_settings_description: Configuration de votre nom de domaine
|
@@ -289,66 +311,82 @@ fr:
|
|
289
311
|
users_description: Gérer les utilisateurs et les administrateurs
|
290
312
|
preview_website: Aperçu du site
|
291
313
|
resources:
|
292
|
-
edit:
|
293
|
-
label_description:
|
294
|
-
manual_sorting:
|
295
|
-
no_default_template:
|
296
|
-
saved:
|
297
|
-
settings:
|
298
|
-
settings_description:
|
314
|
+
edit: Mettre à jour
|
315
|
+
label_description: Description du label
|
316
|
+
manual_sorting: Tri manuel
|
317
|
+
no_default_template: Pas de modèle par défaut
|
318
|
+
saved: Sauvegardé
|
319
|
+
settings: Paramètres
|
320
|
+
settings_description: Sélectionner les paramètres de votre modèle
|
299
321
|
save: Enregistrer
|
300
322
|
search: Rechercher...
|
301
323
|
settings:
|
324
|
+
general: Général
|
302
325
|
save: Enregistrer les paramètres
|
303
326
|
title: Paramètres
|
327
|
+
users: Utilisateurs
|
304
328
|
theme:
|
305
|
-
save:
|
306
|
-
saved:
|
307
|
-
theme:
|
308
|
-
theme_description:
|
329
|
+
save: Enregistrer modèle
|
330
|
+
saved: Modèle enregistré
|
331
|
+
theme: Modèle
|
332
|
+
theme_description: Configurer votre modèle
|
309
333
|
ui:
|
310
|
-
cancel:
|
311
|
-
delete:
|
312
|
-
load_more:
|
313
|
-
move_to:
|
314
|
-
new_entry:
|
315
|
-
optional:
|
316
|
-
rename:
|
317
|
-
save_changes:
|
318
|
-
saving:
|
334
|
+
cancel: Annuler
|
335
|
+
delete: Supprimer
|
336
|
+
load_more: Charger plus
|
337
|
+
move_to: Déplacer vers
|
338
|
+
new_entry: Nouvelle entrée
|
339
|
+
optional: Optionnel
|
340
|
+
rename: Renommer
|
341
|
+
save_changes: Enregistrer les changements
|
342
|
+
saving: "En cours d'enregistrement"
|
343
|
+
user_mailer:
|
344
|
+
forgot_password:
|
345
|
+
button: Réinitialiser votre mot de passe
|
346
|
+
introduction: Vous avez récemment demandé à réinitialiser le mot de passe de votre compte Spina CMS. Le lien ci-dessous est valable 2 heures. Copiez le dans votre navigateur.
|
347
|
+
introduction_html: "Vous avez récemment demandé à réinitialiser le mot de passe de votre compte Spina CMS. Utilisez le bouton ci-dessous pour le mettre à jour. <strong>Le lien est valable 2 heures.</strong>"
|
348
|
+
preheader: Utilisez ce lien pour réinitialiser votre mot de passe. Il est valable 2 heures.
|
349
|
+
request_origin: "Pour votre sécurité, cette demande a été reçu depuis un appareil %{platform} utilisant %{browser}. Si vous n'avez pas effectué cette demande, merci d'ignorer cet email."
|
350
|
+
salutation: Bonjour, %{name}
|
351
|
+
subject: Réinitialisation de votre mot de passe
|
352
|
+
trouble: "Si vous avez des problèmes avec le boutton ci-dessus, copiez-collez l'URL ci-dessous dans votre navigateur."
|
319
353
|
users:
|
320
|
-
authorization:
|
321
|
-
authorization_description:
|
322
|
-
cannot_be_created: L'utilisateur ne peut pas être sauvegarder
|
323
|
-
delete:
|
354
|
+
authorization: Autorisation
|
355
|
+
authorization_description: Les administrateurs peuvent gérer les utilisateurs. Les utilisateurs classiques ne le peuvent pas.
|
356
|
+
cannot_be_created: "L'utilisateur ne peut pas être sauvegarder"
|
357
|
+
delete: Supprimer utilisateur
|
324
358
|
delete_confirmation_html: 'Êtes-vous sûr de vouloir supprimer l''utilisateur : <strong>%{user}</strong> ?'
|
325
|
-
deleted:
|
326
|
-
last_login:
|
327
|
-
never_logged_in:
|
359
|
+
deleted: Utilisateur supprimé
|
360
|
+
last_login: Dernière connexion
|
361
|
+
never_logged_in: Jamais connecté depuis
|
328
362
|
new: Nouvel utilisateur
|
329
|
-
profile:
|
330
|
-
profile_description:
|
331
|
-
save:
|
332
|
-
saved:
|
333
|
-
visit_page:
|
363
|
+
profile: Profil
|
364
|
+
profile_description: Cette information sera utilisée pour identifier différents utilisateurs. Les utilisateurs utiliseront leur email pour se connecter.
|
365
|
+
save: "Enregistrer l'utilisateur"
|
366
|
+
saved: Utilisateur enregistré
|
367
|
+
visit_page: Visiter la page
|
334
368
|
website:
|
335
369
|
all_pages: Toutes les pages
|
370
|
+
content: Contenu
|
336
371
|
documents: Documents
|
337
|
-
images:
|
372
|
+
images: Images
|
373
|
+
main: Principal
|
338
374
|
media_library: Bibliothèque de médias
|
339
375
|
media_library_description: Voici où vous trouverez toutes vos images et documents
|
340
376
|
pages: Pages
|
341
377
|
pages_description: Toutes les pages de votre site
|
342
378
|
photos: Images
|
379
|
+
settings: Paramètres
|
380
|
+
theme: Modèle
|
343
381
|
title: Votre site
|
344
382
|
wysiwyg:
|
345
383
|
heading_1: Titre 1
|
346
384
|
heading_2: Titre 2
|
347
385
|
heading_3: Titre 3
|
348
386
|
insert_link: Insérer un lien
|
349
|
-
link:
|
387
|
+
link: Lien
|
350
388
|
paragraph: Paragraphe
|
351
389
|
quote: Citation
|
352
|
-
unlink:
|
353
|
-
url:
|
354
|
-
url_placeholder:
|
390
|
+
unlink: Supprimer le lien
|
391
|
+
url: URL
|
392
|
+
url_placeholder: Entrer une URL
|
@@ -32,7 +32,7 @@ module Spina
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def create_account
|
35
|
-
return if ::Spina::Account.exists? && !no?('An account already exists. Skip? [Yn]')
|
35
|
+
return if ::Spina::Account.exists? && ( !talkative_install? || !no?('An account already exists. Skip? [Yn]') )
|
36
36
|
name = ::Spina::Account.first.try(:name) || 'MySite'
|
37
37
|
if talkative_install?
|
38
38
|
name = ask("What would you like to name your website? [#{name}]").presence || name
|
@@ -42,7 +42,7 @@ module Spina
|
|
42
42
|
|
43
43
|
def set_theme
|
44
44
|
account = ::Spina::Account.first
|
45
|
-
return if account.theme.present? && !no?("Theme '#{account.theme}' is set. Skip? [Yn]")
|
45
|
+
return if account.theme.present? && ( !talkative_install? || !no?("Theme '#{account.theme}' is set. Skip? [Yn]") )
|
46
46
|
|
47
47
|
theme = account.theme || themes.first
|
48
48
|
if talkative_install?
|
@@ -67,7 +67,7 @@ module Spina
|
|
67
67
|
end
|
68
68
|
|
69
69
|
def create_user
|
70
|
-
return if ::Spina::User.exists? && !no?('A user already exists. Skip? [Yn]')
|
70
|
+
return if ::Spina::User.exists? && ( !talkative_install? || !no?('A user already exists. Skip? [Yn]') )
|
71
71
|
|
72
72
|
email = 'admin@domain.com'
|
73
73
|
if talkative_install?
|
@@ -84,8 +84,13 @@ module Spina
|
|
84
84
|
def bootstrap_spina
|
85
85
|
rake 'spina:bootstrap'
|
86
86
|
end
|
87
|
+
|
88
|
+
def build_tailwind
|
89
|
+
rake 'spina:tailwind:build'
|
90
|
+
end
|
87
91
|
|
88
92
|
def feedback
|
93
|
+
return if !talkative_install?
|
89
94
|
puts
|
90
95
|
puts ' Your Spina site has been succesfully installed! '
|
91
96
|
puts
|
@@ -1,4 +1,7 @@
|
|
1
1
|
module.exports = {
|
2
|
+
content: [
|
3
|
+
<%= Spina.config.tailwind_content.map{|path|"'#{path}'"}.join(",\n") %>
|
4
|
+
],
|
2
5
|
theme: {
|
3
6
|
fontFamily: {
|
4
7
|
body: ['Metropolis'],
|
@@ -14,14 +17,9 @@ module.exports = {
|
|
14
17
|
}
|
15
18
|
}
|
16
19
|
},
|
17
|
-
variants: {
|
18
|
-
boxShadow: ['active'],
|
19
|
-
extend: {
|
20
|
-
backgroundColor: ['even', 'checked']
|
21
|
-
}
|
22
|
-
},
|
23
20
|
plugins: [
|
21
|
+
require('@tailwindcss/forms'),
|
22
|
+
require('@tailwindcss/aspect-ratio'),
|
24
23
|
require('@tailwindcss/typography'),
|
25
|
-
require('@tailwindcss/forms')
|
26
24
|
]
|
27
25
|
}
|
@@ -21,7 +21,7 @@ Spina::Theme.register do |theme|
|
|
21
21
|
# - Option
|
22
22
|
# - Repeater
|
23
23
|
theme.parts = [
|
24
|
-
{name: 'text', title: "Body", part_type: "Spina::Parts::Text"}
|
24
|
+
{name: 'text', title: "Body", hint: "Your main content", part_type: "Spina::Parts::Text"}
|
25
25
|
]
|
26
26
|
|
27
27
|
# View templates
|
@@ -23,10 +23,10 @@ Spina::Theme.register do |theme|
|
|
23
23
|
theme.parts = [
|
24
24
|
{name: 'repeater', title: "Repeater", part_type: "Spina::Parts::Repeater", parts: %w(line image headline)},
|
25
25
|
{name: 'line', title: "Line", part_type: "Spina::Parts::Line"},
|
26
|
-
{name: 'body', title: "Body", part_type: "Spina::Parts::Text"},
|
26
|
+
{name: 'body', title: "Body", hint: "Your content", part_type: "Spina::Parts::Text"},
|
27
27
|
{name: "image_collection", title: "Image collection", part_type: "Spina::Parts::ImageCollection"},
|
28
28
|
{name: 'image', title: "Image", part_type: "Spina::Parts::Image"},
|
29
|
-
{name: 'headline', title: "Headline", part_type: "Spina::Parts::Line"},
|
29
|
+
{name: 'headline', title: "Headline", hint: "Used in the header", part_type: "Spina::Parts::Line"},
|
30
30
|
{name: 'footer', title: "Footer", part_type: "Spina::Parts::Text"}
|
31
31
|
]
|
32
32
|
|
data/lib/spina/version.rb
CHANGED
data/lib/spina.rb
CHANGED
@@ -4,7 +4,6 @@ require 'spina/railtie'
|
|
4
4
|
require 'spina/theme_reloader'
|
5
5
|
require 'spina/plugin'
|
6
6
|
require 'spina/theme'
|
7
|
-
require 'spina/tailwind_purger'
|
8
7
|
require 'spina/attr_json_spina_parts_model'
|
9
8
|
require 'spina/attr_json_monkeypatch'
|
10
9
|
require 'spina/authentication/sessions'
|
@@ -33,7 +32,7 @@ module Spina
|
|
33
32
|
:mailer_defaults,
|
34
33
|
:thumbnail_image_size,
|
35
34
|
:party_pooper,
|
36
|
-
:
|
35
|
+
:tailwind_content,
|
37
36
|
:queues,
|
38
37
|
:transliterations
|
39
38
|
|
@@ -59,15 +58,17 @@ module Spina
|
|
59
58
|
# An importmap specifically meant for Spina
|
60
59
|
self.importmap = Importmap::Map.new
|
61
60
|
|
62
|
-
# Tailwind
|
63
|
-
#
|
64
|
-
#
|
65
|
-
#
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
61
|
+
# Tailwind content
|
62
|
+
# In order for Tailwind to generate all of the CSS Spina needs,
|
63
|
+
# it needs to know about every single file in your project
|
64
|
+
# that contains any Tailwind class names.
|
65
|
+
# Make sure to add your own glob patterns if you're extending
|
66
|
+
# Spina's UI.
|
67
|
+
self.tailwind_content = ["#{Spina::Engine.root}/app/views/**/*.*",
|
68
|
+
"#{Spina::Engine.root}/app/components/**/*.*",
|
69
|
+
"#{Spina::Engine.root}/app/helpers/**/*.*",
|
70
|
+
"#{Spina::Engine.root}/app/assets/javascripts/**/*.js",
|
71
|
+
"#{Spina::Engine.root}/app/**/application.tailwind.css"]
|
71
72
|
|
72
73
|
# Images that are embedded in the Trix editor are resized to fit
|
73
74
|
# You can optimize this for your website and go for a smaller (or larger) size
|
@@ -78,6 +79,16 @@ module Spina
|
|
78
79
|
def config
|
79
80
|
config_obj = self.config_original
|
80
81
|
|
82
|
+
def config_obj.tailwind_purge_content
|
83
|
+
ActiveSupport::Deprecation.warn("config.tailwind_purge_content has been renamed to config.tailwind_content")
|
84
|
+
tailwind_content
|
85
|
+
end
|
86
|
+
|
87
|
+
def config_obj.tailwind_purge_content=(paths)
|
88
|
+
ActiveSupport::Deprecation.warn("config.tailwind_purge_content has been renamed to config.tailwind_content")
|
89
|
+
tailwind_content = paths
|
90
|
+
end
|
91
|
+
|
81
92
|
def config_obj.embedded_image_size=(image_size)
|
82
93
|
if image_size.is_a? String
|
83
94
|
ActiveSupport::Deprecation.warn("Spina embedded_image_size should be set to an array of arguments to be passed to the :resize_to_limit ImageProcessing macro. https://github.com/janko/image_processing/blob/master/doc/minimagick.md#resize_to_limit")
|