Initialer Import des AssetManagers
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
(() => {
|
||||
const page = document.getElementById('asset-list-page');
|
||||
const loader = document.getElementById('asset-page-loader');
|
||||
const table = document.getElementById('asset-table');
|
||||
if (!page || !table) return;
|
||||
|
||||
const required = [
|
||||
'tableToolsReady',
|
||||
'browserStateReady',
|
||||
'columnOrderReady',
|
||||
'columnManagerReady'
|
||||
];
|
||||
let revealed = false;
|
||||
let fallbackTimer = 0;
|
||||
|
||||
function ready() {
|
||||
return required.every(marker => table.dataset[marker] === '1');
|
||||
}
|
||||
|
||||
function reveal() {
|
||||
if (revealed) return;
|
||||
revealed = true;
|
||||
clearTimeout(fallbackTimer);
|
||||
|
||||
const finish = () => requestAnimationFrame(() => {
|
||||
page.classList.remove('asset-list-initializing');
|
||||
page.setAttribute('aria-busy', 'false');
|
||||
document.documentElement.classList.remove('asset-page-booting');
|
||||
loader?.setAttribute('hidden', '');
|
||||
window.dispatchEvent(new CustomEvent('asset-page-ready', {
|
||||
detail: { table }
|
||||
}));
|
||||
});
|
||||
|
||||
if (document.fonts?.ready) {
|
||||
document.fonts.ready.then(finish, finish);
|
||||
} else {
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
||||
function check() {
|
||||
if (ready()) reveal();
|
||||
}
|
||||
|
||||
[
|
||||
'asset-table-structure-ready',
|
||||
'asset-table-state-ready',
|
||||
'asset-table-column-order-ready',
|
||||
'asset-table-columns-ready',
|
||||
'asset-list-count-updated'
|
||||
].forEach(name => window.addEventListener(name, check));
|
||||
|
||||
if (document.readyState === 'loading') {
|
||||
document.addEventListener('DOMContentLoaded', check, { once: true });
|
||||
} else {
|
||||
check();
|
||||
}
|
||||
|
||||
fallbackTimer = window.setTimeout(reveal, 2500);
|
||||
})();
|
||||
Reference in New Issue
Block a user