Use generic copy on messaging Integrations screens.
Deploy Ladill Care / deploy (push) Successful in 1m7s
Deploy Ladill Care / deploy (push) Successful in 1m7s
Drop wallet/brand marketing language so credential setup reads as neutral configuration. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -60,7 +60,7 @@ class IntegrationsController extends Controller
|
||||
return back()->withInput()->with('error', $result['error'] ?? 'Could not save SMS credentials.');
|
||||
}
|
||||
|
||||
return back()->with('success', 'Ladill SMS connected. Outbound patient SMS will use your key and sender ID.');
|
||||
return back()->with('success', 'SMS credentials saved.');
|
||||
}
|
||||
|
||||
public function disconnectSms(Request $request, MessagingCredentialsService $credentials): RedirectResponse
|
||||
@@ -78,7 +78,7 @@ class IntegrationsController extends Controller
|
||||
$organization->id,
|
||||
);
|
||||
|
||||
return back()->with('success', 'Ladill SMS disconnected.');
|
||||
return back()->with('success', 'SMS disconnected.');
|
||||
}
|
||||
|
||||
public function saveBird(Request $request, MessagingCredentialsService $credentials): RedirectResponse
|
||||
@@ -113,7 +113,7 @@ class IntegrationsController extends Controller
|
||||
return back()->withInput()->with('error', $result['error'] ?? 'Could not save Bird credentials.');
|
||||
}
|
||||
|
||||
return back()->with('success', 'Ladill Bird connected. Outbound patient email will use your key and from address.');
|
||||
return back()->with('success', 'Email credentials saved.');
|
||||
}
|
||||
|
||||
public function disconnectBird(Request $request, MessagingCredentialsService $credentials): RedirectResponse
|
||||
@@ -131,7 +131,7 @@ class IntegrationsController extends Controller
|
||||
$organization->id,
|
||||
);
|
||||
|
||||
return back()->with('success', 'Ladill Bird disconnected.');
|
||||
return back()->with('success', 'Email disconnected.');
|
||||
}
|
||||
|
||||
public function previewSenders(Request $request, CustomerSmsClient $sms): JsonResponse
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<x-app-layout title="Integrations">
|
||||
<x-settings.page title="Messaging integrations">
|
||||
<p class="text-sm text-slate-600">
|
||||
Connect your own <a href="https://sms.ladill.com" target="_blank" rel="noopener" class="text-teal-700 underline">Ladill SMS</a>
|
||||
and <a href="https://bird.ladill.com" target="_blank" rel="noopener" class="text-teal-700 underline">Ladill Bird</a>
|
||||
API keys so patient messages bill your wallets and send under your brand.
|
||||
Configure <a href="https://sms.ladill.com" target="_blank" rel="noopener" class="text-teal-700 underline">SMS</a>
|
||||
and <a href="https://bird.ladill.com" target="_blank" rel="noopener" class="text-teal-700 underline">email</a>
|
||||
credentials for outbound messaging.
|
||||
</p>
|
||||
|
||||
@if (! $canManage)
|
||||
@@ -11,7 +11,7 @@
|
||||
@endif
|
||||
|
||||
<div class="mt-6 space-y-6">
|
||||
<x-settings.card title="Ladill SMS" description="Paste an SMS API key (lsk_sms_live_…) and an approved sender ID from sms.ladill.com.">
|
||||
<x-settings.card title="SMS" description="API key and approved sender ID.">
|
||||
@if ($credential->hasValidSms())
|
||||
<div class="mb-4 rounded-lg border border-emerald-200 bg-emerald-50 px-3 py-2 text-sm text-emerald-800">
|
||||
Connected · key {{ $credential->sms_api_key_prefix }}… · sender <strong>{{ $credential->sms_sender_id }}</strong>
|
||||
@@ -50,13 +50,13 @@
|
||||
<div class="mt-3">
|
||||
<x-confirm-dialog
|
||||
name="disconnect-sms"
|
||||
title="Disconnect Ladill SMS?"
|
||||
message="Patient SMS will stop working until you connect a new key."
|
||||
title="Disconnect SMS?"
|
||||
message="Outbound SMS will stop until credentials are connected again."
|
||||
:action="route('care.integrations.sms.disconnect')"
|
||||
confirm-label="Disconnect SMS"
|
||||
confirm-label="Disconnect"
|
||||
>
|
||||
<x-slot:trigger>
|
||||
<button type="button" class="text-sm text-rose-700 hover:underline">Disconnect SMS</button>
|
||||
<button type="button" class="text-sm text-rose-700 hover:underline">Disconnect</button>
|
||||
</x-slot:trigger>
|
||||
</x-confirm-dialog>
|
||||
</div>
|
||||
@@ -64,7 +64,7 @@
|
||||
@endif
|
||||
</x-settings.card>
|
||||
|
||||
<x-settings.card title="Ladill Bird" description="Paste a Bird API key (lsk_live_…) plus a from address on a verified domain from bird.ladill.com.">
|
||||
<x-settings.card title="Email" description="API key and from address on a verified domain.">
|
||||
@if ($credential->hasValidBird())
|
||||
<div class="mb-4 rounded-lg border border-emerald-200 bg-emerald-50 px-3 py-2 text-sm text-emerald-800">
|
||||
Connected · key {{ $credential->bird_api_key_prefix }}… · from
|
||||
@@ -110,13 +110,13 @@
|
||||
<div class="mt-3">
|
||||
<x-confirm-dialog
|
||||
name="disconnect-bird"
|
||||
title="Disconnect Ladill Bird?"
|
||||
message="Patient email will stop working until you connect a new key."
|
||||
title="Disconnect email?"
|
||||
message="Outbound email will stop until credentials are connected again."
|
||||
:action="route('care.integrations.bird.disconnect')"
|
||||
confirm-label="Disconnect Bird"
|
||||
confirm-label="Disconnect"
|
||||
>
|
||||
<x-slot:trigger>
|
||||
<button type="button" class="text-sm text-rose-700 hover:underline">Disconnect Bird</button>
|
||||
<button type="button" class="text-sm text-rose-700 hover:underline">Disconnect</button>
|
||||
</x-slot:trigger>
|
||||
</x-confirm-dialog>
|
||||
</div>
|
||||
|
||||
@@ -145,7 +145,7 @@
|
||||
@if ($canManage)
|
||||
<section class="rounded-2xl border border-slate-200 bg-white p-6" x-data="{ tab: 'sms' }">
|
||||
<h2 class="text-sm font-semibold uppercase tracking-wide text-slate-500">Message patient</h2>
|
||||
<p class="mt-1 text-xs text-slate-500">Uses your connected Ladill SMS / Bird credentials. <a href="{{ route('care.integrations') }}" class="text-teal-700 underline">Manage integrations</a></p>
|
||||
<p class="mt-1 text-xs text-slate-500">Requires SMS and email credentials. <a href="{{ route('care.integrations') }}" class="text-teal-700 underline">Manage integrations</a></p>
|
||||
@if (! ($messagingSmsReady ?? false) || ! ($messagingEmailReady ?? false))
|
||||
<p class="mt-3 rounded-lg border border-amber-200 bg-amber-50 px-3 py-2 text-xs text-amber-800">
|
||||
@if (! ($messagingSmsReady ?? false) && ! ($messagingEmailReady ?? false))
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
</x-settings.card>
|
||||
|
||||
@if ($canManage)
|
||||
<x-settings.card title="Messaging" description="Connect your Ladill SMS and Bird API keys for patient messaging.">
|
||||
<x-settings.card title="Messaging" description="Configure SMS and email credentials for outbound messages.">
|
||||
<a href="{{ route('care.integrations') }}" class="text-sm font-medium text-teal-700 underline">Open messaging integrations →</a>
|
||||
</x-settings.card>
|
||||
|
||||
|
||||
@@ -61,8 +61,9 @@ class CareMessagingIntegrationsTest extends TestCase
|
||||
$this->actingAs($this->user)
|
||||
->get(route('care.integrations'))
|
||||
->assertOk()
|
||||
->assertSee('Ladill SMS')
|
||||
->assertSee('Ladill Bird');
|
||||
->assertSee('SMS')
|
||||
->assertSee('Email')
|
||||
->assertSee('credentials for outbound messaging');
|
||||
}
|
||||
|
||||
public function test_saving_sms_credentials_encrypts_key(): void
|
||||
|
||||
Reference in New Issue
Block a user