fix: do not show nope as ip address for dbs
This commit is contained in:
parent
d46ee049f4
commit
f07868d24e
@ -21,9 +21,11 @@
|
|||||||
|
|
||||||
const { id } = $page.params;
|
const { id } = $page.params;
|
||||||
|
|
||||||
let loading = false;
|
let loading = {
|
||||||
let publicLoading = false;
|
main: false,
|
||||||
|
public: false
|
||||||
|
};
|
||||||
|
let publicUrl = '';
|
||||||
let appendOnly = database.settings.appendOnly;
|
let appendOnly = database.settings.appendOnly;
|
||||||
|
|
||||||
let databaseDefault: any;
|
let databaseDefault: any;
|
||||||
@ -47,23 +49,46 @@
|
|||||||
databaseDbUser = '';
|
databaseDbUser = '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function generateUrl(): string {
|
function generateUrl() {
|
||||||
return `${database.type}://${
|
const ipAddress = () => {
|
||||||
databaseDbUser ? databaseDbUser + ':' : ''
|
if ($status.database.isPublic) {
|
||||||
}${databaseDbUserPassword}@${
|
if (database.destinationDocker.remoteEngine) {
|
||||||
$status.database.isPublic
|
return database.destinationDocker.remoteIpAddress;
|
||||||
? database.destinationDocker.remoteEngine
|
}
|
||||||
? database.destinationDocker.remoteIpAddress
|
if ($appSession.ipv6) {
|
||||||
: $appSession.ipv4
|
return $appSession.ipv6;
|
||||||
: database.id
|
}
|
||||||
}:${$status.database.isPublic ? database.publicPort : privatePort}/${databaseDefault}`;
|
if ($appSession.ipv4) {
|
||||||
|
return $appSession.ipv4;
|
||||||
|
}
|
||||||
|
return '<Cannot determine public IP address>';
|
||||||
|
} else {
|
||||||
|
return database.id;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const user = () => {
|
||||||
|
if (databaseDbUser) {
|
||||||
|
return databaseDbUser + ':';
|
||||||
|
}
|
||||||
|
return '';
|
||||||
|
};
|
||||||
|
const port = () => {
|
||||||
|
if ($status.database.isPublic) {
|
||||||
|
return database.publicPort;
|
||||||
|
} else {
|
||||||
|
return privatePort;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
publicUrl = `${
|
||||||
|
database.type
|
||||||
|
}://${user()}${databaseDbUserPassword}@${ipAddress()}:${port()}/${databaseDefault}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function changeSettings(name: any) {
|
async function changeSettings(name: any) {
|
||||||
if (name !== 'appendOnly') {
|
if (name !== 'appendOnly') {
|
||||||
if (publicLoading || !$status.database.isRunning) return;
|
if (loading.public || !$status.database.isRunning) return;
|
||||||
}
|
}
|
||||||
publicLoading = true;
|
loading.public = true;
|
||||||
let data = {
|
let data = {
|
||||||
isPublic: $status.database.isPublic,
|
isPublic: $status.database.isPublic,
|
||||||
appendOnly
|
appendOnly
|
||||||
@ -87,12 +112,12 @@
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
return errorNotification(error);
|
return errorNotification(error);
|
||||||
} finally {
|
} finally {
|
||||||
publicLoading = false;
|
loading.public = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
async function handleSubmit() {
|
async function handleSubmit() {
|
||||||
try {
|
try {
|
||||||
loading = true;
|
loading.main = true;
|
||||||
await post(`/databases/${id}`, { ...database, isRunning: $status.database.isRunning });
|
await post(`/databases/${id}`, { ...database, isRunning: $status.database.isRunning });
|
||||||
generateDbDetails();
|
generateDbDetails();
|
||||||
addToast({
|
addToast({
|
||||||
@ -102,7 +127,7 @@
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
return errorNotification(error);
|
return errorNotification(error);
|
||||||
} finally {
|
} finally {
|
||||||
loading = false;
|
loading.main = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@ -115,9 +140,9 @@
|
|||||||
<button
|
<button
|
||||||
type="submit"
|
type="submit"
|
||||||
class="btn btn-sm"
|
class="btn btn-sm"
|
||||||
class:loading
|
class:loading={loading.main}
|
||||||
class:bg-databases={!loading}
|
class:bg-databases={!loading.main}
|
||||||
disabled={loading}>{$t('forms.save')}</button
|
disabled={loading.main}>{$t('forms.save')}</button
|
||||||
>
|
>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
@ -175,7 +200,7 @@
|
|||||||
readonly
|
readonly
|
||||||
disabled
|
disabled
|
||||||
name="publicPort"
|
name="publicPort"
|
||||||
value={publicLoading
|
value={loading.public
|
||||||
? 'Loading...'
|
? 'Loading...'
|
||||||
: $status.database.isPublic
|
: $status.database.isPublic
|
||||||
? database.publicPort
|
? database.publicPort
|
||||||
@ -198,8 +223,8 @@
|
|||||||
<EdgeDB {database} />
|
<EdgeDB {database} />
|
||||||
{/if}
|
{/if}
|
||||||
<div class="flex flex-col space-y-2 mt-5">
|
<div class="flex flex-col space-y-2 mt-5">
|
||||||
<div>
|
<div class="grid gap-2 grid-cols-2 auto-rows-max lg:px-10 px-2">
|
||||||
<label class="px-2" for="url"
|
<label for="url"
|
||||||
>{$t('database.connection_string')}
|
>{$t('database.connection_string')}
|
||||||
{#if !$status.database.isPublic && database.destinationDocker.remoteEngine}
|
{#if !$status.database.isPublic && database.destinationDocker.remoteEngine}
|
||||||
<Explainer
|
<Explainer
|
||||||
@ -207,18 +232,21 @@
|
|||||||
/>
|
/>
|
||||||
{/if}</label
|
{/if}</label
|
||||||
>
|
>
|
||||||
|
<button class="btn btn-sm" on:click|preventDefault={generateUrl}
|
||||||
|
>Show Connection String</button
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
<div class="lg:px-10 px-2">
|
<div class="lg:px-10 px-2">
|
||||||
<CopyPasswordField
|
{#if publicUrl}
|
||||||
textarea={true}
|
<CopyPasswordField
|
||||||
placeholder={$t('forms.generated_automatically_after_start')}
|
placeholder="Click on the button to generate URL"
|
||||||
isPasswordField={false}
|
id="url"
|
||||||
id="url"
|
name="url"
|
||||||
name="url"
|
readonly
|
||||||
readonly
|
disabled
|
||||||
disabled
|
value={loading.public ? 'Loading...' : publicUrl}
|
||||||
value={publicLoading || loading ? 'Loading...' : generateUrl()}
|
/>
|
||||||
/>
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
@ -228,7 +256,7 @@
|
|||||||
<div class="grid gap-2 grid-cols-2 auto-rows-max lg:px-10 px-2">
|
<div class="grid gap-2 grid-cols-2 auto-rows-max lg:px-10 px-2">
|
||||||
<Setting
|
<Setting
|
||||||
id="isPublic"
|
id="isPublic"
|
||||||
loading={publicLoading}
|
loading={loading.public}
|
||||||
bind:setting={$status.database.isPublic}
|
bind:setting={$status.database.isPublic}
|
||||||
on:click={() => changeSettings('isPublic')}
|
on:click={() => changeSettings('isPublic')}
|
||||||
title={$t('database.set_public')}
|
title={$t('database.set_public')}
|
||||||
@ -238,7 +266,7 @@
|
|||||||
{#if database.type === 'redis'}
|
{#if database.type === 'redis'}
|
||||||
<Setting
|
<Setting
|
||||||
id="appendOnly"
|
id="appendOnly"
|
||||||
loading={publicLoading}
|
loading={loading.public}
|
||||||
bind:setting={appendOnly}
|
bind:setting={appendOnly}
|
||||||
on:click={() => changeSettings('appendOnly')}
|
on:click={() => changeSettings('appendOnly')}
|
||||||
title={$t('database.change_append_only_mode')}
|
title={$t('database.change_append_only_mode')}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user