rework UI of mail settings page to allow for saving settings before testing
This commit is contained in:
parent
561b3dd1e7
commit
c5608b1827
2 changed files with 90 additions and 16 deletions
|
@ -5,7 +5,7 @@ namespace Pterodactyl\Http\Controllers\Admin\Settings;
|
|||
use Exception;
|
||||
use Illuminate\View\View;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Response;
|
||||
use Prologue\Alerts\AlertsMessageBag;
|
||||
use Illuminate\Contracts\Console\Kernel;
|
||||
use Pterodactyl\Notifications\MailTested;
|
||||
|
@ -85,13 +85,13 @@ class MailController extends Controller
|
|||
* Handle request to update SMTP mail settings.
|
||||
*
|
||||
* @param \Pterodactyl\Http\Requests\Admin\Settings\MailSettingsFormRequest $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
* @return \Illuminate\Http\Response
|
||||
*
|
||||
* @throws DisplayException
|
||||
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
|
||||
* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
|
||||
*/
|
||||
public function update(MailSettingsFormRequest $request): RedirectResponse
|
||||
public function update(MailSettingsFormRequest $request): Response
|
||||
{
|
||||
if ($this->config->get('mail.driver') !== 'smtp') {
|
||||
throw new DisplayException('This feature is only available if SMTP is the selected email driver for the Panel.');
|
||||
|
@ -111,30 +111,25 @@ class MailController extends Controller
|
|||
}
|
||||
|
||||
$this->kernel->call('queue:restart');
|
||||
$this->alert->success('Mail settings have been updated successfully and the queue worker was restarted to apply these changes.')->flash();
|
||||
|
||||
return redirect()->route('admin.settings.mail');
|
||||
return response('', 204);
|
||||
}
|
||||
|
||||
/**
|
||||
* Submit a request to send a test mail message.
|
||||
*
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function test(Request $request): RedirectResponse
|
||||
public function test(Request $request): Response
|
||||
{
|
||||
try {
|
||||
Notification::route('mail', $request->user()->email)
|
||||
->notify(new MailTested($request->user()));
|
||||
} catch (Exception $exception) {
|
||||
$this->alert->danger(trans('base.mail.test_failed') . ' ' . $exception->getMessage())->flash();
|
||||
|
||||
return redirect()->route('admin.settings.mail');
|
||||
return response($exception->getMessage(), 500);
|
||||
}
|
||||
|
||||
$this->alert->success(trans('base.mail.test_succeeded'))->flash();
|
||||
|
||||
return redirect()->route('admin.settings.mail');
|
||||
return response('', 204);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue