Fork pd_web, remove everything we don't need
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
<script lang="ts">
|
||||
import { onMount, tick } from "svelte";
|
||||
import Spinner from "util/Spinner.svelte";
|
||||
import { fs_node_type, fs_thumbnail_url } from "filesystem/FilesystemAPI";
|
||||
import { fs_node_type } from "filesystem/FilesystemAPI";
|
||||
import FileManager from "filesystem/filemanager/FileManager.svelte";
|
||||
import Audio from "./Audio.svelte";
|
||||
import File from "./File.svelte";
|
||||
@@ -12,8 +12,6 @@ import Video from "./Video.svelte";
|
||||
import Torrent from "./Torrent.svelte";
|
||||
import Zip from "./Zip.svelte";
|
||||
import CustomBanner from "./CustomBanner.svelte";
|
||||
import { stats } from "lib/StatsSocket"
|
||||
import SlowDown from "layout/SlowDown.svelte";
|
||||
import type { FSNavigator } from "filesystem/FSNavigator";
|
||||
import FsUploadWidget from "filesystem/upload_widget/FSUploadWidget.svelte";
|
||||
import EditWindow from "filesystem/edit_window/EditWindow.svelte";
|
||||
@@ -82,14 +80,6 @@ export const seek = (delta: number) => {
|
||||
<FileManager nav={nav} upload_widget={upload_widget} edit_window={edit_window}>
|
||||
<CustomBanner path={$nav.path}/>
|
||||
</FileManager>
|
||||
{:else if $nav.context.premium_transfer === false && $stats.limits.transfer_limit_used > $stats.limits.transfer_limit}
|
||||
<SlowDown
|
||||
on:download
|
||||
file_size={$nav.base.file_size}
|
||||
file_name={$nav.base.name}
|
||||
file_type={$nav.base.file_type}
|
||||
icon_href={fs_thumbnail_url($nav.base.path, 256, 256)}
|
||||
/>
|
||||
{:else if viewer_type === "audio"}
|
||||
<Audio nav={nav} bind:this={viewer}>
|
||||
<CustomBanner path={$nav.path}/>
|
||||
@@ -99,7 +89,7 @@ export const seek = (delta: number) => {
|
||||
{:else if viewer_type === "video"}
|
||||
<Video nav={nav} bind:this={viewer} on:open_sibling/>
|
||||
{:else if viewer_type === "pdf"}
|
||||
<Pdf nav={nav}/>
|
||||
<Pdf nav={nav} bind:this={viewer}/>
|
||||
{:else if viewer_type === "text"}
|
||||
<Text nav={nav} bind:this={viewer}>
|
||||
<CustomBanner path={$nav.path}/>
|
||||
|
@@ -7,7 +7,7 @@ export let nav: FSNavigator
|
||||
|
||||
<iframe
|
||||
class="container"
|
||||
src={"/res/misc/pdf-viewer/web/viewer.html?file="+encodeURIComponent(fs_path_url($nav.base.path))}
|
||||
src={"/res/misc/pdf-viewer/web/viewer.html?file="+fs_path_url($nav.base.path)}
|
||||
title="PDF viewer">
|
||||
</iframe>
|
||||
|
||||
|
@@ -10,7 +10,7 @@ export type ZipEntry = {
|
||||
<script lang="ts">
|
||||
import { createEventDispatcher } from "svelte";
|
||||
import { formatDataVolume, formatDate } from "util/Formatting"
|
||||
import ZipItem from "file_viewer/viewers/ZipItem.svelte";
|
||||
import ZipItem from "filesystem/viewers/ZipItem.svelte";
|
||||
import IconBlock from "layout/IconBlock.svelte";
|
||||
import TextBlock from "layout/TextBlock.svelte"
|
||||
import { fs_node_icon, fs_path_url } from "filesystem/FilesystemAPI";
|
||||
|
83
svelte/src/filesystem/viewers/ZipItem.svelte
Normal file
83
svelte/src/filesystem/viewers/ZipItem.svelte
Normal file
@@ -0,0 +1,83 @@
|
||||
<script lang="ts">
|
||||
import type { ZipEntry } from "filesystem/viewers/Zip.svelte";
|
||||
import { formatDataVolume } from "util/Formatting";
|
||||
|
||||
export let item: ZipEntry = {} as ZipEntry
|
||||
</script>
|
||||
|
||||
<!-- First get directories and render them as details collapsibles -->
|
||||
{#each Object.entries(item.children) as [name, child]}
|
||||
{#if child.children}
|
||||
<details bind:open={child.details_open}>
|
||||
<summary>
|
||||
<div class="filename">
|
||||
{name}
|
||||
(
|
||||
{formatDataVolume(child.size, 3)}
|
||||
{#if child.download_url}
|
||||
<a href={child.download_url}>download</a>
|
||||
{/if}
|
||||
)
|
||||
</div>
|
||||
</summary>
|
||||
|
||||
<!-- Performance optimization, only render children if details is expanded -->
|
||||
{#if child.details_open}
|
||||
<svelte:self item={child}></svelte:self>
|
||||
{/if}
|
||||
</details>
|
||||
{/if}
|
||||
{/each}
|
||||
|
||||
<!-- Then get files and render them as list items -->
|
||||
<ul>
|
||||
{#each Object.entries(item.children) as [name, child]}
|
||||
{#if !child.children}
|
||||
<li>
|
||||
<div class="filename">
|
||||
{name}
|
||||
(
|
||||
{formatDataVolume(child.size, 3)}
|
||||
{#if child.download_url}
|
||||
<a href={child.download_url}>download</a>
|
||||
{/if}
|
||||
)
|
||||
</div>
|
||||
</li>
|
||||
{/if}
|
||||
{/each}
|
||||
</ul>
|
||||
|
||||
<style>
|
||||
details {
|
||||
padding-left: 0.5em;
|
||||
border: none;
|
||||
border-left: 2px solid var(--separator);
|
||||
}
|
||||
details > summary {
|
||||
list-style-type: none;
|
||||
display: flex;
|
||||
}
|
||||
details > summary::before {
|
||||
font-family: 'Material Icons';
|
||||
content: 'folder';
|
||||
}
|
||||
details[open] > summary::before {
|
||||
font-family: 'Material Icons';
|
||||
content: 'folder_open';
|
||||
}
|
||||
li::before {
|
||||
font-family: 'Material Icons';
|
||||
content: 'description';
|
||||
}
|
||||
ul {
|
||||
list-style-type: none;
|
||||
padding-left: 0.5em;
|
||||
margin: 0;
|
||||
border-left: 2px solid var(--separator);
|
||||
}
|
||||
.filename {
|
||||
display: inline;
|
||||
margin-left: 0.5em;
|
||||
}
|
||||
</style>
|
Reference in New Issue
Block a user