fae-rails 1.7.1 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -2
- data/Rakefile +0 -3
- data/app/assets/images/fae/tutorial_model_location.png +0 -0
- data/app/assets/javascripts/fae/_deploy.js +198 -0
- data/app/assets/javascripts/fae/_modals.js +94 -0
- data/app/assets/javascripts/fae/_tables.js +11 -25
- data/app/assets/javascripts/fae/application.js +4 -2
- data/app/assets/javascripts/fae/fae_init.js +0 -4
- data/app/assets/javascripts/fae/form/_ajax.js +26 -7
- data/app/assets/javascripts/fae/form/_cancel.js +1 -0
- data/app/assets/javascripts/fae/form/_filtering.js +34 -0
- data/app/assets/javascripts/fae/form/_form.js +1 -0
- data/app/assets/javascripts/fae/form/_form_manager.js +295 -0
- data/app/assets/javascripts/fae/form/_slugger.js.erb +2 -2
- data/app/assets/javascripts/fae/form/_validator.js +24 -14
- data/app/assets/javascripts/fae/form/inputs/_color.js +2 -1
- data/app/assets/javascripts/fae/form/inputs/_select.js +5 -2
- data/app/assets/javascripts/fae/navigation/_language.js +1 -1
- data/app/assets/javascripts/fae/navigation/_navigation.js +9 -21
- data/app/assets/javascripts/fae/navigation/_subnav_highlighter.js +7 -41
- data/app/assets/javascripts/fae/vendor/jqColorPicker.min.js +0 -1
- data/app/assets/stylesheets/fae/base.scss +7 -8
- data/app/assets/stylesheets/fae/globals/imports/_variables.scss +1 -2
- data/app/assets/stylesheets/fae/globals/layout/_base.scss +7 -2
- data/app/assets/stylesheets/fae/globals/layout/_content-header.scss +17 -31
- data/app/assets/stylesheets/fae/globals/navigation/_header.scss +2 -2
- data/app/assets/stylesheets/fae/globals/navigation/_multi-col-subnav.scss +50 -0
- data/app/assets/stylesheets/fae/modules/_buttons.scss +11 -0
- data/app/assets/stylesheets/fae/modules/_deploy.scss +25 -0
- data/app/assets/stylesheets/fae/modules/_modal.scss +25 -0
- data/app/assets/stylesheets/fae/modules/_toggles.scss +39 -23
- data/app/assets/stylesheets/fae/modules/forms/_asset-actions.scss +1 -1
- data/app/assets/stylesheets/fae/modules/forms/_base.scss +1 -1
- data/app/assets/stylesheets/fae/modules/forms/_checkbox.scss +1 -1
- data/app/assets/stylesheets/fae/modules/forms/_date.scss +16 -0
- data/app/assets/stylesheets/fae/modules/forms/_form-manager.scss +82 -0
- data/app/assets/stylesheets/fae/modules/forms/_radio.scss +1 -1
- data/app/assets/stylesheets/fae/modules/forms/_select.scss +7 -6
- data/app/assets/stylesheets/fae/modules/forms/_simple-mde.scss +1 -1
- data/app/assets/stylesheets/fae/modules/forms/_textarea.scss +1 -1
- data/app/assets/stylesheets/fae/modules/tables/_filters.scss +4 -0
- data/app/assets/stylesheets/fae/pages/_home.scss +18 -0
- data/app/assets/stylesheets/fae/pages/_login.scss +4 -0
- data/app/controllers/fae/application_controller.rb +22 -1
- data/app/controllers/fae/base_controller.rb +6 -2
- data/app/controllers/fae/deploy_controller.rb +24 -0
- data/app/controllers/fae/deploy_hooks_controller.rb +71 -0
- data/app/controllers/fae/form_managers_controller.rb +19 -0
- data/app/controllers/fae/options_controller.rb +1 -0
- data/app/controllers/fae/pages_controller.rb +3 -2
- data/app/controllers/fae/static_pages_controller.rb +6 -1
- data/app/controllers/fae/users_controller.rb +19 -1
- data/app/controllers/fae/utilities_controller.rb +18 -6
- data/app/helpers/fae/application_helper.rb +27 -2
- data/app/helpers/fae/form_helper.rb +40 -8
- data/app/helpers/fae/nested_form_helper.rb +2 -2
- data/app/helpers/fae/view_helper.rb +99 -43
- data/app/models/concerns/fae/base_model_concern.rb +10 -7
- data/app/models/concerns/fae/user_concern.rb +10 -1
- data/app/models/fae/change.rb +18 -5
- data/app/models/fae/deploy_hook.rb +12 -0
- data/app/models/fae/file.rb +1 -1
- data/app/models/fae/form_manager.rb +24 -0
- data/app/models/fae/image.rb +1 -1
- data/app/models/fae/option.rb +1 -1
- data/app/models/fae/role.rb +1 -1
- data/app/models/fae/static_page.rb +11 -2
- data/app/models/fae/user.rb +4 -5
- data/app/services/fae/netlify_api.rb +197 -0
- data/app/uploaders/fae/file_uploader.rb +2 -5
- data/app/uploaders/fae/image_uploader.rb +3 -3
- data/app/views/devise/unlocks/new.html.slim +5 -9
- data/app/views/fae/application/_content_form.html.slim +16 -11
- data/app/views/fae/application/_file_uploader.html.slim +11 -3
- data/app/views/fae/application/_global_search_results.html.slim +2 -2
- data/app/views/fae/application/_header.slim +12 -9
- data/app/views/fae/application/_markdown_helper.slim +17 -17
- data/app/views/fae/application/_mobilenav.slim +9 -6
- data/app/views/fae/application/_user_log.html.slim +2 -2
- data/app/views/fae/deploy/index.html.slim +40 -0
- data/app/views/fae/deploy_hooks/_form.html.slim +18 -0
- data/app/views/fae/deploy_hooks/_table.html.slim +28 -0
- data/app/views/fae/deploy_hooks/edit.html.slim +3 -0
- data/app/views/fae/deploy_hooks/new.html.slim +3 -0
- data/app/views/fae/images/_image_uploader.html.slim +15 -6
- data/app/views/fae/options/_form.html.slim +11 -8
- data/app/views/fae/pages/activity_log.html.slim +16 -12
- data/app/views/fae/pages/disabled_environment.html.slim +2 -2
- data/app/views/fae/pages/error404.html.slim +5 -3
- data/app/views/fae/pages/home.html.slim +32 -21
- data/app/views/fae/setup/first_user.html.slim +3 -3
- data/app/views/fae/shared/_form_header.html.slim +37 -33
- data/app/views/fae/shared/_index_header.html.slim +3 -2
- data/app/views/fae/shared/_nested_table.html.slim +6 -6
- data/app/views/fae/shared/_recent_changes.html.slim +6 -6
- data/app/views/fae/shared/_shared_nested_table.html.slim +5 -2
- data/app/views/fae/static_pages/index.html.slim +2 -2
- data/app/views/fae/users/_form.html.slim +8 -12
- data/app/views/fae/users/index.html.slim +7 -7
- data/app/views/layouts/fae/application.html.slim +1 -0
- data/config/deploy.rb +3 -1
- data/config/initializers/devise.rb +6 -6
- data/config/locales/devise.cs.yml +59 -0
- data/config/locales/fae.cs.yml +125 -0
- data/config/locales/fae.en.yml +145 -0
- data/config/locales/fae.zh-CN.yml +109 -0
- data/config/routes.rb +9 -1
- data/db/migrate/20140809222030_add_user_table.rb +2 -2
- data/db/migrate/20140822224029_create_fae_roles.rb +1 -1
- data/db/migrate/20141008180718_create_fae_images_table.rb +1 -1
- data/db/migrate/20141017194616_create_fae_options.rb +1 -1
- data/db/migrate/20141021181327_create_fae_files.rb +1 -1
- data/db/migrate/20141021183047_create_fae_text_areas.rb +1 -1
- data/db/migrate/20141021184311_create_fae_pages.rb +1 -1
- data/db/migrate/20141105214814_create_fae_text_fields.rb +1 -1
- data/db/migrate/20150930224821_create_fae_changes.rb +1 -1
- data/db/migrate/20190925153222_create_fae_form_managers.rb +11 -0
- data/db/migrate/20220118192729_create_fae_publish_hooks.rb +10 -0
- data/db/migrate/20220128133730_rename_publish_hooks.rb +5 -0
- data/db/migrate/20220202153607_add_position_to_deploy_hooks.rb +6 -0
- data/lib/fae/options.rb +4 -2
- data/lib/fae/version.rb +1 -1
- data/lib/generators/fae/base_generator.rb +62 -8
- data/lib/generators/fae/nested_index_scaffold_generator.rb +1 -1
- data/lib/generators/fae/nested_scaffold_generator.rb +16 -2
- data/lib/generators/fae/page_generator.rb +8 -0
- data/lib/generators/fae/scaffold_generator.rb +1 -1
- data/lib/generators/fae/templates/assets/fae.js +1 -1
- data/lib/generators/fae/templates/controllers/nested_scaffold_controller.rb +14 -0
- data/lib/generators/fae/templates/graphql/graphql_page_type.rb +17 -0
- data/lib/generators/fae/templates/graphql/graphql_type.rb +13 -0
- data/lib/generators/fae/templates/initializers/fae.rb +16 -1
- data/lib/generators/fae/templates/views/_form.html.slim +11 -4
- data/lib/generators/fae/templates/views/_form_index_nested.html.slim +15 -1
- data/lib/generators/fae/templates/views/_form_nested.html.slim +19 -2
- data/lib/generators/fae/templates/views/index_nested.html.slim +1 -0
- data/lib/generators/fae/templates/views/static_page_form.html.slim +14 -3
- metadata +70 -47
- data/app/views/fae/shared/_form_buttons.html.slim +0 -11
- data/app/views/fae/shared/_nested_table_advanced.html.slim +0 -18
- data/lib/sub_test_task_patch.rb +0 -129
@@ -1,19 +1,15 @@
|
|
1
|
-
= simple_form_for(@user
|
2
|
-
|
3
|
-
-
|
4
|
-
|
5
|
-
-
|
6
|
-
|
7
|
-
.content-header-buttons
|
8
|
-
- cancel_path = params[:action] == 'settings' ? root_path : users_path
|
9
|
-
a.button#js-header-cancel href=cancel_path Cancel
|
10
|
-
= f.submit 'Save'
|
1
|
+
= simple_form_for(@user) do |f|
|
2
|
+
- if params[:action] === 'settings'
|
3
|
+
- title = t('fae.navbar.your_settings')
|
4
|
+
- else
|
5
|
+
- title = "#{params[:action]} User".titleize
|
6
|
+
== render 'fae/shared/form_header', header: 'User', title: title
|
11
7
|
|
12
8
|
main.content
|
13
9
|
= fae_input f, :first_name
|
14
10
|
= fae_input f, :last_name
|
15
11
|
= fae_input f, :email
|
16
|
-
= fae_input f, :password, helper_text: '
|
12
|
+
= fae_input f, :password, helper_text: t('fae.user.password_hint')
|
17
13
|
= fae_input f, :password_confirmation
|
18
14
|
- if current_user.admin? || current_user.super_admin?
|
19
|
-
= fae_association f, :role, collection: @role_collection
|
15
|
+
= fae_association f, :role, collection: @role_collection, prompt: false
|
@@ -1,15 +1,15 @@
|
|
1
1
|
- @new_path = new_user_path
|
2
|
-
== render 'fae/shared/index_header', title: 'Users', new_button: true, button_text: '
|
2
|
+
== render 'fae/shared/index_header', title: 'Users', new_button: true, button_text: t('fae.user.add_user'), breadcrumbs: false
|
3
3
|
|
4
4
|
main.content
|
5
5
|
table.js-sort-column
|
6
6
|
thead
|
7
7
|
tr
|
8
|
-
th
|
9
|
-
th
|
10
|
-
th
|
11
|
-
th
|
12
|
-
th.-action data-sorter="false"
|
8
|
+
th = t('fae.common.name')
|
9
|
+
th = t('fae.user.email')
|
10
|
+
th = t('fae.user.role')
|
11
|
+
th = t('fae.user.last_login')
|
12
|
+
th.-action-wide data-sorter="false" = t('fae.user.active')
|
13
13
|
th.-action data-sorter="false"
|
14
14
|
|
15
15
|
tbody
|
@@ -19,5 +19,5 @@ main.content
|
|
19
19
|
td = user.email
|
20
20
|
td = user.role.name
|
21
21
|
td = fae_date_format user.last_sign_in_at if user.last_sign_in_at.present?
|
22
|
-
td =
|
22
|
+
td = fae_toggle user, :active unless current_user == user
|
23
23
|
td = fae_delete_button user, user unless current_user == user
|
data/config/deploy.rb
CHANGED
@@ -38,7 +38,8 @@ namespace :deploy do
|
|
38
38
|
desc 'Symlink secrets.yml'
|
39
39
|
task :symlink_secrets do
|
40
40
|
on roles(:app) do
|
41
|
-
execute "
|
41
|
+
execute "rm #{release_path}/spec/dummy/config/secrets.yml"
|
42
|
+
execute "ln -s #{shared_path}/secrets.yml #{release_path}/spec/dummy/config/secrets.yml"
|
42
43
|
end
|
43
44
|
end
|
44
45
|
|
@@ -68,6 +69,7 @@ namespace :deploy do
|
|
68
69
|
end
|
69
70
|
end
|
70
71
|
|
72
|
+
after 'deploy:updating', 'deploy:symlink_secrets'
|
71
73
|
after :finishing, 'deploy:cleanup'
|
72
74
|
|
73
75
|
end
|
@@ -156,27 +156,27 @@ Devise.setup do |config|
|
|
156
156
|
# Defines which strategy will be used to lock an account.
|
157
157
|
# :failed_attempts = Locks an account after a number of failed attempts to sign in.
|
158
158
|
# :none = No lock strategy. You should handle locking by yourself.
|
159
|
-
|
159
|
+
config.lock_strategy = :failed_attempts
|
160
160
|
|
161
161
|
# Defines which key will be used when locking and unlocking an account
|
162
|
-
|
162
|
+
config.unlock_keys = [ :email ]
|
163
163
|
|
164
164
|
# Defines which strategy will be used to unlock an account.
|
165
165
|
# :email = Sends an unlock link to the user email
|
166
166
|
# :time = Re-enables login after a certain amount of time (see :unlock_in below)
|
167
167
|
# :both = Enables both strategies
|
168
168
|
# :none = No unlock strategy. You should handle unlocking by yourself.
|
169
|
-
|
169
|
+
config.unlock_strategy = :both
|
170
170
|
|
171
171
|
# Number of authentication tries before locking an account if lock_strategy
|
172
172
|
# is failed attempts.
|
173
|
-
|
173
|
+
config.maximum_attempts = 5
|
174
174
|
|
175
175
|
# Time interval to unlock the account if :time is enabled as unlock_strategy.
|
176
|
-
|
176
|
+
config.unlock_in = 1.hour
|
177
177
|
|
178
178
|
# Warn on the last attempt before the account is locked.
|
179
|
-
|
179
|
+
config.last_attempt_warning = true
|
180
180
|
|
181
181
|
# ==> Configuration for :recoverable
|
182
182
|
#
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# Additional translations at https://github.com/plataformatec/devise/wiki/I18n
|
2
|
+
|
3
|
+
cs:
|
4
|
+
devise:
|
5
|
+
confirmations:
|
6
|
+
confirmed: 'Váš účet byl úspěšně potvrzen. Nyní jste přihlášen(a).'
|
7
|
+
send_instructions: 'Za několik minut obdržíte email s instrukcemi k potvrzení vašeho účtu.'
|
8
|
+
send_paranoid_instructions: 'Pokud je e-mailová adresa v naší databázi, obdržíte na ní instrukce pro potvrzení vašeho účtu.'
|
9
|
+
failure:
|
10
|
+
already_authenticated: 'Přihlášení již proběhlo.'
|
11
|
+
inactive: "Váš účet ještě není aktivován."
|
12
|
+
invalid: 'Neplatný e-mail nebo heslo.'
|
13
|
+
locked: 'Váš účet je uzamčen.'
|
14
|
+
last_attempt: "Máte poslední pikus, než bude váš účet uzamčen."
|
15
|
+
not_found_in_database: "Neplatný e-mail nebo heslo"
|
16
|
+
timeout: 'Vaše relace vypršela, přihlašte se prosím znovu, pak můžete pokračovat.'
|
17
|
+
unauthenticated: 'Musíte se zaregistrovat nebo přihlásit, pak můžete pokračovat.'
|
18
|
+
unconfirmed: 'Musíte potvrdit svůj účet, pak můžete pokračovat.'
|
19
|
+
mailer:
|
20
|
+
confirmation_instructions:
|
21
|
+
subject: 'Instrukce pro potvrzení účtu'
|
22
|
+
reset_password_instructions:
|
23
|
+
subject: 'Instrukce k nastavení nového hesla'
|
24
|
+
unlock_instructions:
|
25
|
+
subject: 'Instrukce k odemknutí účtu'
|
26
|
+
omniauth_callbacks:
|
27
|
+
failure: 'Není možné autorizovat z %{kind}, protože: "%{reason}".'
|
28
|
+
success: 'Úspěšná autorizace z účtu %{kind}.'
|
29
|
+
passwords:
|
30
|
+
no_token: "Tato stránka je přístupná pouze přes e-mail k obnovení hesla. Pokud jste se na stránku dostali z e-mailu pro obnovení hesla, zkontrolujte prosím, zda jste použili celou adresu."
|
31
|
+
send_instructions: 'Za několik minut obdržíte email s instrukcemi k nastavení nového hesla.'
|
32
|
+
send_paranoid_instructions: "Pokud je e-mailová adresa v naší databázi, obdržíte na ni e-mail pro obnovení hesla."
|
33
|
+
updated: 'Vaše heslo bylo úspěšně změněno. Nyní jste přihlášen(a).'
|
34
|
+
updated_not_active: 'Vaše heslo bylo změněno.'
|
35
|
+
registrations:
|
36
|
+
destroyed: 'Nashle! Váš účet byl úspěšně zrušen. Doufáme, že se brzy opět uvidíme.'
|
37
|
+
signed_up: 'Vítejte! Registrace byla úspěšná.'
|
38
|
+
signed_up_but_inactive: 'Registrace byla úspěšná. Nicméně se nemůžete přihlásit, protože váš účet dosud nebyl aktivován.'
|
39
|
+
signed_up_but_locked: 'Registrace byla úspěšná. Nicméně se nemůžete přihlásit, protože váš účet je uzamčen.'
|
40
|
+
signed_up_but_unconfirmed: 'Na váš email by měla přijít zpráva s odkazem pro aktivaci účtu.'
|
41
|
+
update_needs_confirmation: "Váš účet byl aktualizován, nicméně musíme ověřit vaši adresu e-mailu. Poslali jsme vám e-mail s odkazem, použijte jej prosím pro potvrzení změny e-mailové adresy."
|
42
|
+
updated: 'Váš účet byl úspěšně aktualizován.'
|
43
|
+
sessions:
|
44
|
+
signed_in: 'Přihlášení úspěšné.'
|
45
|
+
signed_out: 'Odhlášení úspěšné.'
|
46
|
+
unlocks:
|
47
|
+
send_instructions: 'Za několik minut obdržíte email s instrukcemi, jak odemknout svůj účet.'
|
48
|
+
send_paranoid_instructions: 'Pokud váš účet existuje, obdržíte e-mail s instrukcemi pro jeho odemčení.'
|
49
|
+
unlocked: 'Váš účet byl úspěšně odemknut. Nyní jste přihlášen(a).'
|
50
|
+
errors:
|
51
|
+
messages:
|
52
|
+
already_confirmed: "byl již potvrzen, prosím, zkuste se přihlásit"
|
53
|
+
confirmation_period_expired: "musí být potvrzen během %{period}, požádejte prosím o nový"
|
54
|
+
expired: "vypršel, požádejte prosím o nový"
|
55
|
+
not_found: "nenalezen"
|
56
|
+
not_locked: "nebyl uzamčen"
|
57
|
+
not_saved:
|
58
|
+
one: "%{resource} nebyl uložen kvůli chybě:"
|
59
|
+
other: "%{resource} nebyl uložen kvůli %{count} chybám:"
|
@@ -0,0 +1,125 @@
|
|
1
|
+
cs:
|
2
|
+
fae:
|
3
|
+
save_notice: 'Úspěšně uloženo.'
|
4
|
+
save_error: 'Nelze uložit, zkontrolujte chyby.'
|
5
|
+
delete_notice: 'Položka byla úspěšně smazána.'
|
6
|
+
delete_error: 'Tato položka má asociavané objekty, které brání, aby byla smazána.'
|
7
|
+
delete_confirmation: 'Jste si jistí, že chcete trvale smazat tuto položku?'
|
8
|
+
clone_confirmation: "Jste si jistí, že chcete vytvořit klon?"
|
9
|
+
unauthorized_error: 'Nemáte práva k prohlížení této stránky.'
|
10
|
+
exceeded_upload_limit: "Tato položka je větší než ### MB limit. Nemáte nějákou jinou?"
|
11
|
+
form:
|
12
|
+
save: 'Uložit'
|
13
|
+
cancel: 'Zpět'
|
14
|
+
clone: 'Klonovat'
|
15
|
+
attribute:
|
16
|
+
first_name: 'Křestní jméno'
|
17
|
+
last_name: 'Příjmení'
|
18
|
+
email: 'Email'
|
19
|
+
language: 'Jazyk'
|
20
|
+
password: 'Heslo'
|
21
|
+
password_confirmation: 'Potvrzení hesla'
|
22
|
+
role: 'Role'
|
23
|
+
common:
|
24
|
+
name: 'Jméno'
|
25
|
+
csv_export: 'Export do CSV'
|
26
|
+
add: 'Přidat'
|
27
|
+
edit: 'Editovat'
|
28
|
+
user:
|
29
|
+
password_hint: 'Pokud chcete změnit heslo, vyplňte následující pole, jinak ponechte prázné. Heslo musí obsahovat alespoň 8 znaků.'
|
30
|
+
first_name: 'Jméno'
|
31
|
+
last_name: 'Příjmení'
|
32
|
+
email: 'Email'
|
33
|
+
language: 'Jazyk'
|
34
|
+
password: 'Heslo'
|
35
|
+
password_confirmation: 'Potvrzení hesla'
|
36
|
+
role: 'Role'
|
37
|
+
last_login: 'Poslední přihlášení'
|
38
|
+
active: 'Aktivní'
|
39
|
+
add_user: 'Přidat uživatele'
|
40
|
+
page:
|
41
|
+
title: 'Stránky'
|
42
|
+
disabled_title: 'Vypnutý Admin'
|
43
|
+
disabled_text: 'Účet admina byl vypnut. Kontaktuje podporu pro více informací.'
|
44
|
+
error_title: 'Oops!'
|
45
|
+
error_start: 'Stránka nemůže být nalezena. Prosím'
|
46
|
+
error_click: 'klikněte zde'
|
47
|
+
error_end: 'a budete přesměrováni na domovskou stránku'
|
48
|
+
hello: 'Ahoj'
|
49
|
+
welcome: 'Vítejte'
|
50
|
+
no_objs_start: "Nemáte žádné objekty ke správě. Pokud potřebujete pomoci, obraťte se na"
|
51
|
+
no_objs_end: 'dokumentaci.'
|
52
|
+
navbar:
|
53
|
+
logout: 'Odhlásit'
|
54
|
+
your_settings: 'Vaše Nastavení'
|
55
|
+
users: 'Uživatelé'
|
56
|
+
activity_log: 'Aktivita'
|
57
|
+
live_site: 'Přejít na web'
|
58
|
+
jump_to: 'Vyhledat...'
|
59
|
+
root_settings: 'Hlavní nastavení'
|
60
|
+
no_results: 'Žádné výsledky'
|
61
|
+
changes:
|
62
|
+
recent: 'Nedávné změny'
|
63
|
+
user: 'Uživatel'
|
64
|
+
item: 'Položka'
|
65
|
+
type: 'Typ'
|
66
|
+
attrs: 'Změněné atributy'
|
67
|
+
modified: 'Změněno'
|
68
|
+
no_changes: 'Žádné změny'
|
69
|
+
title: 'Vyhledat změny'
|
70
|
+
all_time: 'Vše'
|
71
|
+
created: 'vytvořeno'
|
72
|
+
updated: 'aktualizováno'
|
73
|
+
deleted: 'smazáno'
|
74
|
+
last_hour: 'Poslední hodina'
|
75
|
+
last_day: 'Poslední den'
|
76
|
+
last_week: 'Poslední týden'
|
77
|
+
last_month: 'Poslední měsíc'
|
78
|
+
models:
|
79
|
+
users: 'Uživatelé'
|
80
|
+
types: 'Typy'
|
81
|
+
models: 'Modely'
|
82
|
+
user: 'Uživatel'
|
83
|
+
type: 'Typ'
|
84
|
+
model: 'Model'
|
85
|
+
setup:
|
86
|
+
prompt: 'Prosím vytvořte úcet pro super admina.'
|
87
|
+
password: 'Heslo musí obsahovat alespoň 8 znaků'
|
88
|
+
options:
|
89
|
+
project_name: 'Název projektu'
|
90
|
+
live_url: 'Live URL'
|
91
|
+
url_helper: 'Použijte http:// pro externí odkazy.'
|
92
|
+
stage_url: 'Stage URL'
|
93
|
+
logo_helper: 'Použito na login stránce, 300x300px .jpg'
|
94
|
+
images:
|
95
|
+
alt_helper: 'Krátký popis obsahu obrázku, slouží por uživatele se zrakovým postižením.'
|
96
|
+
application:
|
97
|
+
user_absent: 'uživatel neexistuje'
|
98
|
+
no_logs: 'Žádné záznamy nenalezeny.'
|
99
|
+
view_site: 'Zobrazit stránku'
|
100
|
+
preview_site: 'Náhled stránky'
|
101
|
+
live_site: 'Live Site'
|
102
|
+
markdown_opts: 'Markdown - možnosti'
|
103
|
+
links: 'Odkazy'
|
104
|
+
links_help: 'K vytvoření odkazu přidejte [hranaté závoky] okolo textu a přidejte (/url) s odkazem.'
|
105
|
+
formatting: 'Formátování'
|
106
|
+
formatting_help: 'Zvýrazněte text umístěním **hvězdiček** pro tučné, _podtržítka_ pro italiku.'
|
107
|
+
bold: 'Tučné **tučné**'
|
108
|
+
italic: 'Italika _italika_'
|
109
|
+
headers: 'Nadpisy'
|
110
|
+
headers_help: 'Použijte až šest mřížek ke zdůraznění nadpisu.'
|
111
|
+
headers_example: 'Hlavní nadpis: # Halvní nadpis'
|
112
|
+
subheaders_example: 'Vedlejší nadpis: ## Vedlejší nadpis'
|
113
|
+
list: 'Seznam'
|
114
|
+
list_help: 'Formátujte seznamy změnou znaku, který uvádí položky seznamu.'
|
115
|
+
bulleted_list: 'Odrážkový seznam:'
|
116
|
+
numbered_list: 'Číslovaný seznam:'
|
117
|
+
paragraph_break: 'Zalomení odstavce'
|
118
|
+
paragraph_break_help: 'Přidání prázdného řádku mezi odstavce zalomí odstavec.'
|
119
|
+
seo_title: 'A descriptive page title of ~50-65 characters. Displayed in search engine results.'
|
120
|
+
seo_description: 'A helpful page summary of 320 characters or less. Displayed in search engine results.'
|
121
|
+
search: 'Hledat %{search}'
|
122
|
+
reset_search: 'Resetovat vyhledávání'
|
123
|
+
apply_filters: 'Aplikovat filtry'
|
124
|
+
all_items: 'Vše pro %{items}'
|
125
|
+
keyword_search: 'Hledat podle klíčového slova'
|
data/config/locales/fae.en.yml
CHANGED
@@ -8,3 +8,148 @@ en:
|
|
8
8
|
clone_confirmation: "Once you clone, you'll need to delete if you later change your mind. Still want to?"
|
9
9
|
unauthorized_error: 'You are not authorized to view that page.'
|
10
10
|
exceeded_upload_limit: "Let's aim for smaller. This asset is larger than the ### MB limit. Got another?"
|
11
|
+
form:
|
12
|
+
save: 'Save'
|
13
|
+
cancel: 'Cancel'
|
14
|
+
clone: 'Clone'
|
15
|
+
launch_form_manager: 'Manage Form'
|
16
|
+
save_form_manager: 'Save Changes'
|
17
|
+
cancel_form_manager: 'Cancel'
|
18
|
+
attribute:
|
19
|
+
first_name: 'First Name'
|
20
|
+
last_name: 'Last Name'
|
21
|
+
email: 'Email'
|
22
|
+
language: 'Language'
|
23
|
+
password: 'Password'
|
24
|
+
password_confirmation: 'Password Confirmation'
|
25
|
+
role: 'Role'
|
26
|
+
common:
|
27
|
+
name: 'Name'
|
28
|
+
csv_export: 'Export to CSV'
|
29
|
+
add: 'Add %{title}'
|
30
|
+
edit: 'Edit'
|
31
|
+
user:
|
32
|
+
password_hint: 'To update your password, fill out the fields below. Otherwise leave blank. Passwords must contain at least 8 characters.'
|
33
|
+
header: 'Your Settings'
|
34
|
+
last_login: 'Last Logged In'
|
35
|
+
active: 'Active'
|
36
|
+
add_user: 'Add User'
|
37
|
+
deploy_hook:
|
38
|
+
environment: 'Environment'
|
39
|
+
add_deploy_hook: 'Add Deploy Hook'
|
40
|
+
new_deploy_hook: 'New Deploy Hook'
|
41
|
+
edit_deploy_hook: 'Edit Deploy Hook'
|
42
|
+
section_heading: 'Deploy Hooks'
|
43
|
+
section_helper_text: ''
|
44
|
+
page:
|
45
|
+
title: 'Pages'
|
46
|
+
disabled_title: 'Disabled Admin'
|
47
|
+
disabled_text: 'The admin on this domain has been disabled. This usually occurs on a staging domain where content is managed in production. Contact application support for more information.'
|
48
|
+
error_title: 'Oops!'
|
49
|
+
error_start: 'The page you requested can not be found. Please'
|
50
|
+
error_click: 'click here'
|
51
|
+
error_end: 'to be taken to our home page.'
|
52
|
+
hello: 'Hello'
|
53
|
+
welcome: 'Welcome to Fae'
|
54
|
+
no_objs_start: "You don't have any objects setup to manage. If you need help getting started, check out the"
|
55
|
+
no_objs_end: 'Quickstart Guide and Documentation site.'
|
56
|
+
navbar:
|
57
|
+
logout: 'Log Out'
|
58
|
+
your_settings: 'Your Settings'
|
59
|
+
users: 'Users'
|
60
|
+
activity_log: 'Activity Log'
|
61
|
+
live_site: 'Live Site'
|
62
|
+
jump_to: 'Jump to...'
|
63
|
+
root_settings: 'Root Settings'
|
64
|
+
no_results: 'No Results'
|
65
|
+
deployments: 'Deploy'
|
66
|
+
deploy_hooks: 'Deploy Hooks'
|
67
|
+
changes:
|
68
|
+
recent: 'Recent Changes'
|
69
|
+
user: 'User'
|
70
|
+
item: 'Item'
|
71
|
+
type: 'Type'
|
72
|
+
attrs: 'Attribute(s) Updated'
|
73
|
+
modified: 'Modified'
|
74
|
+
no_changes: 'No changes recorded'
|
75
|
+
title: 'Search Changes'
|
76
|
+
all_time: 'All Time'
|
77
|
+
created: 'created'
|
78
|
+
updated: 'updated'
|
79
|
+
deleted: 'deleted'
|
80
|
+
last_hour: 'Last Hour'
|
81
|
+
last_day: 'Last Day'
|
82
|
+
last_week: 'Last Week'
|
83
|
+
last_month: 'Last Month'
|
84
|
+
on_prod: 'On Prod'
|
85
|
+
on_stage: 'On Stage'
|
86
|
+
models:
|
87
|
+
users: 'Users'
|
88
|
+
types: 'Types'
|
89
|
+
models: 'Models'
|
90
|
+
user: 'User'
|
91
|
+
type: 'Type'
|
92
|
+
model: 'Model'
|
93
|
+
deploy:
|
94
|
+
page:
|
95
|
+
heading: 'Deploy'
|
96
|
+
ctas:
|
97
|
+
deploy: 'Deploy'
|
98
|
+
table:
|
99
|
+
past_heading: 'Past Deploys'
|
100
|
+
deploying_heading: 'Deploying'
|
101
|
+
deploying_helper: "After making changes in the CMS, click a deploy button above to push these changes to the respective front-end environment. Once your deployment posts to the “Past Deploys” table below, updates will be ready to review in the front-end environment.<br><br>Please note that each environment is distinct and will need to be deployed separately."
|
102
|
+
title: 'Activity'
|
103
|
+
deployed: 'Date/Time'
|
104
|
+
duration: 'Duration'
|
105
|
+
branch: 'Branch'
|
106
|
+
committer: 'Committer'
|
107
|
+
context: 'Environment'
|
108
|
+
state: 'State'
|
109
|
+
error_msg: 'Error Msg'
|
110
|
+
no_deploys: 'No deploys were found.'
|
111
|
+
changes:
|
112
|
+
production_heading: 'Changes since last production deploy'
|
113
|
+
staging_heading: 'Changes since last staging deploy'
|
114
|
+
setup:
|
115
|
+
prompt: 'Please create your super admin user.'
|
116
|
+
password: 'Passwords must contain at least 8 characters.'
|
117
|
+
options:
|
118
|
+
project_name: 'Project Name'
|
119
|
+
live_url: 'Live URL'
|
120
|
+
url_helper: 'Include http:// for external links.'
|
121
|
+
stage_url: 'Stage URL'
|
122
|
+
logo_helper: 'Used on login page, 300x300px .jpg'
|
123
|
+
images:
|
124
|
+
alt_helper: 'Read by search engines and visually impaired readers.'
|
125
|
+
application:
|
126
|
+
activity_log_heading: 'Activity Log'
|
127
|
+
user_absent: 'user no longer exists'
|
128
|
+
no_logs: 'No logs available.'
|
129
|
+
view_site: 'View Site'
|
130
|
+
preview_site: 'Preview Site'
|
131
|
+
live_site: 'Live Site'
|
132
|
+
markdown_opts: 'Markdown Options'
|
133
|
+
links: 'Links'
|
134
|
+
links_help: 'To link text, place a [bracket] around the link title and use a (/url) to house the url.'
|
135
|
+
formatting: 'Formatting'
|
136
|
+
formatting_help: 'Emphasize text in a variety of ways by placing **asterisks** to bold, _underscores_ to italicize.'
|
137
|
+
bold: 'Bold **bold**'
|
138
|
+
italic: 'Italicize _italic'
|
139
|
+
headers: 'Headers'
|
140
|
+
headers_help: 'Use up to six hashtags to identify the importance of the section header.'
|
141
|
+
headers_example: 'Page Header: # Page Header'
|
142
|
+
subheaders_example: 'Sub Header: ## Sub Header'
|
143
|
+
list: 'List'
|
144
|
+
list_help: 'Format lists by swapping out the characters that lead the list item.'
|
145
|
+
bulleted_list: 'Bulleted List:'
|
146
|
+
numbered_list: 'Numbered List:'
|
147
|
+
paragraph_break: 'Paragraph break'
|
148
|
+
paragraph_break_help: 'Adding a blank line in between your paragraphs makes a paragraph break.'
|
149
|
+
seo_title: 'A descriptive page title of ~50-65 characters. Displayed in search engine results.'
|
150
|
+
seo_description: 'A helpful page summary of 200 characters or less. Displayed in search engine results.'
|
151
|
+
search: 'Search %{search}'
|
152
|
+
reset_search: 'Reset Search'
|
153
|
+
apply_filters: 'Apply Filters'
|
154
|
+
all_items: 'All %{items}'
|
155
|
+
keyword_search: 'Search by Keyword'
|
@@ -8,3 +8,112 @@ zh-CN:
|
|
8
8
|
clone_confirmation: "一旦克隆,如果随后改变主意,你需要删除它。继续吗?"
|
9
9
|
unauthorized_error: '你未被授权访问这个页面。'
|
10
10
|
exceeded_upload_limit: "这个资源超过文件大小限制,试试另外一个?"
|
11
|
+
form:
|
12
|
+
save: 'Save'
|
13
|
+
cancel: 'Cancel'
|
14
|
+
clone: 'Clone'
|
15
|
+
attribute:
|
16
|
+
first_name: 'First Name'
|
17
|
+
last_name: 'Last Name'
|
18
|
+
email: 'Email'
|
19
|
+
language: 'Language'
|
20
|
+
password: 'Password'
|
21
|
+
password_confirmation: 'Password Confirmation'
|
22
|
+
role: 'Role'
|
23
|
+
common:
|
24
|
+
name: 'Name'
|
25
|
+
csv_export: 'Export to CSV'
|
26
|
+
add: 'Add'
|
27
|
+
edit: 'Edit'
|
28
|
+
user:
|
29
|
+
password_hint: 'To update your password, fill out the fields below. Otherwise leave blank. Passwords must contain at least 8 characters.'
|
30
|
+
header: 'Your Settings'
|
31
|
+
last_login: 'Last Logged In'
|
32
|
+
active: 'Active'
|
33
|
+
add_user: 'Add User'
|
34
|
+
page:
|
35
|
+
title: 'Pages'
|
36
|
+
disabled_title: 'Disabled Admin'
|
37
|
+
disabled_text: 'The admin on this domain has been disabled. This usually occurs on a staging domain where content is managed in production. Contact application support for more information.'
|
38
|
+
error_title: 'Oops!'
|
39
|
+
error_start: 'The page you requested can not be found. Please'
|
40
|
+
error_click: 'click here'
|
41
|
+
error_end: 'to be taken to our home page.'
|
42
|
+
hello: 'Hello'
|
43
|
+
welcome: 'Welcome to Fae'
|
44
|
+
no_objs_start: "You don't have any objects setup to manage. If you need help getting started, check out the"
|
45
|
+
no_objs_end: 'Quickstart Guide and Documentation site.'
|
46
|
+
navbar:
|
47
|
+
logout: 'Log Out'
|
48
|
+
your_settings: 'Your Settings'
|
49
|
+
users: 'Users'
|
50
|
+
activity_log: 'Activity Log'
|
51
|
+
live_site: 'Live Site'
|
52
|
+
jump_to: 'Jump to...'
|
53
|
+
root_settings: 'Root Settings'
|
54
|
+
no_results: 'No Results'
|
55
|
+
changes:
|
56
|
+
recent: 'Recent Changes'
|
57
|
+
user: 'User'
|
58
|
+
item: 'Item'
|
59
|
+
type: 'Type'
|
60
|
+
attrs: 'Attribute(s) Updated'
|
61
|
+
modified: 'Modified'
|
62
|
+
no_changes: 'No changes recorded'
|
63
|
+
title: 'Search Changes'
|
64
|
+
all_time: 'All Time'
|
65
|
+
created: 'created'
|
66
|
+
updated: 'updated'
|
67
|
+
deleted: 'deleted'
|
68
|
+
last_hour: 'Last Hour'
|
69
|
+
last_day: 'Last Day'
|
70
|
+
last_week: 'Last Week'
|
71
|
+
last_month: 'Last Month'
|
72
|
+
models:
|
73
|
+
users: 'Users'
|
74
|
+
types: 'Types'
|
75
|
+
models: 'Models'
|
76
|
+
user: 'User'
|
77
|
+
type: 'Type'
|
78
|
+
model: 'Model'
|
79
|
+
setup:
|
80
|
+
prompt: 'Please create your super admin user.'
|
81
|
+
password: 'Passwords must contain at least 8 characters.'
|
82
|
+
options:
|
83
|
+
project_name: 'Project Name'
|
84
|
+
live_url: 'Live URL'
|
85
|
+
url_helper: 'Include http:// for external links.'
|
86
|
+
stage_url: 'Stage URL'
|
87
|
+
logo_helper: 'Used on login page, 300x300px .jpg'
|
88
|
+
images:
|
89
|
+
alt_helper: 'Read by search engines and visually impaired readers.'
|
90
|
+
application:
|
91
|
+
user_absent: 'user no longer exists'
|
92
|
+
no_logs: 'No logs available.'
|
93
|
+
view_site: 'View Site'
|
94
|
+
preview_site: 'Preview Site'
|
95
|
+
live_site: 'Live Site'
|
96
|
+
markdown_opts: 'Markdown Options'
|
97
|
+
links: 'Links'
|
98
|
+
links_help: 'To link text, place a [bracket] around the link title and use a (/url) to house the url.'
|
99
|
+
formatting: 'Formatting'
|
100
|
+
formatting_help: 'Emphasize text in a variety of ways by placing **asterisks** to bold, _underscores_ to italicize.'
|
101
|
+
bold: 'Bold **bold**'
|
102
|
+
italic: 'Italicize _italic'
|
103
|
+
headers: 'Headers'
|
104
|
+
headers_help: 'Use up to six hashtags to identify the importance of the section header.'
|
105
|
+
headers_example: 'Page Header: # Page Header'
|
106
|
+
subheaders_example: 'Sub Header: ## Sub Header'
|
107
|
+
list: 'List'
|
108
|
+
list_help: 'Format lists by swapping out the characters that lead the list item.'
|
109
|
+
bulleted_list: 'Bulleted List:'
|
110
|
+
numbered_list: 'Numbered List:'
|
111
|
+
paragraph_break: 'Paragraph break'
|
112
|
+
paragraph_break_help: 'Adding a blank line in between your paragraphs makes a paragraph break.'
|
113
|
+
seo_title: 'A descriptive page title of ~50-65 characters. Displayed in search engine results.'
|
114
|
+
seo_description: 'A helpful page summary of 320 characters or less. Displayed in search engine results.'
|
115
|
+
search: 'Search %{search}'
|
116
|
+
reset_search: 'Reset Search'
|
117
|
+
apply_filters: 'Apply Filters'
|
118
|
+
all_items: 'All %{items}'
|
119
|
+
keyword_search: 'Search by Keyword'
|
data/config/routes.rb
CHANGED
@@ -11,8 +11,10 @@ Fae::Engine.routes.draw do
|
|
11
11
|
get 'logout' => '/devise/sessions#destroy', as: :destroy_user_session
|
12
12
|
end
|
13
13
|
resources :users
|
14
|
+
resources :deploy_hooks
|
14
15
|
|
15
16
|
get 'settings' => 'users#settings', as: 'settings'
|
17
|
+
get 'deploy' => 'deploy#index', as: 'deploy'
|
16
18
|
get 'help' => 'pages#help', as: 'help'
|
17
19
|
get 'activity' => 'pages#activity_log', as: 'activity_log'
|
18
20
|
post 'activity/filter' => 'pages#activity_log_filter', as: 'activity_log_filter'
|
@@ -38,7 +40,13 @@ Fae::Engine.routes.draw do
|
|
38
40
|
get 'content_blocks/:slug' => '/admin/content_blocks#edit', as: 'edit_content_block'
|
39
41
|
match 'content_blocks/:slug/update' => '/admin/content_blocks#update', via: [:put, :patch], as: 'update_content_block'
|
40
42
|
|
41
|
-
#
|
43
|
+
get 'form_managers/fields' => 'form_managers#fields', as: 'form_managers_fields'
|
44
|
+
post 'form_managers/update' => 'form_managers#update', as: 'form_managers_update'
|
45
|
+
|
46
|
+
get 'deploy/deploys_list' => 'deploy#deploys_list', as: 'deploy_deploys_list'
|
47
|
+
post 'deploy/deploy_site' => 'deploy#deploy_site', as: 'deploy_deploy_site'
|
48
|
+
|
49
|
+
## catch all 404
|
42
50
|
match "*path" => 'pages#error404', via: [:get, :post]
|
43
51
|
|
44
52
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class AddUserTable < ActiveRecord::Migration
|
1
|
+
class AddUserTable < ActiveRecord::Migration[4.2]
|
2
2
|
def change
|
3
3
|
create_table(:fae_users) do |t|
|
4
4
|
## Database authenticatable
|
@@ -34,7 +34,7 @@ class AddUserTable < ActiveRecord::Migration
|
|
34
34
|
t.string :first_name
|
35
35
|
t.string :last_name
|
36
36
|
t.integer :role_id
|
37
|
-
t.boolean :active
|
37
|
+
t.boolean :active, :default => true, :null => false
|
38
38
|
t.string :language
|
39
39
|
|
40
40
|
t.timestamps
|