refactor: Inline-Styles durch CSS-Klassen ersetzt
- 40+ Utility-Klassen in form.css (clickable, text-danger, flex-row, loading-state, etc.) - share-menu position/z-index in chat.css statt inline - index.html: 0 Inline-Styles (hidden-Attribut, CSS-Klassen) - 12 JS-Dateien bereinigt: style.cssText/style.* durch classList ersetzt - Bugfix: var(--danger) → var(--dangerous) (nicht existierende Variable) - display:none Toggles → hidden-Attribut wo passend - Hardcoded font-sizes in chat.css → var(--font-size) 15 Dateien, nur Frontend (CSS/JS/HTML), kein Backend
This commit is contained in:
1 parent
e368abced0
commit
ce50633e33
15 files changed
+109
-76
No files matched your search
+17
-19
@@ -72,7 +72,7 @@ async function showSystemPromptModal(sessionId) {
|
||||
body.innerHTML = '';
|
||||
_renderSystemPromptBlocks(body, blocks);
|
||||
} catch (e) {
|
||||
body.innerHTML = '<div class="sp-loading" style="color:var(--dangerous)">Fehler beim Laden des System-Prompts</div>';
|
||||
body.innerHTML = '<div class="sp-loading text-danger">Fehler beim Laden des System-Prompts</div>';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ function showKreaImageModal(titleText, fullUrl) {
|
||||
img.className = 'krea-modal-image';
|
||||
img.alt = titleText;
|
||||
img.addEventListener('error', function() {
|
||||
body.innerHTML = '<div class="sp-loading" style="color:var(--dangerous)">Bild konnte nicht geladen werden</div>';
|
||||
body.innerHTML = '<div class="sp-loading text-danger">Bild konnte nicht geladen werden</div>';
|
||||
});
|
||||
|
||||
body.appendChild(img);
|
||||
@@ -137,7 +137,7 @@ function _openPickerModal(title, items, currentId, onSelect, options) {
|
||||
const noneCard = document.createElement('div');
|
||||
noneCard.className = 'card agent-picker-item' + (!currentId ? ' selected' : '');
|
||||
noneCard.innerHTML = `
|
||||
<div class="card-image" style="display:flex;align-items:center;justify-content:center"><i class="fa ${esc(noneIcon)}" style="font-size:2em;opacity:var(--semi-transparent)"></i></div>
|
||||
<div class="card-image none-card-image"><i class="fa ${esc(noneIcon)} none-card-icon"></i></div>
|
||||
<div class="card-body">
|
||||
<div class="card-title-row">
|
||||
<span class="card-title">${esc(noneLabel)}</span>
|
||||
@@ -268,16 +268,14 @@ async function showOpenClawImportModal(sessionId) {
|
||||
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';
|
||||
card.classList.add('loading-state');
|
||||
|
||||
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 = '';
|
||||
card.classList.remove('loading-state');
|
||||
showToast('Import fehlgeschlagen: ' + e.message, 'error');
|
||||
}
|
||||
});
|
||||
@@ -288,7 +286,7 @@ async function showOpenClawImportModal(sessionId) {
|
||||
|
||||
body.appendChild(list);
|
||||
} catch (e) {
|
||||
body.innerHTML = '<div class="sp-loading" style="color:var(--dangerous)">Fehler: ' + esc(e.message) + '</div>';
|
||||
body.innerHTML = '<div class="sp-loading text-danger">Fehler: ' + esc(e.message) + '</div>';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -308,14 +306,14 @@ async function showRemoteModal(sessionId) {
|
||||
var empty = document.createElement('div');
|
||||
empty.className = 'sp-loading';
|
||||
empty.innerHTML = 'Keine Remote-Verbindungen aktiv.<br><br>' +
|
||||
'<span style="font-size:var(--font-size);opacity:var(--semi-transparent)">Auf dem Windows-PC ausführen:<br>' +
|
||||
'<span class="font-sm semi-transparent">Auf dem Windows-PC ausführen:<br>' +
|
||||
'<code>irm ' + esc(location.origin) + '/remote | iex</code></span>';
|
||||
body.appendChild(empty);
|
||||
return;
|
||||
}
|
||||
|
||||
var hint = document.createElement('div');
|
||||
hint.style.cssText = 'font-size:var(--font-size);opacity:var(--semi-transparent);margin-bottom:var(--box-spacing)';
|
||||
hint.className = 'remote-hint';
|
||||
hint.textContent = 'Verbindung auswählen um Remote-Befehle in dieser Session zu ermöglichen:';
|
||||
body.appendChild(hint);
|
||||
|
||||
@@ -323,7 +321,7 @@ async function showRemoteModal(sessionId) {
|
||||
var conn = connections[i];
|
||||
var card = document.createElement('div');
|
||||
card.className = 'sp-block';
|
||||
card.style.cursor = 'pointer';
|
||||
card.classList.add('clickable');
|
||||
|
||||
var isAssigned = conn.assignedSessionId === sessionId;
|
||||
var isAssignedOther = conn.assignedSessionId && conn.assignedSessionId !== sessionId;
|
||||
@@ -331,17 +329,17 @@ async function showRemoteModal(sessionId) {
|
||||
var label = document.createElement('div');
|
||||
label.className = 'sp-block-label';
|
||||
var statusIcon = isAssigned ? 'fa-check-circle' : (isAssignedOther ? 'fa-link' : 'fa-desktop');
|
||||
var statusColor = isAssigned ? 'color:var(--primary)' : '';
|
||||
label.innerHTML = '<i class="fa ' + statusIcon + '" style="' + statusColor + '"></i> ' +
|
||||
var statusClass = isAssigned ? ' text-primary' : '';
|
||||
label.innerHTML = '<i class="fa ' + statusIcon + statusClass + '"></i> ' +
|
||||
esc(conn.username || '?') + '@' + esc(conn.hostname || '?');
|
||||
card.appendChild(label);
|
||||
|
||||
var content = document.createElement('div');
|
||||
content.className = 'sp-block-content';
|
||||
content.style.cssText = 'font-size:var(--font-size);display:flex;align-items:center;gap:var(--box-spacing)';
|
||||
content.className = 'remote-card-content';
|
||||
|
||||
var info = document.createElement('span');
|
||||
info.style.cssText = 'flex:1;opacity:var(--semi-transparent)';
|
||||
info.className = 'remote-card-info';
|
||||
var connDate = new Date(conn.connectedAt);
|
||||
info.textContent = conn.os + ' • Verbunden seit ' + connDate.toLocaleTimeString('de');
|
||||
content.appendChild(info);
|
||||
@@ -349,14 +347,14 @@ async function showRemoteModal(sessionId) {
|
||||
var btn = document.createElement('button');
|
||||
if (isAssigned) {
|
||||
btn.textContent = 'Trennen';
|
||||
btn.style.cssText = 'color:var(--dangerous)';
|
||||
btn.classList.add('text-danger');
|
||||
} else if (isAssignedOther) {
|
||||
btn.textContent = 'Andere Session';
|
||||
btn.disabled = true;
|
||||
btn.style.cssText = 'opacity:var(--semi-transparent)';
|
||||
btn.classList.add('semi-transparent');
|
||||
} else {
|
||||
btn.textContent = 'Verbinden';
|
||||
btn.style.cssText = 'color:var(--primary)';
|
||||
btn.classList.add('text-primary');
|
||||
}
|
||||
content.appendChild(btn);
|
||||
|
||||
@@ -383,7 +381,7 @@ async function showRemoteModal(sessionId) {
|
||||
})(conn, isAssigned);
|
||||
}
|
||||
} catch (e) {
|
||||
body.innerHTML = '<div class="sp-loading" style="color:var(--dangerous)">Fehler beim Laden: ' + esc(e.message) + '</div>';
|
||||
body.innerHTML = '<div class="sp-loading text-danger">Fehler beim Laden: ' + esc(e.message) + '</div>';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user