';
return;
}
body.innerHTML = '';
var hint = document.createElement('div');
hint.className = 'openclaw-hint';
hint.textContent = 'Wähle eine OpenClaw-Session zum Importieren. Vorherige Imports werden aktualisiert.';
body.appendChild(hint);
var list = document.createElement('div');
list.className = 'openclaw-session-list';
for (var i = 0; i < sessions.length; i++) {
var s = sessions[i];
var card = document.createElement('div');
card.className = 'openclaw-session-card';
// Header
var header = document.createElement('div');
header.className = 'openclaw-card-header';
var idSpan = document.createElement('span');
idSpan.className = 'openclaw-session-id';
idSpan.textContent = s.sessionId.substring(0, 8) + '…';
idSpan.title = s.sessionId;
header.appendChild(idSpan);
var meta = document.createElement('span');
meta.className = 'openclaw-card-meta';
meta.innerHTML = ' ' + esc(formatDate(s.createdAt)) + ''
+ ' ' + s.totalMessages + ' Nachrichten'
+ (s.model && s.model !== 'unknown' ? ' ' + esc(s.model) + '' : '');
header.appendChild(meta);
card.appendChild(header);
// Summary
if (s.summary) {
var summary = document.createElement('div');
summary.className = 'openclaw-summary';
// Take first line of summary that's meaningful (skip empty lines and headers)
var summaryLines = s.summary.split('\n').filter(function(l) { return l.trim() && !l.startsWith('#'); });
var summaryText = summaryLines.slice(0, 2).join(' ').trim();
if (summaryText.length > 150) summaryText = summaryText.substring(0, 150) + '…';
summary.textContent = summaryText || s.summary.substring(0, 150);
card.appendChild(summary);
}
// Preview messages
if (s.previewMessages && s.previewMessages.length > 0) {
var preview = document.createElement('div');
preview.className = 'openclaw-preview';
for (var j = 0; j < s.previewMessages.length; j++) {
var pm = s.previewMessages[j];
var line = document.createElement('div');
line.className = 'openclaw-preview-msg openclaw-preview-' + pm.role;
var icon = pm.role === 'user' ? 'fa-user' : 'fa-cog';
line.innerHTML = ' ' + esc(pm.text) + '';
preview.appendChild(line);
}
card.appendChild(preview);
}
// Click handler - capture session in closure
(function(openclawSession) {
card.addEventListener('click', async function() {
// Confirm
var confirmed = confirm('OpenClaw-Session importieren?\n\nSession: ' + openclawSession.sessionId.substring(0, 8) + '…\n' + openclawSession.totalMessages + ' Nachrichten\n\nVorhandene Imports werden ersetzt.');
if (!confirmed) return;
card.style.opacity = '0.5';
card.style.pointerEvents = 'none';
try {
var result = await apiImportOpenclawSession(openclawSession.sessionId, sessionId);
close();
showToast(result.messageCount + ' Nachrichten in ' + result.chainCount + ' Chains importiert', 'success');
} catch (e) {
card.style.opacity = '1';
card.style.pointerEvents = '';
showToast('Import fehlgeschlagen: ' + e.message, 'error');
}
});
})(s);
list.appendChild(card);
}
body.appendChild(list);
} catch (e) {
body.innerHTML = '
Fehler: ' + esc(e.message) + '
';
}
}
// Event-Delegation für Krea-Thumbnails im Chat
document.addEventListener('click', function(e) {
var ref = e.target.closest('.krea-ref');
if (ref) {
var fullUrl = ref.dataset.fullurl;
var filename = ref.dataset.filename;
if (fullUrl) showKreaImageModal(filename || 'Bild', fullUrl);
}
});