Open the next active conversation after deleting, per the after-send setting #5693 from JayOfTheKeyboard/feature/delete-open-next

Open the next active conversation after deleting, per the after-send setting
This commit is contained in:
FreeScout
2026-10-02 12:42:33 +03:00
committed by GitHub

View File

@@ -1950,11 +1950,11 @@ class ConversationsController extends Controller
}
if (!$response['msg']) {
$folder_id = $conversation->getCurrentFolder();
$redirect_url = $this->getRedirectUrlAfterDelete($conversation, $user);
$conversation->deleteToFolder($user);
$response['redirect_url'] = route('mailboxes.view.folder', ['id' => $conversation->mailbox_id, 'folder_id' => $folder_id]);
$response['redirect_url'] = $redirect_url;
$response['status'] = 'success';
@@ -1972,7 +1972,7 @@ class ConversationsController extends Controller
}
if (!$response['msg']) {
$folder_id = $conversation->getCurrentFolder();
$redirect_url = $this->getRedirectUrlAfterDelete($conversation, $user);
$mailbox = $conversation->mailbox;
$conversation->deleteForever();
@@ -1980,7 +1980,7 @@ class ConversationsController extends Controller
// Recalculate only old and new folders
$mailbox->updateFoldersCounters();
$response['redirect_url'] = route('mailboxes.view.folder', ['id' => $conversation->mailbox_id, 'folder_id' => $folder_id]);
$response['redirect_url'] = $redirect_url;
$response['status'] = 'success';
@@ -2854,6 +2854,20 @@ class ConversationsController extends Controller
return $redirect_url;
}
/**
* Where to go after deleting a conversation.
* Follows the user's "after send" setting, as changing the status does: "Next active conversation" opens it,
* anything else shows the folder. Must be called before the conversation is deleted.
*/
public function getRedirectUrlAfterDelete($conversation, $user)
{
if ($conversation->mailbox->getUserSettings($user->id)->after_send == MailboxUser::AFTER_SEND_NEXT) {
return $conversation->urlNext(Conversation::getFolderParam(), Conversation::STATUS_ACTIVE, true);
}
return route('mailboxes.view.folder', ['id' => $conversation->mailbox_id, 'folder_id' => $conversation->getCurrentFolder()]);
}
/**
* Upload files and images.
*/