knowledge_base.html.erb 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <!DOCTYPE HTML>
  2. <html lang="<%= system_locale_via_uri.locale %>"
  3. dir="<%= system_locale_via_uri.dir %>"
  4. adir="ltr"
  5. data-id='<%= @knowledge_base.id %>'
  6. data-iconset='<%= @knowledge_base.iconset %>'
  7. data-available-locales='<%= all_locales.map(&:locale).join(',') %>'
  8. data-base-path='<%= custom_path_if_needed help_root_path(locale: '{locale}'), @knowledge_base %>'
  9. data-primary-locale="<%= (filter_primary_kb_locale || all_locales.first)&.locale %>">
  10. <meta charset="utf-8">
  11. <title><%= kb_public_page_title(@knowledge_base, @object, @page_title_error) %></title>
  12. <meta name="viewport" content="width=device-width,initial-scale=1.0,viewport-fit=cover">
  13. <%= stylesheet_link_tag "knowledge_base.css", :media => 'all' %>
  14. <%= render 'knowledge_base/public/inline_stylesheet', knowledge_base: @knowledge_base, locale: system_locale_via_uri %>
  15. <%= canonical_link_tag @knowledge_base, @category, @object %>
  16. <div class="wrapper js-wrapper">
  17. <%= render_top_bar_if_needed @object, @knowledge_base %>
  18. <header class="header js-header">
  19. <div class="container">
  20. <h1 class="logo">
  21. <%= link_to custom_path_if_needed(help_root_path(locale: params[:locale]), @knowledge_base) do %>
  22. <img src="/assets/images/<%= Setting.get('product_logo') %>">
  23. <% end %>
  24. </h1>
  25. <nav class="menu">
  26. <% menu_items.location_header.each do |menu_item| %>
  27. <%= link_to menu_item.title, menu_item.url, class: 'menu-item', target: menu_item.new_tab ? '_blank' : nil %>
  28. <% end %>
  29. </nav>
  30. </div>
  31. <div class="container">
  32. <div class="search">
  33. <div class="search-field">
  34. <%= icon 'magnifier' %>
  35. <input class="js-search-input" type="search" placeholder="<%= zt('How can we help you? Search for an answer or a topic…') %>">
  36. </div>
  37. <ul class="search-results js-search-results" data-empty-placeholder="<%= zt('No results were found.') %>"></ul>
  38. </div>
  39. </div>
  40. </header>
  41. <%= render_breadcrumb_if_needed(@knowledge_base, @object, @alternative) %>
  42. <%= yield %>
  43. <footer class="footer">
  44. <div class="container">
  45. <div class="footer-menu">
  46. <div class="copyright">
  47. <%= @knowledge_base.translation.footer_note %>
  48. </div>
  49. <nav class="menu">
  50. <% menu_items.location_footer.each do |menu_item| %>
  51. <%= link_to menu_item.title, menu_item.url, class: 'menu-item', target: menu_item.new_tab ? '_blank' : nil %>
  52. <% end %>
  53. </nav>
  54. <div class="language-picker">
  55. <a class="btn btn--action" href="#" data-toggle="dropdown" aria-expanded="false">
  56. <%= system_locale_via_uri.name %>
  57. <%= icon 'arrow-down' %>
  58. </a>
  59. <ul class="dropdown-menu dropdown-menu-<%= dropdown_menu_direction %> dropdown-menu-up" role="menu">
  60. <% @object_locales&.each do |locale| %>
  61. <li class="<%= 'is-selected' if locale.name == system_locale_via_uri.name %>">
  62. <%= link_to custom_path_if_needed(url_for(locale: locale.locale), @knowledge_base), hreflang: locale.locale do %>
  63. <%= icon 'checkmark' %>
  64. <%= locale.name %>
  65. <% end %>
  66. </li>
  67. <% end %>
  68. </ul>
  69. </div>
  70. </div>
  71. </div>
  72. </footer>
  73. </div>
  74. <%= javascript_tag nonce: true do -%>
  75. if(window.fetch === undefined || window.Promise === undefined || Element.prototype.prepend === undefined){
  76. var polyfillScriptTag = document.createElement('script');
  77. polyfillScriptTag.setAttribute('src', '<%= path_to_javascript('knowledge_base_public_polyfills') %>');
  78. polyfillScriptTag.setAttribute('nonce', '<%= content_security_policy_nonce %>');
  79. document.body.appendChild(polyfillScriptTag);
  80. }
  81. <% end -%>
  82. <%= javascript_include_tag 'knowledge_base_public', nonce: true %>