2023-06-01 10:15:33 +00:00
|
|
|
<div>
|
2024-06-07 09:01:10 +00:00
|
|
|
<x-slot:title>
|
2026-02-16 01:54:19 +00:00
|
|
|
Notifications | MapleDeploy
|
2024-12-11 09:14:12 +00:00
|
|
|
</x-slot>
|
|
|
|
|
<x-notification.navbar />
|
|
|
|
|
<form wire:submit='submit' class="flex flex-col gap-4 pb-4">
|
|
|
|
|
<div class="flex items-center gap-2">
|
|
|
|
|
<h2>Email</h2>
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.button canGate="update" :canResource="$settings" type="submit">
|
2024-12-11 09:14:12 +00:00
|
|
|
Save
|
|
|
|
|
</x-forms.button>
|
|
|
|
|
@if (auth()->user()->isAdminFromSession())
|
2025-08-26 08:27:31 +00:00
|
|
|
@can('sendTest', $settings)
|
|
|
|
|
@if ($team->isNotificationEnabled('email'))
|
|
|
|
|
<x-modal-input buttonTitle="Send Test Email" title="Send Test Email">
|
|
|
|
|
<form wire:submit.prevent="sendTestEmail" class="flex flex-col w-full gap-2">
|
|
|
|
|
<x-forms.input wire:model="testEmailAddress" placeholder="test@example.com"
|
|
|
|
|
id="testEmailAddress" label="Recipient" required />
|
|
|
|
|
<x-forms.button type="submit" @click="modalOpen=false">
|
|
|
|
|
Send Email
|
|
|
|
|
</x-forms.button>
|
|
|
|
|
</form>
|
|
|
|
|
</x-modal-input>
|
|
|
|
|
@else
|
|
|
|
|
<x-forms.button disabled class="normal-case dark:text-white btn btn-xs no-animation btn-primary">
|
|
|
|
|
Send Test Email
|
|
|
|
|
</x-forms.button>
|
|
|
|
|
@endif
|
|
|
|
|
@endcan
|
2024-12-11 09:14:12 +00:00
|
|
|
@endif
|
|
|
|
|
</div>
|
|
|
|
|
@if (!isCloud())
|
2024-11-05 10:22:23 +00:00
|
|
|
<div class="w-96">
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.checkbox canGate="update" :canResource="$settings" instantSave="instantSave()" id="useInstanceEmailSettings"
|
2024-12-11 09:14:12 +00:00
|
|
|
label="Use system wide (transactional) email settings" />
|
2023-10-06 08:57:35 +00:00
|
|
|
</div>
|
2024-12-11 09:14:12 +00:00
|
|
|
@endif
|
|
|
|
|
@if (!$useInstanceEmailSettings)
|
2025-06-25 10:37:13 +00:00
|
|
|
<div class="flex gap-2">
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.input canGate="update" :canResource="$settings" required id="smtpFromName" helper="Name used in emails." label="From Name" />
|
|
|
|
|
<x-forms.input canGate="update" :canResource="$settings" required id="smtpFromAddress" helper="Email address used in emails."
|
2024-12-11 09:14:12 +00:00
|
|
|
label="From Address" />
|
2023-10-06 08:57:35 +00:00
|
|
|
</div>
|
2024-12-11 09:14:12 +00:00
|
|
|
@if (isInstanceAdmin() && !$useInstanceEmailSettings)
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.button canGate="update" :canResource="$settings" wire:click='copyFromInstanceSettings'>
|
2024-12-11 09:14:12 +00:00
|
|
|
Copy from Instance Settings
|
|
|
|
|
</x-forms.button>
|
2024-12-09 12:56:52 +00:00
|
|
|
@endif
|
2024-12-11 09:14:12 +00:00
|
|
|
@endif
|
|
|
|
|
</form>
|
|
|
|
|
@if (isCloud())
|
2024-11-05 10:22:23 +00:00
|
|
|
<div class="w-64 py-4">
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.checkbox canGate="update" :canResource="$settings" instantSave="instantSave()" id="useInstanceEmailSettings"
|
2024-12-11 09:14:12 +00:00
|
|
|
label="Use Hosted Email Service" />
|
2023-09-08 15:26:59 +00:00
|
|
|
</div>
|
2024-12-11 09:14:12 +00:00
|
|
|
@endif
|
|
|
|
|
@if (!$useInstanceEmailSettings)
|
2023-07-28 09:49:25 +00:00
|
|
|
<div class="flex flex-col gap-4">
|
2025-06-25 08:56:35 +00:00
|
|
|
<form wire:submit='submitSmtp'
|
2025-10-01 06:23:35 +00:00
|
|
|
class="p-4 border dark:border-coolgray-300 border-neutral-200 rounded-lg flex flex-col gap-2">
|
2024-11-05 10:22:23 +00:00
|
|
|
<div class="flex items-center gap-2">
|
|
|
|
|
<h3>SMTP Server</h3>
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.button canGate="update" :canResource="$settings" type="submit">
|
2024-11-05 10:22:23 +00:00
|
|
|
Save
|
|
|
|
|
</x-forms.button>
|
|
|
|
|
</div>
|
2023-09-15 09:28:44 +00:00
|
|
|
<div class="w-32">
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.checkbox canGate="update" :canResource="$settings" wire:model="smtpEnabled" instantSave="instantSave('SMTP')" id="smtpEnabled"
|
2024-12-11 09:14:12 +00:00
|
|
|
label="Enabled" />
|
2023-08-31 13:00:59 +00:00
|
|
|
</div>
|
2024-11-05 10:22:23 +00:00
|
|
|
<div class="flex flex-col">
|
2023-09-15 09:28:44 +00:00
|
|
|
<div class="flex flex-col gap-4">
|
|
|
|
|
<div class="flex flex-col w-full gap-2 xl:flex-row">
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.input canGate="update" :canResource="$settings" required id="smtpHost" placeholder="smtp.mailgun.org" label="Host" />
|
|
|
|
|
<x-forms.input canGate="update" :canResource="$settings" required id="smtpPort" placeholder="587" label="Port" />
|
|
|
|
|
<x-forms.select canGate="update" :canResource="$settings" required id="smtpEncryption" label="Encryption">
|
2024-12-23 14:26:26 +00:00
|
|
|
<option value="starttls">StartTLS</option>
|
|
|
|
|
<option value="tls">TLS/SSL</option>
|
2024-12-05 11:42:31 +00:00
|
|
|
<option value="none">None</option>
|
|
|
|
|
</x-forms.select>
|
2023-08-31 13:00:59 +00:00
|
|
|
</div>
|
2023-09-15 09:28:44 +00:00
|
|
|
<div class="flex flex-col w-full gap-2 xl:flex-row">
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.input canGate="update" :canResource="$settings" id="smtpUsername" label="SMTP Username" />
|
|
|
|
|
<x-forms.input canGate="update" :canResource="$settings" id="smtpPassword" type="password" label="SMTP Password" />
|
|
|
|
|
<x-forms.input canGate="update" :canResource="$settings" id="smtpTimeout" helper="Timeout value for sending emails."
|
2024-12-11 09:14:12 +00:00
|
|
|
label="Timeout" />
|
2023-08-31 13:00:59 +00:00
|
|
|
</div>
|
2023-09-15 09:28:44 +00:00
|
|
|
</div>
|
2024-11-05 10:22:23 +00:00
|
|
|
</div>
|
|
|
|
|
</form>
|
2025-06-25 08:56:35 +00:00
|
|
|
<form wire:submit='submitResend'
|
2025-10-01 06:23:35 +00:00
|
|
|
class="p-4 border dark:border-coolgray-300 border-neutral-200 rounded-lg flex flex-col gap-2">
|
2024-11-05 10:22:23 +00:00
|
|
|
<div class="flex items-center gap-2">
|
|
|
|
|
<h3>Resend</h3>
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.button canGate="update" :canResource="$settings" type="submit">
|
2024-11-05 10:22:23 +00:00
|
|
|
Save
|
|
|
|
|
</x-forms.button>
|
|
|
|
|
</div>
|
2023-09-15 09:28:44 +00:00
|
|
|
<div class="w-32">
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.checkbox canGate="update" :canResource="$settings" wire:model="resendEnabled" instantSave="instantSave('Resend')" id="resendEnabled"
|
2024-12-11 09:14:12 +00:00
|
|
|
label="Enabled" />
|
2023-08-31 13:00:59 +00:00
|
|
|
</div>
|
2024-11-05 10:22:23 +00:00
|
|
|
<div class="flex flex-col">
|
2023-09-15 09:28:44 +00:00
|
|
|
<div class="flex flex-col gap-4">
|
|
|
|
|
<div class="flex flex-col w-full gap-2 xl:flex-row">
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.input canGate="update" :canResource="$settings" required type="password" id="resendApiKey" placeholder="API key"
|
2024-12-11 09:14:12 +00:00
|
|
|
label="API Key" />
|
2023-09-15 09:28:44 +00:00
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-11-05 10:22:23 +00:00
|
|
|
</div>
|
|
|
|
|
</form>
|
2023-05-25 16:27:52 +00:00
|
|
|
</div>
|
2024-12-11 09:14:12 +00:00
|
|
|
@endif
|
|
|
|
|
<h2 class="mt-4">Notification Settings</h2>
|
|
|
|
|
<p class="mb-4">
|
|
|
|
|
Select events for which you would like to receive email notifications.
|
|
|
|
|
</p>
|
|
|
|
|
<div class="flex flex-col gap-4 max-w-2xl">
|
2025-06-25 08:56:35 +00:00
|
|
|
<div class="border dark:border-coolgray-300 border-neutral-200 p-4 rounded-lg">
|
2024-12-11 09:14:12 +00:00
|
|
|
<h3 class="font-medium mb-3">Deployments</h3>
|
|
|
|
|
<div class="flex flex-col gap-1.5 pl-1">
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.checkbox canGate="update" :canResource="$settings" instantSave="saveModel" id="deploymentSuccessEmailNotifications"
|
2024-12-11 09:14:12 +00:00
|
|
|
label="Deployment Success" />
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.checkbox canGate="update" :canResource="$settings" instantSave="saveModel" id="deploymentFailureEmailNotifications"
|
2024-12-11 09:14:12 +00:00
|
|
|
label="Deployment Failure" />
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.checkbox canGate="update" :canResource="$settings" instantSave="saveModel"
|
2024-12-11 10:28:56 +00:00
|
|
|
helper="Send an email when a container status changes. It will send and email for Stopped and Restarted events of a container."
|
|
|
|
|
id="statusChangeEmailNotifications" label="Container Status Changes" />
|
2024-12-09 12:56:52 +00:00
|
|
|
</div>
|
2024-12-11 09:14:12 +00:00
|
|
|
</div>
|
2025-06-25 08:56:35 +00:00
|
|
|
<div class="border dark:border-coolgray-300 border-neutral-200 p-4 rounded-lg">
|
2024-12-11 09:14:12 +00:00
|
|
|
<h3 class="font-medium mb-3">Backups</h3>
|
|
|
|
|
<div class="flex flex-col gap-1.5 pl-1">
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.checkbox canGate="update" :canResource="$settings" instantSave="saveModel" id="backupSuccessEmailNotifications"
|
2024-12-11 10:28:56 +00:00
|
|
|
label="Backup Success" />
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.checkbox canGate="update" :canResource="$settings" instantSave="saveModel" id="backupFailureEmailNotifications"
|
2024-12-11 09:14:12 +00:00
|
|
|
label="Backup Failure" />
|
2024-12-09 12:56:52 +00:00
|
|
|
</div>
|
2024-12-11 09:14:12 +00:00
|
|
|
</div>
|
2025-06-25 08:56:35 +00:00
|
|
|
<div class="border dark:border-coolgray-300 border-neutral-200 p-4 rounded-lg">
|
2024-12-11 09:14:12 +00:00
|
|
|
<h3 class="font-medium mb-3">Scheduled Tasks</h3>
|
|
|
|
|
<div class="flex flex-col gap-1.5 pl-1">
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.checkbox canGate="update" :canResource="$settings" instantSave="saveModel" id="scheduledTaskSuccessEmailNotifications"
|
2024-12-11 09:14:12 +00:00
|
|
|
label="Scheduled Task Success" />
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.checkbox canGate="update" :canResource="$settings" instantSave="saveModel" id="scheduledTaskFailureEmailNotifications"
|
2024-12-11 09:14:12 +00:00
|
|
|
label="Scheduled Task Failure" />
|
2024-12-09 12:56:52 +00:00
|
|
|
</div>
|
2024-12-11 09:14:12 +00:00
|
|
|
</div>
|
2025-06-25 08:56:35 +00:00
|
|
|
<div class="border dark:border-coolgray-300 border-neutral-200 p-4 rounded-lg">
|
2024-12-11 09:14:12 +00:00
|
|
|
<h3 class="font-medium mb-3">Server</h3>
|
|
|
|
|
<div class="flex flex-col gap-1.5 pl-1">
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.checkbox canGate="update" :canResource="$settings" instantSave="saveModel" id="dockerCleanupSuccessEmailNotifications"
|
2024-12-11 09:50:10 +00:00
|
|
|
label="Docker Cleanup Success" />
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.checkbox canGate="update" :canResource="$settings" instantSave="saveModel" id="dockerCleanupFailureEmailNotifications"
|
2024-12-11 09:50:10 +00:00
|
|
|
label="Docker Cleanup Failure" />
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.checkbox canGate="update" :canResource="$settings" instantSave="saveModel" id="serverDiskUsageEmailNotifications"
|
2024-12-11 09:50:10 +00:00
|
|
|
label="Server Disk Usage" />
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.checkbox canGate="update" :canResource="$settings" instantSave="saveModel" id="serverReachableEmailNotifications"
|
2024-12-11 09:14:12 +00:00
|
|
|
label="Server Reachable" />
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.checkbox canGate="update" :canResource="$settings" instantSave="saveModel" id="serverUnreachableEmailNotifications"
|
2024-12-11 09:14:12 +00:00
|
|
|
label="Server Unreachable" />
|
2025-08-26 08:27:31 +00:00
|
|
|
<x-forms.checkbox canGate="update" :canResource="$settings" instantSave="saveModel" id="serverPatchEmailNotifications"
|
feat(server): implement server patch check notifications
- Added a new job, ServerPatchCheckJob, to handle server patch checks and notifications.
- Introduced a new notification class, ServerPatchCheck, for sending updates via email, Discord, Slack, Pushover, and Telegram.
- Updated notification settings models to include server patch notification options for email, Discord, Slack, Pushover, and Telegram.
- Created a migration to add server patch notification fields to the respective settings tables.
- Enhanced the UI to allow users to enable/disable server patch notifications across different channels.
2025-05-26 12:03:59 +00:00
|
|
|
label="Server Patching" />
|
2025-11-13 12:38:57 +00:00
|
|
|
<x-forms.checkbox canGate="update" :canResource="$settings" instantSave="saveModel" id="traefikOutdatedEmailNotifications"
|
|
|
|
|
label="Traefik Proxy Outdated" />
|
2024-12-09 12:56:52 +00:00
|
|
|
</div>
|
2023-06-20 13:04:46 +00:00
|
|
|
</div>
|
2024-12-11 09:14:12 +00:00
|
|
|
</div>
|
2023-05-25 16:27:52 +00:00
|
|
|
</div>
|