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.

Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +0 -2
  3. data/Rakefile +2 -1
  4. data/app/assets/builds/spina/tailwind.css +3480 -0
  5. data/app/assets/config/spina/manifest.js +3 -1
  6. data/app/assets/javascripts/spina/controllers/image_collection_controller.js +5 -3
  7. data/app/assets/javascripts/spina/controllers/infinite_scroll_controller.js +4 -2
  8. data/app/assets/stylesheets/spina/{_animate.css → animate.css} +0 -0
  9. data/app/assets/stylesheets/spina/{tailwind/custom.css → application.tailwind.css} +40 -46
  10. data/app/assets/stylesheets/spina/{_fonts.css.erb → fonts.css.erb} +0 -0
  11. data/app/components/spina/forms/trix_toolbar_component.html.erb +1 -1
  12. data/app/components/spina/media_picker/image_component.html.erb +1 -1
  13. data/app/components/spina/media_picker/modal_component.html.erb +4 -4
  14. data/app/components/spina/user_interface/tab_link_component.html.erb +1 -1
  15. data/app/components/spina/user_interface/translations_component.html.erb +21 -0
  16. data/app/components/spina/user_interface/translations_component.rb +26 -0
  17. data/app/controllers/concerns/spina/frontend.rb +1 -1
  18. data/app/controllers/spina/admin/images_controller.rb +3 -2
  19. data/app/controllers/spina/admin/layout_controller.rb +1 -1
  20. data/app/controllers/spina/admin/navigation_items_controller.rb +1 -1
  21. data/app/helpers/spina/images_helper.rb +15 -0
  22. data/app/models/concerns/spina/partable.rb +1 -1
  23. data/app/models/spina/parts/attachment.rb +1 -1
  24. data/app/models/spina/parts/base.rb +2 -1
  25. data/app/presenters/spina/menu_presenter.rb +26 -3
  26. data/app/views/layouts/spina/admin/admin.html.erb +1 -1
  27. data/app/views/layouts/spina/admin/application.html.erb +2 -2
  28. data/app/views/spina/admin/images/_image.html.erb +34 -26
  29. data/app/views/spina/admin/images/index.html.erb +1 -1
  30. data/app/views/spina/admin/images/show.html.erb +3 -1
  31. data/app/views/spina/admin/layout/edit.html.erb +2 -0
  32. data/app/views/spina/admin/media_folders/_media_folder.html.erb +5 -3
  33. data/app/views/spina/admin/navigation_items/_form.html.erb +5 -1
  34. data/app/views/spina/admin/navigations/edit.html.erb +1 -1
  35. data/app/views/spina/admin/pages/_form.html.erb +2 -2
  36. data/app/views/spina/admin/pages/index.html.erb +1 -1
  37. data/app/views/spina/admin/parts/attachments/_form.html.erb +2 -1
  38. data/app/views/spina/admin/parts/image_collections/_form.html.erb +1 -0
  39. data/app/views/spina/admin/parts/images/_form.html.erb +1 -0
  40. data/app/views/spina/admin/parts/lines/_form.html.erb +1 -0
  41. data/app/views/spina/admin/parts/options/_form.html.erb +2 -1
  42. data/app/views/spina/admin/parts/repeaters/_form.html.erb +2 -1
  43. data/app/views/spina/admin/parts/texts/_form.html.erb +1 -0
  44. data/app/views/spina/admin/resources/edit.html.erb +6 -1
  45. data/app/views/spina/admin/shared/_navigation.html.erb +1 -1
  46. data/config/locales/de.yml +63 -28
  47. data/config/locales/fr.yml +190 -152
  48. data/lib/generators/spina/install_generator.rb +8 -3
  49. data/lib/generators/spina/tailwind_config_generator.rb +10 -0
  50. data/{app/assets/config/spina/tailwind.config.js → lib/generators/spina/templates/app/assets/config/spina/tailwind.config.js.tt} +5 -7
  51. data/lib/generators/spina/templates/config/initializers/themes/default.rb +1 -1
  52. data/lib/generators/spina/templates/config/initializers/themes/demo.rb +2 -2
  53. data/lib/spina/version.rb +1 -1
  54. data/lib/spina.rb +22 -11
  55. data/lib/tasks/install.rake +45 -0
  56. data/lib/tasks/tailwind.rake +22 -0
  57. metadata +27 -11
  58. data/app/assets/stylesheets/spina/_tailwind.css +0 -203643
  59. data/app/assets/stylesheets/spina/application.css +0 -6
  60. data/lib/spina/tailwind_purger.rb +0 -147
  61. data/lib/tasks/spina_tasks.rake +0 -75
@@ -2,6 +2,7 @@
2
2
  <label class="block text-sm leading-5 font-medium text-gray-700">
3
3
  <%= f.object.title %>
4
4
  </label>
5
+ <div class="text-gray-400 text-sm"><%= f.object.hint %></div>
5
6
 
6
7
  <%= f.hidden_field :signed_blob_id, data: {media_picker_target: "signedBlobId"} %>
7
8
  <%= f.hidden_field :filename, data: {media_picker_target: "filename"} %>
@@ -1,5 +1,6 @@
1
1
  <div class="mt-6">
2
2
  <label class="block text-sm leading-5 font-medium text-gray-700"><%= f.object.title %></label>
3
+ <div class="text-gray-400 text-sm"><%= f.object.hint %></div>
3
4
  <div class="mt-1">
4
5
  <%= f.text_field :content, class: "form-input block w-full max-w-5xl sm:text-sm sm:leading-5" %>
5
6
  </div>
@@ -1,5 +1,6 @@
1
1
  <div class="mt-6">
2
2
  <label for="price" class="block text-sm leading-5 font-medium text-gray-700"><%= f.object.title %></label>
3
+ <div class="text-gray-400 text-sm"><%= f.object.hint %></div>
3
4
 
4
- <%= f.select :value, f.object.options, {include_blank: t("spina.options.choose_option")}, class: "form-select" %>
5
+ <%= f.select :value, f.object.options, {include_blank: t("spina.options.choose_option")}, class: "form-select mt-1" %>
5
6
  </div>
@@ -1,5 +1,6 @@
1
1
  <div class="mt-6" data-controller="repeater">
2
2
  <label class="block text-sm leading-5 font-medium text-gray-700"><%= f.object.title %></label>
3
+ <div class="text-gray-400 text-sm"><%= f.object.hint %></div>
3
4
 
4
5
  <div class="-mt-4 flex flex-col md:flex-row" data-controller="tabs" data-tabs-active="bg-spina-dark bg-opacity-10 text-gray-900" data-tabs-inactive="text-gray-500">
5
6
  <div class="md:w-64 md:pr-6">
@@ -15,7 +16,7 @@
15
16
  <div data-repeater-target="list" data-tabs-target="list" data-action="exists->tabs#added">
16
17
  <% (f.object.content || []).each.with_index do |repeater_content, index| %>
17
18
  <button type="button" class="text-gray-500 hover:text-gray-900 rounded-md px-3 truncate text-sm font-medium flex items-center w-full h-9" data-action="tabs#show" data-tabs-target="button" data-repeater-target="listItem" data-pane-id="<%= "pane_#{repeater_content.object_id}" %>">
18
- <svg class="w-4 h-4 mr-2" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M432 288H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm0-112H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16z"/></svg>
19
+ <svg class="w-4 h-4 shrink-0 mr-2" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M432 288H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm0-112H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16z"/></svg>
19
20
  <%= strip_tags(repeater_content.parts&.first&.label) %>
20
21
  </button>
21
22
  <% end %>
@@ -1,5 +1,6 @@
1
1
  <div class="mt-6" data-controller="unique-id" data-unique-id="<%= f.object.object_id %>">
2
2
  <label class="block text-sm leading-5 font-medium text-gray-700"><%= f.object.title %></label>
3
+ <div class="text-gray-400 text-sm"><%= f.object.hint %></div>
3
4
  <div class="mt-1 relative">
4
5
  <%= f.hidden_field :content, id: "#{f.object.object_id}_input" %>
5
6
 
@@ -1,5 +1,7 @@
1
1
  <%= render Spina::UserInterface::HeaderComponent.new do |header| %>
2
2
  <% header.actions do %>
3
+ <%= render Spina::UserInterface::TranslationsComponent.new(@resource, label: @locale.upcase) %>
4
+
3
5
  <%= button_tag type: :submit, form: dom_id(@resource), class: 'btn btn-primary', data: {controller: "button", action: "button#loading", loading_message: t('spina.ui.saving')} do %>
4
6
  <%= heroicon('check', style: :solid, class: 'w-5 h-5 mr-1 -ml-2') %>
5
7
  <%=t 'spina.ui.save_changes' %>
@@ -36,7 +38,10 @@
36
38
 
37
39
  <div class="col-span-2">
38
40
  <%= f.label :slug, class: 'font-medium text-sm text-gray-700 block' %>
39
- <%= render Spina::Forms::TextFieldComponent.new(f, :slug) %>
41
+
42
+ <% Mobility.with_locale(@locale) do %>
43
+ <%= render Spina::Forms::TextFieldComponent.new(f, :slug) %>
44
+ <% end %>
40
45
 
41
46
  <div class="mt-5">
42
47
  <%= f.label :view_template, class: 'font-medium text-sm text-gray-700 block' %>
@@ -1,4 +1,4 @@
1
- <nav class="w-full md:max-w-xs bg-spina-dark md:bg-gradient-to-b from-spina-dark to-spina-light md:relative md:overflow-hidden" data-controller="navigation">
1
+ <nav class="w-full md:max-w-xs bg-spina-dark md:bg-gradient-to-b from-spina-dark to-spina-light relative md:overflow-hidden" data-controller="navigation">
2
2
  <div class="flex flex-row md:flex-col justify-between h-full w-full bg-black p-1 md:p-3 bg-opacity-0 duration-300 ease-in-out transition-colors md:bg-opacity-50" data-navigation-target="primary">
3
3
 
4
4
  <ul class="flex md:flex-col">
@@ -2,6 +2,16 @@ de:
2
2
  time:
3
3
  formats:
4
4
  long: "%Y-%m-%d %H:%M:%S"
5
+ short: "%d %b %H:%M"
6
+ date:
7
+ abbr_day_names: [Mo, Di, Mi, Do, Fr, Sa, So]
8
+ abbr_month_names: [~, Jan., Feb., März, Apr., Mai, Jun., Jul., Aug., Sep., Okt., Nov., Dez.]
9
+ activemodel:
10
+ attributes:
11
+ spina/embeds/youtube:
12
+ url: youtube.com/watch?v=...
13
+ spina/embeds/vimeo:
14
+ url: vimeo.com/...
5
15
  activerecord:
6
16
  attributes:
7
17
  spina/account:
@@ -40,12 +50,12 @@ de:
40
50
  pages_description: Wähle die Seiten aus, die du in diesem Menü verwenden willst
41
51
  spina/page:
42
52
  ancestry: Oberseite
43
- created_at: Erstellt am
53
+ created_at: Erstellt am
44
54
  description: Meta Beschreibung
45
55
  description_description: Diese Beschreibung wird in den Suchergebnissen angezeigt
46
56
  description_placeholder: Kurze Beschreibung deiner Seite
47
57
  draft: Entwurf
48
- draft_description: Praktisch wenn deine Seite noch nicht ganz fertig ist
58
+ draft_description: Praktisch, wenn deine Seite noch nicht ganz fertig ist
49
59
  link_url: Seitenumleitung
50
60
  link_url_description: Weiterleiten an URL
51
61
  link_url_placeholder: z.B. http://www.example.com/
@@ -54,7 +64,7 @@ de:
54
64
  no_parent: Kein Oberelement
55
65
  resource: Kollektion
56
66
  seo_title: SEO <title>
57
- seo_title_description: Stelle sicher dass deine Suchresultate gut aussehen
67
+ seo_title_description: Stelle sicher, dass deine Suchresultate gut aussehen
58
68
  seo_title_placeholder: Dieser Titel wird im <title>-tag verwendet
59
69
  show_in_menu: In der Navigation anzeigen
60
70
  show_in_menu_description: Wenn diese Option ausgeschaltet ist, wird deine Seite nicht in der Navigation angezeigt
@@ -75,13 +85,13 @@ de:
75
85
  admin: Administrator
76
86
  admin_description: Administratoren können Benutzer anlegen
77
87
  email: E-Mail
78
- email_description: Deine E-Mail Adresse muss eindeutig sein
88
+ email_description: Deine E-Mail-Adresse muss eindeutig sein
79
89
  last_logged_in: Zuletzt eingeloggt
80
90
  name: Name
81
91
  name_placeholder: Name
82
92
  password: Passwort
83
93
  password_confirmation: Passwort bestätigen
84
- password_description: Leer lassen wenn das Passwort nicht geändert werden soll
94
+ password_description: Leer lassen, wenn das Passwort nicht geändert werden soll
85
95
  role: Rolle
86
96
  user: Benutzer
87
97
  models:
@@ -97,10 +107,19 @@ de:
97
107
  spina/user:
98
108
  one: Benutzer
99
109
  other: Benutzer
110
+ helpers:
111
+ label:
112
+ spina/embeds/button:
113
+ url: URL
114
+ label: Beschriftung der Schaltfläche
115
+ spina/embeds/youtube:
116
+ url: Youtube URL
117
+ spina/embeds/vimeo:
118
+ url: Vimeo URL
100
119
  spina:
101
120
  accounts:
102
121
  contact_details: Kontaktangaben
103
- contact_details_description: Email und Telefon
122
+ contact_details_description: E-Mail und Telefon
104
123
  couldnt_be_saved: Konto konnte nicht gespeichert werden
105
124
  name_description: Name deiner Webseite
106
125
  save: Konto speichern
@@ -109,6 +128,7 @@ de:
109
128
  attachments:
110
129
  choose_attachment: Dokument auswählen
111
130
  delete_confirmation_html: Bist du sicher? Dieses Dokument <span class='font-semibold'>könnte</span> von einer Seite genutzt werden.
131
+ download: Herunterladen
112
132
  insert: Dokument einfügen
113
133
  insert_multiple: Dokumente einfügen
114
134
  upload: Dokumente Hochladen
@@ -119,6 +139,9 @@ de:
119
139
  delete_confirmation: Bist du sicher, dass du <strong>%{subject}</strong> löschen möchtest?
120
140
  edit: Bearbeiten
121
141
  edit_website: Deine Website bearbeiten
142
+ embeds:
143
+ embed_a_component: Eine Komponente einbetten
144
+ embed_component: Komponente einbetten
122
145
  forgot_password:
123
146
  expired: Dein Token zum Zurücksetzen des Passwortes ist abgelaufen
124
147
  mail_subject: Passwort zurücksetzen
@@ -142,6 +165,7 @@ de:
142
165
  insert_photo: Foto einfügen
143
166
  insert_photos: Fotos einfügen
144
167
  link: Link
168
+ missing_image: Fehlendes Bild
145
169
  new_folder: Neuer Ordner
146
170
  organize: Ordnen
147
171
  remove_image: Bild löschen
@@ -157,7 +181,7 @@ de:
157
181
  it: Italiensich
158
182
  nl: Holländisch
159
183
  pl: Polnisch
160
- pt-BR: Brasilianisches Portugiesisch
184
+ pt-BR: Brasilianisches Portugiesisch
161
185
  ro: Rumänisch
162
186
  ru: Russisch
163
187
  sv: Schwedisch
@@ -167,11 +191,11 @@ de:
167
191
  layout:
168
192
  couldnt_be_saved: Layout konnte nicht gespeichert werden
169
193
  layout: Layout
170
- no_layout_parts: Keine Layout Elemente verfügbar
194
+ no_layout_parts: Keine Layout-Elemente verfügbar
171
195
  save: Layout speichern
172
196
  saved: Layout gespeichert
173
- login: Login
174
- logout: Logout
197
+ login: Anmelden
198
+ logout: Abmelden
175
199
  main_menu: Hauptmenü
176
200
  media_library:
177
201
  add_folder: Ordner hinzufügen
@@ -180,7 +204,7 @@ de:
180
204
  back_to_all: Zurück
181
205
  filename: Dateiname
182
206
  images: Bilder
183
- images_count:
207
+ images_count:
184
208
  one: 1 Bild
185
209
  other: "%{count} Bilder"
186
210
  insert: Bild einfügen
@@ -202,7 +226,7 @@ de:
202
226
  delete_item_confirmation_html: Bist du sicher, dass du diesen Menü-Eintrag <span class='font-semibold'>löschen</span> möchtest?
203
227
  description: Füge und sortiere Einträge wie du möchtest. Optional kannst du auch verschachtelte Menü-Einträge hinzufügen.
204
228
  navigations: Navigationen
205
- no_navigations: Diese Webseite hat noch keine Navigationen. Du kannst eine in der Theme Konfiguration erstellen.
229
+ no_navigations: Diese Webseite hat noch keine Navigationen. Du kannst eine in der Theme-Konfiguration erstellen.
206
230
  sorting_saved: Reihenfolge gespeichert
207
231
  notifications:
208
232
  alert: Ups! Etwas ist falsch gelaufen
@@ -210,15 +234,15 @@ de:
210
234
  login: Du musst dich zuerst einloggen
211
235
  wrong_username_or_password: E-Mail oder Passwort falsch
212
236
  options:
213
- choose_option: Option auswählen
237
+ choose_option: Option auswählen
214
238
  pages:
215
- add_page_to: 'Seite hinzufügen zu:'
239
+ add_page_to: "Seite hinzufügen zu:"
216
240
  add_translation: Übersetzung für %{language} hinzufügen
217
241
  advanced: Erweitert
218
242
  cannot_be_deleted: Seite kann nicht gelöscht werden
219
243
  change_order: Reihenfolge ändern
220
- change_view_template: View Template ändern
221
- change_view_template_confirmation: Bist du sicher, dass du dein view Template ändern möchtest? Inhalte die nicht zum neuen Template passen gehen verloren.
244
+ change_view_template: Seiten-Template ändern
245
+ change_view_template_confirmation: Bist du sicher, dass du dein Seiten-Template ändern möchtest? Inhalte, die nicht zum neuen Template gehören, gehen verloren.
222
246
  concept: Entwurf
223
247
  create: Seite erstellen
224
248
  create_page: Neue(s) %{template}
@@ -240,12 +264,12 @@ de:
240
264
  page_content: Inhalt
241
265
  page_part: Seiteninhalt
242
266
  page_seo: Suchmaschinen
243
- path: 'Pfad:'
267
+ path: "Pfad:"
244
268
  photo_picker: Bild auswählen
245
269
  photos_picker: Bilder auswählen
246
270
  preview: Vorschau
247
- publish: Publizieren
248
- published: Seite publiziert
271
+ publish: Veröffentlichen
272
+ published: Seite veröffentlicht
249
273
  rebuild_materialized_path: Materialisierten Pfad neu erzeugen
250
274
  recommended: Empfohlen
251
275
  save: Seite speichern
@@ -259,7 +283,7 @@ de:
259
283
  sorting_saved: Reihenfolge gespeichert
260
284
  permanently_delete: Permanent Löschen
261
285
  photos:
262
- cannot_be_created: 'Bild kann nicht verarbeitet werden:'
286
+ cannot_be_created: "Bild kann nicht verarbeitet werden:"
263
287
  choose_images: Bilder auswählen
264
288
  delete: Löschen
265
289
  delete_confirmation: Bist du sicher, dass du das Bild <strong>%{image}</strong> löschen möchtest?
@@ -267,10 +291,10 @@ de:
267
291
  done_organizing: Reihenfolge speichern
268
292
  insert_photo: Bild einfügen
269
293
  insert_photos: Bilder auswählen
270
- link: 'URL des Bildes:'
294
+ link: "URL des Bildes:"
271
295
  new_folder: Neuer Ordner
272
296
  organize: Bilder sortieren
273
- rename_folder: Ordner umbenenen
297
+ rename_folder: Ordner umbenenen
274
298
  select_images: Bilder auswählen
275
299
  upload_image: Bild hochladen
276
300
  preferences:
@@ -279,12 +303,12 @@ de:
279
303
  account_description: Persönliche Einstellungen
280
304
  account_save: Einstellungen speichern
281
305
  analytics: Analytics und Suchmaschinen
282
- analytics_description: Verknüpfe deinen Account für real-time Analysen
306
+ analytics_description: Verknüpfe deinen Account für Echtzeit-Analysen
283
307
  analytics_save: Einstellungen speichern
284
- domain_name_settings: Domain Einstellungen
308
+ domain_name_settings: Domain-Einstellungen
285
309
  domain_name_settings_description: Richte deine Domain ein
286
310
  social_media: Social Media
287
- social_media_description: Facebook und Twitter Accounts
311
+ social_media_description: Facebook und Twitter-Accounts
288
312
  social_media_save: Speichere Social Media
289
313
  style: Stil
290
314
  style_description: Wähle einen passenden Stil
@@ -319,10 +343,20 @@ de:
319
343
  load_more: Weitere laden
320
344
  move_to: Verschieben nach
321
345
  new_entry: Neuer Eintrag
322
- optional: Optional
346
+ optional: Optional
323
347
  rename: Umbenennen
324
348
  save_changes: Änderungen speichern
325
349
  saving: Speichern...
350
+ user_mailer:
351
+ forgot_password:
352
+ button: Passwort zurücksetzen
353
+ introduction: Du hast kürzlich das Zurücksetzen des Passworts für deinen Spina CMS-Zugang angefragt. Die URL zum Zurücksetzen ist nur für die nächsten zwei Stunden gültig. Kopiere die unten stehende URL in deinen Browser.
354
+ introduction_html: "Du hast kürzlich das Zurücksetzen des Passworts für deinen Spina CMS-Zugang angefragt. Nutze die Schaltfläche, um das Passwort zurück zu setzen. <strong>Die URL zum Zurücksetzen ist nur für die nächsten zwei Stunden gültig.</strong>"
355
+ preheader: Nutze den Link, um dein Passwort zurück zu setzen. Dieser Link ist nur zwei Stunden lang gültig.
356
+ request_origin: "Zur Sicherheit: diese Anfrage wurde gesendet von einem %{platform}-Gerät unter Nutzung von %{browser}. Wenn du das Zurücksetzen des Passworts nicht angefragt hast, so kannst du diese E-Mail ignorieren."
357
+ salutation: Hallo, %{name}
358
+ subject: Setze dein Passwort zurück
359
+ trouble: Falls du Probleme mit der Nutzung der obigen Schaltfläche hast, kopiere die nachfolgende URL in deinen Browser.
326
360
  users:
327
361
  authorization: Authorisierung
328
362
  authorization_description: Administratoren können Benutzer verwalten. Normale Benutzer nicht.
@@ -330,11 +364,11 @@ de:
330
364
  delete: Benutzer löschen
331
365
  delete_confirmation_html: Bist du sicher, dass du den Benutzer <strong>%{user}</strong> löschen möchtest?
332
366
  deleted: Benutzer gelöscht
333
- last_login: Letztes Login
367
+ last_login: Letzte Anmeldung
334
368
  never_logged_in: Noch nie eingeloggt
335
369
  new: Neuer Benutzer
336
370
  profile: Profil
337
- profile_description: Diese Information wird zur Identifikation des Benutzers verwendet. Benutzer müssen sich mit ihrer Email Adresse anmelden.
371
+ profile_description: Diese Information wird zur Identifikation des Benutzers verwendet. Benutzer müssen sich mit ihrer E-Mail-Adresse anmelden.
338
372
  save: Benutzer speichern
339
373
  saved: Benutzer speichern
340
374
  visit_page: Seite besuchen
@@ -343,6 +377,7 @@ de:
343
377
  content: Inhalt
344
378
  documents: Dokumente
345
379
  images: Bilder
380
+ main: Hauptseiten
346
381
  media_library: Medien-Bibliothek
347
382
  media_library_description: Hier findest du alle deine Bilder und Dokumente
348
383
  pages: Seiten