fix(routes): ui from databases page

This commit is contained in:
Kaname 2022-09-07 00:16:57 +00:00
parent 83e0cafef9
commit b4892e0caf
7 changed files with 292 additions and 296 deletions

View File

@ -294,7 +294,7 @@
</script> </script>
<div class="flex items-center space-x-2 p-5 px-6 font-bold lg:hidden"> <div class="flex items-center space-x-2 p-5 px-6 font-bold lg:hidden">
<div class="-mb-5 flex-col"> <div class="flex-col">
<div class="md:max-w-64 truncate text-base tracking-tight md:text-2xl lg:block"> <div class="md:max-w-64 truncate text-base tracking-tight md:text-2xl lg:block">
Configuration Configuration
</div> </div>

View File

@ -105,10 +105,10 @@
} }
</script> </script>
<div class="mx-auto max-w-4xl px-6"> <div class="mx-auto max-w-4xl p-4">
<form on:submit|preventDefault={handleSubmit} class="py-4"> <form on:submit|preventDefault={handleSubmit} class="py-4">
<div class="flex space-x-1 pb-5"> <div class="flex flex-col lg:flex-row justify-between lg:space-x-1 space-y-3 pb-5 items-center">
<div class="title">{$t('general')}</div> <h1 class="title">{$t('general')}</h1>
{#if $appSession.isAdmin} {#if $appSession.isAdmin}
<button <button
type="submit" type="submit"
@ -119,19 +119,16 @@
> >
{/if} {/if}
</div> </div>
<div class="grid gap-4 grid-cols-2 auto-rows-max">
<div class="grid grid-flow-row gap-2 px-10">
<div class="grid grid-cols-2 items-center">
<label for="name" class="text-base font-bold text-stone-100">{$t('forms.name')}</label> <label for="name" class="text-base font-bold text-stone-100">{$t('forms.name')}</label>
<input <input
class="w-full"
readonly={!$appSession.isAdmin} readonly={!$appSession.isAdmin}
name="name" name="name"
id="name" id="name"
bind:value={database.name} bind:value={database.name}
required required
/> />
</div>
<div class="grid grid-cols-2 items-center">
<label for="destination" class="text-base font-bold text-stone-100" <label for="destination" class="text-base font-bold text-stone-100"
>{$t('application.destination')}</label >{$t('application.destination')}</label
> >
@ -142,13 +139,10 @@
id="destination" id="destination"
disabled disabled
readonly readonly
class="bg-transparent " class="bg-transparent w-full"
/> />
</div> </div>
{/if} {/if}
</div>
<div class="grid grid-cols-2 items-center">
<label for="version" class="text-base font-bold text-stone-100">Version / Tag</label> <label for="version" class="text-base font-bold text-stone-100">Version / Tag</label>
<a <a
href={$appSession.isAdmin && !$status.database.isRunning href={$appSession.isAdmin && !$status.database.isRunning
@ -157,17 +151,13 @@
class="no-underline" class="no-underline"
> >
<input <input
class="w-full"
value={database.version} value={database.version}
readonly readonly
disabled={$status.database.isRunning || $status.database.initialLoading} disabled={$status.database.isRunning || $status.database.initialLoading}
class:cursor-pointer={!$status.database.isRunning} class:cursor-pointer={!$status.database.isRunning}
/></a /></a
> >
</div>
</div>
<div class="grid grid-flow-row gap-2 px-10 pt-2">
<div class="grid grid-cols-2 items-center">
<label for="host" class="text-base font-bold text-stone-100">{$t('forms.host')}</label> <label for="host" class="text-base font-bold text-stone-100">{$t('forms.host')}</label>
<CopyPasswordField <CopyPasswordField
placeholder={$t('forms.generated_automatically_after_start')} placeholder={$t('forms.generated_automatically_after_start')}
@ -178,10 +168,7 @@
name="host" name="host"
value={database.id} value={database.id}
/> />
</div> <label for="publicPort" class="text-base font-bold text-stone-100">{$t('forms.port')}</label>
<div class="grid grid-cols-2 items-center">
<label for="publicPort" class="text-base font-bold text-stone-100">{$t('forms.port')}</label
>
<CopyPasswordField <CopyPasswordField
placeholder={$t('database.generated_automatically_after_set_to_public')} placeholder={$t('database.generated_automatically_after_set_to_public')}
id="publicPort" id="publicPort"
@ -191,8 +178,6 @@
value={publicLoading ? 'Loading...' : isPublic ? database.publicPort : privatePort} value={publicLoading ? 'Loading...' : isPublic ? database.publicPort : privatePort}
/> />
</div> </div>
</div>
<div class="grid grid-flow-row gap-2">
{#if database.type === 'mysql'} {#if database.type === 'mysql'}
<MySql bind:database /> <MySql bind:database />
{:else if database.type === 'postgresql'} {:else if database.type === 'postgresql'}
@ -206,7 +191,7 @@
{:else if database.type === 'couchdb'} {:else if database.type === 'couchdb'}
<CouchDb {database} /> <CouchDb {database} />
{/if} {/if}
<div class="grid grid-cols-2 items-center px-10 pb-8"> <div class="flex flex-col space-y-3 mt-5">
<div> <div>
<label for="url" class="text-base font-bold text-stone-100" <label for="url" class="text-base font-bold text-stone-100"
>{$t('database.connection_string')} >{$t('database.connection_string')}
@ -228,13 +213,11 @@
value={publicLoading || loading ? 'Loading...' : generateUrl()} value={publicLoading || loading ? 'Loading...' : generateUrl()}
/> />
</div> </div>
</div>
</form> </form>
<div class="flex space-x-1 pb-5 font-bold"> <div class="flex space-x-1 pb-5 font-bold">
<div class="title">{$t('application.features')}</div> <h1 class="title">{$t('application.features')}</h1>
</div> </div>
<div class="px-10 pb-10"> <div class="grid gap-4 grid-cols-2 auto-rows-max">
<div class="grid grid-cols-2 items-center">
<Setting <Setting
id="isPublic" id="isPublic"
loading={publicLoading} loading={publicLoading}
@ -244,9 +227,7 @@
description={$t('database.warning_database_public')} description={$t('database.warning_database_public')}
disabled={!$status.database.isRunning} disabled={!$status.database.isRunning}
/> />
</div>
{#if database.type === 'redis'} {#if database.type === 'redis'}
<div class="grid grid-cols-2 items-center">
<Setting <Setting
id="appendOnly" id="appendOnly"
loading={publicLoading} loading={publicLoading}
@ -255,7 +236,6 @@
title={$t('database.change_append_only_mode')} title={$t('database.change_append_only_mode')}
description={$t('database.warning_append_only')} description={$t('database.warning_append_only')}
/> />
</div>
{/if} {/if}
</div> </div>
</div> </div>

View File

@ -7,9 +7,9 @@
</script> </script>
<div class="flex space-x-1 py-5 font-bold"> <div class="flex space-x-1 py-5 font-bold">
<div class="title">MongoDB</div> <h1 class="title">MongoDB</h1>
</div> </div>
<div class="space-y-2 px-10"> <div class="space-y-2">
<div class="grid grid-cols-2 items-center"> <div class="grid grid-cols-2 items-center">
<label for="rootUser" class="text-base font-bold text-stone-100">{$t('forms.root_user')}</label> <label for="rootUser" class="text-base font-bold text-stone-100">{$t('forms.root_user')}</label>
<CopyPasswordField <CopyPasswordField

View File

@ -7,9 +7,9 @@
</script> </script>
<div class="flex space-x-1 py-5 font-bold"> <div class="flex space-x-1 py-5 font-bold">
<div class="title">MySQL</div> <h1 class="title">MySQL</h1>
</div> </div>
<div class="space-y-2 px-10"> <div class="space-y-2">
<div class="grid grid-cols-2 items-center"> <div class="grid grid-cols-2 items-center">
<label for="defaultDatabase" class="text-base font-bold text-stone-100" <label for="defaultDatabase" class="text-base font-bold text-stone-100"
>{$t('database.default_database')}</label >{$t('database.default_database')}</label

View File

@ -62,6 +62,7 @@
import DeleteIcon from '$lib/components/DeleteIcon.svelte'; import DeleteIcon from '$lib/components/DeleteIcon.svelte';
import { onDestroy, onMount } from 'svelte'; import { onDestroy, onMount } from 'svelte';
import Tooltip from '$lib/components/Tooltip.svelte'; import Tooltip from '$lib/components/Tooltip.svelte';
import DatabaseLinks from './_DatabaseLinks.svelte';
const { id } = $page.params; const { id } = $page.params;
let statusInterval: any = false; let statusInterval: any = false;
@ -144,7 +145,21 @@
</script> </script>
{#if id !== 'new'} {#if id !== 'new'}
<nav class="nav-side"> <nav
class="flex flex-row px-3 justify-center lg:justify-between items-center bg-neutral-focus lg:fixed w-full z-10 lg:-ml-16 lg:pl-16"
>
<div class="hidden items-center space-x-2 p-5 px-6 font-bold lg:flex">
<div class="flex flex-col">
<div class="md:max-w-64 truncate text-base tracking-tight md:text-2xl lg:block">
Configuration
</div>
<span class="text-xs">{database.name}</span>
</div>
<DatabaseLinks {database} />
</div>
<div
class="flex flex-row flex-wrap space-x-4 space-y-3 justify-center lg:justify-start py-2 lg:py-0"
>
{#if database.type && database.destinationDockerId && database.version && database.defaultDatabase} {#if database.type && database.destinationDockerId && database.version && database.defaultDatabase}
{#if $status.database.isExited} {#if $status.database.isExited}
<a <a
@ -202,7 +217,7 @@
on:click={stopDatabase} on:click={stopDatabase}
type="submit" type="submit"
disabled={!$appSession.isAdmin} disabled={!$appSession.isAdmin}
class="icons bg-transparent text-sm flex items-center space-x-2 text-red-500" class="icons bg-transparent text-sm flex items-center space-x-2 text-red-500 mt-3"
> >
<svg <svg
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
@ -329,6 +344,7 @@
{/if} {/if}
<Tooltip triggeredBy="#delete">{'Delete'}</Tooltip> <Tooltip triggeredBy="#delete">{'Delete'}</Tooltip>
</div>
</nav> </nav>
{/if} {/if}
<slot /> <slot />

View File

@ -48,8 +48,8 @@
}); });
</script> </script>
<div class="flex h-20 items-center space-x-2 p-5 px-6 font-bold"> <div class="flex items-center space-x-2 p-5 font-bold lg:hidden">
<div class="-mb-5 flex-col"> <div class="flex-col">
<div class="md:max-w-64 truncate text-base tracking-tight md:text-2xl lg:block"> <div class="md:max-w-64 truncate text-base tracking-tight md:text-2xl lg:block">
Configuration Configuration
</div> </div>
@ -58,7 +58,7 @@
<DatabaseLinks {database} /> <DatabaseLinks {database} />
</div> </div>
<div class="mx-auto max-w-4xl px-6 py-4"> <div class="mx-auto max-w-4xl p-5 lg:pt-32">
<div class="text-2xl font-bold">Database Usage</div> <div class="text-2xl font-bold">Database Usage</div>
<div class="text-center"> <div class="text-center">
<div class="stat w-64"> <div class="stat w-64">

View File

@ -97,7 +97,7 @@ a {
} }
.title { .title {
@apply mr-4 text-base tracking-tight md:text-2xl font-bold; @apply mr-4 tracking-tight text-2xl font-bold;
} }
.nav-main { .nav-main {
@apply fixed top-0 left-0 min-h-screen w-16 min-w-[4rem] overflow-hidden border-r border-stone-800 bg-coolgray-200 scrollbar-w-1 scrollbar-thumb-coollabs scrollbar-track-coolgray-200 xl:overflow-visible; @apply fixed top-0 left-0 min-h-screen w-16 min-w-[4rem] overflow-hidden border-r border-stone-800 bg-coolgray-200 scrollbar-w-1 scrollbar-thumb-coollabs scrollbar-track-coolgray-200 xl:overflow-visible;