fix: migrate db schema for smtp + discord

This commit is contained in:
Andras Bacsai
2023-07-27 21:26:15 +02:00
parent d0a85713d2
commit 9c393ff6bc
21 changed files with 382 additions and 238 deletions

View File

@@ -33,9 +33,15 @@
wire:dirty.class="text-black bg-warning" wire:loading.attr="disabled" type="{{ $type }}"
@disabled($readonly) @disabled($disabled) id="{{ $id }}"
name="{{ $name }}">
</div>
@endif
@if (!$label && $helper)
<x-helper :helper="$helper" />
@endif
@error($id)
<label class="label">
<span class="text-red-500 label-text-alt">{{ $message }}</span>
</label>
@enderror
</div>

View File

@@ -5,7 +5,7 @@
<x-forms.button type="submit">
Save
</x-forms.button>
@if ($model->discord->enabled)
@if ($model->discord_enabled)
<x-forms.button class="text-white normal-case btn btn-xs no-animation btn-primary"
wire:click="sendTestNotification">
Send Test Notifications
@@ -13,23 +13,23 @@
@endif
</div>
<div class="w-48">
<x-forms.checkbox instantSave id="model.discord.enabled" label="Notification Enabled" />
<x-forms.checkbox instantSave id="model.discord_enabled" label="Notification Enabled" />
</div>
<x-forms.input type="string"
helper="Generate a webhook in Discord.<br>Example: https://discord.com/api/webhooks/...." required
id="model.discord.webhook_url" label="Webhook" />
id="model.discord_webhook_url" label="Webhook" />
</form>
@if (data_get($model, 'discord.enabled'))
@if (data_get($model, 'discord_enabled'))
<h4 class="mt-4">Subscribe to events</h4>
<div class="w-64 ">
@if (isDev())
<x-forms.checkbox instantSave="saveModel" id="model.discord_notifications.test"
<x-forms.checkbox instantSave="saveModel" id="model.discord_notifications_test"
label="Test Notifications" />
@endif
<h5 class="mt-4">Applications</h5>
<x-forms.checkbox instantSave="saveModel" id="model.discord_notifications.deployments"
<x-forms.checkbox instantSave="saveModel" id="model.discord_notifications_deployments"
label="New Deployment" />
<x-forms.checkbox instantSave="saveModel" id="model.discord_notifications.status_changes"
<x-forms.checkbox instantSave="saveModel" id="model.discord_notifications_status_changes"
label="Status Changes" />
</div>
@endif

View File

@@ -1,4 +1,15 @@
<div>
<dialog id="sendTestEmail" class="modal">
<form method="dialog" class="flex flex-col gap-2 rounded modal-box" wire:submit.prevent='submit'>
<x-forms.input placeholder="test@example.com" id="emails" label="Recepients" required />
<x-forms.button onclick="sendTestEmail.close()" wire:click="sendTestNotification">
Send Test Emails
</x-forms.button>
</form>
<form method="dialog" class="modal-backdrop">
<button>close</button>
</form>
</dialog>
<form wire:submit.prevent='submit' class="flex flex-col">
<div class="flex items-center gap-2">
<h2>Email</h2>
@@ -10,53 +21,50 @@
Copy from Instance Settings
</x-forms.button>
@endif
@if ($model->smtp->enabled)
<x-forms.button class="text-white normal-case btn btn-xs no-animation btn-primary"
wire:click="sendTestNotification">
Send Test Notifications
@if ($model->smtp_enabled)
<x-forms.button onclick="sendTestEmail.showModal()"
class="text-white normal-case btn btn-xs no-animation btn-primary">
Send Test Email
</x-forms.button>
@endif
</div>
<div class="w-48">
<x-forms.checkbox instantSave id="model.smtp.enabled" label="Notification Enabled" />
<x-forms.checkbox instantSave id="model.smtp_enabled" label="Notification Enabled" />
</div>
<div class="flex flex-col gap-2 xl:flex-row">
<x-forms.input id="model.smtp.recipients" placeholder="If empty, all users will be notified in the team."
<x-forms.input id="model.smtp_recipients" placeholder="If empty, all users will be notified in the team."
helper="Email list to send the all notifications to, separated by comma." label="Recipients" />
<x-forms.input id="model.smtp.test_recipients" label="Test Notification Recipients"
placeholder="If empty, all users will be notified in the team."
helper="Email list to send the test notification to, separated by comma." />
</div>
<div class="flex flex-col gap-2 xl:flex-row">
<x-forms.input required id="model.smtp.host" helper="SMTP Hostname" placeholder="smtp.mailgun.org"
<x-forms.input required id="model.smtp_host" helper="SMTP Hostname" placeholder="smtp.mailgun.org"
label="Host" />
<x-forms.input required id="model.smtp.port" helper="SMTP Port" placeholder="587" label="Port" />
<x-forms.input helper="If SMTP through SSL, set it to 'tls'." placeholder="tls" id="model.smtp.encryption"
<x-forms.input required id="model.smtp_port" helper="SMTP Port" placeholder="587" label="Port" />
<x-forms.input helper="If SMTP through SSL, set it to 'tls'." placeholder="tls" id="model.smtp_encryption"
label="Encryption" />
</div>
<div class="flex flex-col gap-2 xl:flex-row">
<x-forms.input id="model.smtp.username" helper="SMTP Username" label="SMTP Username" />
<x-forms.input type="password" helper="SMTP Password" id="model.smtp.password" label="SMTP Password" />
<x-forms.input id="model.smtp.timeout" helper="Timeout value for sending emails." label="Timeout" />
<x-forms.input id="model.smtp_username" helper="SMTP Username" label="SMTP Username" />
<x-forms.input type="password" helper="SMTP Password" id="model.smtp_password" label="SMTP Password" />
<x-forms.input id="model.smtp_timeout" helper="Timeout value for sending emails." label="Timeout" />
</div>
<div class="flex flex-col gap-2 xl:flex-row">
<x-forms.input required id="model.smtp.from_name" helper="Name used in emails." label="From Name" />
<x-forms.input required id="model.smtp.from_address" helper="Email address used in emails."
<x-forms.input required id="model.smtp_from_name" helper="Name used in emails." label="From Name" />
<x-forms.input required id="model.smtp_from_address" helper="Email address used in emails."
label="From Address" />
</div>
</form>
@if (data_get($model, 'smtp.enabled'))
@if (data_get($model, 'smtp_enabled'))
<h4 class="mt-4">Subscribe to events</h4>
<div class="w-64">
@if (isDev())
<x-forms.checkbox instantSave="saveModel" id="model.smtp_notifications.test"
<x-forms.checkbox instantSave="saveModel" id="model.smtp_notifications_test"
label="Test Notifications" />
@endif
<h5 class="mt-4">Applications</h5>
<x-forms.checkbox instantSave="saveModel" id="model.smtp_notifications.deployments"
<x-forms.checkbox instantSave="saveModel" id="model.smtp_notifications_deployments"
label="New Deployment" />
<x-forms.checkbox instantSave="saveModel" id="model.smtp_notifications.status_changes"
<x-forms.checkbox instantSave="saveModel" id="model.smtp_notifications_status_changes"
label="Status Changes" />
</div>
@endif

View File

@@ -5,7 +5,7 @@
<x-forms.button type="submit">
Save
</x-forms.button>
@if ($settings->smtp->enabled)
@if ($settings->smtp_enabled)
<x-forms.button isHighlighted wire:click='testNotification'>
Send Test Email
</x-forms.button>
@@ -13,28 +13,28 @@
</div>
<div class="pt-2 pb-4 ">SMTP settings for password resets, invitations, etc.</div>
<div class="w-32">
<x-forms.checkbox instantSave id="settings.smtp.enabled" label="Enabled" />
<x-forms.checkbox instantSave id="settings.smtp_enabled" label="Enabled" />
</div>
<div class="flex items-end gap-2">
<x-forms.input id="settings.smtp.test_recipients" label="Test Recipients"
<x-forms.input id="settings.smtp_test_recipients" label="Test Recipients"
helper="Email list to send a test email to, separated by comma." />
</div>
<div class="flex flex-col w-full gap-2 xl:flex-row">
<x-forms.input required id="settings.smtp.host" helper="SMTP Hostname" placeholder="smtp.mailgun.org"
<x-forms.input required id="settings.smtp_host" helper="SMTP Hostname" placeholder="smtp.mailgun.org"
label="Host" />
<x-forms.input required id="settings.smtp.port" helper="SMTP Port" placeholder="587" label="Port" />
<x-forms.input id="settings.smtp.encryption" helper="If SMTP through SSL, set it to 'tls'."
<x-forms.input required id="settings.smtp_port" helper="SMTP Port" placeholder="587" label="Port" />
<x-forms.input id="settings.smtp_encryption" helper="If SMTP through SSL, set it to 'tls'."
placeholder="tls" label="Encryption" />
</div>
<div class="flex flex-col w-full gap-2 xl:flex-row">
<x-forms.input id="settings.smtp.username" helper="SMTP Username" label="SMTP Username" />
<x-forms.input id="settings.smtp.password" type="password" helper="SMTP Password" label="SMTP Password" />
<x-forms.input id="settings.smtp.timeout" helper="Timeout value for sending emails." label="Timeout" />
<x-forms.input id="settings.smtp_username" helper="SMTP Username" label="SMTP Username" />
<x-forms.input id="settings.smtp_password" type="password" helper="SMTP Password" label="SMTP Password" />
<x-forms.input id="settings.smtp_timeout" helper="Timeout value for sending emails." label="Timeout" />
</div>
<div class="flex flex-col w-full gap-2 xl:flex-row">
<x-forms.input required id="settings.smtp.from_name" helper="Name used in emails." label="From Name" />
<x-forms.input required id="settings.smtp.from_address" helper="Email address used in emails."
<x-forms.input required id="settings.smtp_from_name" helper="Name used in emails." label="From Name" />
<x-forms.input required id="settings.smtp_from_address" helper="Email address used in emails."
label="From Address" />
</div>
</form>