Implement fetching photos from photoprism #19
@ -16,6 +16,7 @@
|
|||||||
<button id="load_albums_button">Load Albums</button>
|
<button id="load_albums_button">Load Albums</button>
|
||||||
<select id="album_selector" size="8"> </select>
|
<select id="album_selector" size="8"> </select>
|
||||||
<button id="load_photos_button">Load Photos</button>
|
<button id="load_photos_button">Load Photos</button>
|
||||||
|
<button id="make_collage_button">Make Collage</button>
|
||||||
</div>
|
</div>
|
||||||
<div id="selected_photos">
|
<div id="selected_photos">
|
||||||
<div>1<img src="stock.svg" /> </div>
|
<div>1<img src="stock.svg" /> </div>
|
||||||
|
@ -8,6 +8,9 @@ let loadAlbumsBtn
|
|||||||
/** @type {HTMLButtonElement} */
|
/** @type {HTMLButtonElement} */
|
||||||
let loadPhotosBtn
|
let loadPhotosBtn
|
||||||
|
|
||||||
|
/** @type {HTMLButtonElement} */
|
||||||
|
let makeCollageBtn
|
||||||
|
|
||||||
/** @type {HTMLSelectElement} */
|
/** @type {HTMLSelectElement} */
|
||||||
let albumSelect
|
let albumSelect
|
||||||
|
|
||||||
@ -30,12 +33,14 @@ function main() {
|
|||||||
albumSelect = document.getElementById("album_selector")
|
albumSelect = document.getElementById("album_selector")
|
||||||
loadAlbumsBtn = document.getElementById("load_albums_button")
|
loadAlbumsBtn = document.getElementById("load_albums_button")
|
||||||
loadPhotosBtn = document.getElementById("load_photos_button")
|
loadPhotosBtn = document.getElementById("load_photos_button")
|
||||||
|
makeCollageBtn = document.getElementById("make_collage_button")
|
||||||
noticeDialog = document.getElementById("notice_dialog")
|
noticeDialog = document.getElementById("notice_dialog")
|
||||||
albumPhotosDiv = document.getElementById("album_photos")
|
albumPhotosDiv = document.getElementById("album_photos")
|
||||||
selectedPhotosDiv = document.getElementById("selected_photos")
|
selectedPhotosDiv = document.getElementById("selected_photos")
|
||||||
noticeP = document.getElementById("notice_p")
|
noticeP = document.getElementById("notice_p")
|
||||||
loadAlbumsBtn.onclick = () => loadAlbums()
|
loadAlbumsBtn.onclick = () => loadAlbums()
|
||||||
loadPhotosBtn.onclick = () => loadPhotos()
|
loadPhotosBtn.onclick = () => loadPhotos()
|
||||||
|
makeCollageBtn.onclick = () => gotoCollage()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @type HTMLImageElement[]
|
* @type HTMLImageElement[]
|
||||||
@ -125,5 +130,24 @@ function loadPhotos() {
|
|||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function gotoCollage() {
|
||||||
|
/**
|
||||||
|
* @type HTMLImageElement[]
|
||||||
|
*/
|
||||||
|
const selectedPhotos = selectedPhotosDiv.getElementsByTagName("img")
|
||||||
|
/**
|
||||||
|
* @type String[]
|
||||||
|
*/
|
||||||
|
let photoUrls = [];
|
||||||
|
|
||||||
|
for (const img of selectedPhotos) {
|
||||||
|
if (!img.src.endsWith("stock.svg")) {
|
||||||
|
photoUrls.push(img.src)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const encodedURLS = encodeURIComponent(JSON.stringify(photoUrls))
|
||||||
|
window.location.href = `index.html?urls=${encodedURLS}`
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
main()
|
main()
|
||||||
|
10
web/index.js
10
web/index.js
@ -51,7 +51,7 @@ let collageUrlA
|
|||||||
|
|
||||||
let crops = [];
|
let crops = [];
|
||||||
let pageSize = "letter-landscape";
|
let pageSize = "letter-landscape";
|
||||||
const imageUrls = [
|
let imageUrls = [
|
||||||
, // images start with index 1
|
, // images start with index 1
|
||||||
"images/img1.jpg",
|
"images/img1.jpg",
|
||||||
"images/img2.jpg",
|
"images/img2.jpg",
|
||||||
@ -75,6 +75,8 @@ function main() {
|
|||||||
for(const tmpl of document.getElementsByClassName("template")) {
|
for(const tmpl of document.getElementsByClassName("template")) {
|
||||||
tmpl.onclick = () => applyTemplate(tmpl)
|
tmpl.onclick = () => applyTemplate(tmpl)
|
||||||
}
|
}
|
||||||
|
const queryUrls = loadImageUrlsFromQuery()
|
||||||
|
imageUrls = [,].concat(queryUrls)
|
||||||
|
|
||||||
applyTemplate(document.getElementById("default_template"))
|
applyTemplate(document.getElementById("default_template"))
|
||||||
}
|
}
|
||||||
@ -210,4 +212,10 @@ function applyTemplate(templateDiv) {
|
|||||||
initCollage()
|
initCollage()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function loadImageUrlsFromQuery() {
|
||||||
|
const params = new URLSearchParams(window.location.search)
|
||||||
|
const urlsstr = params.get('urls')
|
||||||
|
return JSON.parse(urlsstr)
|
||||||
|
}
|
||||||
|
|
||||||
main()
|
main()
|
||||||
|
Loading…
Reference in New Issue
Block a user