fmeshsync fix with synology,vm's and lxc

This commit is contained in:
root
2026-08-08 19:44:27 +02:00
parent 2786f12ab6
commit 5e32be7d0c
41 changed files with 1335 additions and 1674 deletions
+48 -5
View File
@@ -9,6 +9,11 @@
const ignoreEmpty = document.getElementById('duplicate-ignore-empty');
const caseInsensitive = document.getElementById('duplicate-case-insensitive');
const summary = document.getElementById('duplicate-search-summary');
const contextStatus = document.getElementById('asset-context-filter-status');
const duplicateChip = document.getElementById('asset-duplicate-filter-chip');
const duplicateLabel = document.getElementById('asset-duplicate-filter-label');
const duplicateRemove = document.getElementById('asset-duplicate-filter-remove');
const categoryRemove = document.getElementById('asset-category-filter-remove');
if (!table || !openButton || !dialog || table.dataset.duplicateSearchReady === '1') return;
table.dataset.duplicateSearchReady = '1';
@@ -26,6 +31,17 @@
label: th.dataset.label || th.textContent.trim()
}));
function refreshContextStatus() {
const categoryChip = document.getElementById('asset-category-filter-chip');
const duplicateActive = table.dataset.duplicateFilterActive === '1';
if (duplicateChip) duplicateChip.hidden = !duplicateActive;
if (contextStatus) {
const hasActive = Boolean(categoryChip) || duplicateActive;
contextStatus.hidden = !hasActive;
contextStatus.classList.toggle('is-active', hasActive);
}
}
function fillSelect() {
const previous = select.value;
select.innerHTML = '';
@@ -42,8 +58,13 @@
function clearDuplicateFilter() {
dataRows().forEach(row => row.classList.remove('duplicate-hidden', 'duplicate-match'));
summary.hidden = true;
window.dispatchEvent(new Event('asset-table-filter-changed'));
delete table.dataset.duplicateFilterActive;
delete table.dataset.duplicateFilterTotal;
delete table.dataset.duplicateFilterField;
if (summary) summary.hidden = true;
if (duplicateLabel) duplicateLabel.textContent = '';
refreshContextStatus();
window.dispatchEvent(new CustomEvent('asset-table-filter-changed', {detail: {table}}));
}
function normalize(value) {
@@ -93,9 +114,24 @@
}
});
summary.textContent = `${duplicateRows.size} Datensätze in ${duplicateGroups} Dublettengruppen gefunden.`;
summary.hidden = false;
window.dispatchEvent(new Event('asset-table-filter-changed'));
table.dataset.duplicateFilterActive = '1';
table.dataset.duplicateFilterTotal = String(duplicateRows.size);
table.dataset.duplicateFilterField = field;
const selectedOption = select.options[select.selectedIndex];
const fieldLabel = selectedOption?.textContent?.trim() || field;
const duplicateTemplate = contextStatus?.dataset.duplicateTemplate || 'Duplikate: {field}';
if (duplicateLabel) duplicateLabel.textContent = duplicateTemplate.replace('{field}', fieldLabel);
refreshContextStatus();
const summaryTemplate = dialog.dataset.resultSummaryTemplate || '{records} Datensätze in {groups} Dublettengruppen gefunden.';
if (summary) {
summary.textContent = summaryTemplate
.replace('{records}', String(duplicateRows.size))
.replace('{groups}', String(duplicateGroups));
summary.hidden = false;
}
window.dispatchEvent(new CustomEvent('asset-table-filter-changed', {detail: {table}}));
dialog.close();
}
@@ -108,6 +144,13 @@
});
applyButton.addEventListener('click', applyDuplicateFilter);
clearButton.addEventListener('click', clearDuplicateFilter);
duplicateRemove?.addEventListener('click', clearDuplicateFilter);
categoryRemove?.addEventListener('click', () => {
const url = new URL(window.location.href);
url.searchParams.delete('category_id');
window.location.assign(url.toString());
});
refreshContextStatus();
}
if (document.readyState === 'loading') {