Initialer Import des AssetManagers

This commit is contained in:
2026-08-02 21:28:50 +00:00
commit ed72ce8821
256 changed files with 26361 additions and 0 deletions
+53
View File
@@ -0,0 +1,53 @@
(() => {
const container = document.getElementById('toast-container');
if (!container) return;
const body = document.body;
const allowedPositions = new Set([
'top-left', 'top-center', 'top-right',
'bottom-left', 'bottom-center', 'bottom-right'
]);
const position = allowedPositions.has(body.dataset.toastPosition)
? body.dataset.toastPosition
: 'top-right';
const seconds = Math.max(1, Math.min(120, Number.parseInt(body.dataset.toastDuration || '6', 10) || 6));
container.classList.add(`toast-position-${position}`);
const params = new URLSearchParams(window.location.search);
const entries = [
['toast_error', 'error'],
['toast_warning', 'warning'],
['toast_success', 'success']
];
function showToast(message, level) {
if (!message) return;
const toast = document.createElement('div');
toast.className = `toast toast-${level}`;
const symbol = level === 'success' ? '✓' : level === 'warning' ? '⚠' : '✕';
toast.innerHTML = `<span class="toast-symbol">${symbol}</span><span class="toast-message"></span><button type="button" class="toast-close" aria-label="Schließen">×</button>`;
toast.querySelector('.toast-message').textContent = message;
toast.querySelector('.toast-close').addEventListener('click', () => toast.remove());
container.appendChild(toast);
window.setTimeout(() => {
toast.classList.add('toast-hide');
window.setTimeout(() => toast.remove(), 350);
}, seconds * 1000);
}
let changed = false;
entries.forEach(([key, level]) => {
const values = params.getAll(key);
values.forEach(value => showToast(value, level));
if (values.length) {
params.delete(key);
changed = true;
}
});
if (changed) {
const query = params.toString();
const cleanUrl = `${window.location.pathname}${query ? `?${query}` : ''}${window.location.hash}`;
window.history.replaceState({}, document.title, cleanUrl);
}
})();