From c7e038a4d098ef9f42eb13edf29aef24cbd537ef Mon Sep 17 00:00:00 2001 From: Anton Khorev Date: Sun, 29 Dec 2024 08:27:09 +0300 Subject: [PATCH] Use resourceful routes for web mailboxes --- .../messages/inboxes_controller.rb | 8 ++ .../messages/mailboxes_controller.rb | 12 +++ .../messages/muted_inboxes_controller.rb | 10 +++ .../messages/outboxes_controller.rb | 8 ++ app/controllers/messages_controller.rb | 29 ++----- app/views/layouts/_header.html.erb | 2 +- .../{inbox.html.erb => inboxes/show.html.erb} | 6 +- .../{ => mailboxes}/_heading.html.erb | 4 +- .../_message.html.erb} | 0 .../{ => mailboxes}/_messages_table.html.erb | 2 +- .../show.html.erb} | 4 +- app/views/messages/new.html.erb | 2 +- .../_message.html.erb} | 0 .../show.html.erb} | 4 +- config/locales/en.yml | 84 ++++++++++--------- config/routes.rb | 12 +-- .../messages/inboxes_controller_test.rb | 36 ++++++++ .../messages/muted_inboxes_controller_test.rb | 14 ++++ .../messages/outboxes_controller_test.rb | 36 ++++++++ test/controllers/messages_controller_test.rb | 79 +++-------------- test/system/messages_test.rb | 6 +- 21 files changed, 205 insertions(+), 153 deletions(-) create mode 100644 app/controllers/messages/inboxes_controller.rb create mode 100644 app/controllers/messages/mailboxes_controller.rb create mode 100644 app/controllers/messages/muted_inboxes_controller.rb create mode 100644 app/controllers/messages/outboxes_controller.rb rename app/views/messages/{inbox.html.erb => inboxes/show.html.erb} (52%) rename app/views/messages/{ => mailboxes}/_heading.html.erb (60%) rename app/views/messages/{_message_summary.html.erb => mailboxes/_message.html.erb} (100%) rename app/views/messages/{ => mailboxes}/_messages_table.html.erb (75%) rename app/views/messages/{muted.html.erb => muted_inboxes/show.html.erb} (82%) rename app/views/messages/{_sent_message_summary.html.erb => outboxes/_message.html.erb} (100%) rename app/views/messages/{outbox.html.erb => outboxes/show.html.erb} (87%) create mode 100644 test/controllers/messages/inboxes_controller_test.rb create mode 100644 test/controllers/messages/muted_inboxes_controller_test.rb create mode 100644 test/controllers/messages/outboxes_controller_test.rb diff --git a/app/controllers/messages/inboxes_controller.rb b/app/controllers/messages/inboxes_controller.rb new file mode 100644 index 0000000000..96ec27c26c --- /dev/null +++ b/app/controllers/messages/inboxes_controller.rb @@ -0,0 +1,8 @@ +module Messages + class InboxesController < MailboxesController + # Display the list of messages that have been sent to the user. + def show + @title = t ".title" + end + end +end diff --git a/app/controllers/messages/mailboxes_controller.rb b/app/controllers/messages/mailboxes_controller.rb new file mode 100644 index 0000000000..a0da9f52b7 --- /dev/null +++ b/app/controllers/messages/mailboxes_controller.rb @@ -0,0 +1,12 @@ +module Messages + class MailboxesController < ApplicationController + layout "site" + + before_action :authorize_web + before_action :set_locale + + authorize_resource :class => Message + + before_action :check_database_readable + end +end diff --git a/app/controllers/messages/muted_inboxes_controller.rb b/app/controllers/messages/muted_inboxes_controller.rb new file mode 100644 index 0000000000..2d025cc9ae --- /dev/null +++ b/app/controllers/messages/muted_inboxes_controller.rb @@ -0,0 +1,10 @@ +module Messages + class MutedInboxesController < MailboxesController + # Display the list of muted messages received by the user. + def show + @title = t ".title" + + redirect_to messages_inbox_path if current_user.muted_messages.none? + end + end +end diff --git a/app/controllers/messages/outboxes_controller.rb b/app/controllers/messages/outboxes_controller.rb new file mode 100644 index 0000000000..f4d0a509c4 --- /dev/null +++ b/app/controllers/messages/outboxes_controller.rb @@ -0,0 +1,8 @@ +module Messages + class OutboxesController < MailboxesController + # Display the list of messages that the user has sent to other users. + def show + @title = t ".title" + end + end +end diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb index 7d86796b1f..7162b900a0 100644 --- a/app/controllers/messages_controller.rb +++ b/app/controllers/messages_controller.rb @@ -49,7 +49,7 @@ def create elsif @message.save flash[:notice] = t ".message_sent" UserMailer.message_notification(@message).deliver_later if @message.notify_recipient? - redirect_to :action => :inbox + redirect_to messages_inbox_path else @title = t "messages.new.title" render :action => "new" @@ -66,7 +66,7 @@ def destroy referer = safe_referer(params[:referer]) if params[:referer] - redirect_to referer || { :action => :inbox }, :status => :see_other + redirect_to referer || messages_inbox_path, :status => :see_other end rescue ActiveRecord::RecordNotFound @title = t "messages.no_such_message.title" @@ -108,23 +108,6 @@ def reply render :action => "no_such_message", :status => :not_found end - # Display the list of messages that have been sent to the user. - def inbox - @title = t ".title" - end - - # Display the list of messages that the user has sent to other users. - def outbox - @title = t ".title" - end - - # Display the list of muted messages received by the user. - def muted - @title = t ".title" - - redirect_to inbox_messages_path if current_user.muted_messages.none? - end - # Set the message as being read or unread. def mark @message = current_user.messages.unscope(:where => :muted).find(params[:message_id]) @@ -139,9 +122,9 @@ def mark if @message.save flash[:notice] = notice if @message.muted? - redirect_to muted_messages_path, :status => :see_other + redirect_to messages_muted_inbox_path, :status => :see_other else - redirect_to inbox_messages_path, :status => :see_other + redirect_to messages_inbox_path, :status => :see_other end end rescue ActiveRecord::RecordNotFound @@ -160,9 +143,9 @@ def unmute end if current_user.muted_messages.none? - redirect_to inbox_messages_path + redirect_to messages_inbox_path else - redirect_to muted_messages_path + redirect_to messages_muted_inbox_path end end diff --git a/app/views/layouts/_header.html.erb b/app/views/layouts/_header.html.erb index 190ea44e56..322b738ec4 100644 --- a/app/views/layouts/_header.html.erb +++ b/app/views/layouts/_header.html.erb @@ -96,7 +96,7 @@