diff options
| author | erdgeist <erdgeist@erdgeist.org> | 2026-08-17 02:22:04 +0200 |
|---|---|---|
| committer | erdgeist <erdgeist@erdgeist.org> | 2026-08-17 02:22:04 +0200 |
| commit | 8570051876b86c08d4b72288f8598f0e0d2335e1 (patch) | |
| tree | 647fce9e040fe2e2910c7ae9a1a3fbff47f0f9df /app | |
| parent | bbd10eec6b8b46a7173d3be4dd7e05de212f8038 (diff) | |
Bridge Rails values into JavaScript through a JSON element
Diffstat (limited to 'app')
| -rw-r--r-- | app/helpers/admin_helper.rb | 24 | ||||
| -rw-r--r-- | app/views/layouts/admin.html.erb | 22 |
2 files changed, 26 insertions, 20 deletions
diff --git a/app/helpers/admin_helper.rb b/app/helpers/admin_helper.rb index 5a1a42a3..be20eb8b 100644 --- a/app/helpers/admin_helper.rb +++ b/app/helpers/admin_helper.rb | |||
| @@ -14,4 +14,28 @@ module AdminHelper | |||
| 14 | :role => "img", :class => classes, | 14 | :role => "img", :class => classes, |
| 15 | :title => hint, "aria-label" => hint) | 15 | :title => hint, "aria-label" => hint) |
| 16 | end | 16 | end |
| 17 | |||
| 18 | def admin_bridge | ||
| 19 | { | ||
| 20 | :urls => { | ||
| 21 | :search => admin_search_path, | ||
| 22 | :menu_search => admin_menu_search_path, | ||
| 23 | :dashboard_search => admin_dashboard_search_path, | ||
| 24 | :parameterize_preview => parameterize_preview_nodes_path | ||
| 25 | }, | ||
| 26 | :strings => { | ||
| 27 | :lock_lost_prefix => t("layouts.admin.lock_lost_prefix"), | ||
| 28 | :lock_lost_link => t("layouts.admin.lock_lost_link"), | ||
| 29 | :insert_image => t("layouts.admin.insert_image"), | ||
| 30 | :insert_image_tooltip => t("layouts.admin.insert_image_tooltip"), | ||
| 31 | :copied => t("layouts.admin.copied"), | ||
| 32 | :needs_redaktion => t("layouts.admin.needs_redaktion"), | ||
| 33 | :import_markdown => t("layouts.admin.import_markdown"), | ||
| 34 | :import_markdown_tooltip => t("layouts.admin.import_markdown_tooltip"), | ||
| 35 | :import_markdown_placeholder => t("layouts.admin.import_markdown_placeholder"), | ||
| 36 | :cancel => t("admin.common.cancel"), | ||
| 37 | :insert => t("layouts.admin.insert") | ||
| 38 | } | ||
| 39 | }.to_json | ||
| 40 | end | ||
| 17 | end | 41 | end |
diff --git a/app/views/layouts/admin.html.erb b/app/views/layouts/admin.html.erb index 082f172c..3f6667a8 100644 --- a/app/views/layouts/admin.html.erb +++ b/app/views/layouts/admin.html.erb | |||
| @@ -15,27 +15,8 @@ | |||
| 15 | <%= javascript_include_tag 'admin_bundle' %> | 15 | <%= javascript_include_tag 'admin_bundle' %> |
| 16 | <%= tinymce_assets %> | 16 | <%= tinymce_assets %> |
| 17 | <link rel="stylesheet" href="<%= mtime_busted_path('/stylesheets/admin.css') %>"> | 17 | <link rel="stylesheet" href="<%= mtime_busted_path('/stylesheets/admin.css') %>"> |
| 18 | <%= javascript_tag nonce: true do %> | ||
| 19 | var ADMIN_SEARCH_URL = "<%= admin_search_path %>"; | ||
| 20 | var ADMIN_MENU_SEARCH_URL = "<%= admin_menu_search_path %>"; | ||
| 21 | var ADMIN_STRINGS = <%= raw({ | ||
| 22 | :lock_lost_prefix => t(".lock_lost_prefix"), | ||
| 23 | :lock_lost_link => t(".lock_lost_link"), | ||
| 24 | :insert_image => t(".insert_image"), | ||
| 25 | :insert_image_tooltip => t(".insert_image_tooltip"), | ||
| 26 | :copied => t(".copied"), | ||
| 27 | :needs_redaktion => t(".needs_redaktion"), | ||
| 28 | :import_markdown => t(".import_markdown"), | ||
| 29 | :import_markdown_tooltip => t(".import_markdown_tooltip"), | ||
| 30 | :import_markdown_placeholder => t(".import_markdown_placeholder"), | ||
| 31 | :cancel => t("admin.common.cancel"), | ||
| 32 | :insert => t(".insert") | ||
| 33 | }.to_json) %>; | ||
| 34 | var PARAMETERIZE_PREVIEW_URL = "<%= parameterize_preview_nodes_path %>"; | ||
| 35 | var DASHBOARD_SEARCH_URL = "<%= admin_dashboard_search_path %>"; | ||
| 36 | <% end %> | ||
| 37 | <script src="<%= mtime_busted_path('/javascripts/admin_search.js') %>"></script> | ||
| 38 | <script src="<%= mtime_busted_path('/javascripts/admin_interface.js') %>"></script> | 18 | <script src="<%= mtime_busted_path('/javascripts/admin_interface.js') %>"></script> |
| 19 | <script src="<%= mtime_busted_path('/javascripts/admin_search.js') %>"></script> | ||
| 39 | <script src="<%= mtime_busted_path('/javascripts/related_assets.js') %>"></script> | 20 | <script src="<%= mtime_busted_path('/javascripts/related_assets.js') %>"></script> |
| 40 | <%= yield :head %> | 21 | <%= yield :head %> |
| 41 | </head> | 22 | </head> |
| @@ -62,5 +43,6 @@ | |||
| 62 | <%= yield %> | 43 | <%= yield %> |
| 63 | </div> | 44 | </div> |
| 64 | </div> | 45 | </div> |
| 46 | <script type="application/json" id="cccms_config"><%= raw admin_bridge %></script> | ||
| 65 | </body> | 47 | </body> |
| 66 | </html> | 48 | </html> |
