From fadd577db80e461ffaecf037ac411e4ae245b92d Mon Sep 17 00:00:00 2001 From: Riccardo Graziosi <31478034+riggraz@users.noreply.github.com> Date: Fri, 26 Jan 2024 17:35:00 +0100 Subject: [PATCH] Change page title based on current page (#269) --- app/controllers/boards_controller.rb | 1 + app/controllers/posts_controller.rb | 2 ++ app/controllers/registrations_controller.rb | 12 ++++++++++++ app/controllers/sessions_controller.rb | 7 +++++++ app/controllers/site_settings_controller.rb | 8 ++++++++ app/controllers/static_pages_controller.rb | 3 +++ app/views/layouts/_page_title.html.erb | 7 +++++++ app/views/layouts/application.html.erb | 2 +- 8 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 app/views/layouts/_page_title.html.erb diff --git a/app/controllers/boards_controller.rb b/app/controllers/boards_controller.rb index 8763481d..79d477dd 100644 --- a/app/controllers/boards_controller.rb +++ b/app/controllers/boards_controller.rb @@ -11,6 +11,7 @@ class BoardsController < ApplicationController def show @board = Board.find(params[:id]) + @page_title = @board.name end def create diff --git a/app/controllers/posts_controller.rb b/app/controllers/posts_controller.rb index cb6c432e..1dc7c7f1 100644 --- a/app/controllers/posts_controller.rb +++ b/app/controllers/posts_controller.rb @@ -62,6 +62,8 @@ class PostsController < ApplicationController @post_statuses = PostStatus.select(:id, :name, :color).order(order: :asc) @board = @post.board + @page_title = @post.title.length > 60 ? @post.title.slice(0, 60) + "..." : @post.title + respond_to do |format| format.html diff --git a/app/controllers/registrations_controller.rb b/app/controllers/registrations_controller.rb index 1d94c229..c68b5956 100644 --- a/app/controllers/registrations_controller.rb +++ b/app/controllers/registrations_controller.rb @@ -2,6 +2,8 @@ class RegistrationsController < Devise::RegistrationsController # Needed to have Current.tenant available in Devise's controllers prepend_before_action :load_tenant_data before_action :load_oauths, only: [:new] + before_action :set_page_title_new, only: [:new] + before_action :set_page_title_edit, only: [:edit] # Override destroy to soft delete def destroy @@ -12,4 +14,14 @@ class RegistrationsController < Devise::RegistrationsController yield resource if block_given? respond_with_navigational(resource){ redirect_to after_sign_out_path_for(resource_name) } end + + private + + def set_page_title_new + @page_title = t('common.forms.auth.sign_up') + end + + def set_page_title_edit + @page_title = t('common.forms.auth.profile_settings') + end end \ No newline at end of file diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index 8752c7c5..3e90f0f3 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -2,4 +2,11 @@ class SessionsController < Devise::SessionsController # Needed to have Current.tenant available in Devise's controllers prepend_before_action :load_tenant_data before_action :load_oauths, only: [:new] + before_action :set_page_title, only: [:new] + + private + + def set_page_title + @page_title = t('common.forms.auth.log_in') + end end \ No newline at end of file diff --git a/app/controllers/site_settings_controller.rb b/app/controllers/site_settings_controller.rb index a68f1418..04f6910e 100644 --- a/app/controllers/site_settings_controller.rb +++ b/app/controllers/site_settings_controller.rb @@ -6,6 +6,8 @@ class SiteSettingsController < ApplicationController before_action :authenticate_moderator, only: [:users] + + before_action :set_page_title def general end @@ -27,4 +29,10 @@ class SiteSettingsController < ApplicationController def users end + + private + + def set_page_title + @page_title = t('header.menu.site_settings') + end end \ No newline at end of file diff --git a/app/controllers/static_pages_controller.rb b/app/controllers/static_pages_controller.rb index 86e25032..4d96de86 100644 --- a/app/controllers/static_pages_controller.rb +++ b/app/controllers/static_pages_controller.rb @@ -5,14 +5,17 @@ class StaticPagesController < ApplicationController @board = Board.find_by(id: Current.tenant.tenant_setting.root_board_id) if @board + @page_title = @board.name render 'boards/show' else + @page_title = t('roadmap.title') get_roadmap_data render 'static_pages/roadmap' end end def roadmap + @page_title = t('roadmap.title') get_roadmap_data end diff --git a/app/views/layouts/_page_title.html.erb b/app/views/layouts/_page_title.html.erb new file mode 100644 index 00000000..348861ed --- /dev/null +++ b/app/views/layouts/_page_title.html.erb @@ -0,0 +1,7 @@ +<%= @page_title %> +<% if @tenant %> + <% if @page_title %> + <%= " | " %> + <% end %> + <%= @tenant.site_name %> +<% end %> \ No newline at end of file diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index ab11c670..ff75eb33 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -1,7 +1,7 @@ - <%= @tenant ? @tenant.site_name : @page_title %> + <%= render 'layouts/page_title' %> <%= csrf_meta_tags %> <%= csp_meta_tag %>