Compare commits
4
Commits
4eb838042c
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0191f7e10c | ||
|
|
7e3418079c | ||
|
|
0ea86b6be0 | ||
|
|
3e7bb80f73 |
+1
-1
@@ -32,6 +32,6 @@ session.
|
||||
|
||||
You'll get an acknowledgement within a few days. A report that turns out to
|
||||
affect the mail server rather than this interface will be moved to
|
||||
[inbuxa-server](https://github.com/inbuxa/inbuxa-server), and one that affects
|
||||
[inbuxa-server](https://git.coffeylabs.org/inbuxa/inbuxa-server), and one that affects
|
||||
upstream Stalwart's web interface will be passed to Stalwart Labs with credit
|
||||
to you.
|
||||
|
||||
@@ -336,7 +336,7 @@ export function BootstrapWizard() {
|
||||
<WizardShell>
|
||||
<div className="space-y-6">
|
||||
<div>
|
||||
<h2 className="text-2xl font-semibold tracking-tight">{t('bootstrap.welcome', 'Welcome to INBUXA')}</h2>
|
||||
<h2 className="text-2xl font-semibold tracking-tight">{t('bootstrap.welcome', 'Welcome to inbuxa')}</h2>
|
||||
<p className="text-sm text-muted-foreground mt-1">
|
||||
{t('bootstrap.welcomeSubtitle', "Let's get your server set up.")}
|
||||
</p>
|
||||
@@ -471,7 +471,7 @@ function SuccessScreen({
|
||||
'bootstrap.credentialsCreated',
|
||||
'Your administrator account has been created. Write these down now: the password will not be shown again.',
|
||||
)
|
||||
: t('bootstrap.configuredSuccessfully', 'INBUXA has been configured successfully.')}
|
||||
: t('bootstrap.configuredSuccessfully', 'inbuxa has been configured successfully.')}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -503,7 +503,7 @@ function SuccessScreen({
|
||||
<span className="font-medium">{t('bootstrap.nextStepLabel', 'Next step:')}</span>{' '}
|
||||
{t(
|
||||
'bootstrap.nextStepBody',
|
||||
'restart INBUXA for the new configuration to take effect. Once restarted, sign in with the credentials above to continue administering your server.',
|
||||
'restart inbuxa for the new configuration to take effect. Once restarted, sign in with the credentials above to continue administering your server.',
|
||||
)}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -20,7 +20,7 @@ export function DefaultLogo() {
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="165 35 616 130"
|
||||
aria-label={t('logo.inbuxaAlt', 'INBUXA')}
|
||||
aria-label={t('logo.inbuxaAlt', 'inbuxa')}
|
||||
className="h-7 w-auto max-w-[320px]"
|
||||
>
|
||||
<image x="165.85" y="35.00" width="109.39" height="130.00" href={inbuxaMark} />
|
||||
|
||||
@@ -38,7 +38,7 @@ function buildOtpAuthUrl(totp: OTPAuth.TOTP): string {
|
||||
|
||||
function generateTotp(): { totp: OTPAuth.TOTP; url: string } {
|
||||
const totp = new OTPAuth.TOTP({
|
||||
issuer: 'INBUXA',
|
||||
issuer: 'inbuxa',
|
||||
label: 'account',
|
||||
algorithm: 'SHA1',
|
||||
digits: 6,
|
||||
|
||||
@@ -104,7 +104,7 @@ export function TopBar() {
|
||||
</Link>
|
||||
</TooltipTrigger>
|
||||
<TooltipContent side="bottom">
|
||||
{t('version.label', 'INBUXA Admin {{version}}', { version: __APP_VERSION__ })}
|
||||
{t('version.label', 'inbuxa Admin {{version}}', { version: __APP_VERSION__ })}
|
||||
</TooltipContent>
|
||||
</Tooltip>
|
||||
</TooltipProvider>
|
||||
|
||||
@@ -62,10 +62,10 @@ export function LegacyProtocolsBanner() {
|
||||
{t('legacyProtocols.bannerLead', 'Legacy mail protocols are')}{' '}
|
||||
<strong>{t('legacyProtocols.bannerOff', 'off')}</strong>{' '}
|
||||
{off === 'server'
|
||||
? t('legacyProtocols.bannerTail', 'on this server. Only INBUXA webmail and JMAP apps can sign in.')
|
||||
? t('legacyProtocols.bannerTail', 'on this server. Only inbuxa webmail and JMAP apps can sign in.')
|
||||
: t(
|
||||
'legacyProtocols.bannerTailTenant',
|
||||
'for your organization. Only INBUXA webmail and JMAP apps can sign in.',
|
||||
'for your organization. Only inbuxa webmail and JMAP apps can sign in.',
|
||||
)}
|
||||
</span>
|
||||
{off === 'server' && (
|
||||
|
||||
@@ -115,7 +115,7 @@ export function LegacyProtocolsPage() {
|
||||
<p className="text-muted-foreground">
|
||||
{t(
|
||||
'legacyProtocols.subtitle',
|
||||
'Turn off IMAP, POP3, ManageSieve and sending from mail apps, so that only INBUXA webmail and JMAP apps can reach this server.',
|
||||
'Turn off IMAP, POP3, ManageSieve and sending from mail apps, so that only inbuxa webmail and JMAP apps can reach this server.',
|
||||
)}
|
||||
</p>
|
||||
</header>
|
||||
@@ -206,7 +206,7 @@ function StatusCard({
|
||||
</p>
|
||||
<p className="text-sm text-muted-foreground">
|
||||
{off
|
||||
? t('legacyProtocols.statusOffBody', 'Only INBUXA webmail and JMAP apps can sign in.')
|
||||
? t('legacyProtocols.statusOffBody', 'Only inbuxa webmail and JMAP apps can sign in.')
|
||||
: t('legacyProtocols.statusOnBody', 'Mail apps can use IMAP, POP3 and ManageSieve.')}
|
||||
{policy.changedAt !== null && (
|
||||
<>
|
||||
@@ -276,7 +276,7 @@ function ProtocolTable({ rows, off }: { rows: ProtocolRow[]; off: boolean }) {
|
||||
<p className="border-t bg-muted/30 px-4 py-2 text-xs text-muted-foreground">
|
||||
{t(
|
||||
'legacyProtocols.lockNote',
|
||||
'Incoming mail (SMTP) and INBUXA webmail (JMAP) are locked open: closing them would stop mail arriving and lock everyone out, including you.',
|
||||
'Incoming mail (SMTP) and inbuxa webmail (JMAP) are locked open: closing them would stop mail arriving and lock everyone out, including you.',
|
||||
)}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@ export function TenantLegacyProtocols({ tenantId }: { tenantId: string }) {
|
||||
{off
|
||||
? t(
|
||||
'legacyProtocols.tenantOff',
|
||||
'Off for {{organization}}. Only INBUXA webmail and JMAP apps can sign in to its domains.',
|
||||
'Off for {{organization}}. Only inbuxa webmail and JMAP apps can sign in to its domains.',
|
||||
{ organization: name },
|
||||
)
|
||||
: t(
|
||||
|
||||
@@ -128,7 +128,7 @@ export function Statement({ scope }: { scope: StatementScope }) {
|
||||
return (
|
||||
<section className="space-y-3 rounded-xl border border-amber-500/40 bg-amber-500/5 p-5 text-sm leading-relaxed">
|
||||
<p className="text-base font-semibold">
|
||||
{t('legacyProtocols.statementTitle', 'Only INBUXA webmail and JMAP apps will work.')}
|
||||
{t('legacyProtocols.statementTitle', 'Only inbuxa webmail and JMAP apps will work.')}
|
||||
</p>
|
||||
<p>
|
||||
{scope.kind === 'server'
|
||||
@@ -152,7 +152,7 @@ export function Statement({ scope }: { scope: StatementScope }) {
|
||||
<li>
|
||||
{t(
|
||||
'legacyProtocols.statementFilters',
|
||||
'Filters managed from a mail app (ManageSieve) will stop working. Filters set in INBUXA webmail keep working.',
|
||||
'Filters managed from a mail app (ManageSieve) will stop working. Filters set in inbuxa webmail keep working.',
|
||||
)}
|
||||
</li>
|
||||
<li>
|
||||
@@ -164,7 +164,7 @@ export function Statement({ scope }: { scope: StatementScope }) {
|
||||
<li>
|
||||
{t(
|
||||
'legacyProtocols.statementWebmail',
|
||||
'People keep full access through INBUXA webmail, which can be installed as an app on phones and computers.',
|
||||
'People keep full access through inbuxa webmail, which can be installed as an app on phones and computers.',
|
||||
)}
|
||||
</li>
|
||||
</ul>
|
||||
@@ -183,7 +183,7 @@ export function Statement({ scope }: { scope: StatementScope }) {
|
||||
<p>
|
||||
{t(
|
||||
'legacyProtocols.statementSubmission',
|
||||
'Sending from mail apps (SMTP submission) will stop working, but its ports stay open: mail apps will be told they cannot sign in. Incoming mail (SMTP) and INBUXA webmail (JMAP) are not affected and cannot be turned off here.',
|
||||
'Sending from mail apps (SMTP submission) will stop working, but its ports stay open: mail apps will be told they cannot sign in. Incoming mail (SMTP) and inbuxa webmail (JMAP) are not affected and cannot be turned off here.',
|
||||
)}
|
||||
</p>
|
||||
{scope.kind === 'server' && (
|
||||
@@ -191,7 +191,7 @@ export function Statement({ scope }: { scope: StatementScope }) {
|
||||
<strong>{t('legacyProtocols.firewallLead', 'This does not change your firewall or port forwarding.')}</strong>{' '}
|
||||
{t(
|
||||
'legacyProtocols.firewallBody',
|
||||
'INBUXA stops answering on these ports; anything that still routes them to this server — firewall rules, NAT port-forwards, a load balancer or proxy — is yours to reconcile.',
|
||||
'inbuxa stops answering on these ports; anything that still routes them to this server — firewall rules, NAT port-forwards, a load balancer or proxy — is yours to reconcile.',
|
||||
)}
|
||||
</p>
|
||||
)}
|
||||
|
||||
@@ -244,7 +244,7 @@ export function protocolRows(policy: ProtocolPolicy, listeners: PolicyListener[]
|
||||
},
|
||||
// Incoming mail and JMAP are never the switch's to close (LP-3, "Not affected, ever").
|
||||
{ key: 'smtp', label: 'SMTP (incoming mail)', state: 'locked', ports: [] },
|
||||
{ key: 'jmap', label: 'JMAP (INBUXA webmail)', state: 'locked', ports: [] },
|
||||
{ key: 'jmap', label: 'JMAP (inbuxa webmail)', state: 'locked', ports: [] },
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -104,7 +104,7 @@ export const PAGE_HELP: Record<string, PageHelp> = {
|
||||
about: 'Named sets of permissions. Give a role to a person to let them do more, or less.',
|
||||
},
|
||||
'x:OAuthClient': {
|
||||
about: 'Apps allowed to sign people in through this server, like INBUXA webmail and INBUXA Admin.',
|
||||
about: 'Apps allowed to sign people in through this server, like inbuxa webmail and inbuxa Admin.',
|
||||
},
|
||||
'x:DkimSignature': {
|
||||
about: 'The keys that sign outgoing mail so receivers can check it really came from you.',
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
import { useEffect } from 'react';
|
||||
|
||||
const APP_NAME = 'INBUXA Admin';
|
||||
const APP_NAME = 'inbuxa Admin';
|
||||
|
||||
export function useDocumentTitle(title?: string | null) {
|
||||
useEffect(() => {
|
||||
|
||||
+5
-5
@@ -15,7 +15,7 @@
|
||||
"bootstrap": {
|
||||
"clipboardBlocked": "Your browser blocked clipboard access.",
|
||||
"complete": "Setup complete",
|
||||
"configuredSuccessfully": "INBUXA has been configured successfully.",
|
||||
"configuredSuccessfully": "inbuxa has been configured successfully.",
|
||||
"copyFailed": "Copy failed",
|
||||
"credentialsCreated": "Your administrator account has been created. Write these down now: the password will not be shown again.",
|
||||
"emptyForm": "Setup form is empty. The server did not return any bootstrap fields.",
|
||||
@@ -23,11 +23,11 @@
|
||||
"failedToLoad": "Failed to load bootstrap state.",
|
||||
"finishSetup": "Finish setup",
|
||||
"loadingSetup": "Loading setup...",
|
||||
"nextStepBody": "restart INBUXA for the new configuration to take effect. Once restarted, sign in with the credentials above to continue administering your server.",
|
||||
"nextStepBody": "restart inbuxa for the new configuration to take effect. Once restarted, sign in with the credentials above to continue administering your server.",
|
||||
"nextStepLabel": "Next step:",
|
||||
"noConfirm": "The server did not confirm the update.",
|
||||
"stepOf": "Step {{current}} of {{total}}",
|
||||
"welcome": "Welcome to INBUXA",
|
||||
"welcome": "Welcome to inbuxa",
|
||||
"welcomeSubtitle": "Let's get your server set up."
|
||||
},
|
||||
"common": {
|
||||
@@ -295,11 +295,11 @@
|
||||
},
|
||||
"logo": {
|
||||
"alt": "Logo",
|
||||
"inbuxaAlt": "INBUXA"
|
||||
"inbuxaAlt": "inbuxa"
|
||||
},
|
||||
"logout": "Logout",
|
||||
"version": {
|
||||
"label": "INBUXA Admin {{version}}"
|
||||
"label": "inbuxa Admin {{version}}"
|
||||
},
|
||||
"nav": {
|
||||
"layoutLegacy": "Legacy",
|
||||
|
||||
@@ -11,4 +11,4 @@
|
||||
* this fork. The version shown beside the link names the build, which is what
|
||||
* makes the offer something a person can act on.
|
||||
*/
|
||||
export const SOURCE_URL = 'https://github.com/inbuxa/inbuxa-admin';
|
||||
export const SOURCE_URL = 'https://git.coffeylabs.org/inbuxa/inbuxa-admin';
|
||||
|
||||
Reference in New Issue
Block a user