forked from OpenNeo/impress
Emi Matchu
684dcb53ba
Oh right, we don't have Rails UJS going on anymore, which is what handled the confirmation prompts for deleting lists. Turbo is the more standard modern solution to that, and should speed up certain pageloads, so let's do it! Here I install the `turbo-rails` gem, then run `rails turbo:install` to install the `@hotwired/turbo-rails` npm package. Then I move `application.js` that's run all on pages but the outfit editor into our section of JS that gets run through the bundler, and add Turbo to it. I had to fix a couple tricky things: 1. The outfit editor page doesn't play nice with being swapped into the document, so I make it require a full page reload instead. 2. Prefetching the Sign In link can cause the wrong `return_to` address to be written to the `session`. (It's a GET request that does, ever so slightly, take its own actions, oops!) As a simple hacky answer, we disallow prefetching on that link. Haven't fixed up the UJS stuff for confirm prompts to use Turbo yet, that's next!
79 lines
2.5 KiB
Text
79 lines
2.5 KiB
Text
!!! 5
|
|
%html
|
|
%head
|
|
%meta{charset: 'utf-8'}
|
|
%title
|
|
- if content_for? :title
|
|
= yield :title
|
|
|
|
|
- if content_for? :title_category
|
|
= yield :title_category
|
|
- else
|
|
#{t 'app_name'}: #{t '.title_tagline'}
|
|
%link{href: image_path('favicon.png'), rel: 'icon'}
|
|
= yield :stylesheets
|
|
= stylesheet_link_tag "application"
|
|
= render 'analytics'
|
|
= yield :meta
|
|
= open_graph_tags
|
|
= csrf_meta_tag
|
|
= impress_2020_meta_tags
|
|
= signed_in_meta_tag
|
|
- if user_signed_in?
|
|
= current_user_id_meta_tag
|
|
= yield :head
|
|
%body{:class => body_class}
|
|
#container
|
|
= yield :before_title
|
|
= render 'announcement'
|
|
- if content_for?(:title) && show_title_header?
|
|
%h1#title= yield :title
|
|
= yield :before_flashes
|
|
= flashes
|
|
|
|
- if content_for? :content
|
|
= yield(:content)
|
|
- else
|
|
= yield
|
|
|
|
- if home_link?
|
|
%a#home-link{:href => root_path}
|
|
%span= t 'app_name'
|
|
|
|
#userbar
|
|
- if user_signed_in?
|
|
%span
|
|
= t '.userbar.greeting', :user_name => current_user.name
|
|
= userbar_contributions_summary(current_user)
|
|
= link_to t('.userbar.items'), user_closet_hangers_path(current_user), :id => 'userbar-items-link'
|
|
= link_to t('.userbar.outfits'), current_user_outfits_path
|
|
= link_to t('.userbar.settings'), edit_auth_user_registration_path
|
|
= button_to t('.userbar.logout'), destroy_auth_user_session_path, method: :delete,
|
|
params: {return_to: request.fullpath}
|
|
- else
|
|
= link_to auth_user_sign_in_path_with_return_to,
|
|
id: 'userbar-log-in', "data-turbo-prefetch": false do
|
|
%span= t('.userbar.login')
|
|
|
|
#footer
|
|
= form_tag choose_locale_path, :id => 'locale-form' do
|
|
= hidden_field_tag 'return_to', request.fullpath
|
|
= select_tag 'locale', options_for_select(locale_options, locale)
|
|
%noscript= submit_tag 'Go'
|
|
|
|
%ul
|
|
%li= link_to t('.footer.source_code'), 'https://code.openneo.net/OpenNeo/impress'
|
|
%li.terms{"data-updated-recently": terms_updated_recently }
|
|
= link_to t('.footer.terms', date: terms_updated_timestamp),
|
|
terms_path
|
|
|
|
%div
|
|
#{t('.footer.contact')}:
|
|
%ul
|
|
%li= mail_to contact_email, t('.footer.email')
|
|
|
|
%p= t '.footer.copyright', :year => Date.today.year
|
|
|
|
= javascript_include_tag 'application'
|
|
= yield(:javascripts)
|
|
|