$(() => { 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}` : ""; let requestCount = 300; $.get(`/api/media/list?count=${requestCount}${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) < requestCount) { 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(); }); AccessManager.RebuildAccess(); loadHash(document.location?.hash?.substr(1)); ReadMediaList(); });