locomotivecms 3.0.0.rc2 → 3.0.0.rc3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -2
- data/README.md +2 -1
- data/app/api/locomotive/api/entities/site_entity.rb +8 -0
- data/app/api/locomotive/api/exception_rescuers.rb +1 -1
- data/app/api/locomotive/api/forms/content_entry_form.rb +4 -3
- data/app/api/locomotive/api/helpers/params_helper.rb +21 -3
- data/app/api/locomotive/api/resources/current_site_resource.rb +1 -1
- data/app/api/locomotive/api/resources/site_resource.rb +2 -2
- data/app/assets/images/locomotive/deadend.png +0 -0
- data/app/assets/javascripts/locomotive/not_logged_in.js.coffee +1 -1
- data/app/assets/javascripts/locomotive/utils/core_ext.js +1 -1
- data/app/assets/javascripts/locomotive/utils/wysihtml5.js.coffee +43 -17
- data/app/assets/javascripts/locomotive/views/application_view.js.coffee +5 -1
- data/app/assets/javascripts/locomotive/views/editable_elements/edit_view.js.coffee +47 -0
- data/app/assets/javascripts/locomotive/views/editable_elements/iframe_view.js.coffee +59 -0
- data/app/assets/javascripts/locomotive/views/editable_elements/index_view.js.coffee +19 -92
- data/app/assets/javascripts/locomotive/views/editable_elements/page_view.js.coffee +81 -0
- data/app/assets/javascripts/locomotive/views/editable_elements/text_highlighter_view.js.coffee +76 -0
- data/app/assets/javascripts/locomotive/views/inputs/rte/edit_table_view.js.coffee +35 -0
- data/app/assets/javascripts/locomotive/views/inputs/rte/file_view.js.coffee +14 -10
- data/app/assets/javascripts/locomotive/views/inputs/rte/link_view.js.coffee +25 -15
- data/app/assets/javascripts/locomotive/views/inputs/rte/table_view.js.coffee +82 -0
- data/app/assets/javascripts/locomotive/views/inputs/rte_view.js.coffee.erb +64 -23
- data/app/assets/javascripts/locomotive/views/inputs/text_view.js.coffee +11 -6
- data/app/assets/javascripts/locomotive.js +2 -2
- data/app/assets/stylesheets/locomotive/application.scss +1 -3
- data/app/assets/stylesheets/locomotive/base/_form.scss +2 -1
- data/app/assets/stylesheets/locomotive/base/_typography.scss +3 -2
- data/app/assets/stylesheets/locomotive/base/form/_base.scss +5 -0
- data/app/assets/stylesheets/locomotive/base/form/_rte.scss +42 -0
- data/app/assets/stylesheets/locomotive/error.scss +1 -1
- data/app/assets/stylesheets/locomotive/globals/_mixins.scss +41 -48
- data/app/assets/stylesheets/locomotive/globals/_variables.scss +202 -121
- data/app/assets/stylesheets/locomotive/layouts/_not_logged_in.scss +8 -9
- data/app/assets/stylesheets/locomotive/live_editing_error.scss +19 -0
- data/app/assets/stylesheets/locomotive/live_editing_iframe.scss +84 -0
- data/app/assets/stylesheets/locomotive/unauthorized/_forms.scss +63 -0
- data/app/assets/stylesheets/locomotive/unauthorized/_keyframes.scss +31 -0
- data/app/assets/stylesheets/locomotive/unauthorized/_notify.scss +85 -0
- data/app/assets/stylesheets/locomotive/unauthorized/_public.scss +129 -0
- data/app/assets/stylesheets/locomotive/unauthorized/_type.scss +14 -0
- data/app/assets/stylesheets/locomotive/unauthorized/_variables.scss +54 -0
- data/app/assets/stylesheets/locomotive/unauthorized.scss +34 -0
- data/app/helpers/locomotive/dashboard_helper.rb +1 -1
- data/app/inputs/locomotive/rte_input.rb +12 -0
- data/app/models/locomotive/concerns/page/editable_elements.rb +0 -2
- data/app/models/locomotive/editable_element.rb +1 -1
- data/app/services/locomotive/content_asset_service.rb +1 -1
- data/app/services/locomotive/page_parsing_service.rb +4 -2
- data/app/views/locomotive/editable_elements/index.html.slim +1 -1
- data/app/views/locomotive/layouts/not_logged_in.html.slim +13 -9
- data/app/views/locomotive/passwords/edit.html.slim +13 -13
- data/app/views/locomotive/passwords/new.html.slim +14 -11
- data/app/views/locomotive/registrations/new.html.slim +14 -13
- data/app/views/locomotive/sessions/new.html.slim +14 -13
- data/app/views/locomotive/shared/rte/_markdown_toolbar.html.slim +0 -30
- data/app/views/locomotive/shared/rte/_table_popover.html.slim +17 -0
- data/app/views/locomotive/shared/rte/_toolbar.html.slim +48 -11
- data/config/initializers/simple_form.rb +2 -0
- data/config/locales/carrierwave.lt.yml +4 -0
- data/config/locales/carrierwave.nl.yml +4 -0
- data/config/locales/carrierwave.ru.yml +4 -0
- data/config/locales/default.nl.yml +13 -0
- data/config/locales/devise.nl.yml +61 -0
- data/config/locales/en.yml +28 -10
- data/config/locales/flash.nl.yml +79 -0
- data/config/locales/inputs.lt.yml +18 -0
- data/config/locales/inputs.nl.yml +18 -0
- data/config/locales/mongoid.nl.yml +47 -0
- data/config/locales/nl.yml +316 -0
- data/config/locales/simple_form.en.yml +6 -0
- data/config/locales/simple_form.nl.yml +148 -0
- data/lib/locomotive/carrierwave/asset.rb +5 -1
- data/lib/locomotive/dependencies.rb +0 -1
- data/lib/locomotive/engine.rb +7 -1
- data/lib/locomotive/middlewares/site.rb +14 -2
- data/lib/locomotive/mongoid/patches.rb +29 -0
- data/lib/locomotive/steam/middlewares/catch_error.rb +78 -0
- data/lib/locomotive/steam/middlewares/wysihtml_css.rb +32 -0
- data/lib/locomotive/steam_adaptor.rb +4 -7
- data/lib/locomotive/version.rb +1 -1
- data/spec/requests/locomotive/steam/cache_spec.rb +3 -3
- data/spec/requests/locomotive/steam/wysihtml_css_spec.rb +42 -0
- data/spec/requests/site_spec.rb +13 -2
- data/spec/support/features/session_helpers.rb +3 -3
- data/vendor/assets/components/locomotive/backbone/backbone.js +1894 -0
- data/vendor/assets/components/locomotive/underscore/underscore.js +1548 -0
- data/vendor/assets/components/locomotive_sources/backbone/LICENSE +22 -0
- data/vendor/assets/components/locomotive_sources/backbone/backbone-min.js +2 -0
- data/vendor/assets/components/locomotive_sources/backbone/backbone-min.map +1 -0
- data/vendor/assets/components/locomotive_sources/backbone/backbone.js +1894 -0
- data/vendor/assets/components/locomotive_sources/backbone/bower.json +8 -0
- data/vendor/assets/components/locomotive_sources/underscore/LICENSE +23 -0
- data/vendor/assets/components/locomotive_sources/underscore/README.md +22 -0
- data/vendor/assets/components/locomotive_sources/underscore/bower.json +7 -0
- data/vendor/assets/components/locomotive_sources/underscore/underscore-min.js +6 -0
- data/vendor/assets/components/locomotive_sources/underscore/underscore-min.map +1 -0
- data/vendor/assets/components/locomotive_sources/underscore/underscore.js +1548 -0
- data/vendor/assets/javascripts/locomotive/wysihtml5/parser_rules/advanced.js +22 -48
- data/vendor/assets/javascripts/locomotive/wysihtml5/parser_rules/advanced_unwrap.js +13 -12
- data/vendor/assets/javascripts/locomotive/wysihtml5x-toolbar.js +7324 -3862
- data/vendor/assets/stylesheets/locomotive/wysihtml5_editor.css +27 -1
- metadata +53 -28
- data/app/assets/stylesheets/locomotive/globals/_all.scss +0 -3
- data/app/assets/stylesheets/locomotive/globals/_bootstrap.scss +0 -841
- data/app/assets/stylesheets/locomotive/globals/_colors.scss +0 -1
- data/app/assets/stylesheets/locomotive/globals/_nprogress.scss +0 -3
- data/app/assets/stylesheets/locomotive/not_logged_in.scss +0 -15
@@ -0,0 +1,316 @@
|
|
1
|
+
nl:
|
2
|
+
locomotive:
|
3
|
+
locales:
|
4
|
+
en: Engels
|
5
|
+
de: Duits
|
6
|
+
fr: Frans
|
7
|
+
pl: Pools
|
8
|
+
pt: Portugees
|
9
|
+
pt-BR: "Braziliaans"
|
10
|
+
it: Italiaans
|
11
|
+
nl: Nederlands
|
12
|
+
nb: Noors
|
13
|
+
es: Spaans
|
14
|
+
ru: Russisch
|
15
|
+
et: Ests
|
16
|
+
ja: Japans
|
17
|
+
zh-CN: Chinees
|
18
|
+
cs: Tsjechisch
|
19
|
+
bg: Bulgaars
|
20
|
+
sk: Slowaaks
|
21
|
+
sr: Servisch
|
22
|
+
messages:
|
23
|
+
confirm: Weet u het zeker?
|
24
|
+
shared:
|
25
|
+
header:
|
26
|
+
welcome: Welkom, %{name}
|
27
|
+
sites: Mijn sites
|
28
|
+
account: Account instellingen
|
29
|
+
see: Bekijk website
|
30
|
+
help: Help
|
31
|
+
logout: Log uit
|
32
|
+
sidebar:
|
33
|
+
dashboard: Dashboard
|
34
|
+
assets: Assets
|
35
|
+
settings: Algemene instellingen
|
36
|
+
developers: 'Ontwikkelaars '
|
37
|
+
content_types:
|
38
|
+
title: Models
|
39
|
+
translations: Vertalingen
|
40
|
+
list:
|
41
|
+
untranslated: niet vertaald
|
42
|
+
created_at: "%{distance} geleden aangemaakt"
|
43
|
+
created_by: "%{distance} geleden aangemaakt door %{who}"
|
44
|
+
updated_at: "Laatst gewijzigd %{distance} geleden"
|
45
|
+
updated_by: "Laatst gewijzigd %{distance} geleden door {%who}"
|
46
|
+
rte:
|
47
|
+
toolbar:
|
48
|
+
table:
|
49
|
+
merge: Samenvoegen
|
50
|
+
insert_row_before: Voeg rij in ervoor
|
51
|
+
insert_row_after: Voeg rij in erna
|
52
|
+
insert_col_before: Voeg kolom in ervoor
|
53
|
+
insert_col_after: Voeg kolom in erna
|
54
|
+
delete_row: Verwijder rij
|
55
|
+
delete_col: Verwijder kolom
|
56
|
+
errors:
|
57
|
+
'500':
|
58
|
+
title: Applicatie fout
|
59
|
+
message: "Oeps, er is iets fout gegaan"
|
60
|
+
'404':
|
61
|
+
title: Pagina niet gevonden
|
62
|
+
message: "De pagina die u probeert te bereiken, bestaat niet."
|
63
|
+
no_site:
|
64
|
+
title: Site niet gevonden
|
65
|
+
next: "Volgende →"
|
66
|
+
message:
|
67
|
+
create_account: "Maak eerst een account aan voordat u een site maakt."
|
68
|
+
add_domain: "Voeg de <strong>%{host}</strong> domein toe aan de lijst van domeinen van één van uw sites."
|
69
|
+
sign_in: "Gelieve eerst aan te melden. Daarna kan u de <strong>%{host}</strong> domein toevoegen aan de lijst van domeinen voor één van uw sites."
|
70
|
+
notifications:
|
71
|
+
new_content_entry:
|
72
|
+
subject: "[%{domain}][%{type}] nieuw item"
|
73
|
+
title: "Hallo %{name}, we wilden u laten weten dat er een nieuwe instantie werd aangemaakt op %{date} voor de site <b>%{domain}</b>"
|
74
|
+
type: "Model: %{type}"
|
75
|
+
activity:
|
76
|
+
site:
|
77
|
+
created: 'De site is aangemaakt'
|
78
|
+
page:
|
79
|
+
created: 'Pagina %{page} is aangemaakt'
|
80
|
+
updated: 'Pagina %{page} is aangepast '
|
81
|
+
destroyed: 'Pagina %{page} is verwijderd'
|
82
|
+
sorted: 'Gesorteerde pagina''s'
|
83
|
+
editable_element:
|
84
|
+
updated_bulk: 'inhoud aangepast van %{pages}'
|
85
|
+
content_entry:
|
86
|
+
created: '%{entry} toegevoegd in %{content_type}'
|
87
|
+
created_public: '%{entry} toegevoegd in %{content_type} van een publiek formulier'
|
88
|
+
updated: '%{entry} gewijzigd van %{content_type}'
|
89
|
+
destroyed: '%{entry} verwijderd uit %{content_type}'
|
90
|
+
sorted: '%{content_type} gesorteerd'
|
91
|
+
content_asset:
|
92
|
+
created_bulk: '%{count} bestand(en) geupload'
|
93
|
+
destroyed: '%{name} bestand verwijderd.'
|
94
|
+
membership:
|
95
|
+
created: '%{name} toegevoegd aan de site'
|
96
|
+
pagination:
|
97
|
+
first: "«"
|
98
|
+
last: "»"
|
99
|
+
previous: "‹"
|
100
|
+
next: "›"
|
101
|
+
truncate: "…"
|
102
|
+
custom_fields:
|
103
|
+
select_options:
|
104
|
+
edit:
|
105
|
+
title: "%{type} — bewerkingsopties"
|
106
|
+
back: "Terug naar het item"
|
107
|
+
option:
|
108
|
+
edit: Bewerk
|
109
|
+
apply: Toepassen
|
110
|
+
cancel: Annuleer
|
111
|
+
types:
|
112
|
+
belongs_to:
|
113
|
+
edit: Bewerk
|
114
|
+
placeholder: "Kies een %{name}"
|
115
|
+
searching: Zoeken...
|
116
|
+
no_matches: Geen overeenkomsten gevonden
|
117
|
+
too_short: Vul minstens 1 karakter in
|
118
|
+
many_to_many:
|
119
|
+
placeholder: "Kies uit een van de %{name}"
|
120
|
+
searching: Zoeken...
|
121
|
+
no_matches: Geen overeenkomsten gevonden
|
122
|
+
too_short: Vul minstens 1 karakter in
|
123
|
+
select:
|
124
|
+
edit: Opties aanpassen
|
125
|
+
file:
|
126
|
+
delete_file: Verwijder bestand
|
127
|
+
has_many:
|
128
|
+
new_label: Voeg een nieuwe toe
|
129
|
+
form:
|
130
|
+
required: Verplicht
|
131
|
+
default_label: Veld naam
|
132
|
+
select_options:
|
133
|
+
ask_name: "Typ het label van de optie"
|
134
|
+
dashboard:
|
135
|
+
show:
|
136
|
+
title: 'Dashboard'
|
137
|
+
url:
|
138
|
+
title: "URL van uw site"
|
139
|
+
visit: 'Bezoek'
|
140
|
+
change_domain: 'Gebruik uw eigen domeinnaam'
|
141
|
+
activity:
|
142
|
+
title: 'Activieit '
|
143
|
+
unknown_account: Iemand
|
144
|
+
load_more: Meer laden
|
145
|
+
loading_activity_feed: Laden...
|
146
|
+
sessions:
|
147
|
+
new:
|
148
|
+
email: "Email"
|
149
|
+
link: "Wachtwoord vergeten"
|
150
|
+
password: "Wachtwoord"
|
151
|
+
sign_up: Heeft u geen account?
|
152
|
+
submit: Aanmelden
|
153
|
+
title: Aanmelden
|
154
|
+
|
155
|
+
registrations:
|
156
|
+
new:
|
157
|
+
confirm_password: "Herhaal uw nieuwe wachtwoord"
|
158
|
+
description: "Het ziet er naar uit dat u de eerste hier bent, creëer een account hieronder om Locomotive te gebruiken."
|
159
|
+
sign_in: Heeft u al een account?
|
160
|
+
submit: Registeren
|
161
|
+
title: "Registreer"
|
162
|
+
|
163
|
+
passwords:
|
164
|
+
new:
|
165
|
+
description: "Vul uw email in hieronder en ontvang een email met instructies over hoe u uw wachtwoord kunt wijzigen."
|
166
|
+
link: "Ga terug naar de login pagina"
|
167
|
+
email: "Uw email"
|
168
|
+
submit: "Verzenden"
|
169
|
+
title: "Wachtwoord vergeten"
|
170
|
+
edit:
|
171
|
+
description: "Vul uw nieuw wachtwoord in hieronder."
|
172
|
+
link: "Ga terug naar de login pagina"
|
173
|
+
password: "Uw nieuwe wachtwoord"
|
174
|
+
password_confirmation: "Herhaal uw nieuwe wachtwoord"
|
175
|
+
submit: "Wachtwoord veranderen"
|
176
|
+
title: Wachtwoord veranderen
|
177
|
+
|
178
|
+
pages:
|
179
|
+
index:
|
180
|
+
title: 'Pagina''s'
|
181
|
+
new: 'Nieuwe pagina'
|
182
|
+
list_content_entries: "Lijst %{name}"
|
183
|
+
new_content_entry: "Nieuw %{name}"
|
184
|
+
new:
|
185
|
+
title: Nieuwe pagina
|
186
|
+
help: "Vul onderstaand formulier in om een pagina aan te maken. Let op, deze pagina wordt standaard niet gepubliceerd."
|
187
|
+
edit:
|
188
|
+
title: "%{title} — <small>%{fullpath}</small>"
|
189
|
+
form:
|
190
|
+
no_layout: Gebruik de layout van de hoofd pagina
|
191
|
+
redirect_type:
|
192
|
+
permanent: "Permanent (301)"
|
193
|
+
temporary: "Tijdelijk (302)"
|
194
|
+
editable_elements:
|
195
|
+
index:
|
196
|
+
redirection_error: "Het bewerken van een niet Locomotive pagina is verboden"
|
197
|
+
iframe:
|
198
|
+
buttons:
|
199
|
+
edit: bewerk
|
200
|
+
index_without_preview:
|
201
|
+
title: "%{title} — <small>%{fullpath}</small>"
|
202
|
+
edit:
|
203
|
+
settings_link: 'Instellingen'
|
204
|
+
no_editable_elements: 'Geen bewerkbare elementen gevonden'
|
205
|
+
blocks:
|
206
|
+
all: Alles
|
207
|
+
unknown: Onbekend
|
208
|
+
form:
|
209
|
+
model:
|
210
|
+
buttons:
|
211
|
+
list: Beheer
|
212
|
+
edit: Bewerk
|
213
|
+
sites:
|
214
|
+
index:
|
215
|
+
title: Mijn sites
|
216
|
+
new: Voeg een nieuwe site toe
|
217
|
+
new:
|
218
|
+
title: Nieuwe site
|
219
|
+
help: "Vul onderstaand formulier in om een nieuwe site aan te maken."
|
220
|
+
site:
|
221
|
+
no_domain: Geen domein
|
222
|
+
current_site:
|
223
|
+
edit:
|
224
|
+
title: De huidige site bewerken
|
225
|
+
form:
|
226
|
+
main:
|
227
|
+
new_membership: "Voeg een account toe"
|
228
|
+
advanced:
|
229
|
+
destroy: "Verwijder deze site"
|
230
|
+
confirm_destroy: "Bevestig uw actie door de naam van de site in te vullen"
|
231
|
+
memberships:
|
232
|
+
roles:
|
233
|
+
admin: Beheerder
|
234
|
+
designer: Ontwerper
|
235
|
+
author: Auteur
|
236
|
+
new:
|
237
|
+
title: Nieuw lidmaatschap
|
238
|
+
help: "Gelieve een account email ingeven om toe te voegen. Als het niet bestaat, dan zal u doorverwezen worden naar het account creatie formulier."
|
239
|
+
back: "Terug naar de site instellingen"
|
240
|
+
edit:
|
241
|
+
title: "Lidmaatschap wijzigen voor <b>%{name}</b>"
|
242
|
+
back: "Terug naar de site instellingen"
|
243
|
+
accounts:
|
244
|
+
new:
|
245
|
+
title: Nieuw account
|
246
|
+
help: "Vul onderstaand formulier in om een account aan te maken."
|
247
|
+
my_account:
|
248
|
+
edit:
|
249
|
+
title: Account bewerken
|
250
|
+
translations:
|
251
|
+
untranslated: "Onvertaalde landinstellingen: %{list}"
|
252
|
+
index:
|
253
|
+
title: Vertalingen
|
254
|
+
no_items: "We hebben geen vertalingen gevonden."
|
255
|
+
search_placeholder: "Vul een key of vertaling in"
|
256
|
+
help: "Vertaal alle items met een oranje (deels vertaald) of rode (niet vertaald) stip."
|
257
|
+
filter_by:
|
258
|
+
all: Alle
|
259
|
+
done: Vertaald
|
260
|
+
partially: Deels vertaald
|
261
|
+
none: Niet vertaald
|
262
|
+
edit:
|
263
|
+
title: "Vertalingen — wijzigen %{key}"
|
264
|
+
form:
|
265
|
+
not_translated: "Niet vertaald"
|
266
|
+
content_assets:
|
267
|
+
index:
|
268
|
+
title: "Media"
|
269
|
+
upload: Upload bestanden
|
270
|
+
edit_in_drawer:
|
271
|
+
buttons:
|
272
|
+
resize: "Formaat wijzigen"
|
273
|
+
crop: "Bijsnijden"
|
274
|
+
apply: "Toepassen"
|
275
|
+
dropzone:
|
276
|
+
instructions: "<strong>Sleep bestanden van uw computer hier naartoe.</strong><br/>U kunt ook"
|
277
|
+
browse: "Zoeken naar een bestand"
|
278
|
+
list:
|
279
|
+
no_items: "Er is geen media op dit moment."
|
280
|
+
buttons:
|
281
|
+
select: "Selecteer"
|
282
|
+
edit: "Bewerk"
|
283
|
+
nav:
|
284
|
+
types:
|
285
|
+
all: Alles
|
286
|
+
pdf: PDF's
|
287
|
+
image: Afbeeldingen
|
288
|
+
media: andere bestanden
|
289
|
+
others: overige
|
290
|
+
search_form:
|
291
|
+
placeholder: Zoeken bij bestandsnaam
|
292
|
+
public_submission_accounts:
|
293
|
+
edit:
|
294
|
+
title: "%{name} — Notificatie instellingen"
|
295
|
+
content_entries:
|
296
|
+
index:
|
297
|
+
title: '%{type}'
|
298
|
+
download: Download items
|
299
|
+
new: Nieuwe item
|
300
|
+
edit_notification_settings: Wijzig notificatie instellingen
|
301
|
+
search_placeholder: "Voeg uw zoek kernwoorden hier in"
|
302
|
+
group_by:
|
303
|
+
all: Alles
|
304
|
+
list:
|
305
|
+
no_items: "Er zijn geen items beschikbaar. Klik <a href=\"%{url}\">hier</a> om een eerste aan te maken."
|
306
|
+
new:
|
307
|
+
title: '%{type} — nieuw item'
|
308
|
+
edit:
|
309
|
+
title: '%{type} — item aanpassen'
|
310
|
+
shared:
|
311
|
+
back: '← Terug naar de lijst'
|
312
|
+
developers_documentation:
|
313
|
+
show:
|
314
|
+
title: Ontwikkelaars
|
315
|
+
wagon: Wagon
|
316
|
+
api: API
|
@@ -0,0 +1,148 @@
|
|
1
|
+
nl:
|
2
|
+
simple_form:
|
3
|
+
blank_required_fields: "U hebt niet alle vereiste velden ingevuld."
|
4
|
+
titles:
|
5
|
+
locomotive:
|
6
|
+
account:
|
7
|
+
information: Main
|
8
|
+
api: API
|
9
|
+
credentials: Aanmeldingsgegevens
|
10
|
+
site:
|
11
|
+
information: Main
|
12
|
+
access_points: Toegangspunten
|
13
|
+
seo: SEO
|
14
|
+
advanced: Geavanceerd
|
15
|
+
url_redirections: URL doorverwijzingen
|
16
|
+
page:
|
17
|
+
content: Inhoud
|
18
|
+
settings: Instellingen
|
19
|
+
seo: SEO
|
20
|
+
content_entry:
|
21
|
+
content: Inhoud
|
22
|
+
advanced: Geavanceerd
|
23
|
+
seo: SEO
|
24
|
+
labels:
|
25
|
+
locomotive:
|
26
|
+
content_entry:
|
27
|
+
_slug: Permalink
|
28
|
+
_visible: Zichtbaar
|
29
|
+
content_type:
|
30
|
+
public_submission_accounts: "Meegedeelde accounts"
|
31
|
+
account:
|
32
|
+
api_key: API key
|
33
|
+
no_api_key: Geen
|
34
|
+
edit:
|
35
|
+
locale: Gebruiksinterface taal
|
36
|
+
password: Nieuw wachtwoord
|
37
|
+
password_confirmation: Nieuw wachtwoord bevestigen
|
38
|
+
page:
|
39
|
+
seo_title: Titel
|
40
|
+
target_klass_name: Model
|
41
|
+
editable_element:
|
42
|
+
region: Secties
|
43
|
+
site:
|
44
|
+
locales: Talen
|
45
|
+
timezone_name: Tijdzone
|
46
|
+
cache_enabled: Cache
|
47
|
+
new:
|
48
|
+
locales: Eerste taal
|
49
|
+
membership:
|
50
|
+
edit:
|
51
|
+
role: Nieuwe rol
|
52
|
+
rte_input_link_form:
|
53
|
+
url: Link URL
|
54
|
+
target: Doelwit
|
55
|
+
title: Titel
|
56
|
+
rte_input_image_form:
|
57
|
+
src: Bron
|
58
|
+
title: Titel
|
59
|
+
alignment: Opstelling
|
60
|
+
image_resize_form:
|
61
|
+
width: Breedte
|
62
|
+
height: Hoogte
|
63
|
+
rte_input_table_form:
|
64
|
+
cols: "Kolommen"
|
65
|
+
rows: "Rijen"
|
66
|
+
head: "Hoofd rij?"
|
67
|
+
class_name: "CSS class"
|
68
|
+
hints:
|
69
|
+
locomotive:
|
70
|
+
account:
|
71
|
+
api_key: "Gebruik Wagon om uw site te implementeren (controleer config/deploy.yml van uw Wagon site)."
|
72
|
+
password: Minimum 6 karakters
|
73
|
+
page:
|
74
|
+
handle: "Unieke identificatie nodig om deze pagina te ontvangen binnenin een externe controller instance."
|
75
|
+
published: "Enkel aangemelde accounts kunnen ongepubliceerde pagina's bekijken."
|
76
|
+
templatized: "Gebruik de pagina als een voorbeeld voor een model dat u hebt aangemaakt."
|
77
|
+
cache_enabled: "Wanneer ingeschakeld, dan wordt uw pagina gecached zo lang de inhoud niet wijzigt."
|
78
|
+
listed: "Controleer of u een pagina wil tonen van de gegenereerde menus."
|
79
|
+
target_klass_name: "Het type van de inhoud dat deze pagina een template zal voor zijn."
|
80
|
+
seo_title: "Definieer een pagina titel die zal gebruikt worden als de waarde voor de SEO titel tag. Laat het leeg als u de standaard waarde van de site instellingen wilt gebruiken."
|
81
|
+
meta_keywords: "Overschrijf de site zijn keywords die gebruikt worden voor SEO doeleinden. Ze zijn gescheiden door een komma."
|
82
|
+
meta_description: "Overschrijf de site meta omschrijving die gebruikt wordt voor SEO doeleinden."
|
83
|
+
is_layout: "Indien waar, dan kan deze pagina gebruikt worden als layout voor andere pagina's."
|
84
|
+
allow_layout: "Laat auteurs de layout van een pagina wijzigen of niet."
|
85
|
+
site:
|
86
|
+
locales: "Sleep een flag naar de eerste positie om de standaard taal te kiezen."
|
87
|
+
seo_title: "Definieer hier een globale waarde die zou gebruikt worden voor de waarde van de title tag in de head sectie voor SEO doeleinden."
|
88
|
+
meta_keywords: "Keywords gebruikt in de head tag van de pagina. Ze zijn gescheiden door een komma en worden gebruikt voor SEO doeleinden."
|
89
|
+
meta_description: "Meta omschrijving gebruikt in de head tag van de pagina. Gebruikt voor SEO doeleinden."
|
90
|
+
robots_txt: "Inhoud van het <span class='code'>/robots.txt</span> bestand. Controleer de volgende <a href='http://www.w3.org/TR/html4/appendix/notes.html#h-B.4.1.1'>link</a> voor meer info."
|
91
|
+
domains: "Voeg domeinnamen toe hieronder. Daarna registreer een CNAME DNS record die wijst naar <b>%{domain}</b>."
|
92
|
+
memberships: "U kan andere account uitnodigen om de site te beheren."
|
93
|
+
cache_enabled: "Wanneer ingeschakeld, uw pagina's zullen worden gecached zolang de inhoud niet veranderd. Het uitschakelen van de cache per pagina is toegestaan."
|
94
|
+
redirect_to_first_domain: "Wanneer ingeschakeld, requests gemaakt naar gelijk welke domeinnaam zal worden doorgestuurd naar het eerste domein."
|
95
|
+
url_redirections: "Redirect (301) verouderde urls naar pagina's die u gecreëerd hebt in de back-office. De oorsprong en de bestemming URLs zijn gescheiden door een <u>spatie</u>."
|
96
|
+
new:
|
97
|
+
locales: "U kan andere talen toevoegen eenmaal de site gecreëerd is."
|
98
|
+
translation:
|
99
|
+
key: "Gebruik geen streepje maar een underscore. Voorbeeld: welcome_message."
|
100
|
+
content_entry:
|
101
|
+
_slug: "Eigenschap gebruikt om de url van een pagina die werkt als een template voor dit content type (voorbeeld: \"template_page/{{ your_object._permalink }})\"."
|
102
|
+
_visible: "Standaard zal het item tonen in de site. Dus het kan gebruikt worden als een gepubliceerde eigenschap."
|
103
|
+
seo_title: "De waarde die u hier invult zal de SEO titel vervangen van de templatized pagina gerelateerd aan uw model."
|
104
|
+
meta_keywords: "Overschrijft de site zijn keywords die gebruikt worden voor SEO doeleinden. Ze zijn gescheiden door een komma."
|
105
|
+
meta_description: "Overschrijf de site meta omschrijving die gebruikt wordt voor SEO doeleinden."
|
106
|
+
content_type:
|
107
|
+
public_submission_accounts: "Wanneer een item gecreëerd is, stuur dan een notificatie email naar de accounts hieronder."
|
108
|
+
image_resize_form:
|
109
|
+
width: "in px"
|
110
|
+
height: "in px"
|
111
|
+
placeholders:
|
112
|
+
locomotive:
|
113
|
+
site:
|
114
|
+
domains: "Bijvoorbeeld: mysite.com"
|
115
|
+
url_redirections: "Bijvoorbeeld: oude-url nieuwe-url-in-locomotive"
|
116
|
+
content_type_entry_field:
|
117
|
+
select_options: "Typ de label van uw nieuwe optie hier"
|
118
|
+
options:
|
119
|
+
locomotive:
|
120
|
+
rte_input_link_form:
|
121
|
+
target:
|
122
|
+
not_set: "Niet ingesteld"
|
123
|
+
self: "Open de link in hetzelfde venster"
|
124
|
+
blank: "Open een link in een nieuw venster"
|
125
|
+
rte_input_image_form:
|
126
|
+
alignment:
|
127
|
+
default: Standaard
|
128
|
+
left: Links
|
129
|
+
right: Rechts
|
130
|
+
buttons:
|
131
|
+
defaults:
|
132
|
+
locomotive:
|
133
|
+
create: Creëer
|
134
|
+
update: Opslaan
|
135
|
+
submit: Ok
|
136
|
+
cancel: Annuleer
|
137
|
+
delete: Verwijder
|
138
|
+
close: Sluiten
|
139
|
+
loading_text: "Aan het opslaan..."
|
140
|
+
or: of
|
141
|
+
locomotive:
|
142
|
+
account:
|
143
|
+
new_api_key: Regenereren
|
144
|
+
image_resize_form:
|
145
|
+
loading_text: Aan het wijzigen...
|
146
|
+
submit: Formaat wijzigen
|
147
|
+
site:
|
148
|
+
delete: Verwijder deze site
|
@@ -50,7 +50,11 @@ module Locomotive
|
|
50
50
|
def set_width_and_height
|
51
51
|
if model.image?
|
52
52
|
dragonfly_img = ::Dragonfly.app(:engine).fetch_file(current_path)
|
53
|
-
|
53
|
+
begin
|
54
|
+
model.width, model.height = dragonfly_img.width, dragonfly_img.height
|
55
|
+
rescue Exception => e
|
56
|
+
Rails.logger.error "[Dragonfly] Unable to get the width and the height, error: #{e.message}\n#{e.backtrace.join("\n")}"
|
57
|
+
end
|
54
58
|
end
|
55
59
|
end
|
56
60
|
|
data/lib/locomotive/engine.rb
CHANGED
@@ -29,6 +29,10 @@ module Locomotive
|
|
29
29
|
::DeviseController.respond_to :html, :json
|
30
30
|
end
|
31
31
|
|
32
|
+
initializer 'locomotive.assets' do |app|
|
33
|
+
app.config.assets.paths << root.join('vendor', 'assets', 'components', 'locomotive')
|
34
|
+
end
|
35
|
+
|
32
36
|
initializer 'locomotive.precompile.hook', group: :all do |app|
|
33
37
|
app.config.assets.precompile += %w(
|
34
38
|
locomotive/bootstrap-colorpicker/saturation.png
|
@@ -41,7 +45,9 @@ module Locomotive
|
|
41
45
|
locomotive.js
|
42
46
|
locomotive.css
|
43
47
|
locomotive/not_logged_in.js
|
44
|
-
locomotive/
|
48
|
+
locomotive/unauthorized.css
|
49
|
+
locomotive/live_editing_iframe.css
|
50
|
+
locomotive/live_editing_error.css
|
45
51
|
locomotive/error.css)
|
46
52
|
|
47
53
|
# Uncomment the lines below to view the names of assets as they are
|
@@ -2,6 +2,8 @@ module Locomotive
|
|
2
2
|
module Middlewares
|
3
3
|
class Site
|
4
4
|
|
5
|
+
include Locomotive::Engine.routes.url_helpers
|
6
|
+
|
5
7
|
def initialize(app, opts = {})
|
6
8
|
@app = app
|
7
9
|
end
|
@@ -23,8 +25,7 @@ module Locomotive
|
|
23
25
|
begin
|
24
26
|
@app.call(env)
|
25
27
|
rescue ::Locomotive::Steam::NoSiteException => exception
|
26
|
-
|
27
|
-
Locomotive::ErrorsController.action(:no_site).call(env)
|
28
|
+
handle_no_account_or_site(env)
|
28
29
|
end
|
29
30
|
end
|
30
31
|
end
|
@@ -47,6 +48,17 @@ module Locomotive
|
|
47
48
|
end
|
48
49
|
end
|
49
50
|
|
51
|
+
# if no account in the database, must be a fresh install,
|
52
|
+
# then ask the user to create the first account.
|
53
|
+
# if accounts but not no site, render a specific error page.
|
54
|
+
def handle_no_account_or_site(env)
|
55
|
+
if Locomotive::Account.count == 0
|
56
|
+
[301, { 'Location' => sign_up_path, 'Content-Type' => 'text/html' }, []]
|
57
|
+
else
|
58
|
+
Locomotive::ErrorsController.action(:no_site).call(env)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
50
62
|
# The site is not rendered from a domain but from the back-office
|
51
63
|
# we need to get:
|
52
64
|
# - the path of "mouting point" (basically: locomotive/:handle/preview)
|
@@ -41,6 +41,35 @@ module Mongoid #:nodoc:
|
|
41
41
|
end
|
42
42
|
end
|
43
43
|
end
|
44
|
+
|
45
|
+
module Embedded
|
46
|
+
class Many < Relations::Many
|
47
|
+
|
48
|
+
def with_same_class!(document, klass)
|
49
|
+
return document if document.is_a?(klass)
|
50
|
+
|
51
|
+
Factory.build(klass, {}).tap do |_document|
|
52
|
+
# make it part of the relationship
|
53
|
+
_document.apply_post_processed_defaults
|
54
|
+
integrate(_document)
|
55
|
+
|
56
|
+
# make it look like the old document
|
57
|
+
attributes = document.attributes
|
58
|
+
attributes['_type'] = _document._type
|
59
|
+
|
60
|
+
_document.instance_variable_set(:@attributes, attributes)
|
61
|
+
_document.new_record = document.new_record?
|
62
|
+
_document._index = document._index
|
63
|
+
|
64
|
+
# finally, make the change in the lists
|
65
|
+
target[_document._index] = _document
|
66
|
+
_unscoped[_document._index] = _document
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
44
73
|
end
|
45
74
|
module Extensions
|
46
75
|
module Object
|
@@ -0,0 +1,78 @@
|
|
1
|
+
module Locomotive
|
2
|
+
module Steam
|
3
|
+
module Middlewares
|
4
|
+
|
5
|
+
class CatchError
|
6
|
+
|
7
|
+
def initialize(app, opts = {})
|
8
|
+
@app = app
|
9
|
+
end
|
10
|
+
|
11
|
+
def call(env)
|
12
|
+
begin
|
13
|
+
@app.call(env)
|
14
|
+
rescue Exception => e
|
15
|
+
handle_exception(e, env)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
protected
|
20
|
+
|
21
|
+
def handle_exception(exception, env)
|
22
|
+
# display the application error page if not in the back-office
|
23
|
+
raise exception unless env['steam.live_editing']
|
24
|
+
|
25
|
+
ActiveSupport::Notifications.instrument 'locomotive.site.rendering_error', {
|
26
|
+
env: env,
|
27
|
+
exception: exception
|
28
|
+
}
|
29
|
+
|
30
|
+
Rails.logger.error "[LiveEditing] " + exception.message + "\n\t" + exception.backtrace.join("\n\t")
|
31
|
+
|
32
|
+
render_error_page
|
33
|
+
end
|
34
|
+
|
35
|
+
def render_error_page
|
36
|
+
[200, {}, [%(
|
37
|
+
<html>
|
38
|
+
<head>
|
39
|
+
<link href="#{bootstrap_stylesheet_url}" rel="stylesheet" type="text/css" />
|
40
|
+
</head>
|
41
|
+
<body>
|
42
|
+
<div class="container">
|
43
|
+
<div class="row">
|
44
|
+
<div class="col-md-12">
|
45
|
+
<img src="#{train_image_url}">
|
46
|
+
|
47
|
+
<div class="alert alert-danger" role="alert">
|
48
|
+
<h4 class="text-center">
|
49
|
+
We're sorry, but something went wrong.
|
50
|
+
</h4>
|
51
|
+
<p class="text-center">
|
52
|
+
If you are the application owner check the logs for more information.
|
53
|
+
</p>
|
54
|
+
</div>
|
55
|
+
</div>
|
56
|
+
</div>
|
57
|
+
</div>
|
58
|
+
</body>
|
59
|
+
</html>
|
60
|
+
)]]
|
61
|
+
end
|
62
|
+
|
63
|
+
def bootstrap_stylesheet_url
|
64
|
+
::ActionController::Base.helpers.stylesheet_url('locomotive/live_editing_error')
|
65
|
+
end
|
66
|
+
|
67
|
+
def train_image_url
|
68
|
+
::ActionController::Base.helpers.image_url('locomotive/deadend.png')
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
|
78
|
+
|