46 lines
1.0 KiB
JavaScript
46 lines
1.0 KiB
JavaScript
|
"use strict";
|
||
|
|
||
|
// elements
|
||
|
|
||
|
/** @type {HTMLButtonElement} */
|
||
|
let loadAlbumsBtn
|
||
|
|
||
|
/** @type {HTMLButtonElement} */
|
||
|
let loadPhotosBtn
|
||
|
|
||
|
/** @type {HTMLSelectElement} */
|
||
|
let albumSelect
|
||
|
|
||
|
function main() {
|
||
|
albumSelect = document.getElementById("album_selector")
|
||
|
loadAlbumsBtn = document.getElementById("load_albums_button")
|
||
|
loadPhotosBtn = document.getElementById("load_photos_button")
|
||
|
loadAlbumsBtn.onclick = () => loadAlbums()
|
||
|
loadPhotosBtn.onclick = () => loadPhotos()
|
||
|
}
|
||
|
|
||
|
function loadAlbums() {
|
||
|
(async () => {
|
||
|
const resp = await fetch("get-albums")
|
||
|
const albums = await resp.json()
|
||
|
albumSelect.replaceChildren() // This empties existing options
|
||
|
for(const album of albums) {
|
||
|
albumSelect.add(new Option(album.Title, album.UID))
|
||
|
}
|
||
|
})();
|
||
|
}
|
||
|
|
||
|
function loadPhotos() {
|
||
|
const selected = albumSelect.selectedOptions
|
||
|
if(selected.length != 1) {
|
||
|
return
|
||
|
}
|
||
|
const [elem] = selected
|
||
|
console.log(elem)
|
||
|
console.log(elem.text)
|
||
|
console.log(elem.value)
|
||
|
}
|
||
|
|
||
|
|
||
|
main()
|