summaryrefslogtreecommitdiffstats
path: root/grid.html
diff options
context:
space:
mode:
Diffstat (limited to 'grid.html')
-rw-r--r--grid.html202
1 files changed, 202 insertions, 0 deletions
diff --git a/grid.html b/grid.html
new file mode 100644
index 0000000..d964a63
--- /dev/null
+++ b/grid.html
@@ -0,0 +1,202 @@
+<!-- grid.html -->
+<!DOCTYPE html>
+<html>
+ <style>
+ :root {
+ background: #e9e9e9;
+ }
+ body {
+ overflow: hidden;
+ font-family: sans-serif;
+ }
+ .logo {
+ object-fit: cover;
+ height: 17rem;
+ }
+ .screen {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ align-items: bottom;
+ height: 100vh;
+ }
+ .controls {
+ flex-grow: 1;
+ font-size: x-large;
+ text-align: center;
+ min-width: 24%;
+ padding-top: 20px;
+ padding-right: 10px;
+ }
+ .galery {
+ flex-grow: 4;
+ display: grid;
+ grid-template-columns: auto auto;
+ grid-template-rows: auto auto;
+ gap: 10px;
+ padding: 20px;
+ min-width: 74%;
+ }
+ .img_name {
+ padding: .2rem;
+ }
+ .img_selected {
+ background: #669934;
+ color: white;
+ text-decoration: none;
+ width: inherit;
+ display: inline-block;
+ // padding: 10px;
+ border-radius: 10px;
+ }
+ a.img_selector {
+ padding: .2rem;
+ text-decoration: none;
+ color: white;
+ text-align: center;
+ width: 100%;
+ display: inline-block;
+ border-radius: 10px;
+ transition: all .2s ease-in-out;
+ }
+ .img_selector:hover {
+ background: lightgray;
+ cursor: pointer;
+ }
+ .img_img {
+ cursor: pointer;
+ max-width: 35vw;
+ max-height: 37vh;
+ border-radius: 10px;
+ margin-top: 10px;
+ }
+ .img_frame {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ flex-direction: column;
+ padding-left: .5rem;
+ padding-right: .5rem;
+ object-fit: cover;
+ min-width: 35vw;
+ width: 35vw;
+ min-height: 45vh;
+ height: 45vh;
+ }
+ h1 {
+ text-align: center;
+ margin-bottom: 20px;
+ }
+ a {
+ display: block;
+ margin: 10px 0;
+ padding: 10px 20px;
+ background: #333;
+ color: white;
+ text-decoration: none;
+ border-radius: 10px;
+ transition: all .2s ease-in-out;
+ }
+ a:hover {
+ background: #669934;
+ cursor: pointer;
+ }
+ form {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ min-width: none;
+ margin: 10px 0;
+ overflow: visible;
+ }
+ input[type="text"] {
+ padding: 10px 20px;
+ border-radius: 10px;
+ border: none;
+ margin-bottom: 10px;
+ }
+ input[type="submit"] {
+ padding: 10px 20px;
+ background: #333;
+ color: white;
+ border: none;
+ border-radius: 10px;
+ transition: all .2s ease-in-out;
+ }
+ input[type="submit"]:hover {
+ background: #669934;
+ cursor: pointer;
+ }
+ input:placeholder-shown + input[type="submit"] {
+ background: lightgrey;
+ pointer-events: none;
+ }
+ .smally {
+ font-size: small;
+ }
+ #help {
+ position: fixed;
+ bottom: 10px;
+ right: 10px;
+ }
+ </style>
+ <head>
+ <link rel="stylesheet" href="static/viewerjs/dist/viewer.css">
+ <script src="static/viewerjs/dist/viewer.min.js"></script>
+ <title>Image Grid</title>
+ </head>
+ <body>
+ <div class="screen">
+ <div id="my-gallery" class="galery">
+ {{range $index, $element := .}}
+ <div class="img_frame">
+ <img class="img_img" src="{{$element.Filename}}">
+ <a id="img_button_{{$index}}"
+ class="img_selector {{if $element.Liked}}img_selected{{end}}"
+ href="{{if $element.Liked}}remove{{else}}select{{end}}?img_index={{$index}}">
+ <div class="img_name">
+ {{.Name}}
+ </div>
+ </a>
+ </div>
+ {{end}}
+ <br>
+ </div>
+ <div class="controls">
+ <img class="logo" src="/static/logo.jpg">
+ <a href="/?idx=0">◄◄ Αρχή</a>
+ <a href="/?idx=100000">Τέλος ►►</a>
+ <a id="nav-prev" href="/prev">◄ Προηγούμενο</a>
+ <a id="nav-next" href="/next">Επόμενο ►</a>
+ <a href="/favs">⭐ Επιλεγμένα</a>
+ <form action="/" autocomplete="off">
+ <input type="text" id="name" name="name" placeholder="Όνομα εικόνας">
+ <input type="submit" value="go!">
+ </form>
+ <div class="smally">(κλικ στις εικόνες για ζουμ!)</div>
+ <a id="help" href="/static/help.html">🛈 Βοήθεια</a>
+ </div>
+ </div>
+ <script>
+ const gallery = new Viewer(document.getElementById('my-gallery'), {transition: false});
+
+ document.onkeyup = function(e) {
+ if (!gallery.fulled) {
+ if (e.key == 'ArrowRight') {
+ document.getElementById('nav-next').click();
+ } else if (e.key == 'ArrowLeft') {
+ document.getElementById('nav-prev').click();
+ } else if (e.key == 'z') {
+ document.getElementById('img_button_0').click();
+ } else if (e.key == 'x') {
+ document.getElementById('img_button_1').click();
+ } else if (e.key == 'c') {
+ document.getElementById('img_button_2').click();
+ } else if (e.key == 'v') {
+ document.getElementById('img_button_3').click();
+ }
+ }
+ };
+ </script>
+ </body>
+</html>