$(() => { function RebuildAccess() { let storedAccessLinks = JSON.parse(localStorage?.getItem("accessLinks") || "[]") || []; if (storedAccessLinks && storedAccessLinks.length) { LoadingTasks.push(() => { return window.linkLogin(storedAccessLinks); }); } else { LoadingTasks.push(() => { return new Promise(ok => { $.get("/api/access/list", data => { window.ReloadAccessList(data); ok(); }); }); }); } } let loadingMediaList = false; function ReadMediaList() { if (loadingMediaList) return; LoadingTasks.push(() => { return new Promise(ok => { let chronology = window.chronology.isInitialized() ? "" : "&chronology" let oldest = (MediaStorage.Instance.oldest?.date?.getTime() || 0); let oldestArg = oldest ? `&from=${oldest}` : ""; $.get(`/api/media/list?count=100${chronology}${oldestArg}`, data => { MediaStorage.Instance.pushAll(data.data.map(i => new Media(i))); if (data.first || data.last) window.chronology.rebuildRange(data.first, data.last); loadingMediaList = false; if ((data.data?.length || 0) === 0) { loadingMediaList = true; document.getElementById("pch-infiniteScrollLoading").classList.add("hidden"); window.ReloadFilters(MediaStorage.Instance); } else setTimeout(ReadMediaList, 25); ok(); }); }); }); } function loadHash(md5sum) { if (md5sum && md5sum.length) LoadingTasks.push(async () => displayMediaFullPage(await MediaStorage.Instance.getMedia(md5sum))); else document.getElementById("pch-fullPageMedia").classList.add("hidden"); } window.addEventListener("hashchange", x => { x.preventDefault(); loadHash(document.location?.hash?.substr(1)) return true; }); onScrollBottom = (function () { this.lastCall= null; this.fnc = () => { if (this.lastCall !== null) return; this.lastCall = setTimeout(() => { this.lastCall = null; }, 1000); window.displayMoreMedia(); }; return this; })(); window.addEventListener("scroll", evt => { if (window.scrollY+window.innerHeight >= document.body.clientHeight) onScrollBottom.fnc(); }); RebuildAccess(); loadHash(document.location?.hash?.substr(1)); ReadMediaList(); });