Implemented #65
All checks were successful
/ Build the server (push) Successful in 3m5s

This commit is contained in:
2023-10-23 17:05:31 +02:00
parent 791988d1f9
commit 21b4a8800e
17 changed files with 506 additions and 24 deletions

View File

@@ -1,7 +1,7 @@
<script lang="ts">
import {changeStateFunction, error_banner, info_banner, rpc, session, show_working, state, StateE, token, workingWrapperO} from './store';
import {Banner, Navbar, Spinner} from 'flowbite-svelte';
import {FileStorage} from 'carbon-icons-svelte';
import {FileStorage} from './icons';
import LinkButton from './components/LinkButton.svelte';
import Login from './pages/Login.svelte';
import Signup from './pages/Signup.svelte';

View File

@@ -1,5 +1,5 @@
<script lang="ts">
import {rpc, show_working, state, token, type UploadFile} from '../store';
import {rpc, show_working, state, token} from '../store';
import {Button, ButtonGroup, Modal} from 'flowbite-svelte';
import {afterUpdate} from 'svelte';

View File

@@ -4,7 +4,7 @@
</script>
<script lang="ts">
import {Checkbox, Dropdown, DropdownItem, Spinner, Table, TableBody, TableBodyCell, TableBodyRow, TableHead, TableHeadCell, Tooltip} from 'flowbite-svelte';
import {Folder, FolderParent, DocumentBlank, ChevronSortDown} from 'carbon-icons-svelte';
import {Folder, FolderParent, DocumentBlank, CaretLeft} from '../icons';
import {filesize} from 'filesize';
import {api, changeStateFunction, download, StateE, token, rpc} from '../store';
import LinkButton from './LinkButton.svelte';
@@ -75,7 +75,7 @@
<Table hoverable>
<TableHead theadClass="text-xs">
<TableHeadCell class="p-2 pl-4 w-0 h-0">
<ChevronSortDown id="dropdown-button" />
<CaretLeft id="dropdown-button" />
</TableHeadCell>
<TableHeadCell class="p-2 w-0"><Checkbox checked={$show_preview} on:change={onShowPreview} /><Tooltip>Show image previews</Tooltip></TableHeadCell>
<TableHeadCell>Name</TableHeadCell>

View File

@@ -1,6 +1,6 @@
<script lang="ts">
import {Button, Spinner} from 'flowbite-svelte';
import {Download} from 'carbon-icons-svelte';
import {Download} from '../icons';
import {api, download, rpc, token, workingWrapperR} from '../store';
import {onDestroy} from 'svelte';

View File

@@ -1,6 +1,6 @@
<script lang="ts">
import {state, token, type UploadFile} from '../store';
import {Button, ButtonGroup, Modal, Progressbar} from 'flowbite-svelte';
import {Button, Modal, Progressbar} from 'flowbite-svelte';
import {filesize} from 'filesize';
interface MyFile extends UploadFile {

14
frontend/src/icons.ts Normal file
View File

@@ -0,0 +1,14 @@
export {default as FileStorage} from '~icons/carbon/FileStorage';
export {default as Folder} from '~icons/carbon/Folder';
export {default as FolderParent} from '~icons/carbon/FolderParent';
export {default as DocumentBlank} from '~icons/carbon/DocumentBlank';
export {default as Download} from '~icons/carbon/Download';
export {default as Email} from '~icons/carbon/Email';
export {default as EmailNew} from '~icons/carbon/EmailNew';
export {default as Password} from '~icons/carbon/Password';
export {default as CloudUpload} from '~icons/carbon/CloudUpload';
export {default as Checkmark} from '~icons/carbon/Checkmark';
export {default as Error} from '~icons/carbon/Error';
export {default as CaretLeft} from '~icons/ph/CaretLeft';
export {default as OTP} from '~icons/ph/Password';

View File

@@ -1,7 +1,7 @@
<script lang="ts">
import {api, rpc, session, state, StateE, token, workingWrapperO, workingWrapperR} from '../store';
import {Checkbox, Table, TableBody, TableBodyCell, TableBodyRow, TableHead, TableHeadCell} from 'flowbite-svelte';
import {Checkmark, Error} from 'carbon-icons-svelte';
import {Checkmark, Error} from '../icons';
import LinkButton from '../components/LinkButton.svelte';
let users: api.UserInfo[] = [];

View File

@@ -1,6 +1,6 @@
<script lang="ts">
import {Button, ButtonGroup, Card, Input, InputAddon} from 'flowbite-svelte';
import {Email, Password} from 'carbon-icons-svelte';
import {Email, OTP, Password} from '../icons';
import {changeStateFunction, rpc, state, StateE, token, workingWrapperR, api} from '../store';
let ask_tfa = false;
@@ -26,7 +26,7 @@
{#if ask_tfa}
<h3>Two factor authentication</h3>
<ButtonGroup class="w-full mb-4">
<InputAddon><Password /></InputAddon>
<InputAddon><OTP /></InputAddon>
<Input type="text" placeholder="Code" bind:value={tfa} on:keyup={keyUp}></Input>
</ButtonGroup>
<Button class="w-full" color="primary" on:click={login}>Login</Button>

View File

@@ -1,7 +1,7 @@
<script lang="ts">
import {changeStateFunction, error_banner, rpc, session, StateE, token, workingWrapperO} from '../store';
import {Accordion, AccordionItem, Button, ButtonGroup, Input, InputAddon} from 'flowbite-svelte';
import {Password} from 'carbon-icons-svelte';
import {Password} from '../icons';
import {info_banner} from '../store.js';
const s = session.s;

View File

@@ -1,6 +1,6 @@
<script lang="ts">
import {Button, ButtonGroup, Card, Input, InputAddon} from 'flowbite-svelte';
import {Email, EmailNew, Password} from 'carbon-icons-svelte';
import {Email, EmailNew, Password} from '../icons';
import {changeStateFunction, error_banner, info_banner, rpc, state, StateE, workingWrapper, workingWrapperO} from '../store';
let enter_key = false;

View File

@@ -1,6 +1,6 @@
<script lang="ts">
import {Button, ButtonGroup, Card, Input, InputAddon} from 'flowbite-svelte';
import {Email, Password} from 'carbon-icons-svelte';
import {Email, Password} from '../icons';
import {changeStateFunction, error_banner, info_banner, rpc, state, StateE, workingWrapperO} from '../store';
let username = '', username2 = '', password = '', password2 = '';

View File

@@ -1,6 +1,6 @@
<script lang="ts">
import {Button, ButtonGroup, Card, Input, InputAddon, StepIndicator, Tooltip} from 'flowbite-svelte';
import {Password} from 'carbon-icons-svelte';
import {OTP} from '../icons';
import {info_banner, rpc, session, state, StateE, token, workingWrapperO, workingWrapperR} from '../store';
import QRCode from 'qrcode-svg';
@@ -66,7 +66,7 @@
{/if}
{/if}
<ButtonGroup class="w-full mb-4">
<InputAddon><Password /></InputAddon>
<InputAddon><OTP /></InputAddon>
<Input type="text" placeholder="Code" bind:value={code} on:keyup={keyUp}></Input>
</ButtonGroup>
<Button class="w-full" on:click={completeSetup}>Complete setup</Button>

View File

@@ -1,7 +1,7 @@
<script lang="ts">
import {Breadcrumb, Dropzone, Modal, Progressbar} from 'flowbite-svelte';
import {derived} from 'svelte/store';
import {CloudUpload} from 'carbon-icons-svelte';
import {CloudUpload} from '../icons';
import {api, changeStateFunction, rpc, state, StateE, token, type UploadFile, workingWrapperR} from '../store';
import LinkButton from '../components/LinkButton.svelte';
import DirViewer from '../components/DirViewer.svelte';

View File

@@ -1,2 +1,3 @@
/// <reference types="svelte" />
/// <reference types="vite/client" />
/// <reference types="unplugin-icons/types/svelte" />