mirror of
https://github.com/mickael-kerjean/filestash.git
synced 2025-11-01 10:56:31 +08:00
236 lines
9.5 KiB
JavaScript
236 lines
9.5 KiB
JavaScript
import { createElement, createFragment, createRender } from "../../lib/skeleton/index.js";
|
|
import rxjs, { effect, onClick } from "../../lib/rx.js";
|
|
import { loadCSS } from "../../helpers/loader.js";
|
|
import { qs } from "../../lib/dom.js";
|
|
|
|
export default function(render) {
|
|
const $page = createFragment(`
|
|
<div is="component_filezone"></div>
|
|
<div is="component_upload_queue"></div>
|
|
<div is="component_upload_fab"></div>
|
|
`);
|
|
|
|
componentFilezone(createRender($page.children[0]));
|
|
componentUploadQueue(createRender($page.children[1]));
|
|
componentUploadFAB(createRender($page.children[2]));
|
|
|
|
render($page);
|
|
}
|
|
|
|
export function init() {
|
|
return loadCSS(import.meta.url, "./ctrl_upload.css");
|
|
}
|
|
|
|
function componentUploadQueue(render) {
|
|
const $page = createElement(`
|
|
<div class="component_upload hidden">
|
|
<h2>CURRENT UPLOAD <div class="count_block">
|
|
<span class="completed">24</span>
|
|
<span class="grandTotal">24</span>
|
|
</div>
|
|
<img class="component_icon" draggable="false" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MS45NzYgNTEuOTc2Ij4KICA8cGF0aCBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eTowLjUzMzMzMjg1O3N0cm9rZS13aWR0aDoxLjQ1NjgxMTE5IiBkPSJtIDQxLjAwNTMxLDQwLjg0NDA2MiBjIC0xLjEzNzc2OCwxLjEzNzc2NSAtMi45ODIwODgsMS4xMzc3NjUgLTQuMTE5ODYxLDAgTCAyNi4wNjg2MjgsMzAuMDI3MjM0IDE0LjczNzU1MSw0MS4zNTgzMSBjIC0xLjEzNzc3MSwxLjEzNzc3MSAtMi45ODIwOTMsMS4xMzc3NzEgLTQuMTE5ODYxLDAgLTEuMTM3NzcyMiwtMS4xMzc3NjggLTEuMTM3NzcyMiwtMi45ODIwODggMCwtNC4xMTk4NjEgTCAyMS45NDg3NjYsMjUuOTA3MzcyIDExLjEzMTkzOCwxNS4wOTA1NTEgYyAtMS4xMzc3NjQ3LC0xLjEzNzc3MSAtMS4xMzc3NjQ3LC0yLjk4MzU1MyAwLC00LjExOTg2MSAxLjEzNzc3NCwtMS4xMzc3NzIxIDIuOTgyMDk4LC0xLjEzNzc3MjEgNC4xMTk4NjUsMCBMIDI2LjA2ODYyOCwyMS43ODc1MTIgMzYuMzY5NzM5LDExLjQ4NjM5OSBjIDEuMTM3NzY4LC0xLjEzNzc2OCAyLjk4MjA5MywtMS4xMzc3NjggNC4xMTk4NjIsMCAxLjEzNzc2NywxLjEzNzc2OSAxLjEzNzc2NywyLjk4MjA5NCAwLDQuMTE5ODYyIEwgMzAuMTg4NDg5LDI1LjkwNzM3MiA0MS4wMDUzMSwzNi43MjQxOTcgYyAxLjEzNzc3MSwxLjEzNzc2NyAxLjEzNzc3MSwyLjk4MjA5MSAwLDQuMTE5ODY1IHoiIC8+Cjwvc3ZnPgo=" alt="close">
|
|
</h2>
|
|
<h3>Done</h3>
|
|
<div class="stats_content">
|
|
<div class="file_row done_color">
|
|
<div class="file_path">rpi-imager/</div>
|
|
<div class="file_state file_state_done">Done</div>
|
|
<div class="file_control">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div class="file_row done_color">
|
|
<div class="file_path">rpi-imager/DEBIAN/</div>
|
|
<div class="file_state file_state_done">Done</div>
|
|
<div class="file_control">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div class="file_row done_color">
|
|
<div class="file_path">rpi-imager/usr/</div>
|
|
<div class="file_state file_state_done">Done</div>
|
|
<div class="file_control">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div class="file_row done_color">
|
|
<div class="file_path">rpi-imager/DEBIAN/control</div>
|
|
<div class="file_state file_state_done">Done</div>
|
|
<div class="file_control">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div class="file_row done_color">
|
|
<div class="file_path">rpi-imager/DEBIAN/md5sums</div>
|
|
<div class="file_state file_state_done">Done</div>
|
|
<div class="file_control">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div class="file_row done_color">
|
|
<div class="file_path">rpi-imager/usr/share/</div>
|
|
<div class="file_state file_state_done">Done</div>
|
|
<div class="file_control">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div class="file_row done_color">
|
|
<div class="file_path">rpi-imager/usr/bin/</div>
|
|
<div class="file_state file_state_done">Done</div>
|
|
<div class="file_control">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div class="file_row done_color">
|
|
<div class="file_path">rpi-imager/usr/share/applications/</div>
|
|
<div class="file_state file_state_done">Done</div>
|
|
<div class="file_control">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div class="file_row done_color">
|
|
<div class="file_path">rpi-imager/usr/share/icons/</div>
|
|
<div class="file_state file_state_done">Done</div>
|
|
<div class="file_control">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div class="file_row done_color">
|
|
<div class="file_path">rpi-imager/usr/share/doc/</div>
|
|
<div class="file_state file_state_done">Done</div>
|
|
<div class="file_control">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div class="file_row done_color">
|
|
<div class="file_path">rpi-imager/usr/share/man/</div>
|
|
<div class="file_state file_state_done">Done</div>
|
|
<div class="file_control">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div class="file_row done_color">
|
|
<div class="file_path">rpi-imager/usr/share/metainfo/</div>
|
|
<div class="file_state file_state_done">Done</div>
|
|
<div class="file_control">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div class="file_row done_color">
|
|
<div class="file_path">rpi-imager/usr/share/applications/org.raspberrypi.rpi-imager.desktop</div>
|
|
<div class="file_state file_state_done">Done</div>
|
|
<div class="file_control">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div class="file_row done_color">
|
|
<div class="file_path">rpi-imager/usr/share/icons/hicolor/</div>
|
|
<div class="file_state file_state_done">Done</div>
|
|
<div class="file_control">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div class="file_row done_color">
|
|
<div class="file_path">rpi-imager/usr/share/doc/rpi-imager/</div>
|
|
<div class="file_state file_state_done">Done</div>
|
|
<div class="file_control">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div class="file_row done_color">
|
|
<div class="file_path">rpi-imager/usr/share/man/man1/</div>
|
|
<div class="file_state file_state_done">Done</div>
|
|
<div class="file_control">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div class="file_row done_color">
|
|
<div class="file_path">rpi-imager/usr/share/metainfo/rpi-imager.metainfo.xml</div>
|
|
<div class="file_state file_state_done">Done</div>
|
|
<div class="file_control">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div class="file_row done_color">
|
|
<div class="file_path">rpi-imager/usr/share/icons/hicolor/128x128/</div>
|
|
<div class="file_state file_state_done">Done</div>
|
|
<div class="file_control">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div class="file_row done_color">
|
|
<div class="file_path">rpi-imager/usr/share/doc/rpi-imager/changelog.gz</div>
|
|
<div class="file_state file_state_done">Done</div>
|
|
<div class="file_control">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div class="file_row done_color">
|
|
<div class="file_path">rpi-imager/usr/share/doc/rpi-imager/copyright</div>
|
|
<div class="file_state file_state_done">Done</div>
|
|
<div class="file_control">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div class="file_row done_color">
|
|
<div class="file_path">rpi-imager/usr/share/man/man1/rpi-imager.1.gz</div>
|
|
<div class="file_state file_state_done">Done</div>
|
|
<div class="file_control">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div class="file_row done_color">
|
|
<div class="file_path">rpi-imager/usr/share/icons/hicolor/128x128/apps/</div>
|
|
<div class="file_state file_state_done">Done</div>
|
|
<div class="file_control">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div class="file_row done_color">
|
|
<div class="file_path">rpi-imager/usr/share/icons/hicolor/128x128/apps/rpi-imager.png</div>
|
|
<div class="file_state file_state_done">Done</div>
|
|
<div class="file_control">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
<div class="file_row done_color">
|
|
<div class="file_path">rpi-imager/usr/bin/rpi-imager</div>
|
|
<div class="file_state file_state_done">Done</div>
|
|
<div class="file_control">
|
|
<span></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
`);
|
|
render($page);
|
|
|
|
effect(onClick(qs($page, "img[alt=\"close\"]")).pipe(
|
|
rxjs.tap(() => $page.classList.add("hidden")),
|
|
));
|
|
}
|
|
|
|
function componentFilezone(render) {
|
|
// document.body
|
|
// .querySelector(`[data-bind="filemanager-children"]`)
|
|
// .classList.add("dropzone");
|
|
}
|
|
|
|
function componentUploadFAB(render) {
|
|
render(createElement(`
|
|
<div class="component_mobilefileupload no-select">
|
|
<form>
|
|
<input type="file" name="file" id="mobilefileupload" multiple />
|
|
<label for="mobilefileupload">
|
|
<img
|
|
class="component_icon"
|
|
draggable="false"
|
|
alt="upload"
|
|
src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMzg0IDUxMiI+CiAgPHBhdGggZmlsbD0iI2YyZjJmMiIgZD0iTSAzNjAsNDYwIEggMjQgQyAxMC43LDQ2MCAwLDQ1My4zIDAsNDQwIHYgLTEyIGMgMCwtMTMuMyAxMC43LC0yMCAyNCwtMjAgaCAzMzYgYyAxMy4zLDAgMjQsNi43IDI0LDIwIHYgMTIgYyAwLDEzLjMgLTEwLjcsMjAgLTI0LDIwIHoiIC8+CiAgPHBhdGggZmlsbD0iI2YyZjJmMiIgZD0ibSAyMjYuNTUzOSwxNDkuMDAzMDMgdiAxNjEuOTQxIGMgMCw2LjYyNyAtNS4zNzMsMTIgLTEyLDEyIGggLTQ0IGMgLTYuNjI3LDAgLTEyLC01LjM3MyAtMTIsLTEyIHYgLTE2MS45NDEgaCAtNTIuMDU5IGMgLTIxLjM4MiwwIC0zMi4wOSwtMjUuODUxIC0xNi45NzEsLTQwLjk3MSBsIDg2LjA1OSwtODYuMDU4OTk3IGMgOS4zNzMsLTkuMzczIDI0LjU2OSwtOS4zNzMgMzMuOTQxLDAgbCA4Ni4wNTksODYuMDU4OTk3IGMgMTUuMTE5LDE1LjExOSA0LjQxMSw0MC45NzEgLTE2Ljk3MSw0MC45NzEgeiIgLz4KPC9zdmc+Cg=="
|
|
/>
|
|
</label>
|
|
</form>
|
|
</div>
|
|
`));
|
|
}
|