Compare commits

...

2 Commits

3 changed files with 61 additions and 26 deletions

View File

@ -9,6 +9,7 @@
align-items: center;
justify-content: space-around;
flex-direction: column;
gap: 0.5rem;
flex: 25%;
overflow: scroll;
}
@ -17,36 +18,63 @@
flex: 75%;
}
:root {
--collage-ap: 110 / 85;
}
.image-surface {
overflow: hidden;
margin: auto;
border: 1px solid;
height: 100%;
width: auto;
--collage-ap: 110 / 85;
aspect-ratio: var(--collage-ap);
}
.showbuton {
font-size: 2rem;
.main-controls {
display: flex;
gap: 0.5rem;
}
.main-controls button {
font-size: 1.2rem;
}
#notice_dialog {
z-index: 10;
width: 50%;
background-color: lightblue;
}
#notice_dialog form {
display: flex;
}
#notice_dialog button {
font-size: 1.2rem;
margin-left: auto;
}
.templates {
display: flex;
flex-wrap: wrap;
gap: 1rem;
gap: 0.5rem;
width: 80%;
}
.templates li {
width: 30%;
list-style-type: none;
aspect-ratio: 1 / 1;
}
#page_size_selector {
width: 100%;
font-size: 1.2rem;
width: 80%;
}
.template {
width: 6rem;
height: 6rem;
aspect-ratio: var(--collage-ap);
}
.template-selected {

View File

@ -9,29 +9,29 @@
<link rel="stylesheet" href="index.css" />
</head>
<body>
<dialog id="notice_dialog">
<form method="dialog"><span><a href="" target="_blank" id="collage-url"></a></span><button>X</button></form>
</dialog>
<div class="container">
<div class="controls">
<h2>Photo Collage</h2>
<p><a href="choose.html">Select Images</a></p>
<h1>Photo Collage</h1>
<select id="page_size_selector">
<option value="letter-portrait" > Letter (Portrait) </option>
<option selected value="letter-landscape" > Letter (Landscape) </option>
<option value="fiveseven-portrait" > 5 × 7 (Portrait) </option>
<option value="fiveseven-landscape" > 7 × 5 (Landscape) </option>
<option value="foursix-portrait" > 4 × 6 (Portrait) </option>
<option value="foursix-landscape" > 4 × 6 (Landscape) </option>
</select>
<div class="main-controls">
<a href="choose.html"><button>Select</button></a>
<button id="snapper" class="showbuton">Snap</button>
<a href="/collages/?layout=grid" target="_blank" ><button>All</button></a>
</div>
<label>
<span>Paper size</span>
<select id="page_size_selector">
<option value="letter-portrait" > Letter (Portrait) </option>
<option selected value="letter-landscape" > Letter (Landscape) </option>
<option value="fiveseven-portrait" > 5 × 7 (Portrait) </option>
<option value="fiveseven-landscape" > 7 × 5 (Landscape) </option>
<option value="foursix-portrait" > 4 × 6 (Portrait) </option>
<option value="foursix-landscape" > 4 × 6 (Landscape) </option>
</select>
</label>
<button id="snapper" class="showbuton">Snap Collage</button>
<div>
<p><a href="/collages/" target="_blank" >All collages</a></p>
<p><a href="" target="_blank" id="collage-url"></a></p>
</div>
<ul class="templates">

View File

@ -44,6 +44,9 @@ let collageDiv
/** @type {HTMLSelectElement} */
let pageSizeSelect
/** @type {HTMLDialogElement} */
let noticeDialog
/** @type {HTMLAnchorElement} */
let collageUrlA
@ -59,6 +62,7 @@ function main() {
snapButton = document.getElementById("snapper")
collageDiv = document.getElementById("collage")
pageSizeSelect = document.getElementById("page_size_selector")
noticeDialog = document.getElementById("notice_dialog")
collageUrlA = document.getElementById("collage-url")
snapButton.onclick = () => snap()
@ -74,6 +78,7 @@ function main() {
// Skipping first entry in array to make the images start with index 1
imageUrls = [,].concat(queryUrls)
pageSizeChange()
applyTemplate(document.getElementById("default_template"))
}
@ -171,6 +176,7 @@ function snap() {
}
(async () => {
noticeDialog.show()
collageUrlA.text = "Collage is being generated...";
const collagFile = await makeCollage(req)
collageUrlA.href = `collages/${collagFile}`;
@ -179,7 +185,8 @@ function snap() {
}
function pageSizeChange() {
collageDiv.style.setProperty('--collage-ap', pageSizes[pageSizeSelect.value]["ap"])
// https://stackoverflow.com/a/37802204
document.documentElement.style.setProperty('--collage-ap', pageSizes[pageSizeSelect.value]["ap"])
pageSize = pageSizeSelect.value
initCollage()
}