This repository has been archived on 2024-08-06. You can view files and clone it, but cannot push or open issues or pull requests.
comicinfo-editor-v2/src/lib/MetadataInput.svelte

107 lines
3.1 KiB
Svelte
Raw Normal View History

2023-10-11 17:43:28 +02:00
<script lang="ts">
2023-10-11 21:17:03 +02:00
import {writable} from "svelte/store";
import type {Writable} from "svelte/store";
import IntegerInput from "./IntegerInput.svelte";
2023-10-11 23:04:07 +02:00
import TextInput from "./TextInput.svelte";
2023-10-11 21:17:03 +02:00
2023-10-11 23:04:07 +02:00
let seriesTitle = "";
let volumeTitle = "";
2023-10-11 21:17:03 +02:00
let volumeNumber = 0;
let chapterNumber = 0;
2023-10-11 23:04:07 +02:00
let pageCount = 1;
2023-10-11 21:17:03 +02:00
let chapterCount = 0;
2023-10-11 23:04:07 +02:00
let summary = "";
let releaseYear: number;
let releaseMonth: number;
let releaseDay: number;
let author: string;
let typesetter: string;
let editor: string;
let translator: string;
let publisher: string;
let tags: Vec<string>;
let genre = "Hentai";
let lang = "en";
let ageRating = "18+";
2023-10-11 17:43:28 +02:00
</script>
<div class="metadataInput">
<h1>Metadata</h1>
<label for="series">Series:</label>
2023-10-11 23:04:07 +02:00
<TextInput id="series" bind:value={seriesTitle} placeholder="Series Title" /><br>
2023-10-11 17:43:28 +02:00
<label for="title">Title:</label>
2023-10-11 23:04:07 +02:00
<TextInput id="title" bind:value={volumeTitle} placeholder="Volume Title" /><br>
2023-10-11 17:43:28 +02:00
<label for="volume">Volume:</label>
2023-10-11 21:17:03 +02:00
<IntegerInput id="volume" bind:value={volumeNumber} />
2023-10-11 17:43:28 +02:00
<label for="chapter">Chapter:</label>
2023-10-11 21:17:03 +02:00
<IntegerInput id="chapter" bind:value={chapterNumber} /> /
2023-10-11 17:43:28 +02:00
2023-10-11 21:17:03 +02:00
<IntegerInput id="chapter_count" bind:value={chapterCount} negative={true}/><br>
2023-10-11 17:43:28 +02:00
<label for="page_count">Page Count</label>
2023-10-11 23:04:07 +02:00
<IntegerInput id="page_count" bind:value={pageCount} defaultValue={1} /><br>
2023-10-11 17:43:28 +02:00
<label for="summary">Summary:</label><br>
<label for="summary"></label><input id="series" type="text"><br>
<label for="release_date">Release Date:</label>
2023-10-11 23:04:07 +02:00
<IntegerInput id="release_year" bind:value={releaseYear} defaultValue={new Date().getFullYear()} />
<IntegerInput id="release_month" bind:value={releaseMonth} defaultValue={new Date().getMonth()} />
<IntegerInput id="release_day" bind:value={releaseDay} defaultValue={new Date().getDay()} /><br>
2023-10-11 17:43:28 +02:00
<label for="author">Author:</label>
2023-10-11 23:04:07 +02:00
<TextInput id="author" bind:value={author} placeholder="Author" />
2023-10-11 17:43:28 +02:00
<label for="typesetter">Typesetter:</label>
2023-10-11 23:04:07 +02:00
<TextInput id="typesetter" bind:value={typesetter} placeholder="Typesetter" />
2023-10-11 17:43:28 +02:00
<label for="editor">Editor:</label>
2023-10-11 23:04:07 +02:00
<TextInput id="editor" bind:value={editor} placeholder="Editor" /><br>
2023-10-11 17:43:28 +02:00
<label for="translator">Translator</label>
2023-10-11 23:04:07 +02:00
<TextInput id="translator" bind:value={translator} placeholder="Translator" />
2023-10-11 17:43:28 +02:00
<label for="publisher">Publisher</label>
2023-10-11 23:04:07 +02:00
<TextInput id="publisher" bind:value={publisher} placeholder="Publisher" /><br>
2023-10-11 17:43:28 +02:00
<label for="tags">Tags</label>
<input id="tags" type="text"><br>
<label for="genre">Genre</label>
2023-10-11 23:04:07 +02:00
<TextInput id="genre" bind:value={genre} placeholder="Genre" />
2023-10-11 17:43:28 +02:00
<label for="lang">Language</label>
<input id="lang" type="text"><br>
<label for="age_rating">Age Rating</label>
<input id="age_rating" type="text"><br>
<input type="submit" value="Save"/>
</div>
<style>
.metadataInput {
height: 100%;
overflow: auto;
}
.metadataInput label, input[type="submit"] {
margin-left: 4rem;
}
.metadataInput h1 {
position: sticky;
top: 0;
margin: 0;
border-bottom: 2px solid black;
background-color: var(--color-bg);
padding: 1.3rem;
}
</style>