diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index d044989bd..6249c8ecd 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -192,12 +192,27 @@ module ApplicationHelper attributes = [:id, :name, :level, :level_string, :can_approve_posts?, :can_upload_free?] attributes += User::Roles.map { |role| :"is_#{role}?" } + controller_param = params[:controller].parameterize.dasherize + action_param = params[:action].parameterize.dasherize + + { + lang: "en", + class: "c-#{controller_param} a-#{action_param}", + data: { + controller: controller_param, + action: action_param, + **data_attributes_for(user, "user", attributes) + } + } + end + + def data_attributes_for(record, prefix, attributes) attributes.map do |attr| name = attr.to_s.dasherize.delete("?") - value = user.send(attr) + value = record.send(attr) - %{data-user-#{name}="#{h(value)}"} - end.join(" ").html_safe + [:"#{prefix}-#{name}", value] + end.to_h end protected diff --git a/app/javascript/src/javascripts/post_mode_menu.js b/app/javascript/src/javascripts/post_mode_menu.js index 5da27a797..4f86aab83 100644 --- a/app/javascript/src/javascripts/post_mode_menu.js +++ b/app/javascript/src/javascripts/post_mode_menu.js @@ -117,7 +117,7 @@ PostModeMenu.change = function() { return; } var $body = $(document.body); - $body.removeClass(); + $body.removeClass((i, classNames) => classNames.split(/ /).filter(name => /^mode-/.test(name)).join(" ")); $body.addClass("mode-" + s); Cookie.put("mode", s, 1); diff --git a/app/views/layouts/default.html.erb b/app/views/layouts/default.html.erb index 6fab91fba..0cf6d38af 100644 --- a/app/views/layouts/default.html.erb +++ b/app/views/layouts/default.html.erb @@ -86,7 +86,7 @@ -> +<%= tag.body **body_attributes(CurrentUser.user) do %>
<%= render "news_updates/listing" %> @@ -137,5 +137,5 @@ <%= render "static/footer" %> - +<% end %>