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.
Files changed (142) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -2
  3. data/Rakefile +0 -3
  4. data/app/assets/images/fae/tutorial_model_location.png +0 -0
  5. data/app/assets/javascripts/fae/_deploy.js +198 -0
  6. data/app/assets/javascripts/fae/_modals.js +94 -0
  7. data/app/assets/javascripts/fae/_tables.js +11 -25
  8. data/app/assets/javascripts/fae/application.js +4 -2
  9. data/app/assets/javascripts/fae/fae_init.js +0 -4
  10. data/app/assets/javascripts/fae/form/_ajax.js +26 -7
  11. data/app/assets/javascripts/fae/form/_cancel.js +1 -0
  12. data/app/assets/javascripts/fae/form/_filtering.js +34 -0
  13. data/app/assets/javascripts/fae/form/_form.js +1 -0
  14. data/app/assets/javascripts/fae/form/_form_manager.js +295 -0
  15. data/app/assets/javascripts/fae/form/_slugger.js.erb +2 -2
  16. data/app/assets/javascripts/fae/form/_validator.js +24 -14
  17. data/app/assets/javascripts/fae/form/inputs/_color.js +2 -1
  18. data/app/assets/javascripts/fae/form/inputs/_select.js +5 -2
  19. data/app/assets/javascripts/fae/navigation/_language.js +1 -1
  20. data/app/assets/javascripts/fae/navigation/_navigation.js +9 -21
  21. data/app/assets/javascripts/fae/navigation/_subnav_highlighter.js +7 -41
  22. data/app/assets/javascripts/fae/vendor/jqColorPicker.min.js +0 -1
  23. data/app/assets/stylesheets/fae/base.scss +7 -8
  24. data/app/assets/stylesheets/fae/globals/imports/_variables.scss +1 -2
  25. data/app/assets/stylesheets/fae/globals/layout/_base.scss +7 -2
  26. data/app/assets/stylesheets/fae/globals/layout/_content-header.scss +17 -31
  27. data/app/assets/stylesheets/fae/globals/navigation/_header.scss +2 -2
  28. data/app/assets/stylesheets/fae/globals/navigation/_multi-col-subnav.scss +50 -0
  29. data/app/assets/stylesheets/fae/modules/_buttons.scss +11 -0
  30. data/app/assets/stylesheets/fae/modules/_deploy.scss +25 -0
  31. data/app/assets/stylesheets/fae/modules/_modal.scss +25 -0
  32. data/app/assets/stylesheets/fae/modules/_toggles.scss +39 -23
  33. data/app/assets/stylesheets/fae/modules/forms/_asset-actions.scss +1 -1
  34. data/app/assets/stylesheets/fae/modules/forms/_base.scss +1 -1
  35. data/app/assets/stylesheets/fae/modules/forms/_checkbox.scss +1 -1
  36. data/app/assets/stylesheets/fae/modules/forms/_date.scss +16 -0
  37. data/app/assets/stylesheets/fae/modules/forms/_form-manager.scss +82 -0
  38. data/app/assets/stylesheets/fae/modules/forms/_radio.scss +1 -1
  39. data/app/assets/stylesheets/fae/modules/forms/_select.scss +7 -6
  40. data/app/assets/stylesheets/fae/modules/forms/_simple-mde.scss +1 -1
  41. data/app/assets/stylesheets/fae/modules/forms/_textarea.scss +1 -1
  42. data/app/assets/stylesheets/fae/modules/tables/_filters.scss +4 -0
  43. data/app/assets/stylesheets/fae/pages/_home.scss +18 -0
  44. data/app/assets/stylesheets/fae/pages/_login.scss +4 -0
  45. data/app/controllers/fae/application_controller.rb +22 -1
  46. data/app/controllers/fae/base_controller.rb +6 -2
  47. data/app/controllers/fae/deploy_controller.rb +24 -0
  48. data/app/controllers/fae/deploy_hooks_controller.rb +71 -0
  49. data/app/controllers/fae/form_managers_controller.rb +19 -0
  50. data/app/controllers/fae/options_controller.rb +1 -0
  51. data/app/controllers/fae/pages_controller.rb +3 -2
  52. data/app/controllers/fae/static_pages_controller.rb +6 -1
  53. data/app/controllers/fae/users_controller.rb +19 -1
  54. data/app/controllers/fae/utilities_controller.rb +18 -6
  55. data/app/helpers/fae/application_helper.rb +27 -2
  56. data/app/helpers/fae/form_helper.rb +40 -8
  57. data/app/helpers/fae/nested_form_helper.rb +2 -2
  58. data/app/helpers/fae/view_helper.rb +99 -43
  59. data/app/models/concerns/fae/base_model_concern.rb +10 -7
  60. data/app/models/concerns/fae/user_concern.rb +10 -1
  61. data/app/models/fae/change.rb +18 -5
  62. data/app/models/fae/deploy_hook.rb +12 -0
  63. data/app/models/fae/file.rb +1 -1
  64. data/app/models/fae/form_manager.rb +24 -0
  65. data/app/models/fae/image.rb +1 -1
  66. data/app/models/fae/option.rb +1 -1
  67. data/app/models/fae/role.rb +1 -1
  68. data/app/models/fae/static_page.rb +11 -2
  69. data/app/models/fae/user.rb +4 -5
  70. data/app/services/fae/netlify_api.rb +197 -0
  71. data/app/uploaders/fae/file_uploader.rb +2 -5
  72. data/app/uploaders/fae/image_uploader.rb +3 -3
  73. data/app/views/devise/unlocks/new.html.slim +5 -9
  74. data/app/views/fae/application/_content_form.html.slim +16 -11
  75. data/app/views/fae/application/_file_uploader.html.slim +11 -3
  76. data/app/views/fae/application/_global_search_results.html.slim +2 -2
  77. data/app/views/fae/application/_header.slim +12 -9
  78. data/app/views/fae/application/_markdown_helper.slim +17 -17
  79. data/app/views/fae/application/_mobilenav.slim +9 -6
  80. data/app/views/fae/application/_user_log.html.slim +2 -2
  81. data/app/views/fae/deploy/index.html.slim +40 -0
  82. data/app/views/fae/deploy_hooks/_form.html.slim +18 -0
  83. data/app/views/fae/deploy_hooks/_table.html.slim +28 -0
  84. data/app/views/fae/deploy_hooks/edit.html.slim +3 -0
  85. data/app/views/fae/deploy_hooks/new.html.slim +3 -0
  86. data/app/views/fae/images/_image_uploader.html.slim +15 -6
  87. data/app/views/fae/options/_form.html.slim +11 -8
  88. data/app/views/fae/pages/activity_log.html.slim +16 -12
  89. data/app/views/fae/pages/disabled_environment.html.slim +2 -2
  90. data/app/views/fae/pages/error404.html.slim +5 -3
  91. data/app/views/fae/pages/home.html.slim +32 -21
  92. data/app/views/fae/setup/first_user.html.slim +3 -3
  93. data/app/views/fae/shared/_form_header.html.slim +37 -33
  94. data/app/views/fae/shared/_index_header.html.slim +3 -2
  95. data/app/views/fae/shared/_nested_table.html.slim +6 -6
  96. data/app/views/fae/shared/_recent_changes.html.slim +6 -6
  97. data/app/views/fae/shared/_shared_nested_table.html.slim +5 -2
  98. data/app/views/fae/static_pages/index.html.slim +2 -2
  99. data/app/views/fae/users/_form.html.slim +8 -12
  100. data/app/views/fae/users/index.html.slim +7 -7
  101. data/app/views/layouts/fae/application.html.slim +1 -0
  102. data/config/deploy.rb +3 -1
  103. data/config/initializers/devise.rb +6 -6
  104. data/config/locales/devise.cs.yml +59 -0
  105. data/config/locales/fae.cs.yml +125 -0
  106. data/config/locales/fae.en.yml +145 -0
  107. data/config/locales/fae.zh-CN.yml +109 -0
  108. data/config/routes.rb +9 -1
  109. data/db/migrate/20140809222030_add_user_table.rb +2 -2
  110. data/db/migrate/20140822224029_create_fae_roles.rb +1 -1
  111. data/db/migrate/20141008180718_create_fae_images_table.rb +1 -1
  112. data/db/migrate/20141017194616_create_fae_options.rb +1 -1
  113. data/db/migrate/20141021181327_create_fae_files.rb +1 -1
  114. data/db/migrate/20141021183047_create_fae_text_areas.rb +1 -1
  115. data/db/migrate/20141021184311_create_fae_pages.rb +1 -1
  116. data/db/migrate/20141105214814_create_fae_text_fields.rb +1 -1
  117. data/db/migrate/20150930224821_create_fae_changes.rb +1 -1
  118. data/db/migrate/20190925153222_create_fae_form_managers.rb +11 -0
  119. data/db/migrate/20220118192729_create_fae_publish_hooks.rb +10 -0
  120. data/db/migrate/20220128133730_rename_publish_hooks.rb +5 -0
  121. data/db/migrate/20220202153607_add_position_to_deploy_hooks.rb +6 -0
  122. data/lib/fae/options.rb +4 -2
  123. data/lib/fae/version.rb +1 -1
  124. data/lib/generators/fae/base_generator.rb +62 -8
  125. data/lib/generators/fae/nested_index_scaffold_generator.rb +1 -1
  126. data/lib/generators/fae/nested_scaffold_generator.rb +16 -2
  127. data/lib/generators/fae/page_generator.rb +8 -0
  128. data/lib/generators/fae/scaffold_generator.rb +1 -1
  129. data/lib/generators/fae/templates/assets/fae.js +1 -1
  130. data/lib/generators/fae/templates/controllers/nested_scaffold_controller.rb +14 -0
  131. data/lib/generators/fae/templates/graphql/graphql_page_type.rb +17 -0
  132. data/lib/generators/fae/templates/graphql/graphql_type.rb +13 -0
  133. data/lib/generators/fae/templates/initializers/fae.rb +16 -1
  134. data/lib/generators/fae/templates/views/_form.html.slim +11 -4
  135. data/lib/generators/fae/templates/views/_form_index_nested.html.slim +15 -1
  136. data/lib/generators/fae/templates/views/_form_nested.html.slim +19 -2
  137. data/lib/generators/fae/templates/views/index_nested.html.slim +1 -0
  138. data/lib/generators/fae/templates/views/static_page_form.html.slim +14 -3
  139. metadata +70 -47
  140. data/app/views/fae/shared/_form_buttons.html.slim +0 -11
  141. data/app/views/fae/shared/_nested_table_advanced.html.slim +0 -18
  142. data/lib/sub_test_task_patch.rb +0 -129
@@ -1,19 +1,15 @@
1
- = simple_form_for(@user, html: {multipart: true, novalidate: true}) do |f|
2
- header.content-header.js-content-header
3
- - if params[:action] === 'settings'
4
- h1 Your Settings
5
- - else
6
- = form_header @user
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: 'To update your password, fill out the fields below. Otherwise leave blank. Passwords must contain at least 8 characters.'
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: 'Add User', breadcrumbs: false
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 Name
9
- th Email
10
- th Role
11
- th Last Logged In
12
- th.-action data-sorter="false" Active
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 = attr_toggle user, :active unless current_user == user
22
+ td = fae_toggle user, :active unless current_user == user
23
23
  td = fae_delete_button user, user unless current_user == user
@@ -12,6 +12,7 @@ html
12
12
  body class=body_class
13
13
  == render 'mobilenav'
14
14
  == render 'header'
15
+ .js-form-manager-container
15
16
  section.main-content#js-main-content
16
17
  == render 'sidenav'
17
18
 
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 "ln -s #{shared_path}/secrets.yml #{release_path}/config/secrets.yml"
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
- # config.lock_strategy = :failed_attempts
159
+ config.lock_strategy = :failed_attempts
160
160
 
161
161
  # Defines which key will be used when locking and unlocking an account
162
- # config.unlock_keys = [ :email ]
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
- # config.unlock_strategy = :both
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
- # config.maximum_attempts = 20
173
+ config.maximum_attempts = 5
174
174
 
175
175
  # Time interval to unlock the account if :time is enabled as unlock_strategy.
176
- # config.unlock_in = 1.hour
176
+ config.unlock_in = 1.hour
177
177
 
178
178
  # Warn on the last attempt before the account is locked.
179
- # config.last_attempt_warning = false
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'
@@ -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
- # catch all 404
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
@@ -1,4 +1,4 @@
1
- class CreateFaeRoles < ActiveRecord::Migration
1
+ class CreateFaeRoles < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :fae_roles do |t|
4
4
  t.string :name
@@ -1,4 +1,4 @@
1
- class CreateFaeImagesTable < ActiveRecord::Migration
1
+ class CreateFaeImagesTable < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table(:fae_images) do |t|
4
4
  t.string :name
@@ -1,4 +1,4 @@
1
- class CreateFaeOptions < ActiveRecord::Migration
1
+ class CreateFaeOptions < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :fae_options do |t|
4
4
  t.string :title
@@ -1,4 +1,4 @@
1
- class CreateFaeFiles < ActiveRecord::Migration
1
+ class CreateFaeFiles < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :fae_files do |t|
4
4
  t.string :name
@@ -1,4 +1,4 @@
1
- class CreateFaeTextAreas < ActiveRecord::Migration
1
+ class CreateFaeTextAreas < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :fae_text_areas do |t|
4
4
  t.string :label
@@ -1,4 +1,4 @@
1
- class CreateFaePages < ActiveRecord::Migration
1
+ class CreateFaePages < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :fae_static_pages do |t|
4
4
  t.string :title
@@ -1,4 +1,4 @@
1
- class CreateFaeTextFields < ActiveRecord::Migration
1
+ class CreateFaeTextFields < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :fae_text_fields do |t|
4
4
  t.references :contentable, polymorphic: true, index: true