120 lines
7.0 KiB
HTML
120 lines
7.0 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Swaipu</title>
|
|
<link rel="stylesheet" href="styles.css">
|
|
<!-- Font Awesome for button icons -->
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" integrity="sha512-KfkFx7UiO/8VdM4DJ8GIzQ3pObu7q9gP/yu1ZPTM0u88Z+cIXtA8nKg9ePC60zY+XvKw5xpbIX8zahPszp5C8w==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<header class="header">
|
|
<h1 class="app-title"><img src="static/logo.png" alt="Swaipu logo" class="logo logo-wide"></h1>
|
|
</header>
|
|
|
|
<main class="main-section">
|
|
<div class="swipe-container">
|
|
<div class="image-card" id="current-card" role="img" aria-label="Image to be swiped">
|
|
<img src="data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%22400%22%20height%3D%22400%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20width%3D%22400%22%20height%3D%22400%22%20fill%3D%22%23e0e0e0%22%2F%3E%3Ctext%20x%3D%22200%22%20y%3D%22200%22%20font-size%3D%2220%22%20text-anchor%3D%22middle%22%20alignment-baseline%3D%22middle%22%20fill%3D%22%23999%22%3ELoading...%3C%2Ftext%3E%3C%2Fsvg%3E" alt="Image">
|
|
<div class="loading-indicator">Loading...</div>
|
|
</div>
|
|
|
|
<div class="swipe-actions">
|
|
<div class="action-hint left-hint">Discard</div>
|
|
<div class="action-hint right-hint">Keep</div>
|
|
<div class="action-hint up-hint">Favorite</div>
|
|
<div class="action-hint down-hint">Review</div>
|
|
</div>
|
|
</div>
|
|
|
|
<aside class="side-panel">
|
|
<div class="search-controls card">
|
|
<input type="text" id="search-input" placeholder="Add keywords..." class="search-input">
|
|
<button id="search-button" class="action-btn search-btn" title="Add keyword"><img src="static/icons/add.svg" alt="Add" class="btn-icon"></button>
|
|
<div id="keyword-pills-container" class="keyword-pills-container"></div>
|
|
</div>
|
|
|
|
<div class="filter-controls card">
|
|
|
|
<div class="filter-buttons orientation-filters">
|
|
<button class="filter-btn active" data-orientation="all"><img src="static/icons/all.svg" alt="All" class="orientation"></button>
|
|
<button class="filter-btn" data-orientation="portrait"><img src="static/icons/portrait.svg" alt="Portrait" class="orientation"></button>
|
|
<button class="filter-btn" data-orientation="landscape"><img src="static/icons/landscape.svg" alt="Landscape" class="orientation"></button>
|
|
<button class="filter-btn" data-orientation="square"><img src="static/icons/square.svg" alt="Square" class="orientation"></button>
|
|
<button class="filter-btn" id="toggle-nsfw" data-allow="0" title="Toggle NSFW"><img src="static/icons/18.svg" alt="NSFW" class="nsfw-icon"></button>
|
|
</div>
|
|
<div class="filter-buttons action-filters">
|
|
<button class="filter-btn active" data-action="Unactioned"><img src="static/icons/unactioned.svg" alt="Unactioned" class="action-filter"></button>
|
|
<button class="filter-btn" data-action="Kept"><img src="static/icons/keep.svg" alt="Kept" class="action-filter"></button>
|
|
<button class="filter-btn" data-action="Discarded"><img src="static/icons/discard.svg" alt="Discarded" class="action-filter"></button>
|
|
<button class="filter-btn" data-action="Favourited"><img src="static/icons/fav.svg" alt="Favourited" class="action-filter"></button>
|
|
<button class="filter-btn" data-action="Reviewing"><img src="static/icons/review.svg" alt="Reviewing" class="action-filter"></button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="action-buttons">
|
|
|
|
<button id="btn-left" class="action-btn" aria-label="Discard">
|
|
<img src="static/icons/discard.svg" alt="Discard" class="action">
|
|
</button>
|
|
<button id="btn-right" class="action-btn" aria-label="Keep">
|
|
<img src="static/icons/keep.svg" alt="Keep" class="action">
|
|
</button>
|
|
<button id="btn-up" class="action-btn" aria-label="Favorite">
|
|
<img src="static/icons/fav.svg" alt="Favorite" class="action">
|
|
</button>
|
|
<button id="btn-down" class="action-btn" aria-label="Review">
|
|
<img src="static/icons/review.svg" alt="Review" class="action">
|
|
</button>
|
|
</div>
|
|
<!-- History button -->
|
|
<a href="/history.html" id="btn-history" class="action-btn" aria-label="History">
|
|
<img src="static/icons/history.svg" alt="History" class="action">
|
|
</a>
|
|
<div class="status-area" aria-live="polite">
|
|
|
|
<p id="image-resolution">Resolution: Loading...</p>
|
|
<p id="last-action">Last action: None</p>
|
|
<p id="image-filename">Filename: </p>
|
|
<p id="image-creation-date">Created: </p>
|
|
<details id="prompt-section" class="prompt-section"><summary>Prompt</summary>
|
|
<textarea id="image-prompt" readonly class="prompt-text"></textarea>
|
|
</details>
|
|
<!-- swipe legend removed -->
|
|
|
|
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</aside>
|
|
</main>
|
|
</div>
|
|
|
|
<!-- Full-resolution image modal -->
|
|
<div id="fullscreen-modal" class="modal">
|
|
<div class="modal-content">
|
|
<span class="close-modal">×</span>
|
|
<img id="fullscreen-image" src="" alt="Full resolution image">
|
|
<div class="modal-info">
|
|
<p id="modal-resolution">Resolution: </p>
|
|
<p id="modal-filename">Filename: </p>
|
|
<p id="modal-creation-date">Creation Date: </p>
|
|
<p id="modal-prompt-data">Prompt: </p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="toast" class="toast" role="status" aria-live="polite"></div>
|
|
|
|
<!-- Ultra-wide mode toggle button -->
|
|
<button id="fullscreen-toggle" class="fullscreen-toggle" aria-label="Toggle fullscreen Mode">
|
|
<img src="static/icons/fullscreen.svg" class="btn-icon" alt="Fullscreen">
|
|
</button>
|
|
|
|
<script src="js/main.js" type="module"></script>
|
|
</body>
|
|
</html>
|