15027 lines
533 KiB
Markdown
15027 lines
533 KiB
Markdown
# i18n: vermutlich noch ohne t()
|
||
|
||
Anzahl Einträge (heuristisch): **2146**
|
||
|
||
Hinweis: Einige Treffer können falsch positiv sein (technische Strings). Vor `apply` prüfen.
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:86
|
||
|
||
- **Text:** 'Regel löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Regel löschen"`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:140
|
||
|
||
- **Text:** 'Delete'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.permissionLabel}>Delete</span>`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:204
|
||
|
||
- **Text:** 'z.B. data.feature.trustee.TrusteePosition'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` return 'z.B. data.feature.trustee.TrusteePosition';`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:206
|
||
|
||
- **Text:** 'z.B. ui.feature.trustee.dashboard'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` return 'z.B. ui.feature.trustee.dashboard';`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:208
|
||
|
||
- **Text:** 'z.B. resource.feature.trustee.documents.create'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` return 'z.B. resource.feature.trustee.documents.create';`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:220
|
||
|
||
- **Text:** 'Objekt auswählen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={styles.formLabel}>Objekt auswählen</label>`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:226
|
||
|
||
- **Text:** '← Aus Katalog wählen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {useCustom ? '← Aus Katalog wählen' : 'Freie Eingabe →'}`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:226
|
||
|
||
- **Text:** 'Freie Eingabe →'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {useCustom ? '← Aus Katalog wählen' : 'Freie Eingabe →'}`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:245
|
||
|
||
- **Text:** '-- Global (alle Objekte) --'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">-- Global (alle Objekte) --</option>`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:280
|
||
|
||
- **Text:** 'Eigene (m)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.matrixGroup}>Eigene (m)</div>`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:281
|
||
|
||
- **Text:** 'Gruppe (g)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.matrixGroup}>Gruppe (g)</div>`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:282
|
||
|
||
- **Text:** 'Alle (a)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.matrixGroup}>Alle (a)</div>`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:289
|
||
|
||
- **Text:** 'Delete'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const labels = { create: 'Create', read: 'Read', update: 'Update', delete: 'Delete' };`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:372
|
||
|
||
- **Text:** 'Keine Daten-Regeln definiert'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` case 'DATA': return 'Keine Daten-Regeln definiert';`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:373
|
||
|
||
- **Text:** 'Keine UI-Regeln definiert'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` case 'UI': return 'Keine UI-Regeln definiert';`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:374
|
||
|
||
- **Text:** 'Keine Ressourcen-Regeln definiert'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` case 'RESOURCE': return 'Keine Ressourcen-Regeln definiert';`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:392
|
||
|
||
- **Text:** 'Tabellenansicht'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Tabellenansicht"`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:399
|
||
|
||
- **Text:** 'Kartenansicht'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Kartenansicht"`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:430
|
||
|
||
- **Text:** 'Neue Regel'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` Klicken Sie auf "Neue Regel" um eine Berechtigung hinzuzufügen.`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:480
|
||
|
||
- **Text:** 'JSON muss ein Array sein'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` throw new Error('JSON muss ein Array sein');`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:605
|
||
|
||
- **Text:** 'Fehler beim Speichern'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Speichern');`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:631
|
||
|
||
- **Text:** 'Daten'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { id: 'DATA', label: 'Daten', icon: <FaTable />, count: groupedRules.DATA.length },`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:632
|
||
|
||
- **Text:** 'UI'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { id: 'UI', label: 'UI', icon: <FaDesktop />, count: groupedRules.UI.length },`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:633
|
||
|
||
- **Text:** 'Ressourcen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { id: 'RESOURCE', label: 'Ressourcen', icon: <FaServer />, count: groupedRules.RESOURCE.length },`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:634
|
||
|
||
- **Text:** 'JSON'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { id: 'JSON', label: 'JSON', icon: <FaCode />, count: rules.length },`
|
||
|
||
## `src/components/AccessRules/AccessRulesEditor.tsx`:642
|
||
|
||
- **Text:** 'Lade Berechtigungen...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Berechtigungen...</span>`
|
||
|
||
## `src/components/AccessRules/AccessRulesTable.tsx`:112
|
||
|
||
- **Text:** 'Sichtbar'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Sichtbar"`
|
||
|
||
## `src/components/AccessRules/AccessRulesTable.tsx`:166
|
||
|
||
- **Text:** 'Regel löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Regel löschen"`
|
||
|
||
## `src/components/AccessRules/AccessRulesTable.tsx`:198
|
||
|
||
- **Text:** 'Objekt (Dot-Notation)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <th className={styles.colObject}>Objekt (Dot-Notation)</th>`
|
||
|
||
## `src/components/AccessRules/AccessRulesTable.tsx`:202
|
||
|
||
- **Text:** 'Eigene (m)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <th className={styles.colGroupHeader} colSpan={4}>Eigene (m)</th>`
|
||
|
||
## `src/components/AccessRules/AccessRulesTable.tsx`:203
|
||
|
||
- **Text:** 'Gruppe (g)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <th className={styles.colGroupHeader} colSpan={4}>Gruppe (g)</th>`
|
||
|
||
## `src/components/AccessRules/AccessRulesTable.tsx`:204
|
||
|
||
- **Text:** 'Alle (a)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <th className={styles.colGroupHeader} colSpan={4}>Alle (a)</th>`
|
||
|
||
## `src/components/AccessRules/AccessRulesTable.tsx`:213
|
||
|
||
- **Text:** 'Create'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <th title="Create">C</th>`
|
||
|
||
## `src/components/AccessRules/AccessRulesTable.tsx`:214
|
||
|
||
- **Text:** 'Read'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <th title="Read">R</th>`
|
||
|
||
## `src/components/AccessRules/AccessRulesTable.tsx`:215
|
||
|
||
- **Text:** 'Update'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <th title="Update">U</th>`
|
||
|
||
## `src/components/AccessRules/AccessRulesTable.tsx`:216
|
||
|
||
- **Text:** 'Delete'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <th title="Delete">D</th>`
|
||
|
||
## `src/components/AccessRules/AccessRulesTable.tsx`:217
|
||
|
||
- **Text:** 'Create'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <th title="Create">C</th>`
|
||
|
||
## `src/components/AccessRules/AccessRulesTable.tsx`:218
|
||
|
||
- **Text:** 'Read'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <th title="Read">R</th>`
|
||
|
||
## `src/components/AccessRules/AccessRulesTable.tsx`:219
|
||
|
||
- **Text:** 'Update'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <th title="Update">U</th>`
|
||
|
||
## `src/components/AccessRules/AccessRulesTable.tsx`:220
|
||
|
||
- **Text:** 'Delete'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <th title="Delete">D</th>`
|
||
|
||
## `src/components/AccessRules/AccessRulesTable.tsx`:221
|
||
|
||
- **Text:** 'Create'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <th title="Create">C</th>`
|
||
|
||
## `src/components/AccessRules/AccessRulesTable.tsx`:222
|
||
|
||
- **Text:** 'Read'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <th title="Read">R</th>`
|
||
|
||
## `src/components/AccessRules/AccessRulesTable.tsx`:223
|
||
|
||
- **Text:** 'Update'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <th title="Update">U</th>`
|
||
|
||
## `src/components/AccessRules/AccessRulesTable.tsx`:224
|
||
|
||
- **Text:** 'Delete'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <th title="Delete">D</th>`
|
||
|
||
## `src/components/Chat/ChatInput.tsx`:20
|
||
|
||
- **Text:** 'Type a message...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder = 'Type a message...',`
|
||
|
||
## `src/components/Chat/ChatInput.tsx`:55
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderTop: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/components/Chat/ChatInput.tsx`:71
|
||
|
||
- **Text:** '1px solid var(--border-color, #ddd)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #ddd)',`
|
||
|
||
## `src/components/Chat/ChatMessageList.tsx`:34
|
||
|
||
- **Text:** 'No messages yet.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage = 'No messages yet.',`
|
||
|
||
## `src/components/ContentPreview/ContentPreview.tsx`:64
|
||
|
||
- **Text:** 'Invalid file ID'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError('Invalid file ID');`
|
||
|
||
## `src/components/ContentPreview/ContentPreview.tsx`:67
|
||
|
||
- **Text:** 'Unknown Item'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` if (!fileName || fileName === 'Unknown Item') {`
|
||
|
||
## `src/components/ContentPreview/ContentPreview.tsx`:68
|
||
|
||
- **Text:** 'File name not available'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError('File name not available');`
|
||
|
||
## `src/components/ContentPreview/ContentPreview.tsx`:96
|
||
|
||
- **Text:** 's text content but MIME type says PDF, we'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` // If it's text content but MIME type says PDF, we'll handle it in renderPreview`
|
||
|
||
## `src/components/ContentPreview/ContentPreview.tsx`:98
|
||
|
||
- **Text:** 'Failed to load preview'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(result.error || 'Failed to load preview');`
|
||
|
||
## `src/components/ContentPreview/ContentPreview.tsx`:101
|
||
|
||
- **Text:** 'An unexpected error occurred while loading the preview'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError('An unexpected error occurred while loading the preview');`
|
||
|
||
## `src/components/ContentPreview/ContentPreview.tsx`:171
|
||
|
||
- **Text:** 'Failed to load PDF preview'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` onError={() => setError('Failed to load PDF preview')}`
|
||
|
||
## `src/components/ContentPreview/ContentPreview.tsx`:197
|
||
|
||
- **Text:** 'JSON Preview (Fallback)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.jsonTitle}>JSON Preview (Fallback)</span>`
|
||
|
||
## `src/components/ContentPreview/ContentPreview.tsx`:199
|
||
|
||
- **Text:** 'Raw content'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.jsonSize}>Raw content</span>`
|
||
|
||
## `src/components/ContentPreview/ContentPreview.tsx`:204
|
||
|
||
- **Text:** 'No content available'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {previewContent || 'No content available'}`
|
||
|
||
## `src/components/ContentPreview/ContentPreview.tsx`:222
|
||
|
||
- **Text:** 'Failed to load image preview'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` onError={() => setError('Failed to load image preview')}`
|
||
|
||
## `src/components/ContentPreview/ContentPreview.tsx`:233
|
||
|
||
- **Text:** 'Failed to load HTML preview'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` onError={() => setError('Failed to load HTML preview')}`
|
||
|
||
## `src/components/ContentPreview/ContentPreview.tsx`:243
|
||
|
||
- **Text:** 'Failed to load text preview'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` onError={() => setError('Failed to load text preview')}`
|
||
|
||
## `src/components/ContentPreview/ContentPreview.tsx`:260
|
||
|
||
- **Text:** 'Failed to load PDF preview'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` onError={() => setError('Failed to load PDF preview')}`
|
||
|
||
## `src/components/ContentPreview/ContentPreview.tsx`:270
|
||
|
||
- **Text:** 'Failed to load HTML preview'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` onError={() => setError('Failed to load HTML preview')}`
|
||
|
||
## `src/components/ContentPreview/ContentPreview.tsx`:282
|
||
|
||
- **Text:** 'Preview not supported for this file type'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` onError={() => setError('Preview not supported for this file type')}`
|
||
|
||
## `src/components/ContentPreview/UrlContentPreview.tsx`:56
|
||
|
||
- **Text:** 'noopener noreferrer'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` link.rel = 'noopener noreferrer';`
|
||
|
||
## `src/components/ContentPreview/UrlContentPreview.tsx`:82
|
||
|
||
- **Text:** 'Failed to load PDF. This might be due to CORS restrictions. You can try downloading the file or opening it in a new tab.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError('Failed to load PDF. This might be due to CORS restrictions. You can try downloading the file or opening it in a new tab.');`
|
||
|
||
## `src/components/ContentPreview/UrlContentPreview.tsx`:99
|
||
|
||
- **Text:** 'PDF lädt langsam. Sie können es auch direkt herunterladen oder in einem neuen Tab öffnen.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setWarning('PDF lädt langsam. Sie können es auch direkt herunterladen oder in einem neuen Tab öffnen.');`
|
||
|
||
## `src/components/ContentPreview/UrlContentPreview.tsx`:110
|
||
|
||
- **Text:** 'PDF lädt langsam. Versuche alternative Anzeigemethode...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setWarning('PDF lädt langsam. Versuche alternative Anzeigemethode...');`
|
||
|
||
## `src/components/ContentPreview/UrlContentPreview.tsx`:114
|
||
|
||
- **Text:** 'PDF lädt langsam. Bitte verwenden Sie den Download-Button oder öffnen Sie es in einem neuen Tab.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError('PDF lädt langsam. Bitte verwenden Sie den Download-Button oder öffnen Sie es in einem neuen Tab.');`
|
||
|
||
## `src/components/ContentPreview/UrlContentPreview.tsx`:132
|
||
|
||
- **Text:** 'Invalid URL'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError('Invalid URL');`
|
||
|
||
## `src/components/ContentPreview/UrlContentPreview.tsx`:161
|
||
|
||
- **Text:** '1px solid var(--color-border, #e5e7eb)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: '1px solid var(--color-border, #e5e7eb)',`
|
||
|
||
## `src/components/ContentPreview/UrlContentPreview.tsx`:172
|
||
|
||
- **Text:** '1px solid var(--color-border, #e5e7eb)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: '1px solid var(--color-border, #e5e7eb)',`
|
||
|
||
## `src/components/ContentPreview/UrlContentPreview.tsx`:270
|
||
|
||
- **Text:** '1px solid var(--color-border, #e5e7eb)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: '1px solid var(--color-border, #e5e7eb)',`
|
||
|
||
## `src/components/ContentPreview/UrlContentPreview.tsx`:317
|
||
|
||
- **Text:** 'Preview not supported for this file type. Please download the file to view it.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Preview not supported for this file type. Please download the file to view it.</p>`
|
||
|
||
## `src/components/ContentPreview/renderers/JsonRenderer.tsx`:342
|
||
|
||
- **Text:** 'Error: Invalid nested data'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.jsonValue}>Error: Invalid nested data</span>`
|
||
|
||
## `src/components/ContentPreview/renderers/JsonRenderer.tsx`:482
|
||
|
||
- **Text:** 'Raw Content'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` keys: ['Raw Content'],`
|
||
|
||
## `src/components/ContentPreview/renderers/PdfJsRenderer.tsx`:65
|
||
|
||
- **Text:** 'Failed to load PDF'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err instanceof Error ? err.message : 'Failed to load PDF');`
|
||
|
||
## `src/components/ContentPreview/renderers/PdfJsRenderer.tsx`:115
|
||
|
||
- **Text:** 'Failed to render PDF page'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err instanceof Error ? err.message : 'Failed to render PDF page');`
|
||
|
||
## `src/components/ContentPreview/renderers/PdfJsRenderer.tsx`:131
|
||
|
||
- **Text:** 'Fehler beim Laden der PDF: {error}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Fehler beim Laden der PDF: {error}</p>`
|
||
|
||
## `src/components/ContentPreview/renderers/PdfJsRenderer.tsx`:140
|
||
|
||
- **Text:** 'PDF wird geladen...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>PDF wird geladen...</p>`
|
||
|
||
## `src/components/ContentPreview/renderers/PdfJsRenderer.tsx`:152
|
||
|
||
- **Text:** '1px solid var(--color-border, #e5e7eb)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: '1px solid var(--color-border, #e5e7eb)',`
|
||
|
||
## `src/components/ContentPreview/renderers/PdfJsRenderer.tsx`:197
|
||
|
||
- **Text:** '1px solid var(--color-border, #e5e7eb)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--color-border, #e5e7eb)',`
|
||
|
||
## `src/components/ContentPreview/renderers/PdfJsRenderer.tsx`:213
|
||
|
||
- **Text:** '1px solid var(--color-border, #e5e7eb)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--color-border, #e5e7eb)',`
|
||
|
||
## `src/components/ContentPreview/renderers/PdfJsRenderer.tsx`:232
|
||
|
||
- **Text:** '0 2px 8px rgba(0,0,0,0.1)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` boxShadow: '0 2px 8px rgba(0,0,0,0.1)',`
|
||
|
||
## `src/components/ContentPreview/renderers/TextRenderer.tsx`:19
|
||
|
||
- **Text:** 'Text Preview'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.textTitle}>Text Preview</span>`
|
||
|
||
## `src/components/FlowEditor/editor/Automation2FlowEditor.tsx`:59
|
||
|
||
- **Text:** 'Jetzt ausführen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` buildInvocationsForPrimaryKind('manual', [], 'Jetzt ausführen');`
|
||
|
||
## `src/components/FlowEditor/editor/Automation2FlowEditor.tsx`:203
|
||
|
||
- **Text:** 'Keine Nodes im Workflow.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setExecuteResult({ success: false, error: 'Keine Nodes im Workflow.' });`
|
||
|
||
## `src/components/FlowEditor/editor/Automation2FlowEditor.tsx`:228
|
||
|
||
- **Text:** 'Keine Nodes zum Speichern.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setExecuteResult({ success: false, error: 'Keine Nodes zum Speichern.' });`
|
||
|
||
## `src/components/FlowEditor/editor/Automation2FlowEditor.tsx`:238
|
||
|
||
- **Text:** 'Workflow speichern'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Workflow speichern',`
|
||
|
||
## `src/components/FlowEditor/editor/Automation2FlowEditor.tsx`:239
|
||
|
||
- **Text:** 'Neuer Workflow'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` defaultValue: 'Neuer Workflow',`
|
||
|
||
## `src/components/FlowEditor/editor/Automation2FlowEditor.tsx`:240
|
||
|
||
- **Text:** 'Name des Workflows'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` placeholder: 'Name des Workflows',`
|
||
|
||
## `src/components/FlowEditor/editor/Automation2FlowEditor.tsx`:247
|
||
|
||
- **Text:** 'Neuer Workflow'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` label: label.trim() || 'Neuer Workflow',`
|
||
|
||
## `src/components/FlowEditor/editor/Automation2FlowEditor.tsx`:596
|
||
|
||
- **Text:** 'Lade Node-Typen...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Lade Node-Typen...</p>`
|
||
|
||
## `src/components/FlowEditor/editor/CanvasHeader.tsx`:38
|
||
|
||
- **Text:** 'Entwurf'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` draft: { label: 'Entwurf', color: 'var(--warning-color, #ffc107)' },`
|
||
|
||
## `src/components/FlowEditor/editor/CanvasHeader.tsx`:39
|
||
|
||
- **Text:** 'Veröffentlicht'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` published: { label: 'Veröffentlicht', color: 'var(--success-color, #28a745)' },`
|
||
|
||
## `src/components/FlowEditor/editor/CanvasHeader.tsx`:40
|
||
|
||
- **Text:** 'Archiviert'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` archived: { label: 'Archiviert', color: 'var(--text-secondary, #666)' },`
|
||
|
||
## `src/components/FlowEditor/editor/CanvasHeader.tsx`:116
|
||
|
||
- **Text:** 'Meine Vorlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const SCOPE_LABELS: Record<string, string> = { user: 'Meine Vorlagen', instance: 'Instanz', mandate: 'Mandant' };`
|
||
|
||
## `src/components/FlowEditor/editor/CanvasHeader.tsx`:137
|
||
|
||
- **Text:** 'Klicken zum Umbenennen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title={onWorkflowRename ? 'Klicken zum Umbenennen' : undefined}`
|
||
|
||
## `src/components/FlowEditor/editor/CanvasHeader.tsx`:151
|
||
|
||
- **Text:** 'Workflow-Konfiguration (Einstieg / Starts)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Workflow-Konfiguration (Einstieg / Starts)"`
|
||
|
||
## `src/components/FlowEditor/editor/CanvasHeader.tsx`:152
|
||
|
||
- **Text:** 'Workflow-Konfiguration'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` aria-label="Workflow-Konfiguration"`
|
||
|
||
## `src/components/FlowEditor/editor/CanvasHeader.tsx`:170
|
||
|
||
- **Text:** 'Neu aus Vorlage'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Neu aus Vorlage"`
|
||
|
||
## `src/components/FlowEditor/editor/CanvasHeader.tsx`:214
|
||
|
||
- **Text:** 'Als Vorlage speichern'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Als Vorlage speichern"`
|
||
|
||
## `src/components/FlowEditor/editor/CanvasHeader.tsx`:242
|
||
|
||
- **Text:** '— Workflow laden —'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">— Workflow laden —</option>`
|
||
|
||
## `src/components/FlowEditor/editor/CanvasHeader.tsx`:268
|
||
|
||
- **Text:** 'Workspace-Panel (Chats, Dateien, Quellen)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <button type="button" className={styles.retryButton} onClick={onToggleChat} title="Workspace-Panel (Chats, Dateien, Quellen)">`
|
||
|
||
## `src/components/FlowEditor/editor/CanvasHeader.tsx`:285
|
||
|
||
- **Text:** '— Aktuelle —'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">— Aktuelle —</option>`
|
||
|
||
## `src/components/FlowEditor/editor/CanvasHeader.tsx`:310
|
||
|
||
- **Text:** 'Version veröffentlichen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Version veröffentlichen"`
|
||
|
||
## `src/components/FlowEditor/editor/CanvasHeader.tsx`:323
|
||
|
||
- **Text:** 'Veröffentlichung zurücknehmen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Veröffentlichung zurücknehmen"`
|
||
|
||
## `src/components/FlowEditor/editor/CanvasHeader.tsx`:336
|
||
|
||
- **Text:** 'Version archivieren'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Version archivieren"`
|
||
|
||
## `src/components/FlowEditor/editor/CanvasHeader.tsx`:349
|
||
|
||
- **Text:** 'Neuen Entwurf erstellen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Neuen Entwurf erstellen"`
|
||
|
||
## `src/components/FlowEditor/editor/CanvasHeader.tsx`:379
|
||
|
||
- **Text:** '✓ Ausführung abgeschlossen.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <>✓ Ausführung abgeschlossen.</>`
|
||
|
||
## `src/components/FlowEditor/editor/CanvasHeader.tsx`:382
|
||
|
||
- **Text:** 'Workflows & Tasks'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` ⏸ Workflow pausiert. Öffne <strong>Workflows & Tasks</strong> in der Sidebar, um den`
|
||
|
||
## `src/components/FlowEditor/editor/CanvasHeader.tsx`:386
|
||
|
||
- **Text:** "✗ {executeResult.error ?? 'Unbekannter Fehler'}"
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <>✗ {executeResult.error ?? 'Unbekannter Fehler'}</>`
|
||
|
||
## `src/components/FlowEditor/editor/CanvasHeader.tsx`:386
|
||
|
||
- **Text:** 'Unbekannter Fehler'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <>✗ {executeResult.error ?? 'Unbekannter Fehler'}</>`
|
||
|
||
## `src/components/FlowEditor/editor/EditorChatPanel.tsx`:137
|
||
|
||
- **Text:** 'Request failed'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const errText = event.content || 'Request failed';`
|
||
|
||
## `src/components/FlowEditor/editor/EditorChatPanel.tsx`:190
|
||
|
||
- **Text:** 'Describe what you want to build. The AI will create and modify nodes on the canvas.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage="Describe what you want to build. The AI will create and modify nodes on the canvas."`
|
||
|
||
## `src/components/FlowEditor/editor/EditorChatPanel.tsx`:197
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderTop: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/components/FlowEditor/editor/EditorChatPanel.tsx`:223
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderTop: pendingFiles.length > 0 ? 'none' : '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/components/FlowEditor/editor/EditorChatPanel.tsx`:264
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderTop: hasAttachments ? 'none' : '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/components/FlowEditor/editor/EditorChatPanel.tsx`:267
|
||
|
||
- **Text:** '2px dashed var(--primary-color, #F25843)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` outline: treeDropOver ? '2px dashed var(--primary-color, #F25843)' : 'none',`
|
||
|
||
## `src/components/FlowEditor/editor/EditorChatPanel.tsx`:269
|
||
|
||
- **Text:** 'background 0.15s, outline 0.15s'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` transition: 'background 0.15s, outline 0.15s',`
|
||
|
||
## `src/components/FlowEditor/editor/EditorChatPanel.tsx`:280
|
||
|
||
- **Text:** 'Describe a change...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` placeholder={workflowId ? 'Describe a change...' : 'Save workflow first'}`
|
||
|
||
## `src/components/FlowEditor/editor/EditorChatPanel.tsx`:280
|
||
|
||
- **Text:** 'Save workflow first'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` placeholder={workflowId ? 'Describe a change...' : 'Save workflow first'}`
|
||
|
||
## `src/components/FlowEditor/editor/EditorChatPanel.tsx`:285
|
||
|
||
- **Text:** '1px solid var(--border-color, #ccc)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #ccc)',`
|
||
|
||
## `src/components/FlowEditor/editor/EditorChatPanel.tsx`:297
|
||
|
||
- **Text:** 'Datenquellen anhängen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Datenquellen anhängen"`
|
||
|
||
## `src/components/FlowEditor/editor/EditorChatPanel.tsx`:300
|
||
|
||
- **Text:** '1px solid var(--border-color, #ddd)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #ddd)',`
|
||
|
||
## `src/components/FlowEditor/editor/EditorChatPanel.tsx`:341
|
||
|
||
- **Text:** '2px solid #2e7d32'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: isSelected ? '2px solid #2e7d32' : '2px solid #ccc',`
|
||
|
||
## `src/components/FlowEditor/editor/EditorChatPanel.tsx`:341
|
||
|
||
- **Text:** '2px solid #ccc'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: isSelected ? '2px solid #2e7d32' : '2px solid #ccc',`
|
||
|
||
## `src/components/FlowEditor/editor/EditorChatPanel.tsx`:370
|
||
|
||
- **Text:** '2px solid #7b1fa2'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: isSelected ? '2px solid #7b1fa2' : '2px solid #ccc',`
|
||
|
||
## `src/components/FlowEditor/editor/EditorChatPanel.tsx`:370
|
||
|
||
- **Text:** '2px solid #ccc'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: isSelected ? '2px solid #7b1fa2' : '2px solid #ccc',`
|
||
|
||
## `src/components/FlowEditor/editor/FlowCanvas.tsx`:511
|
||
|
||
- **Text:** 'Delete'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` if (e.key === 'Delete' || e.key === 'Backspace') {`
|
||
|
||
## `src/components/FlowEditor/editor/FlowCanvas.tsx`:596
|
||
|
||
- **Text:** '0 0, 10 3.5, 0 7'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <polygon points="0 0, 10 3.5, 0 7" fill="var(--text-secondary, #666)" />`
|
||
|
||
## `src/components/FlowEditor/editor/FlowCanvas.tsx`:606
|
||
|
||
- **Text:** '0 0, 10 3.5, 0 7'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <polygon points="0 0, 10 3.5, 0 7" fill="var(--primary-color, #007bff)" />`
|
||
|
||
## `src/components/FlowEditor/editor/FlowCanvas.tsx`:616
|
||
|
||
- **Text:** '0 0, 10 3.5, 0 7'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <polygon points="0 0, 10 3.5, 0 7" fill="#FF9800" />`
|
||
|
||
## `src/components/FlowEditor/editor/FlowCanvas.tsx`:641
|
||
|
||
- **Text:** 'Verbindung auswählen (Entf zum Löschen, klicken Sie auf einen anderen Eingang zum Umleiten)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` aria-label="Verbindung auswählen (Entf zum Löschen, klicken Sie auf einen anderen Eingang zum Umleiten)"`
|
||
|
||
## `src/components/FlowEditor/editor/FlowCanvas.tsx`:660
|
||
|
||
- **Text:** 'Type mismatch warning: output type may not match input type'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <title>Type mismatch warning: output type may not match input type</title>`
|
||
|
||
## `src/components/FlowEditor/editor/FlowCanvas.tsx`:759
|
||
|
||
- **Text:** 'Aktuelles Ziel – klicken zum Abwählen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Aktuelles Ziel – klicken zum Abwählen'`
|
||
|
||
## `src/components/FlowEditor/editor/FlowCanvas.tsx`:760
|
||
|
||
- **Text:** 'Klicken zum Umleiten'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'Klicken zum Umleiten'`
|
||
|
||
## `src/components/FlowEditor/editor/FlowCanvas.tsx`:839
|
||
|
||
- **Text:** 'Nodes aus der Liste links hierher ziehen.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Nodes aus der Liste links hierher ziehen.</p>`
|
||
|
||
## `src/components/FlowEditor/editor/NodeConfigPanel.tsx`:89
|
||
|
||
- **Text:** 'z.B. Kundenformular, Prüfen Land'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="z.B. Kundenformular, Prüfen Land"`
|
||
|
||
## `src/components/FlowEditor/editor/NodeSidebar.tsx`:89
|
||
|
||
- **Text:** 'Nodes durchsuchen...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Nodes durchsuchen..."`
|
||
|
||
## `src/components/FlowEditor/editor/RunTracingPanel.tsx`:220
|
||
|
||
- **Text:** 'Retry count'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <span style={{ color: '#f0ad4e', fontSize: '11px' }} title="Retry count">`
|
||
|
||
## `src/components/FlowEditor/editor/TemplatePicker.tsx`:132
|
||
|
||
- **Text:** 'Übernehmen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {copying === tpl.id ? <FaSpinner className={styles.spinner} /> : 'Übernehmen'}`
|
||
|
||
## `src/components/FlowEditor/editor/WorkflowConfigurationModal.tsx`:15
|
||
|
||
- **Text:** 'Manueller Trigger'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'manual', label: 'Manueller Trigger' },`
|
||
|
||
## `src/components/FlowEditor/editor/WorkflowConfigurationModal.tsx`:16
|
||
|
||
- **Text:** 'Formular'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'form', label: 'Formular' },`
|
||
|
||
## `src/components/FlowEditor/editor/WorkflowConfigurationModal.tsx`:17
|
||
|
||
- **Text:** 'Zeitplan'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'schedule', label: 'Zeitplan' },`
|
||
|
||
## `src/components/FlowEditor/editor/WorkflowConfigurationModal.tsx`:18
|
||
|
||
- **Text:** 'Immer aktiv'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'always_on', label: 'Immer aktiv' },`
|
||
|
||
## `src/components/FlowEditor/editor/WorkflowConfigurationModal.tsx`:85
|
||
|
||
- **Text:** 'z. B. Angebot anlegen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="z. B. Angebot anlegen"`
|
||
|
||
## `src/components/FlowEditor/editor/WorkflowConfigurationModal.tsx`:88
|
||
|
||
- **Text:** 'Einstiegsart'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <div className={styles.workflowModalRadioGroup} role="radiogroup" aria-label="Einstiegsart">`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/AiNodeConfig.tsx`:11
|
||
|
||
- **Text:** 'Prompt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` 'ai.prompt': [{ label: 'Prompt', key: 'prompt', type: 'textarea' }],`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/AiNodeConfig.tsx`:12
|
||
|
||
- **Text:** 'Query'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` 'ai.webResearch': [{ label: 'Query', key: 'query', type: 'dynamic' }],`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/AiNodeConfig.tsx`:14
|
||
|
||
- **Text:** 'Summary length'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { label: 'Summary length', key: 'summaryLength', type: 'select', options: ['short', 'medium', 'long'] },`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/AiNodeConfig.tsx`:16
|
||
|
||
- **Text:** 'Target language'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` 'ai.translateDocument': [{ label: 'Target language', key: 'targetLanguage', type: 'input' }],`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/AiNodeConfig.tsx`:18
|
||
|
||
- **Text:** 'Target format'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { label: 'Target format', key: 'targetFormat', type: 'select', options: ['pdf', 'docx', 'txt', 'md'] },`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/AiNodeConfig.tsx`:20
|
||
|
||
- **Text:** 'Prompt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` 'ai.generateDocument': [{ label: 'Prompt', key: 'prompt', type: 'dynamic' }],`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/AiNodeConfig.tsx`:22
|
||
|
||
- **Text:** 'Prompt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { label: 'Prompt', key: 'prompt', type: 'dynamic' },`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/AiNodeConfig.tsx`:23
|
||
|
||
- **Text:** 'Language'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { label: 'Language', key: 'language', type: 'select', options: ['python', 'javascript', 'typescript', 'sql'] },`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ApprovalNodeConfig.tsx`:15
|
||
|
||
- **Text:** 'Genehmigungstitel'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Genehmigungstitel"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ApprovalNodeConfig.tsx`:23
|
||
|
||
- **Text:** 'Was genehmigt werden soll'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Was genehmigt werden soll"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:84
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:103
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderTop: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:111
|
||
|
||
- **Text:** 'Liste wählen (Ordner bis /team/…/list/…)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` return 'Liste wählen (Ordner bis /team/…/list/…)';`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:115
|
||
|
||
- **Text:** 'Aufgabe wählen (Pfad …/task/…)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` return 'Aufgabe wählen (Pfad …/task/…)';`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:117
|
||
|
||
- **Text:** 'ClickUp durchsuchen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` return 'ClickUp durchsuchen';`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:378
|
||
|
||
- **Text:** 'Aufgaben konnten nicht geladen werden.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setLoadError('Aufgaben konnten nicht geladen werden.');`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:402
|
||
|
||
- **Text:** '— Quelle wählen —'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="— Quelle wählen —"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:403
|
||
|
||
- **Text:** 'Statisch (Aufgabe wählen)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` staticLabel="Statisch (Aufgabe wählen)"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:422
|
||
|
||
- **Text:** '— Aufgabe wählen —'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">— Aufgabe wählen —</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:542
|
||
|
||
- **Text:** '— Quelle wählen —'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="— Quelle wählen —"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:555
|
||
|
||
- **Text:** '— Option wählen —'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">— Option wählen —</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:577
|
||
|
||
- **Text:** '— Quelle wählen —'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="— Quelle wählen —"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:613
|
||
|
||
- **Text:** '— Quelle wählen —'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="— Quelle wählen —"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:638
|
||
|
||
- **Text:** 'z. B. 1234.56'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` placeholder={ft === 'currency' ? 'z. B. 1234.56' : undefined}`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:688
|
||
|
||
- **Text:** 'Fälligkeit'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Fälligkeit</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:694
|
||
|
||
- **Text:** '— Quelle wählen —'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="— Quelle wählen —"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:734
|
||
|
||
- **Text:** 'Zeitschätzung (Stunden)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Zeitschätzung (Stunden)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:740
|
||
|
||
- **Text:** '— Quelle wählen —'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="— Quelle wählen —"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:782
|
||
|
||
- **Text:** 'Titel (name)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'name', label: 'Titel (name)' },`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:783
|
||
|
||
- **Text:** 'Beschreibung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'description', label: 'Beschreibung' },`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:784
|
||
|
||
- **Text:** 'Status'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'status', label: 'Status' },`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:785
|
||
|
||
- **Text:** 'Priorität (1–4)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'priority', label: 'Priorität (1–4)' },`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:786
|
||
|
||
- **Text:** 'Fälligkeit (Datum oder ms)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'due_date', label: 'Fälligkeit (Datum oder ms)' },`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:787
|
||
|
||
- **Text:** 'Zeitschätzung (Stunden)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'time_estimate_h', label: 'Zeitschätzung (Stunden)' },`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:788
|
||
|
||
- **Text:** 'Zeitschätzung (ms)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'time_estimate_ms', label: 'Zeitschätzung (ms)' },`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:789
|
||
|
||
- **Text:** 'Zugewiesene'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'assignees', label: 'Zugewiesene' },`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:790
|
||
|
||
- **Text:** 'Benutzerdefiniertes Feld'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'custom_field', label: 'Benutzerdefiniertes Feld' },`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:852
|
||
|
||
- **Text:** 'Aufgaben konnten nicht geladen werden.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setErr('Aufgaben konnten nicht geladen werden.');`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:867
|
||
|
||
- **Text:** 'Vorhandene Aufgabe in der gewählten Liste'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Vorhandene Aufgabe in der gewählten Liste</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:882
|
||
|
||
- **Text:** '— Aufgabe aus ClickUp wählen —'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">— Aufgabe aus ClickUp wählen —</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1047
|
||
|
||
- **Text:** 'Oder Referenz (ohne Formular-Payload)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` label="Oder Referenz (ohne Formular-Payload)"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1064
|
||
|
||
- **Text:** 'Feld-ID'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Feld-ID"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1068
|
||
|
||
- **Text:** 'Neuer Wert'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` label="Neuer Wert"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1072
|
||
|
||
- **Text:** 'Wert'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Wert"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1083
|
||
|
||
- **Text:** 'Status (Referenz)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` label="Status (Referenz)"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1086
|
||
|
||
- **Text:** 'Kontext mit Status-String'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Kontext mit Status-String"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1097
|
||
|
||
- **Text:** 'Status (wie in ClickUp)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Status (wie in ClickUp)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1099
|
||
|
||
- **Text:** 'Status werden geladen…'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">Status werden geladen…</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1106
|
||
|
||
- **Text:** 'Status (wie in ClickUp)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Status (wie in ClickUp)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1114
|
||
|
||
- **Text:** '— Keine Status geladen —'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? '— Keine Status geladen —'`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1115
|
||
|
||
- **Text:** '— Status wählen —'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : '— Status wählen —'}`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1147
|
||
|
||
- **Text:** 'Priorität'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Priorität</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1152
|
||
|
||
- **Text:** '— wählen —'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">— wählen —</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1153
|
||
|
||
- **Text:** '1 — Dringend'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="1">1 — Dringend</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1154
|
||
|
||
- **Text:** '2 — Hoch'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="2">2 — Hoch</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1155
|
||
|
||
- **Text:** '3 — Normal'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="3">3 — Normal</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1156
|
||
|
||
- **Text:** '4 — Niedrig'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="4">4 — Niedrig</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1169
|
||
|
||
- **Text:** 'Alternativ nur Referenz'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {commonHybrid(false, 'Alternativ nur Referenz')}`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1181
|
||
|
||
- **Text:** 'Alternativ: Referenz (Stunden)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {commonHybrid(false, 'Alternativ: Referenz (Stunden)')}`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1206
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1234
|
||
|
||
- **Text:** '[123,456] oder JSON-Array'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {commonHybrid(false, '[123,456] oder JSON-Array')}`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1246
|
||
|
||
- **Text:** 'Beschreibung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Beschreibung"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1258
|
||
|
||
- **Text:** 'Titel'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Titel"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1280
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1654
|
||
|
||
- **Text:** 'Connection (ClickUp)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Connection (ClickUp)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1660
|
||
|
||
- **Text:** 'Loading...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <option value="">{connectionsLoading ? 'Loading...' : 'Select connection'}</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1660
|
||
|
||
- **Text:** 'Select connection'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <option value="">{connectionsLoading ? 'Loading...' : 'Select connection'}</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1683
|
||
|
||
- **Text:** 'Workspaces werden geladen…'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {searchTeamsLoading ? 'Workspaces werden geladen…' : 'Workspace wählen…'}`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1683
|
||
|
||
- **Text:** 'Workspace wählen…'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {searchTeamsLoading ? 'Workspaces werden geladen…' : 'Workspace wählen…'}`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1693
|
||
|
||
- **Text:** 'Liste (Tabelle)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Liste (Tabelle)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1701
|
||
|
||
- **Text:** 'Listen werden geladen…'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Listen werden geladen…'`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1703
|
||
|
||
- **Text:** 'Alle Listen im Workspace'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Alle Listen im Workspace'`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1704
|
||
|
||
- **Text:** 'Zuerst Workspace wählen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'Zuerst Workspace wählen'}`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1718
|
||
|
||
- **Text:** 'Stichwort für die Aufgabensuche'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Stichwort für die Aufgabensuche"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1726
|
||
|
||
- **Text:** 'Seite (Pagination)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Seite (Pagination)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1754
|
||
|
||
- **Text:** 'Erledigte Aufgaben einbeziehen (Listen-Suche)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Erledigte Aufgaben einbeziehen (Listen-Suche)</span>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1793
|
||
|
||
- **Text:** 'Workspaces werden geladen…'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {searchTeamsLoading ? 'Workspaces werden geladen…' : 'Workspace wählen…'}`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1793
|
||
|
||
- **Text:** 'Workspace wählen…'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {searchTeamsLoading ? 'Workspaces werden geladen…' : 'Workspace wählen…'}`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1819
|
||
|
||
- **Text:** 'Listen werden geladen…'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <option value="">{searchListsLoading ? 'Listen werden geladen…' : 'Liste wählen…'}</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1819
|
||
|
||
- **Text:** 'Liste wählen…'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <option value="">{searchListsLoading ? 'Listen werden geladen…' : 'Liste wählen…'}</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1835
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1854
|
||
|
||
- **Text:** 'Bei Listenwahl automatisch abgleichen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Bei Listenwahl automatisch abgleichen</span>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1898
|
||
|
||
- **Text:** '— Standard (ClickUp) —'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">— Standard (ClickUp) —</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1909
|
||
|
||
- **Text:** 'Priorität'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Priorität</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1914
|
||
|
||
- **Text:** '— keine —'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">— keine —</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1915
|
||
|
||
- **Text:** '1 — Dringend'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="1">1 — Dringend</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1916
|
||
|
||
- **Text:** '2 — Hoch'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="2">2 — Hoch</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1917
|
||
|
||
- **Text:** '3 — Normal'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="3">3 — Normal</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1918
|
||
|
||
- **Text:** '4 — Niedrig'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="4">4 — Niedrig</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:1940
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:2013
|
||
|
||
- **Text:** 'Zusätzliche Felder (JSON)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Zusätzliche Felder (JSON)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:2018
|
||
|
||
- **Text:** '{"priority": "3"}'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder='{"priority": "3"}'`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:2028
|
||
|
||
- **Text:** 'List path'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>List path</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:2032
|
||
|
||
- **Text:** '/team/{teamId}/list/{listId}'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="/team/{teamId}/list/{listId}"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:2069
|
||
|
||
- **Text:** 'Referenz: voriger Knoten „Aufgabe erstellen“ → taskId'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Referenz: voriger Knoten „Aufgabe erstellen“ → taskId"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:2073
|
||
|
||
- **Text:** 'Path (optional)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Path (optional)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:2077
|
||
|
||
- **Text:** '.../task/{taskId}'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder=".../task/{taskId}"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:2090
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:2122
|
||
|
||
- **Text:** 'Workspaces werden geladen…'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {searchTeamsLoading ? 'Workspaces werden geladen…' : 'Workspace wählen…'}`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:2122
|
||
|
||
- **Text:** 'Workspace wählen…'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {searchTeamsLoading ? 'Workspaces werden geladen…' : 'Workspace wählen…'}`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:2146
|
||
|
||
- **Text:** 'Listen werden geladen…'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <option value="">{searchListsLoading ? 'Listen werden geladen…' : 'Liste wählen…'}</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:2146
|
||
|
||
- **Text:** 'Liste wählen…'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <option value="">{searchListsLoading ? 'Listen werden geladen…' : 'Liste wählen…'}</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:2177
|
||
|
||
- **Text:** 'taskUpdate (JSON)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>taskUpdate (JSON)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:2182
|
||
|
||
- **Text:** '{"name": "…"} — Basis; Zeilen darüber setzen/überschreiben Felder'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder='{"name": "…"} — Basis; Zeilen darüber setzen/überschreiben Felder'`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:2191
|
||
|
||
- **Text:** 'File name (optional)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>File name (optional)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ClickUpNodeConfig.tsx`:2195
|
||
|
||
- **Text:** 'report.pdf'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="report.pdf"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/CommentNodeConfig.tsx`:15
|
||
|
||
- **Text:** 'Kommentar eingeben...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Kommentar eingeben..."`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ConfirmationNodeConfig.tsx`:15
|
||
|
||
- **Text:** 'Möchten Sie bestätigen?'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Möchten Sie bestätigen?"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ConfirmationNodeConfig.tsx`:19
|
||
|
||
- **Text:** 'Bestätigen-Button'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Bestätigen-Button</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:60
|
||
|
||
- **Text:** 'Loading...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <option value="">{loading ? 'Loading...' : 'Select connection'}</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:60
|
||
|
||
- **Text:** 'Select connection'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <option value="">{loading ? 'Loading...' : 'Select connection'}</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:77
|
||
|
||
- **Text:** 'Loading folders...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {foldersLoading ? 'Loading folders...' : !connectionId ? 'Select account first' : 'Select folder'}`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:77
|
||
|
||
- **Text:** 'Select account first'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {foldersLoading ? 'Loading folders...' : !connectionId ? 'Select account first' : 'Select folder'}`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:77
|
||
|
||
- **Text:** 'Select folder'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {foldersLoading ? 'Loading folders...' : !connectionId ? 'Select account first' : 'Select folder'}`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:95
|
||
|
||
- **Text:** 'Sent Items'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="SentItems">Sent Items</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:96
|
||
|
||
- **Text:** 'Deleted Items'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="DeletedItems">Deleted Items</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:97
|
||
|
||
- **Text:** 'Junk Email'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="JunkEmail">Junk Email</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:114
|
||
|
||
- **Text:** 'Search query (optional)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Search query (optional)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:118
|
||
|
||
- **Text:** 'General search term (subject, body, from)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="General search term (subject, body, from)"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:122
|
||
|
||
- **Text:** 'From address (optional)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>From address (optional)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:126
|
||
|
||
- **Text:** 'e.g. sender@example.com'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="e.g. sender@example.com"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:130
|
||
|
||
- **Text:** 'To address (optional)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>To address (optional)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:134
|
||
|
||
- **Text:** 'e.g. recipient@example.com'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="e.g. recipient@example.com"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:138
|
||
|
||
- **Text:** 'Subject contains (optional)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Subject contains (optional)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:142
|
||
|
||
- **Text:** 'Word or phrase in subject'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Word or phrase in subject"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:146
|
||
|
||
- **Text:** 'Body/content contains (optional)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Body/content contains (optional)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:150
|
||
|
||
- **Text:** 'Word or phrase in email body'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Word or phrase in email body"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:160
|
||
|
||
- **Text:** 'Only emails with attachment'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label htmlFor="searchHasAttachment">Only emails with attachment</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:175
|
||
|
||
- **Text:** 'From address (optional)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>From address (optional)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:179
|
||
|
||
- **Text:** 'e.g. sender@example.com'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="e.g. sender@example.com"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:183
|
||
|
||
- **Text:** 'Subject contains (optional)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Subject contains (optional)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:187
|
||
|
||
- **Text:** 'Word or phrase in subject'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Word or phrase in subject"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:197
|
||
|
||
- **Text:** 'Only emails with attachment'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label htmlFor="hasAttachment">Only emails with attachment</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:216
|
||
|
||
- **Text:** 'Email subject (or leave empty if connected to AI node above)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Email subject (or leave empty if connected to AI node above)"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:224
|
||
|
||
- **Text:** 'Email body (or leave empty if connected to AI node above)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Email body (or leave empty if connected to AI node above)"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:229
|
||
|
||
- **Text:** 'To (optional)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>To (optional)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/EmailNodeConfig.tsx`:233
|
||
|
||
- **Text:** 'Recipient(s) (or from AI when connected)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Recipient(s) (or from AI when connected)"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/FileCreateNodeConfig.tsx`:44
|
||
|
||
- **Text:** 'Inhalte (welche Kontexte nacheinander in die Datei?)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Inhalte (welche Kontexte nacheinander in die Datei?)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/FileCreateNodeConfig.tsx`:50
|
||
|
||
- **Text:** 'Quelle wählen…'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Quelle wählen…"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/FileCreateNodeConfig.tsx`:56
|
||
|
||
- **Text:** 'Entfernen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Entfernen"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/FileCreateNodeConfig.tsx`:57
|
||
|
||
- **Text:** 'Inhalt entfernen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` aria-label="Inhalt entfernen"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/FileCreateNodeConfig.tsx`:90
|
||
|
||
- **Text:** 'Dokumenttitel'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Dokumenttitel"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/FileCreateNodeConfig.tsx`:94
|
||
|
||
- **Text:** 'Vorlage / Stil'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Vorlage / Stil</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/ReviewNodeConfig.tsx`:16
|
||
|
||
- **Text:** '{{nodeId.field}}'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="{{nodeId.field}}"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SelectionNodeConfig.tsx`:16
|
||
|
||
- **Text:** 'value'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="value"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SelectionNodeConfig.tsx`:25
|
||
|
||
- **Text:** 'label'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="label"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SelectionNodeConfig.tsx`:35
|
||
|
||
- **Text:** ''
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` <button type="button" onClick={() => updateParam('options', [...options, { value: '', label: '' }])}>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SharePointNodeConfig.tsx`:15
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SharePointNodeConfig.tsx`:34
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderTop: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SharePointNodeConfig.tsx`:42
|
||
|
||
- **Text:** 'Zielordner durchsuchen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` return 'Zielordner durchsuchen';`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SharePointNodeConfig.tsx`:44
|
||
|
||
- **Text:** 'Ordner durchsuchen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` return 'Ordner durchsuchen';`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SharePointNodeConfig.tsx`:46
|
||
|
||
- **Text:** 'Datei auswählen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` return 'Datei auswählen';`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SharePointNodeConfig.tsx`:48
|
||
|
||
- **Text:** 'Datei auswählen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` return 'Datei auswählen';`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SharePointNodeConfig.tsx`:50
|
||
|
||
- **Text:** 'Pfad aus Bibliothek wählen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` return 'Pfad aus Bibliothek wählen';`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SharePointNodeConfig.tsx`:52
|
||
|
||
- **Text:** 'SharePoint durchsuchen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` return 'SharePoint durchsuchen';`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SharePointNodeConfig.tsx`:156
|
||
|
||
- **Text:** 'Loading...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <option value="">{connectionsLoading ? 'Loading...' : 'Select connection'}</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SharePointNodeConfig.tsx`:156
|
||
|
||
- **Text:** 'Select connection'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <option value="">{connectionsLoading ? 'Loading...' : 'Select connection'}</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SharePointNodeConfig.tsx`:167
|
||
|
||
- **Text:** 'Search query / path'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Search query / path</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SharePointNodeConfig.tsx`:171
|
||
|
||
- **Text:** '/sites/SiteName/Shared Documents or search term'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="/sites/SiteName/Shared Documents or search term"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SharePointNodeConfig.tsx`:178
|
||
|
||
- **Text:** 'Folder path'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Folder path</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SharePointNodeConfig.tsx`:182
|
||
|
||
- **Text:** '/ or /sites/SiteName/Shared Documents/Folder'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="/ or /sites/SiteName/Shared Documents/Folder"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SharePointNodeConfig.tsx`:191
|
||
|
||
- **Text:** 'Target folder path'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Target folder path'`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SharePointNodeConfig.tsx`:193
|
||
|
||
- **Text:** 'File path'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'File path'`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SharePointNodeConfig.tsx`:204
|
||
|
||
- **Text:** 'File path'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'File path'`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SharePointNodeConfig.tsx`:212
|
||
|
||
- **Text:** 'Site ID'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Site ID</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SharePointNodeConfig.tsx`:216
|
||
|
||
- **Text:** 'SharePoint site ID'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="SharePoint site ID"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SharePointNodeConfig.tsx`:224
|
||
|
||
- **Text:** 'Source file'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Source file</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SharePointNodeConfig.tsx`:228
|
||
|
||
- **Text:** '/sites/.../folder/file.pdf'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="/sites/.../folder/file.pdf"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SharePointNodeConfig.tsx`:232
|
||
|
||
- **Text:** 'Destination folder'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Destination folder</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/SharePointNodeConfig.tsx`:236
|
||
|
||
- **Text:** '/sites/.../target-folder/'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="/sites/.../target-folder/"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/TrusteeNodeConfig.tsx`:35
|
||
|
||
- **Text:** 'Trustee Instance ID'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Trustee Instance ID</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/TrusteeNodeConfig.tsx`:39
|
||
|
||
- **Text:** 'Trustee Feature-Instanz-ID'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Trustee Feature-Instanz-ID"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/TrusteeNodeConfig.tsx`:46
|
||
|
||
- **Text:** 'SharePoint Connection (optional)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>SharePoint Connection (optional)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/TrusteeNodeConfig.tsx`:52
|
||
|
||
- **Text:** 'Keine (Dateien aus vorherigem Schritt)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <option value="">{loading ? 'Laden...' : 'Keine (Dateien aus vorherigem Schritt)'}</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/TrusteeNodeConfig.tsx`:61
|
||
|
||
- **Text:** 'SharePoint Ordnerpfad (optional)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>SharePoint Ordnerpfad (optional)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/TrusteeNodeConfig.tsx`:65
|
||
|
||
- **Text:** '/sites/MySite/Documents/Expenses'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="/sites/MySite/Documents/Expenses"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/TrusteeNodeConfig.tsx`:69
|
||
|
||
- **Text:** 'AI Prompt (optional)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>AI Prompt (optional)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/TrusteeNodeConfig.tsx`:73
|
||
|
||
- **Text:** 'Zusätzliche Anweisungen für die AI-Extraktion'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Zusätzliche Anweisungen für die AI-Extraktion"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/TrusteeNodeConfig.tsx`:82
|
||
|
||
- **Text:** 'Document List (Referenz)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Document List (Referenz)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/TrusteeNodeConfig.tsx`:86
|
||
|
||
- **Text:** 'Referenz auf vorherigen Schritt (automatisch verknüpft)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Referenz auf vorherigen Schritt (automatisch verknüpft)"`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/UploadNodeConfig.tsx`:40
|
||
|
||
- **Text:** 'Erlaubte Dateitypen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Erlaubte Dateitypen</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/configs/UploadNodeConfig.tsx`:58
|
||
|
||
- **Text:** 'Max. Größe (MB)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Max. Größe (MB)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/form/FormNodeConfig.tsx`:77
|
||
|
||
- **Text:** 'Zum Verschieben ziehen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Zum Verschieben ziehen"`
|
||
|
||
## `src/components/FlowEditor/nodes/form/FormNodeConfig.tsx`:88
|
||
|
||
- **Text:** 'name'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="name"`
|
||
|
||
## `src/components/FlowEditor/nodes/form/FormNodeConfig.tsx`:97
|
||
|
||
- **Text:** 'label'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="label"`
|
||
|
||
## `src/components/FlowEditor/nodes/form/FormNodeConfig.tsx`:134
|
||
|
||
- **Text:** 'ClickUp-Aufgabe (Referenz)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="clickup_tasks">ClickUp-Aufgabe (Referenz)</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/form/FormNodeConfig.tsx`:135
|
||
|
||
- **Text:** 'ClickUp-Status (Liste)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="clickup_status">ClickUp-Status (Liste)</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/form/FormNodeConfig.tsx`:152
|
||
|
||
- **Text:** 'Feld entfernen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Feld entfernen"`
|
||
|
||
## `src/components/FlowEditor/nodes/form/FormNodeConfig.tsx`:188
|
||
|
||
- **Text:** 'Verbindung wählen…'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <option value="">{connectionsLoading ? 'Lade…' : 'Verbindung wählen…'}</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/form/FormNodeConfig.tsx`:199
|
||
|
||
- **Text:** 'z. B. aus ClickUp-URL …/list/123456789'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="z. B. aus ClickUp-URL …/list/123456789"`
|
||
|
||
## `src/components/FlowEditor/nodes/form/FormNodeConfig.tsx`:210
|
||
|
||
- **Text:** '{ add: [taskId], rem: [] }'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <code>{'{ add: [taskId], rem: [] }'}</code> — im ClickUp-Node per Datenquelle auf das`
|
||
|
||
## `src/components/FlowEditor/nodes/form/FormNodeConfig.tsx`:220
|
||
|
||
- **Text:** ''
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` updateParam('fields', [...fields, { name: '', type: 'string', label: '', required: false }])`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:170
|
||
|
||
- **Text:** '— Select connection —'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">— Select connection —</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:214
|
||
|
||
- **Text:** 'not equals'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="neq">not equals</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:216
|
||
|
||
- **Text:** 'greater than'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="gt">greater than</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:217
|
||
|
||
- **Text:** 'less than'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="lt">less than</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:230
|
||
|
||
- **Text:** ''
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` const addField = () => onChange([...fields, { name: '', type: 'text', label: '', required: false }]);`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:242
|
||
|
||
- **Text:** 'Name'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <input type="text" placeholder="Name" value={String(f.name ?? '')} onChange={(e) => updateField(i, 'name', e.target.value)} style={{ flex: 1, padding: '2px 4px', borderRadius: 4, border: '1px solid #ccc' }} />`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:248
|
||
|
||
- **Text:** 'Select'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="select">Select</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:251
|
||
|
||
- **Text:** 'Label'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <input type="text" placeholder="Label" value={String(f.label ?? '')} onChange={(e) => updateField(i, 'label', e.target.value)} style={{ flex: 1, padding: '2px 4px', borderRadius: 4, border: '1px solid #ccc' }} />`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:277
|
||
|
||
- **Text:** 'Key'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <input type="text" placeholder="Key" value={String(r.key ?? r.fieldKey ?? '')} onChange={(e) => updateRow(i, 'key', e.target.value)} style={{ flex: 1, padding: '2px 4px', borderRadius: 4, border: '1px solid #ccc' }} />`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:278
|
||
|
||
- **Text:** 'Value'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <input type="text" placeholder="Value" value={String(r.value ?? '')} onChange={(e) => updateRow(i, 'value', e.target.value)} style={{ flex: 2, padding: '2px 4px', borderRadius: 4, border: '1px solid #ccc' }} />`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:294
|
||
|
||
- **Text:** '*/5 * * * *'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="*/5 * * * *"`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:310
|
||
|
||
- **Text:** 'not equals'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="neq">not equals</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:311
|
||
|
||
- **Text:** 'greater than'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="gt">greater than</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:312
|
||
|
||
- **Text:** 'less than'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="lt">less than</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:314
|
||
|
||
- **Text:** 'is empty'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="empty">is empty</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:315
|
||
|
||
- **Text:** 'is not empty'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="not_empty">is not empty</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:316
|
||
|
||
- **Text:** 'is true'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="is_true">is true</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:317
|
||
|
||
- **Text:** 'is false'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="is_false">is false</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:319
|
||
|
||
- **Text:** 'Value'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <input type="text" placeholder="Value" value={String(cond.value ?? '')} onChange={(e) => update('value', e.target.value)} style={{ flex: 2, padding: '2px 4px', borderRadius: 4, border: '1px solid #ccc' }} />`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:339
|
||
|
||
- **Text:** 'Source field'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <input type="text" placeholder="Source field" value={String(m.sourceField ?? '')} onChange={(e) => updateMapping(i, 'sourceField', e.target.value)} style={{ flex: 1, padding: '2px 4px', borderRadius: 4, border: '1px solid #ccc' }} />`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:341
|
||
|
||
- **Text:** 'Output field'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <input type="text" placeholder="Output field" value={String(m.outputField ?? '')} onChange={(e) => updateMapping(i, 'outputField', e.target.value)} style={{ flex: 1, padding: '2px 4px', borderRadius: 4, border: '1px solid #ccc' }} />`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:357
|
||
|
||
- **Text:** 'Field'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <input type="text" placeholder="Field" value={String(cond.field ?? '')} onChange={(e) => update('field', e.target.value)} style={{ flex: 1, padding: '2px 4px', borderRadius: 4, border: '1px solid #ccc' }} />`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:360
|
||
|
||
- **Text:** 'not equals'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="neq">not equals</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:362
|
||
|
||
- **Text:** 'starts with'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="startsWith">starts with</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:363
|
||
|
||
- **Text:** 'is empty'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="isEmpty">is empty</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:364
|
||
|
||
- **Text:** 'is not empty'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="isNotEmpty">is not empty</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:365
|
||
|
||
- **Text:** 'greater than'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="gt">greater than</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:366
|
||
|
||
- **Text:** 'less than'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="lt">less than</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/frontendTypeRenderers/index.tsx`:368
|
||
|
||
- **Text:** 'Value'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <input type="text" placeholder="Value" value={String(cond.value ?? '')} onChange={(e) => update('value', e.target.value)} style={{ flex: 1, padding: '2px 4px', borderRadius: 4, border: '1px solid #ccc' }} />`
|
||
|
||
## `src/components/FlowEditor/nodes/ifElse/IfElseNodeConfig.tsx`:49
|
||
|
||
- **Text:** 'input.upload'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` isMimeTypeRef && sourceNode?.type === 'input.upload' && sourceNode.parameters`
|
||
|
||
## `src/components/FlowEditor/nodes/ifElse/IfElseNodeConfig.tsx`:100
|
||
|
||
- **Text:** 'Formular-Feld wählen…'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <RefSourceSelect value={ref} onChange={handleRefChange} placeholder="Formular-Feld wählen…" />`
|
||
|
||
## `src/components/FlowEditor/nodes/ifElse/IfElseNodeConfig.tsx`:120
|
||
|
||
- **Text:** '— MIME-Type wählen —'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">— MIME-Type wählen —</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/ifElse/IfElseNodeConfig.tsx`:142
|
||
|
||
- **Text:** 'z.B. application/pdf'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'z.B. application/pdf'`
|
||
|
||
## `src/components/FlowEditor/nodes/ifElse/IfElseNodeConfig.tsx`:143
|
||
|
||
- **Text:** 'z.B. CH'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'z.B. CH'`
|
||
|
||
## `src/components/FlowEditor/nodes/shared/DataPicker.tsx`:47
|
||
|
||
- **Text:** '(ganze Ausgabe)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const pathLabel = basePath.length ? basePath.map(String).join(' → ') : '(ganze Ausgabe)';`
|
||
|
||
## `src/components/FlowEditor/nodes/shared/DataPicker.tsx`:141
|
||
|
||
- **Text:** 'Datenquelle wählen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h4 className={styles.dataPickerTitle}>Datenquelle wählen</h4>`
|
||
|
||
## `src/components/FlowEditor/nodes/shared/DataPicker.tsx`:142
|
||
|
||
- **Text:** 'Schließen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <button type="button" className={styles.dataPickerClose} onClick={onClose} aria-label="Schließen">`
|
||
|
||
## `src/components/FlowEditor/nodes/shared/DataPicker.tsx`:183
|
||
|
||
- **Text:** 'Keine vorherigen Nodes verfügbar.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` return <p className={styles.dataPickerEmpty}>Keine vorherigen Nodes verfügbar.</p>;`
|
||
|
||
## `src/components/FlowEditor/nodes/shared/DynamicValueField.tsx`:58
|
||
|
||
- **Text:** 'Keine vorherigen Nodes verfügbar.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.dynamicValueEmptyHint}>Keine vorherigen Nodes verfügbar.</p>`
|
||
|
||
## `src/components/FlowEditor/nodes/shared/HybridStaticRefField.tsx`:86
|
||
|
||
- **Text:** '— Quelle wählen —'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="— Quelle wählen —"`
|
||
|
||
## `src/components/FlowEditor/nodes/shared/LoopItemsSelect.tsx`:71
|
||
|
||
- **Text:** 'input.upload'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` if (node?.type === 'input.upload') {`
|
||
|
||
## `src/components/FlowEditor/nodes/shared/LoopItemsSelect.tsx`:159
|
||
|
||
- **Text:** 'Über was soll iteriert werden?'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder = 'Über was soll iteriert werden?',`
|
||
|
||
## `src/components/FlowEditor/nodes/shared/LoopItemsSelect.tsx`:185
|
||
|
||
- **Text:** 'Datenquelle für Iteration'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Datenquelle für Iteration</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/shared/RefSourceSelect.tsx`:109
|
||
|
||
- **Text:** 'input.upload'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` if (node.type === 'input.upload') {`
|
||
|
||
## `src/components/FlowEditor/nodes/shared/RefSourceSelect.tsx`:193
|
||
|
||
- **Text:** '— Quelle wählen —'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder = '— Quelle wählen —',`
|
||
|
||
## `src/components/FlowEditor/nodes/shared/RefSourceSelect.tsx`:270
|
||
|
||
- **Text:** 'Datenquelle wählen…'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder = 'Datenquelle wählen…',`
|
||
|
||
## `src/components/FlowEditor/nodes/shared/RefSourceSelect.tsx`:360
|
||
|
||
- **Text:** 'input.upload'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` if (node.type === 'input.upload') {`
|
||
|
||
## `src/components/FlowEditor/nodes/start/FormStartNodeConfig.tsx`:20
|
||
|
||
- **Text:** 'Feld 1'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` if (!Array.isArray(raw)) return [{ name: 'field1', label: 'Feld 1', type: 'text' }];`
|
||
|
||
## `src/components/FlowEditor/nodes/start/FormStartNodeConfig.tsx`:62
|
||
|
||
- **Text:** 'Name (Payload-Key)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Name (Payload-Key)"`
|
||
|
||
## `src/components/FlowEditor/nodes/start/FormStartNodeConfig.tsx`:72
|
||
|
||
- **Text:** 'Beschriftung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Beschriftung"`
|
||
|
||
## `src/components/FlowEditor/nodes/start/FormStartNodeConfig.tsx`:99
|
||
|
||
- **Text:** 'ClickUp-Status (Liste)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="clickup_status">ClickUp-Status (Liste)</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/start/FormStartNodeConfig.tsx`:114
|
||
|
||
- **Text:** 'Neues Feld'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` setFields([...fields, { name: `field${fields.length + 1}`, label: 'Neues Feld', type: 'text' }])`
|
||
|
||
## `src/components/FlowEditor/nodes/start/ScheduleStartNodeConfig.tsx`:20
|
||
|
||
- **Text:** 'Täglich'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` { value: 'daily', title: 'Täglich', subtitle: 'Jeden Tag zur gleichen Zeit' },`
|
||
|
||
## `src/components/FlowEditor/nodes/start/ScheduleStartNodeConfig.tsx`:20
|
||
|
||
- **Text:** 'Jeden Tag zur gleichen Zeit'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` { value: 'daily', title: 'Täglich', subtitle: 'Jeden Tag zur gleichen Zeit' },`
|
||
|
||
## `src/components/FlowEditor/nodes/start/ScheduleStartNodeConfig.tsx`:21
|
||
|
||
- **Text:** 'Montag bis Freitag'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` { value: 'weekdays', title: 'Werktage', subtitle: 'Montag bis Freitag' },`
|
||
|
||
## `src/components/FlowEditor/nodes/start/ScheduleStartNodeConfig.tsx`:22
|
||
|
||
- **Text:** 'Bestimmte Tage'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` { value: 'weekly', title: 'Bestimmte Tage', subtitle: 'Wochentage auswählen' },`
|
||
|
||
## `src/components/FlowEditor/nodes/start/ScheduleStartNodeConfig.tsx`:22
|
||
|
||
- **Text:** 'Wochentage auswählen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` { value: 'weekly', title: 'Bestimmte Tage', subtitle: 'Wochentage auswählen' },`
|
||
|
||
## `src/components/FlowEditor/nodes/start/ScheduleStartNodeConfig.tsx`:23
|
||
|
||
- **Text:** 'Ein anderer Zeitraum'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` { value: 'calendar', title: 'Ein anderer Zeitraum', subtitle: 'Monatlich oder jährlich wiederkehrend' },`
|
||
|
||
## `src/components/FlowEditor/nodes/start/ScheduleStartNodeConfig.tsx`:23
|
||
|
||
- **Text:** 'Monatlich oder jährlich wiederkehrend'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` { value: 'calendar', title: 'Ein anderer Zeitraum', subtitle: 'Monatlich oder jährlich wiederkehrend' },`
|
||
|
||
## `src/components/FlowEditor/nodes/start/ScheduleStartNodeConfig.tsx`:24
|
||
|
||
- **Text:** 'In regelmäßigen Abständen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` { value: 'interval', title: 'Intervall', subtitle: 'In regelmäßigen Abständen' },`
|
||
|
||
## `src/components/FlowEditor/nodes/start/ScheduleStartNodeConfig.tsx`:30
|
||
|
||
- **Text:** 'März'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'März',`
|
||
|
||
## `src/components/FlowEditor/nodes/start/ScheduleStartNodeConfig.tsx`:43
|
||
|
||
- **Text:** 'sek'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'seconds', label: 'sek', title: 'Sekunden' },`
|
||
|
||
## `src/components/FlowEditor/nodes/start/ScheduleStartNodeConfig.tsx`:44
|
||
|
||
- **Text:** 'min'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'minutes', label: 'min', title: 'Minuten' },`
|
||
|
||
## `src/components/FlowEditor/nodes/start/ScheduleStartNodeConfig.tsx`:45
|
||
|
||
- **Text:** 'h'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'hours', label: 'h', title: 'Stunden' },`
|
||
|
||
## `src/components/FlowEditor/nodes/start/ScheduleStartNodeConfig.tsx`:46
|
||
|
||
- **Text:** 'd'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'days', label: 'd', title: 'Tage' },`
|
||
|
||
## `src/components/FlowEditor/nodes/start/ScheduleStartNodeConfig.tsx`:47
|
||
|
||
- **Text:** 'a'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'years', label: 'a', title: 'Jahre' },`
|
||
|
||
## `src/components/FlowEditor/nodes/start/StartNodeConfig.tsx`:12
|
||
|
||
- **Text:** 'manual | form | schedule | email | webhook | api | event'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` "type": "manual | form | schedule | email | webhook | api | event",`
|
||
|
||
## `src/components/FlowEditor/nodes/switch/SwitchNodeConfig.tsx`:58
|
||
|
||
- **Text:** 'input.upload'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` isMimeTypeRef && sourceNode?.type === 'input.upload' && sourceNode.parameters`
|
||
|
||
## `src/components/FlowEditor/nodes/switch/SwitchNodeConfig.tsx`:114
|
||
|
||
- **Text:** '— MIME-Type wählen —'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">— MIME-Type wählen —</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/switch/SwitchNodeConfig.tsx`:130
|
||
|
||
- **Text:** '0'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="0"`
|
||
|
||
## `src/components/FlowEditor/nodes/switch/SwitchNodeConfig.tsx`:154
|
||
|
||
- **Text:** '— wählen —'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">— wählen —</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/switch/SwitchNodeConfig.tsx`:155
|
||
|
||
- **Text:** 'Ja / wahr'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="true">Ja / wahr</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/switch/SwitchNodeConfig.tsx`:156
|
||
|
||
- **Text:** 'Nein / falsch'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="false">Nein / falsch</option>`
|
||
|
||
## `src/components/FlowEditor/nodes/switch/SwitchNodeConfig.tsx`:166
|
||
|
||
- **Text:** 'z.B. application/pdf'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` placeholder={isMimeTypeRef ? 'z.B. application/pdf' : `Wert`}`
|
||
|
||
## `src/components/FlowEditor/nodes/switch/SwitchNodeConfig.tsx`:189
|
||
|
||
- **Text:** 'Feld zum Vergleichen wählen…'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Feld zum Vergleichen wählen…"`
|
||
|
||
## `src/components/FlowEditor/nodes/switch/SwitchNodeConfig.tsx`:195
|
||
|
||
- **Text:** 'Fester Wert (falls keine Referenz)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Fester Wert (falls keine Referenz)</label>`
|
||
|
||
## `src/components/FlowEditor/nodes/switch/SwitchNodeConfig.tsx`:200
|
||
|
||
- **Text:** 'z.B. CH oder 42'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="z.B. CH oder 42"`
|
||
|
||
## `src/components/FlowEditor/nodes/switch/SwitchNodeConfig.tsx`:206
|
||
|
||
- **Text:** 'Fälle (Reihenfolge = Ausgang)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Fälle (Reihenfolge = Ausgang)</label>`
|
||
|
||
## `src/components/FolderTree/FolderTree.tsx`:164
|
||
|
||
- **Text:** 'Persönlich'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` personal: 'Persönlich',`
|
||
|
||
## `src/components/FolderTree/FolderTree.tsx`:257
|
||
|
||
- **Text:** 'Umbenennen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <button className={styles.actionBtn} onClick={(e) => { e.stopPropagation(); setRenameValue(file.fileName); setRenaming(true); }} title="Umbenennen">`
|
||
|
||
## `src/components/FolderTree/FolderTree.tsx`:278
|
||
|
||
- **Text:** 'Löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <button className={`${styles.actionBtn} ${styles.danger}`} onClick={_handleDeleteSingle} title="Löschen">`
|
||
|
||
## `src/components/FolderTree/FolderTree.tsx`:311
|
||
|
||
- **Text:** 'Neutralisierung aktiv (klicken zum Deaktivieren)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title={file.neutralize ? 'Neutralisierung aktiv (klicken zum Deaktivieren)' : 'Neutralisierung aus (klicken zum Aktivieren)'}`
|
||
|
||
## `src/components/FolderTree/FolderTree.tsx`:311
|
||
|
||
- **Text:** 'Neutralisierung aus (klicken zum Aktivieren)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title={file.neutralize ? 'Neutralisierung aktiv (klicken zum Deaktivieren)' : 'Neutralisierung aus (klicken zum Aktivieren)'}`
|
||
|
||
## `src/components/FolderTree/FolderTree.tsx`:380
|
||
|
||
- **Text:** 'Neuer Ordnername:'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const name = await promptFolderName('Neuer Ordnername:', { title: 'Neuer Ordner', placeholder: 'Ordnername' });`
|
||
|
||
## `src/components/FolderTree/FolderTree.tsx`:380
|
||
|
||
- **Text:** 'Neuer Ordner'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const name = await promptFolderName('Neuer Ordnername:', { title: 'Neuer Ordner', placeholder: 'Ordnername' });`
|
||
|
||
## `src/components/FolderTree/FolderTree.tsx`:499
|
||
|
||
- **Text:** 'Ordner herunterladen (ZIP)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <button className={styles.actionBtn} onClick={(e) => { e.stopPropagation(); onDownloadFolder(node.id, node.name); }} title="Ordner herunterladen (ZIP)">`
|
||
|
||
## `src/components/FolderTree/FolderTree.tsx`:504
|
||
|
||
- **Text:** 'Neuer Unterordner'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <button className={styles.actionBtn} onClick={_handleAdd} title="Neuer Unterordner">`
|
||
|
||
## `src/components/FolderTree/FolderTree.tsx`:509
|
||
|
||
- **Text:** 'Umbenennen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <button className={styles.actionBtn} onClick={(e) => { e.stopPropagation(); setRenameValue(node.name); setRenaming(true); }} title="Umbenennen">`
|
||
|
||
## `src/components/FolderTree/FolderTree.tsx`:529
|
||
|
||
- **Text:** 'Löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <button className={`${styles.actionBtn} ${styles.danger}`} onClick={_handleDeleteSingle} title="Löschen">`
|
||
|
||
## `src/components/FolderTree/FolderTree.tsx`:754
|
||
|
||
- **Text:** 'Aktualisieren'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <button className={styles.actionBtn} onClick={(e) => { e.stopPropagation(); onRefresh(); }} title="Aktualisieren">`
|
||
|
||
## `src/components/FolderTree/FolderTree.tsx`:763
|
||
|
||
- **Text:** 'Neuer Ordnername:'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const name = await promptFolderName('Neuer Ordnername:', { title: 'Neuer Ordner', placeholder: 'Ordnername' });`
|
||
|
||
## `src/components/FolderTree/FolderTree.tsx`:763
|
||
|
||
- **Text:** 'Neuer Ordner'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const name = await promptFolderName('Neuer Ordnername:', { title: 'Neuer Ordner', placeholder: 'Ordnername' });`
|
||
|
||
## `src/components/FolderTree/FolderTree.tsx`:766
|
||
|
||
- **Text:** 'Neuer Ordner'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Neuer Ordner"`
|
||
|
||
## `src/components/FormGenerator/ActionButtons/DeleteActionButton/DeleteActionButton.tsx`:50
|
||
|
||
- **Text:** 'DeleteActionButton requires hookData to be provided'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` throw new Error('DeleteActionButton requires hookData to be provided');`
|
||
|
||
## `src/components/FormGenerator/ActionButtons/DeleteActionButton/DeleteActionButton.tsx`:65
|
||
|
||
- **Text:** 'DeleteActionButton requires hookData.refetch to be defined'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` throw new Error('DeleteActionButton requires hookData.refetch to be defined');`
|
||
|
||
## `src/components/FormGenerator/ActionButtons/DeleteActionButton/DeleteActionButton.tsx`:134
|
||
|
||
- **Text:** 'Delete failed'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` onError?.(row, 'Delete failed');`
|
||
|
||
## `src/components/FormGenerator/ActionButtons/DeleteActionButton/DeleteActionButton.tsx`:138
|
||
|
||
- **Text:** 'Delete failed'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` onError?.(row, error.message || 'Delete failed');`
|
||
|
||
## `src/components/FormGenerator/ActionButtons/EditActionButton/EditActionButton.tsx`:61
|
||
|
||
- **Text:** 'EditActionButton requires hookData to be provided'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` throw new Error('EditActionButton requires hookData to be provided');`
|
||
|
||
## `src/components/FormGenerator/ActionButtons/ViewActionButton/ViewActionButton.tsx`:103
|
||
|
||
- **Text:** 'Unknown Item'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` fileName={(row as any)[nameField] || 'Unknown Item'}`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorControls/FormGeneratorControls.tsx`:43
|
||
|
||
- **Text:** 'Sync to Accounting'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` // Optional batch actions (e.g. "Sync to Accounting") – shown when items are selected`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorControls/FormGeneratorControls.tsx`:160
|
||
|
||
- **Text:** ' '
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder=" "`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorForm/FormGeneratorForm.tsx`:670
|
||
|
||
- **Text:** 'English'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'en', label: 'English', required: true },`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorForm/FormGeneratorForm.tsx`:671
|
||
|
||
- **Text:** 'German'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'ge', label: 'German', required: false },`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorForm/FormGeneratorForm.tsx`:672
|
||
|
||
- **Text:** 'French'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'fr', label: 'French', required: false },`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorForm/FormGeneratorForm.tsx`:673
|
||
|
||
- **Text:** 'Italian'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'it', label: 'Italian', required: false }`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorForm/FormGeneratorForm.tsx`:817
|
||
|
||
- **Text:** "({currentValues.length} {t('ausgewählt')})"
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.multiselectCount}> ({currentValues.length} {t('ausgewählt')})</span>`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorList/FormGeneratorList.tsx`:133
|
||
|
||
- **Text:** '⚠️ FormGeneratorList: No fields provided! '
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` '⚠️ FormGeneratorList: No fields provided! ' +`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorList/FormGeneratorList.tsx`:134
|
||
|
||
- **Text:** 'Fields should come from Pydantic attribute definitions via /attributes/{entityType} endpoint. '
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'Fields should come from Pydantic attribute definitions via /attributes/{entityType} endpoint. ' +`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorList/FormGeneratorList.tsx`:135
|
||
|
||
- **Text:** 'Please ensure the calling component fetches and passes fields from the backend.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'Please ensure the calling component fetches and passes fields from the backend.'`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorList/FormGeneratorList.tsx`:354
|
||
|
||
- **Text:** 'Some items failed to delete'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` throw new Error('Some items failed to delete');`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorList/FormGeneratorList.tsx`:441
|
||
|
||
- **Text:** 'in progress'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` if (statusValue === 'pending' || statusValue === 'waiting' || statusValue === 'in_progress' || statusValue === 'in progress') {`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorList/FormGeneratorList.tsx`:611
|
||
|
||
- **Text:** 't support '
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` // TextField doesn't support 'textarea' type, use 'text' instead`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorList/FormGeneratorList.tsx`:611
|
||
|
||
- **Text:** ' type, use '
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` // TextField doesn't support 'textarea' type, use 'text' instead`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorReport/FormGeneratorReport.tsx`:42
|
||
|
||
- **Text:** 'Mär'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` '01': 'Jan', '02': 'Feb', '03': 'Mär', '04': 'Apr',`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorReport/FormGeneratorReport.tsx`:118
|
||
|
||
- **Text:** 'Keine Daten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` return <div className={styles.noData}>Keine Daten</div>;`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorReport/FormGeneratorReport.tsx`:162
|
||
|
||
- **Text:** 'Keine Daten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` return <div className={styles.noData}>Keine Daten</div>;`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorReport/FormGeneratorReport.tsx`:193
|
||
|
||
- **Text:** 'Keine Daten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` return <div className={styles.noData}>Keine Daten</div>;`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorReport/FormGeneratorReport.tsx`:239
|
||
|
||
- **Text:** 'Keine Daten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` return <div className={styles.noData}>Keine Daten</div>;`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorReport/FormGeneratorReport.tsx`:285
|
||
|
||
- **Text:** 'Keine Daten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` return <div className={styles.noData}>Keine Daten</div>;`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorReport/FormGeneratorReport.tsx`:345
|
||
|
||
- **Text:** 'Keine Daten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` return <div className={styles.noData}>Keine Daten</div>;`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorReport/FormGeneratorReport.tsx`:457
|
||
|
||
- **Text:** 'Unbekannter Sektionstyp'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` return <div className={styles.noData}>Unbekannter Sektionstyp</div>;`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorReport/FormGeneratorReport.tsx`:522
|
||
|
||
- **Text:** 'Januar'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 1, label: 'Januar' }, { value: 2, label: 'Februar' },`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorReport/FormGeneratorReport.tsx`:522
|
||
|
||
- **Text:** 'Februar'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 1, label: 'Januar' }, { value: 2, label: 'Februar' },`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorReport/FormGeneratorReport.tsx`:523
|
||
|
||
- **Text:** 'März'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 3, label: 'März' }, { value: 4, label: 'April' },`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorReport/FormGeneratorReport.tsx`:523
|
||
|
||
- **Text:** 'April'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 3, label: 'März' }, { value: 4, label: 'April' },`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorReport/FormGeneratorReport.tsx`:524
|
||
|
||
- **Text:** 'Mai'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 5, label: 'Mai' }, { value: 6, label: 'Juni' },`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorReport/FormGeneratorReport.tsx`:524
|
||
|
||
- **Text:** 'Juni'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 5, label: 'Mai' }, { value: 6, label: 'Juni' },`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorReport/FormGeneratorReport.tsx`:525
|
||
|
||
- **Text:** 'Juli'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 7, label: 'Juli' }, { value: 8, label: 'August' },`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorReport/FormGeneratorReport.tsx`:525
|
||
|
||
- **Text:** 'August'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 7, label: 'Juli' }, { value: 8, label: 'August' },`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorReport/FormGeneratorReport.tsx`:526
|
||
|
||
- **Text:** 'September'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 9, label: 'September' }, { value: 10, label: 'Oktober' },`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorReport/FormGeneratorReport.tsx`:526
|
||
|
||
- **Text:** 'Oktober'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 9, label: 'September' }, { value: 10, label: 'Oktober' },`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorReport/FormGeneratorReport.tsx`:527
|
||
|
||
- **Text:** 'November'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 11, label: 'November' }, { value: 12, label: 'Dezember' }`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorReport/FormGeneratorReport.tsx`:527
|
||
|
||
- **Text:** 'Dezember'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 11, label: 'November' }, { value: 12, label: 'Dezember' }`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorReport/FormGeneratorReport.tsx`:652
|
||
|
||
- **Text:** 'Keine Daten verfügbar'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` noDataMessage = 'Keine Daten verfügbar',`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorReport/FormGeneratorReport.tsx`:718
|
||
|
||
- **Text:** 'Lade Daten...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.loadingContainer}>Lade Daten...</div>`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorTable/FormGeneratorTable.tsx`:363
|
||
|
||
- **Text:** '⚠️ FormGeneratorTable: No columns provided! '
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` '⚠️ FormGeneratorTable: No columns provided! ' +`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorTable/FormGeneratorTable.tsx`:364
|
||
|
||
- **Text:** 'Columns should come from Pydantic attribute definitions via /attributes/{entityType} endpoint. '
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'Columns should come from Pydantic attribute definitions via /attributes/{entityType} endpoint. ' +`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorTable/FormGeneratorTable.tsx`:365
|
||
|
||
- **Text:** 'Please ensure the calling component fetches and passes columns from the backend.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'Please ensure the calling component fetches and passes columns from the backend.'`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorTable/FormGeneratorTable.tsx`:1328
|
||
|
||
- **Text:** "') + '"
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` str = '"' + str.replace(/"/g, '""') + '"';`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorTable/FormGeneratorTable.tsx`:1686
|
||
|
||
- **Text:** 's a number, check if it'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` // If it's a number, check if it's in seconds (typical Unix timestamp range)`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorTable/FormGeneratorTable.tsx`:1694
|
||
|
||
- **Text:** 's an ISO date string or date string (contains '
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` // Check if it's an ISO date string or date string (contains 'T', '-', or ':')`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorTable/FormGeneratorTable.tsx`:1694
|
||
|
||
- **Text:** ', or '
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` // Check if it's an ISO date string or date string (contains 'T', '-', or ':')`
|
||
|
||
## `src/components/FormGenerator/FormGeneratorTable/FormGeneratorTable.tsx`:2088
|
||
|
||
- **Text:** '2px solid var(--border-color, #e2e8f0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: '2px solid var(--border-color, #e2e8f0)'`
|
||
|
||
## `src/components/Navigation/MandateNavigation.tsx`:62
|
||
|
||
- **Text:** 'Meine Sicht'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` * Used for grouping static items under "Meine Sicht" and "Administration".`
|
||
|
||
## `src/components/Navigation/UserSection.tsx`:142
|
||
|
||
- **Text:** 'Rechtliche Hinweise'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2>Rechtliche Hinweise</h2>`
|
||
|
||
## `src/components/Navigation/UserSection.tsx`:152
|
||
|
||
- **Text:** 'Datenverarbeitung und KI-Nutzung'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3>Datenverarbeitung und KI-Nutzung</h3>`
|
||
|
||
## `src/components/Navigation/UserSection.tsx`:154
|
||
|
||
- **Text:** '1. Einwilligung zur Datenverarbeitung'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h4>1. Einwilligung zur Datenverarbeitung</h4>`
|
||
|
||
## `src/components/Navigation/UserSection.tsx`:155
|
||
|
||
- **Text:** 'Mit der Nutzung dieser Anwendung stimmen Sie zu und erklären sich mit den folgenden Bedingungen zur Verarbeitung Ihrer Daten durch künstliche Intelligenz einverstanden:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Mit der Nutzung dieser Anwendung stimmen Sie zu und erklären sich mit den folgenden Bedingungen zur Verarbeitung Ihrer Daten durch künstliche Intelligenz einverstanden:</p>`
|
||
|
||
## `src/components/Navigation/UserSection.tsx`:157
|
||
|
||
- **Text:** 'Sie autorisieren die Erfassung, Verarbeitung, Übertragung und Speicherung aller Daten, die Sie bei der Nutzung unserer Dienste bereitstellen.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <li>Sie autorisieren die Erfassung, Verarbeitung, Übertragung und Speicherung aller Daten, die Sie bei der Nutzung unserer Dienste bereitstellen.</li>`
|
||
|
||
## `src/components/Navigation/UserSection.tsx`:158
|
||
|
||
- **Text:** 'Nutzerdaten können an Drittanbieter von künstlicher Intelligenz übertragen werden (z.B. OpenAI).'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <li>Nutzerdaten können an Drittanbieter von künstlicher Intelligenz übertragen werden (z.B. OpenAI).</li>`
|
||
|
||
## `src/components/Navigation/UserSection.tsx`:159
|
||
|
||
- **Text:** 'Diese Einwilligung erstreckt sich auf alle Inhalte, einschließlich Text, Bilder, Dokumente und Gesprächsverläufe.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <li>Diese Einwilligung erstreckt sich auf alle Inhalte, einschließlich Text, Bilder, Dokumente und Gesprächsverläufe.</li>`
|
||
|
||
## `src/components/Navigation/UserSection.tsx`:162
|
||
|
||
- **Text:** '2. Anerkennung der KI-Verarbeitungsrisiken'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h4>2. Anerkennung der KI-Verarbeitungsrisiken</h4>`
|
||
|
||
## `src/components/Navigation/UserSection.tsx`:164
|
||
|
||
- **Text:** 'KI-Systeme können unerwartete oder ungenaue Ausgaben erzeugen.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <li>KI-Systeme können unerwartete oder ungenaue Ausgaben erzeugen.</li>`
|
||
|
||
## `src/components/Navigation/UserSection.tsx`:165
|
||
|
||
- **Text:** 'KI-Dienste können Daten gemäß ihren eigenen Nutzungsbedingungen speichern oder daraus lernen.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <li>KI-Dienste können Daten gemäß ihren eigenen Nutzungsbedingungen speichern oder daraus lernen.</li>`
|
||
|
||
## `src/components/Navigation/UserSection.tsx`:166
|
||
|
||
- **Text:** 'Trotz Sicherheitsmaßnahmen können Daten anfällig für unbefugten Zugriff sein.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <li>Trotz Sicherheitsmaßnahmen können Daten anfällig für unbefugten Zugriff sein.</li>`
|
||
|
||
## `src/components/Navigation/UserSection.tsx`:169
|
||
|
||
- **Text:** '3. Haftungsausschluss'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h4>3. Haftungsausschluss</h4>`
|
||
|
||
## `src/components/Navigation/UserSection.tsx`:170
|
||
|
||
- **Text:** 'Im größtmöglichen Umfang verzichten Sie auf Ansprüche, die sich aus der KI-Verarbeitung ergeben, einschließlich Datenverletzungen und unbeabsichtigter Offenlegung.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Im größtmöglichen Umfang verzichten Sie auf Ansprüche, die sich aus der KI-Verarbeitung ergeben, einschließlich Datenverletzungen und unbeabsichtigter Offenlegung.</p>`
|
||
|
||
## `src/components/Navigation/UserSection.tsx`:174
|
||
|
||
- **Text:** 'noopener noreferrer'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <a href="/poweron-privacy.html" target="_blank" rel="noopener noreferrer">`
|
||
|
||
## `src/components/Navigation/UserSection.tsx`:177
|
||
|
||
- **Text:** 'noopener noreferrer'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <a href="/poweron-terms.html" target="_blank" rel="noopener noreferrer">`
|
||
|
||
## `src/components/Navigation/UserSection.tsx`:180
|
||
|
||
- **Text:** 'noopener noreferrer'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <a href="/poweron-home.html" target="_blank" rel="noopener noreferrer">`
|
||
|
||
## `src/components/NotificationBell/NotificationBell.tsx`:29
|
||
|
||
- **Text:** 'Gerade eben'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` if (diff < 60) return 'Gerade eben';`
|
||
|
||
## `src/components/NotificationBell/NotificationBell.tsx`:183
|
||
|
||
- **Text:** 'Keine Benachrichtigungen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Keine Benachrichtigungen</p>`
|
||
|
||
## `src/components/NotificationBell/NotificationBell.tsx`:253
|
||
|
||
- **Text:** 'Schliessen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` aria-label="Schliessen"`
|
||
|
||
## `src/components/OnboardingAssistant.tsx`:21
|
||
|
||
- **Text:** 'Tipp: Ein Mandant ist Ihr Arbeitsbereich. Sie koennen spaeter weitere Mandanten fuer Teams oder Projekte erstellen.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` mandate: 'Tipp: Ein Mandant ist Ihr Arbeitsbereich. Sie koennen spaeter weitere Mandanten fuer Teams oder Projekte erstellen.',`
|
||
|
||
## `src/components/OnboardingAssistant.tsx`:22
|
||
|
||
- **Text:** 'Tipp: Im Store finden Sie AI-Workspace, CommCoach und weitere Features. Aktivieren Sie mindestens eines, um loszulegen.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` feature: 'Tipp: Im Store finden Sie AI-Workspace, CommCoach und weitere Features. Aktivieren Sie mindestens eines, um loszulegen.',`
|
||
|
||
## `src/components/OnboardingAssistant.tsx`:23
|
||
|
||
- **Text:** 'Tipp: Verbinden Sie Ihre Datenquellen (z.B. SharePoint, Google Drive), damit der AI-Assistent auf Ihre Dokumente zugreifen kann.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` connection: 'Tipp: Verbinden Sie Ihre Datenquellen (z.B. SharePoint, Google Drive), damit der AI-Assistent auf Ihre Dokumente zugreifen kann.',`
|
||
|
||
## `src/components/OnboardingAssistant.tsx`:24
|
||
|
||
- **Text:** 'Tipp: Starten Sie einen Chat mit dem AI-Assistenten. Er kann Ihre verbundenen Daten analysieren und Fragen beantworten.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` chat: 'Tipp: Starten Sie einen Chat mit dem AI-Assistenten. Er kann Ihre verbundenen Daten analysieren und Fragen beantworten.',`
|
||
|
||
## `src/components/OnboardingAssistant.tsx`:97
|
||
|
||
- **Text:** 'Mandant einrichten'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Mandant einrichten',`
|
||
|
||
## `src/components/OnboardingAssistant.tsx`:99
|
||
|
||
- **Text:** 'Dein Mandant ist eingerichtet.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Dein Mandant ist eingerichtet.'`
|
||
|
||
## `src/components/OnboardingAssistant.tsx`:101
|
||
|
||
- **Text:** 'Du bist Mitglied eines Mandanten.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Du bist Mitglied eines Mandanten.'`
|
||
|
||
## `src/components/OnboardingAssistant.tsx`:102
|
||
|
||
- **Text:** 'Erstelle deinen Arbeitsbereich.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'Erstelle deinen Arbeitsbereich.',`
|
||
|
||
## `src/components/OnboardingAssistant.tsx`:109
|
||
|
||
- **Text:** 'Erstes Feature aktivieren'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Erstes Feature aktivieren',`
|
||
|
||
## `src/components/OnboardingAssistant.tsx`:111
|
||
|
||
- **Text:** 'Du hast aktive Features.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Du hast aktive Features.'`
|
||
|
||
## `src/components/OnboardingAssistant.tsx`:112
|
||
|
||
- **Text:** 'Aktiviere dein erstes Feature im Store.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'Aktiviere dein erstes Feature im Store.',`
|
||
|
||
## `src/components/OnboardingAssistant.tsx`:126
|
||
|
||
- **Text:** 'Erste Datenquelle einbinden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Erste Datenquelle einbinden',`
|
||
|
||
## `src/components/OnboardingAssistant.tsx`:128
|
||
|
||
- **Text:** 'Du hast Verbindungen eingerichtet.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Du hast Verbindungen eingerichtet.'`
|
||
|
||
## `src/components/OnboardingAssistant.tsx`:129
|
||
|
||
- **Text:** 'Verbinde deine erste Datenquelle.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'Verbinde deine erste Datenquelle.',`
|
||
|
||
## `src/components/OnboardingAssistant.tsx`:147
|
||
|
||
- **Text:** 'Ersten AI-Chat starten'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Ersten AI-Chat starten',`
|
||
|
||
## `src/components/OnboardingAssistant.tsx`:149
|
||
|
||
- **Text:** 'Du hast bereits Chats gestartet.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Du hast bereits Chats gestartet.'`
|
||
|
||
## `src/components/OnboardingAssistant.tsx`:150
|
||
|
||
- **Text:** 'Starte deinen ersten Chat mit dem AI-Assistenten.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'Starte deinen ersten Chat mit dem AI-Assistenten.',`
|
||
|
||
## `src/components/OnboardingAssistant.tsx`:208
|
||
|
||
- **Text:** '1px solid var(--border-color, #e5e7eb)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #e5e7eb)',`
|
||
|
||
## `src/components/OnboardingAssistant.tsx`:227
|
||
|
||
- **Text:** 'background 0.3s'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` transition: 'background 0.3s',`
|
||
|
||
## `src/components/OnboardingAssistant.tsx`:242
|
||
|
||
- **Text:** '1px solid var(--accent, #4f46e5)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: step.completed ? 'none' : isNextStep ? '1px solid var(--accent, #4f46e5)' : '1px solid var(--border-color, #e5e7eb)',`
|
||
|
||
## `src/components/OnboardingAssistant.tsx`:242
|
||
|
||
- **Text:** '1px solid var(--border-color, #e5e7eb)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: step.completed ? 'none' : isNextStep ? '1px solid var(--accent, #4f46e5)' : '1px solid var(--border-color, #e5e7eb)',`
|
||
|
||
## `src/components/OnboardingAssistant.tsx`:268
|
||
|
||
- **Text:** '3px solid var(--accent, #4f46e5)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderLeft: '3px solid var(--accent, #4f46e5)',`
|
||
|
||
## `src/components/OnboardingAssistant.tsx`:281
|
||
|
||
- **Text:** '1px solid var(--border-color, #e5e7eb)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderTop: '1px solid var(--border-color, #e5e7eb)',`
|
||
|
||
## `src/components/OnboardingAssistant.tsx`:295
|
||
|
||
- **Text:** '1px solid var(--border-color, #d1d5db)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #d1d5db)',`
|
||
|
||
## `src/components/OnboardingWizard.tsx`:24
|
||
|
||
- **Text:** 'Du hast bereits einen Mandanten mit Admin-Zugang.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError('Du hast bereits einen Mandanten mit Admin-Zugang.');`
|
||
|
||
## `src/components/OnboardingWizard.tsx`:30
|
||
|
||
- **Text:** 'Fehler bei der Einrichtung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err?.response?.data?.detail || 'Fehler bei der Einrichtung');`
|
||
|
||
## `src/components/OnboardingWizard.tsx`:44
|
||
|
||
- **Text:** '0 8px 32px rgba(0,0,0,0.2)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` maxWidth: '480px', width: '90%', boxShadow: '0 8px 32px rgba(0,0,0,0.2)',`
|
||
|
||
## `src/components/OnboardingWizard.tsx`:54
|
||
|
||
- **Text:** '2px solid var(--accent, #4f46e5)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: planKey === 'TRIAL_7D' ? '2px solid var(--accent, #4f46e5)' : '2px solid var(--border, #e5e7eb)',`
|
||
|
||
## `src/components/OnboardingWizard.tsx`:54
|
||
|
||
- **Text:** '2px solid var(--border, #e5e7eb)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: planKey === 'TRIAL_7D' ? '2px solid var(--accent, #4f46e5)' : '2px solid var(--border, #e5e7eb)',`
|
||
|
||
## `src/components/OnboardingWizard.tsx`:60
|
||
|
||
- **Text:** 'Kostenlos testen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <strong>Kostenlos testen</strong>`
|
||
|
||
## `src/components/OnboardingWizard.tsx`:69
|
||
|
||
- **Text:** '2px solid var(--accent, #4f46e5)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: planKey === 'STANDARD_MONTHLY' ? '2px solid var(--accent, #4f46e5)' : '2px solid var(--border, #e5e7eb)',`
|
||
|
||
## `src/components/OnboardingWizard.tsx`:69
|
||
|
||
- **Text:** '2px solid var(--border, #e5e7eb)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: planKey === 'STANDARD_MONTHLY' ? '2px solid var(--accent, #4f46e5)' : '2px solid var(--border, #e5e7eb)',`
|
||
|
||
## `src/components/OnboardingWizard.tsx`:75
|
||
|
||
- **Text:** 'Standard (Monatlich)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <strong>Standard (Monatlich)</strong>`
|
||
|
||
## `src/components/OnboardingWizard.tsx`:90
|
||
|
||
- **Text:** 'z. B. Firmenname oder Projektname'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="z. B. Firmenname oder Projektname"`
|
||
|
||
## `src/components/OnboardingWizard.tsx`:114
|
||
|
||
- **Text:** 'Wird eingerichtet...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {loading ? 'Wird eingerichtet...' : 'Mandant erstellen'}`
|
||
|
||
## `src/components/OnboardingWizard.tsx`:114
|
||
|
||
- **Text:** 'Mandant erstellen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {loading ? 'Wird eingerichtet...' : 'Mandant erstellen'}`
|
||
|
||
## `src/components/ProviderSelector/ProviderSelector.tsx`:80
|
||
|
||
- **Text:** 'Anthropic (Claude)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` anthropic: 'Anthropic (Claude)',`
|
||
|
||
## `src/components/ProviderSelector/ProviderSelector.tsx`:81
|
||
|
||
- **Text:** 'OpenAI (GPT)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` openai: 'OpenAI (GPT)',`
|
||
|
||
## `src/components/ProviderSelector/ProviderSelector.tsx`:82
|
||
|
||
- **Text:** 'Mistral (Le Chat)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` mistral: 'Mistral (Le Chat)',`
|
||
|
||
## `src/components/ProviderSelector/ProviderSelector.tsx`:84
|
||
|
||
- **Text:** 'Tavily (Web Search)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` tavily: 'Tavily (Web Search)',`
|
||
|
||
## `src/components/ProviderSelector/ProviderSelector.tsx`:85
|
||
|
||
- **Text:** 'Private LLM'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` privatellm: 'Private LLM',`
|
||
|
||
## `src/components/ProviderSelector/ProviderSelector.tsx`:144
|
||
|
||
- **Text:** '-- Auto --'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">-- Auto --</option>`
|
||
|
||
## `src/components/ProviderSelector/ProviderSelector.tsx`:264
|
||
|
||
- **Text:** 'Kein Provider ausgewählt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` if (noneSelected) return 'Kein Provider ausgewählt';`
|
||
|
||
## `src/components/ProviderSelector/ProviderSelector.tsx`:265
|
||
|
||
- **Text:** 'Alle Provider aktiv (dynamisch)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` if (allSelected) return 'Alle Provider aktiv (dynamisch)';`
|
||
|
||
## `src/components/ProviderSelector/ProviderSelector.tsx`:282
|
||
|
||
- **Text:** 'Provider auswählen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Provider auswählen"`
|
||
|
||
## `src/components/ProviderSelector/ProviderSelector.tsx`:347
|
||
|
||
- **Text:** 'Alle Provider'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` return <span className={styles.allProviders}>Alle Provider</span>;`
|
||
|
||
## `src/components/RbacExportImport/RbacExportImport.tsx`:47
|
||
|
||
- **Text:** 'Zusammenführen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Zusammenführen',`
|
||
|
||
## `src/components/RbacExportImport/RbacExportImport.tsx`:48
|
||
|
||
- **Text:** 'Bestehende Regeln aktualisieren, neue hinzufügen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` description: 'Bestehende Regeln aktualisieren, neue hinzufügen',`
|
||
|
||
## `src/components/RbacExportImport/RbacExportImport.tsx`:53
|
||
|
||
- **Text:** 'Nur hinzufügen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Nur hinzufügen',`
|
||
|
||
## `src/components/RbacExportImport/RbacExportImport.tsx`:54
|
||
|
||
- **Text:** 'Nur neue Regeln hinzufügen, bestehende nicht ändern'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` description: 'Nur neue Regeln hinzufügen, bestehende nicht ändern',`
|
||
|
||
## `src/components/RbacExportImport/RbacExportImport.tsx`:59
|
||
|
||
- **Text:** 'Ersetzen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Ersetzen',`
|
||
|
||
## `src/components/RbacExportImport/RbacExportImport.tsx`:60
|
||
|
||
- **Text:** 'Alle bestehenden Regeln löschen und ersetzen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` description: 'Alle bestehenden Regeln löschen und ersetzen',`
|
||
|
||
## `src/components/RbacExportImport/RbacExportImport.tsx`:91
|
||
|
||
- **Text:** 'Rollen ({data.roles.length})'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h5>Rollen ({data.roles.length})</h5>`
|
||
|
||
## `src/components/RbacExportImport/RbacExportImport.tsx`:100
|
||
|
||
- **Text:** '... und {data.roles.length - 5} weitere'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <li className={styles.moreItems}>... und {data.roles.length - 5} weitere</li>`
|
||
|
||
## `src/components/RbacExportImport/RbacExportImport.tsx`:105
|
||
|
||
- **Text:** 'Regeln ({data.accessRules.length})'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h5>Regeln ({data.accessRules.length})</h5>`
|
||
|
||
## `src/components/RbacExportImport/RbacExportImport.tsx`:114
|
||
|
||
- **Text:** '... und {data.accessRules.length - 5} weitere'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <li className={styles.moreItems}>... und {data.accessRules.length - 5} weitere</li>`
|
||
|
||
## `src/components/RbacExportImport/RbacExportImport.tsx`:144
|
||
|
||
- **Text:** 'Import erfolgreich'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isSuccess ? 'Import erfolgreich' : 'Import fehlgeschlagen'}`
|
||
|
||
## `src/components/RbacExportImport/RbacExportImport.tsx`:144
|
||
|
||
- **Text:** 'Import fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isSuccess ? 'Import erfolgreich' : 'Import fehlgeschlagen'}`
|
||
|
||
## `src/components/RbacExportImport/RbacExportImport.tsx`:151
|
||
|
||
- **Text:** 'Rollen erstellt:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <li><strong>Rollen erstellt:</strong> {result.rolesCreated}</li>`
|
||
|
||
## `src/components/RbacExportImport/RbacExportImport.tsx`:152
|
||
|
||
- **Text:** 'Rollen aktualisiert:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <li><strong>Rollen aktualisiert:</strong> {result.rolesUpdated}</li>`
|
||
|
||
## `src/components/RbacExportImport/RbacExportImport.tsx`:153
|
||
|
||
- **Text:** 'Regeln erstellt:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <li><strong>Regeln erstellt:</strong> {result.rulesCreated}</li>`
|
||
|
||
## `src/components/RbacExportImport/RbacExportImport.tsx`:154
|
||
|
||
- **Text:** 'Regeln aktualisiert:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <li><strong>Regeln aktualisiert:</strong> {result.rulesUpdated}</li>`
|
||
|
||
## `src/components/RbacExportImport/RbacExportImport.tsx`:232
|
||
|
||
- **Text:** 'Fehler beim Parsen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setParseError(result.error || 'Fehler beim Parsen');`
|
||
|
||
## `src/components/RbacExportImport/RbacExportImport.tsx`:288
|
||
|
||
- **Text:** ' der globalen Templates'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isGlobal ? ' der globalen Templates' : ` des Mandanten "${mandateName || mandateId}"`}`
|
||
|
||
## `src/components/RbacExportImport/RbacExportImport.tsx`:288
|
||
|
||
- **Text:** '${mandateName || mandateId}'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isGlobal ? ' der globalen Templates' : ` des Mandanten "${mandateName || mandateId}"`}`
|
||
|
||
## `src/components/RbacExportImport/RbacExportImport.tsx`:335
|
||
|
||
- **Text:** 'JSON-Datei auswählen oder hier ablegen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>JSON-Datei auswählen oder hier ablegen</span>`
|
||
|
||
## `src/components/RbacExportImport/RbacExportImport.tsx`:343
|
||
|
||
- **Text:** 'Datei entfernen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Datei entfernen"`
|
||
|
||
## `src/components/UiComponents/AddressAutocomplete/AddressAutocomplete.tsx`:91
|
||
|
||
- **Text:** 'no results'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setShowSuggestions(results.length > 0 || true); // Show dropdown even if empty to show "no results" or error`
|
||
|
||
## `src/components/UiComponents/AddressAutocomplete/AddressAutocomplete.tsx`:96
|
||
|
||
- **Text:** 'Fehler beim Laden der Adressvorschläge'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const errorMessage = err?.response?.data?.detail || err?.message || 'Fehler beim Laden der Adressvorschläge';`
|
||
|
||
## `src/components/UiComponents/AddressAutocomplete/AddressAutocomplete.tsx`:277
|
||
|
||
- **Text:** 'Suche Adressen...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.loadingText}>Suche Adressen...</span>`
|
||
|
||
## `src/components/UiComponents/AddressAutocomplete/AddressAutocomplete.tsx`:287
|
||
|
||
- **Text:** 'Keine Adressen gefunden'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.noResultsText}>Keine Adressen gefunden</span>`
|
||
|
||
## `src/components/UiComponents/AutoScroll/AutoScroll.tsx`:22
|
||
|
||
- **Text:** 'at bottom'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` * Threshold in pixels from bottom to consider user "at bottom"`
|
||
|
||
## `src/components/UiComponents/AutoScroll/AutoScroll.tsx`:151
|
||
|
||
- **Text:** 'Scroll to bottom'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` aria-label="Scroll to bottom"`
|
||
|
||
## `src/components/UiComponents/BauvorschriftenSection/BauvorschriftenSection.tsx`:42
|
||
|
||
- **Text:** 'Ausnützungsziffer:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.label}>Ausnützungsziffer:</span>`
|
||
|
||
## `src/components/UiComponents/BauvorschriftenSection/BauvorschriftenSection.tsx`:54
|
||
|
||
- **Text:** 'Gebäudelänge max:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.label}>Gebäudelänge max:</span>`
|
||
|
||
## `src/components/UiComponents/BauvorschriftenSection/BauvorschriftenSection.tsx`:66
|
||
|
||
- **Text:** 'Mehrlängenzuschlag:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.label}>Mehrlängenzuschlag:</span>`
|
||
|
||
## `src/components/UiComponents/BauvorschriftenSection/BauvorschriftenSection.tsx`:72
|
||
|
||
- **Text:** 'Höchstmass max:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.label}>Höchstmass max:</span>`
|
||
|
||
## `src/components/UiComponents/BauvorschriftenSection/BauvorschriftenSection.tsx`:78
|
||
|
||
- **Text:** 'Fassadenhöhe:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.label}>Fassadenhöhe:</span>`
|
||
|
||
## `src/components/UiComponents/BauvorschriftenSection/BauvorschriftenSection.tsx`:89
|
||
|
||
- **Text:** 'noopener noreferrer'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` rel="noopener noreferrer"`
|
||
|
||
## `src/components/UiComponents/Button/CreateButton/CreateButton.tsx`:11
|
||
|
||
- **Text:** 'Create New Item'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` popupTitle = 'Create New Item',`
|
||
|
||
## `src/components/UiComponents/Button/CreateButton/CreateButton.tsx`:128
|
||
|
||
- **Text:** 'Creation failed'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` onError(result?.error || 'Creation failed');`
|
||
|
||
## `src/components/UiComponents/Button/CreateButton/CreateButton.tsx`:134
|
||
|
||
- **Text:** 'Creation failed'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` onError(error.message || 'Creation failed');`
|
||
|
||
## `src/components/UiComponents/Button/UploadButton/UploadButton.tsx`:74
|
||
|
||
- **Text:** 'Upload File'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {children || (isUploading ? 'Uploading...' : 'Upload File')}`
|
||
|
||
## `src/components/UiComponents/ConnectedFilesList/ConnectedFilesList.tsx`:68
|
||
|
||
- **Text:** 'No files connected to this workflow'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage = 'No files connected to this workflow'`
|
||
|
||
## `src/components/UiComponents/ConnectedFilesList/ConnectedFilesList.tsx`:184
|
||
|
||
- **Text:** 'Connected Files'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.title}>Connected Files</h3>`
|
||
|
||
## `src/components/UiComponents/ConnectedFilesList/ConnectedFilesList.tsx`:231
|
||
|
||
- **Text:** 'Click to detach from next message'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title={onAttach ? (isPendingFile ? 'Click to detach from next message' : 'Click to attach for next message') : undefined}`
|
||
|
||
## `src/components/UiComponents/ConnectedFilesList/ConnectedFilesList.tsx`:231
|
||
|
||
- **Text:** 'Click to attach for next message'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title={onAttach ? (isPendingFile ? 'Click to detach from next message' : 'Click to attach for next message') : undefined}`
|
||
|
||
## `src/components/UiComponents/ConnectedFilesList/ConnectedFilesList.tsx`:238
|
||
|
||
- **Text:** '(click to detach)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isPendingFile ? '(click to detach)' : '(click to attach)'}`
|
||
|
||
## `src/components/UiComponents/ConnectedFilesList/ConnectedFilesList.tsx`:238
|
||
|
||
- **Text:** '(click to attach)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isPendingFile ? '(click to detach)' : '(click to attach)'}`
|
||
|
||
## `src/components/UiComponents/ConnectedFilesList/ConnectedFilesList.tsx`:248
|
||
|
||
- **Text:** 'AI Created'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {file.source === 'user_uploaded' ? 'Uploaded' : 'AI Created'}`
|
||
|
||
## `src/components/UiComponents/DropdownSelect/DropdownSelect.tsx`:40
|
||
|
||
- **Text:** 'Select an item'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder = 'Select an item',`
|
||
|
||
## `src/components/UiComponents/DropdownSelect/DropdownSelect.tsx`:41
|
||
|
||
- **Text:** 'No items available'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage = 'No items available',`
|
||
|
||
## `src/components/UiComponents/InfoMessageOverlay/MessageOverlay.tsx`:95
|
||
|
||
- **Text:** 'Close warning'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` return 'Close warning';`
|
||
|
||
## `src/components/UiComponents/InfoMessageOverlay/MessageOverlay.tsx`:97
|
||
|
||
- **Text:** 'Close error'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` return 'Close error';`
|
||
|
||
## `src/components/UiComponents/InfoMessageOverlay/MessageOverlay.tsx`:99
|
||
|
||
- **Text:** 'Close success message'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` return 'Close success message';`
|
||
|
||
## `src/components/UiComponents/InfoMessageOverlay/MessageOverlay.tsx`:102
|
||
|
||
- **Text:** 'Close message'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` return 'Close message';`
|
||
|
||
## `src/components/UiComponents/LocationInput/LocationInput.tsx`:23
|
||
|
||
- **Text:** 'Kanton, Gemeinde, Adresse oder Parzelle'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder = 'Kanton, Gemeinde, Adresse oder Parzelle',`
|
||
|
||
## `src/components/UiComponents/Log/Log.tsx`:25
|
||
|
||
- **Text:** 'No log information available'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage = 'No log information available',`
|
||
|
||
## `src/components/UiComponents/MapView/MapViewLeaflet.tsx`:16
|
||
|
||
- **Text:** '© OpenStreetMap contributors'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` attribution: '© OpenStreetMap contributors',`
|
||
|
||
## `src/components/UiComponents/MapView/MapViewLeaflet.tsx`:21
|
||
|
||
- **Text:** '© OpenStreetMap © CARTO'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` { attribution: '© OpenStreetMap © CARTO', maxZoom: 19 }`
|
||
|
||
## `src/components/UiComponents/MapView/MapViewLeaflet.tsx`:50
|
||
|
||
- **Text:** 'Klicken Sie auf die Karte, um einen Standort auszuwählen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage = 'Klicken Sie auf die Karte, um einen Standort auszuwählen',`
|
||
|
||
## `src/components/UiComponents/MapView/MapViewLeaflet.tsx`:195
|
||
|
||
- **Text:** '<div><strong>Ausgewählte Fläche</strong><br/><em>Zum Entfernen Parzelle im Panel nutzen</em></div>'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` polygon.bindPopup('<div><strong>Ausgewählte Fläche</strong><br/><em>Zum Entfernen Parzelle im Panel nutzen</em></div>');`
|
||
|
||
## `src/components/UiComponents/MapView/MapViewLeaflet.tsx`:195
|
||
|
||
- **Text:** 'Ausgewählte Fläche'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` polygon.bindPopup('<div><strong>Ausgewählte Fläche</strong><br/><em>Zum Entfernen Parzelle im Panel nutzen</em></div>');`
|
||
|
||
## `src/components/UiComponents/MapView/MapViewLeaflet.tsx`:195
|
||
|
||
- **Text:** 'Zum Entfernen Parzelle im Panel nutzen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` polygon.bindPopup('<div><strong>Ausgewählte Fläche</strong><br/><em>Zum Entfernen Parzelle im Panel nutzen</em></div>');`
|
||
|
||
## `src/components/UiComponents/MapView/MapViewLeaflet.tsx`:208
|
||
|
||
- **Text:** '<div><strong>Ausgewählte Fläche</strong><br/><em>Zum Entfernen Parzelle im Panel nutzen</em></div>'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` polygon.bindPopup('<div><strong>Ausgewählte Fläche</strong><br/><em>Zum Entfernen Parzelle im Panel nutzen</em></div>');`
|
||
|
||
## `src/components/UiComponents/MapView/MapViewLeaflet.tsx`:208
|
||
|
||
- **Text:** 'Ausgewählte Fläche'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` polygon.bindPopup('<div><strong>Ausgewählte Fläche</strong><br/><em>Zum Entfernen Parzelle im Panel nutzen</em></div>');`
|
||
|
||
## `src/components/UiComponents/MapView/MapViewLeaflet.tsx`:208
|
||
|
||
- **Text:** 'Zum Entfernen Parzelle im Panel nutzen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` polygon.bindPopup('<div><strong>Ausgewählte Fläche</strong><br/><em>Zum Entfernen Parzelle im Panel nutzen</em></div>');`
|
||
|
||
## `src/components/UiComponents/MapView/MapViewLeaflet.tsx`:224
|
||
|
||
- **Text:** 'Parzelle ${parcel.number || parcel.id}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <strong>Parzelle ${parcel.number || parcel.id}</strong><br/>`
|
||
|
||
## `src/components/UiComponents/MapView/MapViewLeaflet.tsx`:226
|
||
|
||
- **Text:** 'Ausgewählt'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <em>Ausgewählt</em>`
|
||
|
||
## `src/components/UiComponents/Messages/ChatMessages/ChatMessage.tsx`:82
|
||
|
||
- **Text:** 'Aktion fehlgeschlagen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Aktion fehlgeschlagen</span>`
|
||
|
||
## `src/components/UiComponents/Messages/ChatMessages/ChatMessage.tsx`:202
|
||
|
||
- **Text:** 'Löschen bestätigen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Löschen bestätigen"`
|
||
|
||
## `src/components/UiComponents/Messages/ChatMessages/ChatMessage.tsx`:210
|
||
|
||
- **Text:** 'Abbrechen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Abbrechen"`
|
||
|
||
## `src/components/UiComponents/Messages/ChatMessages/ChatMessage.tsx`:220
|
||
|
||
- **Text:** 'Nachricht löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Nachricht löschen"`
|
||
|
||
## `src/components/UiComponents/Messages/Messages.tsx`:18
|
||
|
||
- **Text:** 'No messages yet'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage = 'No messages yet',`
|
||
|
||
## `src/components/UiComponents/OerebSection/OerebSection.tsx`:71
|
||
|
||
- **Text:** 'In Kraft'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'In Kraft'`
|
||
|
||
## `src/components/UiComponents/OerebSection/OerebSection.tsx`:95
|
||
|
||
- **Text:** 'noopener noreferrer'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` rel="noopener noreferrer"`
|
||
|
||
## `src/components/UiComponents/OerebSection/OerebSection.tsx`:127
|
||
|
||
- **Text:** 'ÖREB-Auszug.pdf'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` fileName="ÖREB-Auszug.pdf"`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:148
|
||
|
||
- **Text:** 'Fehler beim Laden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` [parcelId]: e?.response?.data?.detail || e?.message || 'Fehler beim Laden'`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:175
|
||
|
||
- **Text:** 'Fehler bei der Extraktion'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` [parcelId]: e?.response?.data?.detail || e?.message || 'Fehler bei der Extraktion'`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:219
|
||
|
||
- **Text:** 'Parzellen-Informationen ({parcels.length})'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.title}>Parzellen-Informationen ({parcels.length})</h2>`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:228
|
||
|
||
- **Text:** 'Gesamtfläche'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.aggregatedTitle}>Gesamtfläche</h3>`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:251
|
||
|
||
- **Text:** '— {bz.area_m2.toFixed(2)} m²'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.bauzoneArea}> — {bz.area_m2.toFixed(2)} m²</span>`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:267
|
||
|
||
- **Text:** 'Parzelle entfernen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Parzelle entfernen"`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:318
|
||
|
||
- **Text:** 'Fläche:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.label}>Fläche:</span>`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:331
|
||
|
||
- **Text:** 'Grundstückstyp:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.label}>Grundstückstyp:</span>`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:345
|
||
|
||
- **Text:** 'Dokumente werden geladen...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.bzoHint}>Dokumente werden geladen...</p>`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:363
|
||
|
||
- **Text:** 'Dokument öffnen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Dokument öffnen"`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:381
|
||
|
||
- **Text:** 'Inhalt mit LangGraph extrahieren (inkl. Machbarkeitsstudie)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Inhalt mit LangGraph extrahieren (inkl. Machbarkeitsstudie)"`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:405
|
||
|
||
- **Text:** 'Fakten aus BZO'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.label}>Fakten aus BZO</span>`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:422
|
||
|
||
- **Text:** 'Vorschläge'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.label}>Vorschläge</span>`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:441
|
||
|
||
- **Text:** 'Weiterführende Bestimmungen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.label}>Weiterführende Bestimmungen</span>`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:492
|
||
|
||
- **Text:** 'Details anzeigen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <summary className={styles.zoneSummary}>Details anzeigen</summary>`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:507
|
||
|
||
- **Text:** 'noopener noreferrer'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` rel="noopener noreferrer"`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:533
|
||
|
||
- **Text:** 'Parzelle entfernen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Parzelle entfernen"`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:584
|
||
|
||
- **Text:** 'Fläche:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.label}>Fläche:</span>`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:597
|
||
|
||
- **Text:** 'Grundstückstyp:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.label}>Grundstückstyp:</span>`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:611
|
||
|
||
- **Text:** 'Dokumente werden geladen...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.bzoHint}>Dokumente werden geladen...</p>`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:629
|
||
|
||
- **Text:** 'Dokument öffnen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Dokument öffnen"`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:647
|
||
|
||
- **Text:** 'Inhalt mit LangGraph extrahieren (inkl. Machbarkeitsstudie)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Inhalt mit LangGraph extrahieren (inkl. Machbarkeitsstudie)"`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:671
|
||
|
||
- **Text:** 'Fakten aus BZO'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.label}>Fakten aus BZO</span>`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:688
|
||
|
||
- **Text:** 'Vorschläge'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.label}>Vorschläge</span>`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:707
|
||
|
||
- **Text:** 'Weiterführende Bestimmungen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.label}>Weiterführende Bestimmungen</span>`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:756
|
||
|
||
- **Text:** 'Details anzeigen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <summary className={styles.zoneSummary}>Details anzeigen</summary>`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:771
|
||
|
||
- **Text:** 'noopener noreferrer'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` rel="noopener noreferrer"`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:994
|
||
|
||
- **Text:** 'Zone: {rule.zone_raw}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` {rule.zone_raw && <span>Zone: {rule.zone_raw}</span>}`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:995
|
||
|
||
- **Text:** 'Seite {rule.page}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` {rule.page && <span>Seite {rule.page}</span>}`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:996
|
||
|
||
- **Text:** 'Bereich: {rule.rule_scope}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` {rule.rule_scope && <span>Bereich: {rule.rule_scope}</span>}`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:1027
|
||
|
||
- **Text:** 'Zone: {article.zone_raw}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` {article.zone_raw && <span>Zone: {article.zone_raw}</span>}`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:1028
|
||
|
||
- **Text:** 'Seiten {article.page_start}-{article.page_end}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Seiten {article.page_start}-{article.page_end}</span>`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:1058
|
||
|
||
- **Text:** 'Fehler ({data.errors.length})'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h5 className={styles.bzoErrorTitle}>Fehler ({data.errors.length})</h5>`
|
||
|
||
## `src/components/UiComponents/ParcelInfoPanel/ParcelInfoPanel.tsx`:1068
|
||
|
||
- **Text:** 'Warnungen ({data.warnings.length})'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h5 className={styles.bzoWarningTitle}>Warnungen ({data.warnings.length})</h5>`
|
||
|
||
## `src/components/UiComponents/Popup/Popup.tsx`:108
|
||
|
||
- **Text:** 'Close'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` aria-label="Close"`
|
||
|
||
## `src/components/UiComponents/Toast/Toast.tsx`:53
|
||
|
||
- **Text:** 'Schließen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` aria-label="Schließen"`
|
||
|
||
## `src/components/UiComponents/VoiceLanguageSelect/VoiceLanguageSelect.tsx`:23
|
||
|
||
- **Text:** 'Deutsch'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'de-DE', label: 'Deutsch', shortCode: 'de', flag: '🇩🇪' },`
|
||
|
||
## `src/components/UiComponents/VoiceLanguageSelect/VoiceLanguageSelect.tsx`:24
|
||
|
||
- **Text:** 'Deutsch (Schweiz)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'de-CH', label: 'Deutsch (Schweiz)', shortCode: 'de', flag: '🇨🇭' },`
|
||
|
||
## `src/components/UiComponents/VoiceLanguageSelect/VoiceLanguageSelect.tsx`:25
|
||
|
||
- **Text:** 'English (US)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'en-US', label: 'English (US)', shortCode: 'en', flag: '🇺🇸' },`
|
||
|
||
## `src/components/UiComponents/VoiceLanguageSelect/VoiceLanguageSelect.tsx`:26
|
||
|
||
- **Text:** 'English (UK)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'en-GB', label: 'English (UK)', shortCode: 'en', flag: '🇬🇧' },`
|
||
|
||
## `src/components/UiComponents/VoiceLanguageSelect/VoiceLanguageSelect.tsx`:27
|
||
|
||
- **Text:** 'Français'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'fr-FR', label: 'Français', shortCode: 'fr', flag: '🇫🇷' },`
|
||
|
||
## `src/components/UiComponents/VoiceLanguageSelect/VoiceLanguageSelect.tsx`:28
|
||
|
||
- **Text:** 'Français (Suisse)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'fr-CH', label: 'Français (Suisse)', shortCode: 'fr', flag: '🇨🇭' },`
|
||
|
||
## `src/components/UiComponents/VoiceLanguageSelect/VoiceLanguageSelect.tsx`:29
|
||
|
||
- **Text:** 'Italiano'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'it-IT', label: 'Italiano', shortCode: 'it', flag: '🇮🇹' },`
|
||
|
||
## `src/components/UiComponents/VoiceLanguageSelect/VoiceLanguageSelect.tsx`:30
|
||
|
||
- **Text:** 'Italiano (Svizzera)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'it-CH', label: 'Italiano (Svizzera)', shortCode: 'it', flag: '🇨🇭' },`
|
||
|
||
## `src/components/UiComponents/VoiceLanguageSelect/VoiceLanguageSelect.tsx`:31
|
||
|
||
- **Text:** 'Español'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'es-ES', label: 'Español', shortCode: 'es', flag: '🇪🇸' },`
|
||
|
||
## `src/components/UiComponents/VoiceLanguageSelect/VoiceLanguageSelect.tsx`:32
|
||
|
||
- **Text:** 'Português'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'pt-BR', label: 'Português', shortCode: 'pt', flag: '🇧🇷' },`
|
||
|
||
## `src/components/UiComponents/VoiceLanguageSelect/VoiceLanguageSelect.tsx`:72
|
||
|
||
- **Text:** 'Sprache für Spracherkennung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title = 'Sprache für Spracherkennung',`
|
||
|
||
## `src/components/UiComponents/WorkflowStatus/WorkflowStatus.tsx`:69
|
||
|
||
- **Text:** 'Workflow running'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <div className={styles.spinner} aria-label="Workflow running" />`
|
||
|
||
## `src/components/UiComponents/WorkflowStatus/WorkflowStatus.tsx`:77
|
||
|
||
- **Text:** 'Round {workflowStatus.round}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.roundBadge}>Round {workflowStatus.round}</span>`
|
||
|
||
## `src/components/UnifiedDataBar/ChatsTab.tsx`:45
|
||
|
||
- **Text:** 'gerade eben'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` if (diffMin < 1) return 'gerade eben';`
|
||
|
||
## `src/components/UnifiedDataBar/ChatsTab.tsx`:284
|
||
|
||
- **Text:** 'Umbenennen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Umbenennen"`
|
||
|
||
## `src/components/UnifiedDataBar/ChatsTab.tsx`:293
|
||
|
||
- **Text:** 'Wiederherstellen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Wiederherstellen"`
|
||
|
||
## `src/components/UnifiedDataBar/ChatsTab.tsx`:301
|
||
|
||
- **Text:** 'Archivieren'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Archivieren"`
|
||
|
||
## `src/components/UnifiedDataBar/ChatsTab.tsx`:310
|
||
|
||
- **Text:** 'Löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Löschen"`
|
||
|
||
## `src/components/UnifiedDataBar/ChatsTab.tsx`:324
|
||
|
||
- **Text:** 'AI Workspace'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` workspace: 'AI Workspace',`
|
||
|
||
## `src/components/UnifiedDataBar/ChatsTab.tsx`:332
|
||
|
||
- **Text:** 'Lade Chats...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` if (loading) return <div className={styles.loading}>Lade Chats...</div>;`
|
||
|
||
## `src/components/UnifiedDataBar/ChatsTab.tsx`:340
|
||
|
||
- **Text:** 'Suchen...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Suchen..."`
|
||
|
||
## `src/components/UnifiedDataBar/ChatsTab.tsx`:345
|
||
|
||
- **Text:** 'Neuer Chat'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <button className={styles.createBtn} onClick={() => { onCreateNew(); setTimeout(_loadChats, 500); }} title="Neuer Chat">`
|
||
|
||
## `src/components/UnifiedDataBar/ChatsTab.tsx`:437
|
||
|
||
- **Text:** 'Keine archivierten Chats.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {filter === 'archived' ? 'Keine archivierten Chats.' : 'Keine aktiven Chats.'}`
|
||
|
||
## `src/components/UnifiedDataBar/ChatsTab.tsx`:437
|
||
|
||
- **Text:** 'Keine aktiven Chats.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {filter === 'archived' ? 'Keine archivierten Chats.' : 'Keine aktiven Chats.'}`
|
||
|
||
## `src/components/UnifiedDataBar/FilesTab.tsx`:233
|
||
|
||
- **Text:** 'Lade Dateien...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` if (loading) return <div className={styles.loading}>Lade Dateien...</div>;`
|
||
|
||
## `src/components/UnifiedDataBar/FilesTab.tsx`:261
|
||
|
||
- **Text:** 'Upload files'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Upload files"`
|
||
|
||
## `src/components/UnifiedDataBar/FilesTab.tsx`:284
|
||
|
||
- **Text:** 'Dateien suchen...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Dateien suchen..."`
|
||
|
||
## `src/components/UnifiedDataBar/FilesTab.tsx`:325
|
||
|
||
- **Text:** 'Keine Dateien gefunden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {searchQuery ? 'Keine Dateien gefunden' : 'Keine Dateien. Drag & Drop zum Hochladen.'}`
|
||
|
||
## `src/components/UnifiedDataBar/FilesTab.tsx`:325
|
||
|
||
- **Text:** 'Keine Dateien. Drag & Drop zum Hochladen.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {searchQuery ? 'Keine Dateien gefunden' : 'Keine Dateien. Drag & Drop zum Hochladen.'}`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:188
|
||
|
||
- **Text:** 'Feature Instance'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` featureInstance: 'Feature Instance',`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:340
|
||
|
||
- **Text:** 'spin 0.6s linear infinite'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` animation: 'spin 0.6s linear infinite',`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:853
|
||
|
||
- **Text:** 'Neutralize: ON (click to deactivate)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title={ds.neutralize ? 'Neutralize: ON (click to deactivate)' : 'Neutralize: OFF (click to activate)'}`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:853
|
||
|
||
- **Text:** 'Neutralize: OFF (click to activate)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title={ds.neutralize ? 'Neutralize: ON (click to deactivate)' : 'Neutralize: OFF (click to activate)'}`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:860
|
||
|
||
- **Text:** 'Entfernen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Entfernen"`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:956
|
||
|
||
- **Text:** 'Remove all tables for this record'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Remove all tables for this record"`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:986
|
||
|
||
- **Text:** 'Neutralize: ON'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title={fds.neutralize ? 'Neutralize: ON' : 'Neutralize: OFF'}`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:986
|
||
|
||
- **Text:** 'Neutralize: OFF'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title={fds.neutralize ? 'Neutralize: ON' : 'Neutralize: OFF'}`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:993
|
||
|
||
- **Text:** 'Remove'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Remove"`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:1010
|
||
|
||
- **Text:** '3px solid #7b1fa2'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderLeft: '3px solid #7b1fa2',`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:1029
|
||
|
||
- **Text:** 'Neutralize: ON'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title={fds.neutralize ? 'Neutralize: ON' : 'Neutralize: OFF'}`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:1029
|
||
|
||
- **Text:** 'Neutralize: OFF'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title={fds.neutralize ? 'Neutralize: ON' : 'Neutralize: OFF'}`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:1036
|
||
|
||
- **Text:** 'Entfernen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Entfernen"`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:1139
|
||
|
||
- **Text:** 'background 0.1s'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` transition: 'background 0.1s',`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:1166
|
||
|
||
- **Text:** 'Add as data source'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Add as data source"`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:1168
|
||
|
||
- **Text:** '+ Add'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isAdding ? '...' : '+ Add'}`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:1172
|
||
|
||
- **Text:** 'Already added'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <span style={{ fontSize: 10, color: '#4caf50', flexShrink: 0 }} title="Already added">`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:1240
|
||
|
||
- **Text:** 'background 0.1s'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` transition: 'background 0.1s', userSelect: 'none',`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:1315
|
||
|
||
- **Text:** 'background 0.1s'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` transition: 'background 0.1s', userSelect: 'none',`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:1411
|
||
|
||
- **Text:** 'background 0.1s'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` transition: 'background 0.1s', userSelect: 'none',`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:1429
|
||
|
||
- **Text:** 'Add as feature data source'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Add as feature data source"`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:1431
|
||
|
||
- **Text:** '+ Add'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isAdding ? '...' : '+ Add'}`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:1435
|
||
|
||
- **Text:** 'Already added'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <span style={{ fontSize: 10, color: '#4caf50', flexShrink: 0 }} title="Already added">`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:1479
|
||
|
||
- **Text:** 'background 0.1s'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` transition: 'background 0.1s', userSelect: 'none',`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:1554
|
||
|
||
- **Text:** 'background 0.1s'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` transition: 'background 0.1s', userSelect: 'none',`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:1575
|
||
|
||
- **Text:** 'Add all tables for this record'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Add all tables for this record"`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:1577
|
||
|
||
- **Text:** '+ Add'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isAdding ? '...' : '+ Add'}`
|
||
|
||
## `src/components/UnifiedDataBar/SourcesTab.tsx`:1581
|
||
|
||
- **Text:** 'Already added'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <span style={{ fontSize: 10, color: '#4caf50', flexShrink: 0 }} title="Already added">`
|
||
|
||
## `src/contexts/FileContext.tsx`:209
|
||
|
||
- **Text:** 'useFileContext must be used within a FileProvider'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` throw new Error('useFileContext must be used within a FileProvider');`
|
||
|
||
## `src/contexts/PekContext.tsx`:74
|
||
|
||
- **Text:** 'usePekContext must be used within a PekProvider'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` throw new Error('usePekContext must be used within a PekProvider');`
|
||
|
||
## `src/contexts/ToastContext.tsx`:94
|
||
|
||
- **Text:** 'useToast must be used within a ToastProvider'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` throw new Error('useToast must be used within a ToastProvider');`
|
||
|
||
## `src/contexts/WorkflowSelectionContext.tsx`:38
|
||
|
||
- **Text:** 'useWorkflowSelection must be used within a WorkflowSelectionProvider'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` throw new Error('useWorkflowSelection must be used within a WorkflowSelectionProvider');`
|
||
|
||
## `src/core/PageManager/SidebarProvider.tsx`:53
|
||
|
||
- **Text:** 'useSidebar must be used within a SidebarProvider'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` throw new Error('useSidebar must be used within a SidebarProvider');`
|
||
|
||
## `src/core/PageManager/SidebarProvider.tsx`:461
|
||
|
||
- **Text:** 'Failed to load sidebar items'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err instanceof Error ? err.message : 'Failed to load sidebar items');`
|
||
|
||
## `src/hooks/useAccessRules.tsx`:23
|
||
|
||
- **Text:** 'Keine'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'n', label: 'Keine', color: '#e53e3e' },`
|
||
|
||
## `src/hooks/useAccessRules.tsx`:24
|
||
|
||
- **Text:** 'Eigene'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'm', label: 'Eigene', color: '#d69e2e' },`
|
||
|
||
## `src/hooks/useAccessRules.tsx`:25
|
||
|
||
- **Text:** 'Gruppe'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'g', label: 'Gruppe', color: '#3182ce' },`
|
||
|
||
## `src/hooks/useAccessRules.tsx`:26
|
||
|
||
- **Text:** 'Alle'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'a', label: 'Alle', color: '#38a169' },`
|
||
|
||
## `src/hooks/useAccessRules.tsx`:114
|
||
|
||
- **Text:** 'Fehler beim Laden der Regeln'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const errorMsg = err.response?.data?.detail || err.message || 'Fehler beim Laden der Regeln';`
|
||
|
||
## `src/hooks/useAccessRules.tsx`:197
|
||
|
||
- **Text:** 'Fehler beim Speichern'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const errorMsg = err.response?.data?.detail || err.message || 'Fehler beim Speichern';`
|
||
|
||
## `src/hooks/useConfirm.tsx`:6
|
||
|
||
- **Text:** 'Wirklich löschen?'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` * const ok = await confirm('Wirklich löschen?', { confirmLabel: 'Löschen', variant: 'danger' });`
|
||
|
||
## `src/hooks/useConfirm.tsx`:6
|
||
|
||
- **Text:** 'Löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` * const ok = await confirm('Wirklich löschen?', { confirmLabel: 'Löschen', variant: 'danger' });`
|
||
|
||
## `src/hooks/useConfirm.tsx`:26
|
||
|
||
- **Text:** 'Bestätigung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Bestätigung',`
|
||
|
||
## `src/hooks/useConfirm.tsx`:27
|
||
|
||
- **Text:** 'Bestätigen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` confirmLabel: 'Bestätigen',`
|
||
|
||
## `src/hooks/useConfirm.tsx`:78
|
||
|
||
- **Text:** '1px solid var(--color-border, #333)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--color-border, #333)',`
|
||
|
||
## `src/hooks/useConfirm.tsx`:82
|
||
|
||
- **Text:** '0 8px 32px rgba(0,0,0,0.4)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` boxShadow: '0 8px 32px rgba(0,0,0,0.4)',`
|
||
|
||
## `src/hooks/useConfirm.tsx`:105
|
||
|
||
- **Text:** '1px solid var(--color-border, #444)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--color-border, #444)',`
|
||
|
||
## `src/hooks/useInstancePermissions.tsx`:117
|
||
|
||
- **Text:** 'Verträge'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` * {canViewContracts && <NavLink to="contracts">Verträge</NavLink>}`
|
||
|
||
## `src/hooks/useInstancePermissions.tsx`:343
|
||
|
||
- **Text:** 'Neuer Vertrag'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` * <Button>Neuer Vertrag</Button>`
|
||
|
||
## `src/hooks/usePrompt.tsx`:6
|
||
|
||
- **Text:** 'Bitte Namen eingeben:'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` * const value = await prompt('Bitte Namen eingeben:', { title: 'Umbenennen' });`
|
||
|
||
## `src/hooks/usePrompt.tsx`:85
|
||
|
||
- **Text:** '1px solid var(--border-color, var(--color-border, #333))'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, var(--color-border, #333))',`
|
||
|
||
## `src/hooks/usePrompt.tsx`:89
|
||
|
||
- **Text:** '0 8px 32px rgba(0,0,0,0.4)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` boxShadow: '0 8px 32px rgba(0,0,0,0.4)',`
|
||
|
||
## `src/hooks/usePrompt.tsx`:119
|
||
|
||
- **Text:** '1px solid var(--border-color, var(--color-border, #ccc))'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, var(--color-border, #ccc))',`
|
||
|
||
## `src/hooks/usePrompt.tsx`:134
|
||
|
||
- **Text:** '1px solid var(--color-border, #444)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--color-border, #444)',`
|
||
|
||
## `src/layouts/FeatureLayout.tsx`:21
|
||
|
||
- **Text:** 'Lade Feature-Daten...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Lade Feature-Daten...</p>`
|
||
|
||
## `src/layouts/FeatureLayout.tsx`:37
|
||
|
||
- **Text:** 'Zugriff nicht möglich'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2>Zugriff nicht möglich</h2>`
|
||
|
||
## `src/layouts/FeatureLayout.tsx`:81
|
||
|
||
- **Text:** 'Die angeforderte Feature-Instanz existiert nicht oder Sie haben keinen Zugriff.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` message="Die angeforderte Feature-Instanz existiert nicht oder Sie haben keinen Zugriff."`
|
||
|
||
## `src/layouts/MainLayout.tsx`:63
|
||
|
||
- **Text:** 'Navigation schliessen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` aria-label="Navigation schliessen"`
|
||
|
||
## `src/layouts/MainLayout.tsx`:72
|
||
|
||
- **Text:** 'PowerOn'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` alt="PowerOn"`
|
||
|
||
## `src/layouts/MainLayout.tsx`:105
|
||
|
||
- **Text:** 'Navigation oeffnen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` aria-label="Navigation oeffnen"`
|
||
|
||
## `src/layouts/MainLayout.tsx`:111
|
||
|
||
- **Text:** 'PowerOn'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` alt="PowerOn"`
|
||
|
||
## `src/pages/AutomationsDashboardPage.tsx`:71
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/pages/AutomationsDashboardPage.tsx`:78
|
||
|
||
- **Text:** '1 1 180px'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` flex: '1 1 180px',`
|
||
|
||
## `src/pages/AutomationsDashboardPage.tsx`:195
|
||
|
||
- **Text:** ''
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: '',`
|
||
|
||
## `src/pages/Dashboard.tsx`:72
|
||
|
||
- **Text:** 'Übersicht'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h1>Übersicht</h1>`
|
||
|
||
## `src/pages/Dashboard.tsx`:82
|
||
|
||
- **Text:** 'Übersicht'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h1>Übersicht</h1>`
|
||
|
||
## `src/pages/FeatureView.tsx`:67
|
||
|
||
- **Text:** 'Workflow Dashboard'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <PlaceholderView title="Workflow Dashboard" description="Übersicht der Workflows" />`
|
||
|
||
## `src/pages/FeatureView.tsx`:67
|
||
|
||
- **Text:** 'Übersicht der Workflows'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <PlaceholderView title="Workflow Dashboard" description="Übersicht der Workflows" />`
|
||
|
||
## `src/pages/FeatureView.tsx`:71
|
||
|
||
- **Text:** 'Runs'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <PlaceholderView title="Runs" description="Workflow-Ausführungen" />`
|
||
|
||
## `src/pages/FeatureView.tsx`:71
|
||
|
||
- **Text:** 'Workflow-Ausführungen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <PlaceholderView title="Runs" description="Workflow-Ausführungen" />`
|
||
|
||
## `src/pages/FeatureView.tsx`:75
|
||
|
||
- **Text:** 'Dateien'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <PlaceholderView title="Dateien" description="Workflow-Dateien" />`
|
||
|
||
## `src/pages/FeatureView.tsx`:82
|
||
|
||
- **Text:** 'Chatbot Einstellungen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <PlaceholderView title="Chatbot Einstellungen" description="Konfiguration des Chatbots" />`
|
||
|
||
## `src/pages/FeatureView.tsx`:82
|
||
|
||
- **Text:** 'Konfiguration des Chatbots'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <PlaceholderView title="Chatbot Einstellungen" description="Konfiguration des Chatbots" />`
|
||
|
||
## `src/pages/FeatureView.tsx`:88
|
||
|
||
- **Text:** 'Seite nicht gefunden'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2>Seite nicht gefunden</h2>`
|
||
|
||
## `src/pages/FeatureView.tsx`:89
|
||
|
||
- **Text:** 'Diese View existiert nicht oder wurde noch nicht implementiert.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Diese View existiert nicht oder wurde noch nicht implementiert.</p>`
|
||
|
||
## `src/pages/FeatureView.tsx`:95
|
||
|
||
- **Text:** 'Zugriff verweigert'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2>Zugriff verweigert</h2>`
|
||
|
||
## `src/pages/FeatureView.tsx`:96
|
||
|
||
- **Text:** 'Du hast keine Berechtigung für diese Ansicht.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Du hast keine Berechtigung für diese Ansicht.</p>`
|
||
|
||
## `src/pages/GDPR.tsx`:68
|
||
|
||
- **Text:** 'Consent information could not be loaded.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setConsentError('Consent information could not be loaded.');`
|
||
|
||
## `src/pages/GDPR.tsx`:91
|
||
|
||
- **Text:** 'Data export downloaded.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setActionMessage({ type: 'success', text: 'Data export downloaded.' });`
|
||
|
||
## `src/pages/GDPR.tsx`:94
|
||
|
||
- **Text:** 'Data export failed. Please try again.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setActionMessage({ type: 'error', text: 'Data export failed. Please try again.' });`
|
||
|
||
## `src/pages/GDPR.tsx`:109
|
||
|
||
- **Text:** 'Portable export downloaded.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setActionMessage({ type: 'success', text: 'Portable export downloaded.' });`
|
||
|
||
## `src/pages/GDPR.tsx`:112
|
||
|
||
- **Text:** 'Portable export failed. Please try again.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setActionMessage({ type: 'error', text: 'Portable export failed. Please try again.' });`
|
||
|
||
## `src/pages/GDPR.tsx`:121
|
||
|
||
- **Text:** 'Please type LOESCHEN to confirm deletion.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setActionMessage({ type: 'error', text: 'Please type LOESCHEN to confirm deletion.' });`
|
||
|
||
## `src/pages/GDPR.tsx`:132
|
||
|
||
- **Text:** 'Account deleted. Redirecting to login...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setActionMessage({ type: 'success', text: 'Account deleted. Redirecting to login...' });`
|
||
|
||
## `src/pages/GDPR.tsx`:136
|
||
|
||
- **Text:** 'Account deletion failed. Please try again.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setActionMessage({ type: 'error', text: 'Account deletion failed. Please try again.' });`
|
||
|
||
## `src/pages/GDPR.tsx`:161
|
||
|
||
- **Text:** 'Your data rights'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.sectionTitle}>Your data rights</h2>`
|
||
|
||
## `src/pages/GDPR.tsx`:164
|
||
|
||
- **Text:** 'Access (Article 15)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3>Access (Article 15)</h3>`
|
||
|
||
## `src/pages/GDPR.tsx`:165
|
||
|
||
- **Text:** 'Download a full export of your account data.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Download a full export of your account data.</p>`
|
||
|
||
## `src/pages/GDPR.tsx`:186
|
||
|
||
- **Text:** 'Portability (Article 20)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3>Portability (Article 20)</h3>`
|
||
|
||
## `src/pages/GDPR.tsx`:187
|
||
|
||
- **Text:** 'Download a machine-readable JSON-LD export.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Download a machine-readable JSON-LD export.</p>`
|
||
|
||
## `src/pages/GDPR.tsx`:208
|
||
|
||
- **Text:** 'Erasure (Article 17)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3>Erasure (Article 17)</h3>`
|
||
|
||
## `src/pages/GDPR.tsx`:209
|
||
|
||
- **Text:** 'Permanently delete your account and all associated data.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Permanently delete your account and all associated data.</p>`
|
||
|
||
## `src/pages/GDPR.tsx`:229
|
||
|
||
- **Text:** 'LOESCHEN'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="LOESCHEN"`
|
||
|
||
## `src/pages/GDPR.tsx`:278
|
||
|
||
- **Text:** 'Processing information'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.sectionTitle}>Processing information</h2>`
|
||
|
||
## `src/pages/GDPR.tsx`:279
|
||
|
||
- **Text:** 'Loading consent info...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` {isLoadingConsent && <p className={styles.mutedText}>Loading consent info...</p>}`
|
||
|
||
## `src/pages/GDPR.tsx`:284
|
||
|
||
- **Text:** 'Data collected'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3>Data collected</h3>`
|
||
|
||
## `src/pages/GDPR.tsx`:304
|
||
|
||
- **Text:** 'Your rights'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3>Your rights</h3>`
|
||
|
||
## `src/pages/InvitePage.tsx`:16
|
||
|
||
- **Text:** 'Einladung annehmen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` * 6. User clicks "Einladung annehmen"`
|
||
|
||
## `src/pages/InvitePage.tsx`:56
|
||
|
||
- **Text:** 'Kein Einladungs-Token angegeben'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError('Kein Einladungs-Token angegeben');`
|
||
|
||
## `src/pages/InvitePage.tsx`:71
|
||
|
||
- **Text:** 'Neues Konto erstellen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` // No targetUsername = new-user invitation (email only) -> only show "Neues Konto erstellen"`
|
||
|
||
## `src/pages/InvitePage.tsx`:120
|
||
|
||
- **Text:** 'Not authenticated'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` } else if (result.error?.includes('401') || result.error?.includes('Not authenticated')) {`
|
||
|
||
## `src/pages/InvitePage.tsx`:125
|
||
|
||
- **Text:** 'Fehler beim Annehmen der Einladung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(result.error || 'Fehler beim Annehmen der Einladung');`
|
||
|
||
## `src/pages/InvitePage.tsx`:162
|
||
|
||
- **Text:** 'Einladung wird überprüft...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Einladung wird überprüft...</p>`
|
||
|
||
## `src/pages/InvitePage.tsx`:176
|
||
|
||
- **Text:** 'Ungültige Einladung'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h1>Ungültige Einladung</h1>`
|
||
|
||
## `src/pages/InvitePage.tsx`:177
|
||
|
||
- **Text:** 'Diese Einladung ist nicht gültig.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <p>{validation?.reason || 'Diese Einladung ist nicht gültig.'}</p>`
|
||
|
||
## `src/pages/InvitePage.tsx`:195
|
||
|
||
- **Text:** 'Sie wurden erfolgreich zum Mandanten hinzugefügt.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Sie wurden erfolgreich zum Mandanten hinzugefügt.</p>`
|
||
|
||
## `src/pages/InvitePage.tsx`:196
|
||
|
||
- **Text:** 'Sie werden weitergeleitet...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.redirectMessage}>Sie werden weitergeleitet...</p>`
|
||
|
||
## `src/pages/InvitePage.tsx`:211
|
||
|
||
- **Text:** 'Falsche Anmeldung'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h1>Falsche Anmeldung</h1>`
|
||
|
||
## `src/pages/InvitePage.tsx`:214
|
||
|
||
- **Text:** 'anderer Benutzer'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` Sie sind als <strong>{cachedUser?.username || 'anderer Benutzer'}</strong> angemeldet.`
|
||
|
||
## `src/pages/InvitePage.tsx`:216
|
||
|
||
- **Text:** 'Bitte melden Sie sich ab und mit dem richtigen Konto wieder an.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Bitte melden Sie sich ab und mit dem richtigen Konto wieder an.</p>`
|
||
|
||
## `src/pages/InvitePage.tsx`:229
|
||
|
||
- **Text:** 'Sie wurden eingeladen, einem Mandanten und einem Feature beizutreten.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Sie wurden eingeladen, einem Mandanten und einem Feature beizutreten.'`
|
||
|
||
## `src/pages/InvitePage.tsx`:230
|
||
|
||
- **Text:** 'Sie wurden eingeladen, einem Mandanten beizutreten.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'Sie wurden eingeladen, einem Mandanten beizutreten.';`
|
||
|
||
## `src/pages/InvitePage.tsx`:231
|
||
|
||
- **Text:** 'Features mit zugewiesenen Rollen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const rolesLabel = isFeatureInvite ? 'Features mit zugewiesenen Rollen' : 'Zugewiesene Rollen';`
|
||
|
||
## `src/pages/InvitePage.tsx`:231
|
||
|
||
- **Text:** 'Zugewiesene Rollen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const rolesLabel = isFeatureInvite ? 'Features mit zugewiesenen Rollen' : 'Zugewiesene Rollen';`
|
||
|
||
## `src/pages/InvitePage.tsx`:241
|
||
|
||
- **Text:** 'Einladung annehmen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h1>Einladung annehmen</h1>`
|
||
|
||
## `src/pages/InvitePage.tsx`:287
|
||
|
||
- **Text:** 'Einladung annehmen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'Einladung annehmen'`
|
||
|
||
## `src/pages/InvitePage.tsx`:304
|
||
|
||
- **Text:** 'Einladung annehmen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h1>Einladung annehmen</h1>`
|
||
|
||
## `src/pages/InvitePage.tsx`:333
|
||
|
||
- **Text:** 'Erstellen Sie ein neues Konto mit Ihrem Benutzernamen oder verlinken Sie die Einladung mit Ihrem bestehenden Account.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'Erstellen Sie ein neues Konto mit Ihrem Benutzernamen oder verlinken Sie die Einladung mit Ihrem bestehenden Account.'}`
|
||
|
||
## `src/pages/Login.tsx`:36
|
||
|
||
- **Text:** 'PowerOn AI Platform - Login'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` document.title = "PowerOn AI Platform - Login";`
|
||
|
||
## `src/pages/Login.tsx`:134
|
||
|
||
- **Text:** 'PowerOn'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` alt="PowerOn"`
|
||
|
||
## `src/pages/Login.tsx`:145
|
||
|
||
- **Text:** 'Sie haben eine ausstehende Einladung. Bitte melden Sie sich an, um diese anzunehmen.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Sie haben eine ausstehende Einladung. Bitte melden Sie sich an, um diese anzunehmen.</span>`
|
||
|
||
## `src/pages/Login.tsx`:155
|
||
|
||
- **Text:** ' '
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder=" "`
|
||
|
||
## `src/pages/Login.tsx`:173
|
||
|
||
- **Text:** ' '
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder=" "`
|
||
|
||
## `src/pages/Login.tsx`:198
|
||
|
||
- **Text:** 'wird geladen...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isLoginLoading ? "wird geladen..." : "Anmelden"}`
|
||
|
||
## `src/pages/Login.tsx`:221
|
||
|
||
- **Text:** 'Signing in...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isMsalLoading ? "Signing in..." : "Mit Microsoft anmelden"}`
|
||
|
||
## `src/pages/Login.tsx`:221
|
||
|
||
- **Text:** 'Mit Microsoft anmelden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isMsalLoading ? "Signing in..." : "Mit Microsoft anmelden"}`
|
||
|
||
## `src/pages/Login.tsx`:232
|
||
|
||
- **Text:** 'Signing in...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isGoogleLoading ? "Signing in..." : "Mit Google anmelden"}`
|
||
|
||
## `src/pages/Login.tsx`:232
|
||
|
||
- **Text:** 'Mit Google anmelden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isGoogleLoading ? "Signing in..." : "Mit Google anmelden"}`
|
||
|
||
## `src/pages/Login.tsx`:237
|
||
|
||
- **Text:** 'Du hast noch kein Konto?'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Du hast noch kein Konto?</span>`
|
||
|
||
## `src/pages/PasswordResetRequest.tsx`:18
|
||
|
||
- **Text:** 'PowerOn AI Platform - Passwort zurücksetzen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` document.title = "PowerOn AI Platform - Passwort zurücksetzen";`
|
||
|
||
## `src/pages/PasswordResetRequest.tsx`:27
|
||
|
||
- **Text:** 'Bitte geben Sie Ihren Benutzernamen ein.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setValidationError('Bitte geben Sie Ihren Benutzernamen ein.');`
|
||
|
||
## `src/pages/PasswordResetRequest.tsx`:33
|
||
|
||
- **Text:** 'Falls ein Konto mit diesem Benutzernamen existiert, wurde ein Reset-Link an die hinterlegte E-Mail-Adresse gesendet. Bitte prüfen Sie auch Ihren Spam-Ordner.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setSuccessMessage('Falls ein Konto mit diesem Benutzernamen existiert, wurde ein Reset-Link an die hinterlegte E-Mail-Adresse gesendet. Bitte prüfen Sie auch Ihren Spam-Ordner.');`
|
||
|
||
## `src/pages/PasswordResetRequest.tsx`:40
|
||
|
||
- **Text:** 'Bitte prüfen Sie Ihre E-Mail für den Passwort-Reset-Link.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` message: 'Bitte prüfen Sie Ihre E-Mail für den Passwort-Reset-Link.'`
|
||
|
||
## `src/pages/PasswordResetRequest.tsx`:46
|
||
|
||
- **Text:** 'Falls ein Konto mit diesem Benutzernamen existiert, wurde ein Reset-Link an die hinterlegte E-Mail-Adresse gesendet. Bitte prüfen Sie auch Ihren Spam-Ordner.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setSuccessMessage('Falls ein Konto mit diesem Benutzernamen existiert, wurde ein Reset-Link an die hinterlegte E-Mail-Adresse gesendet. Bitte prüfen Sie auch Ihren Spam-Ordner.');`
|
||
|
||
## `src/pages/PasswordResetRequest.tsx`:59
|
||
|
||
- **Text:** 'PowerOn'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` alt="PowerOn"`
|
||
|
||
## `src/pages/PasswordResetRequest.tsx`:65
|
||
|
||
- **Text:** 'Passwort zurücksetzen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.title}>Passwort zurücksetzen</h2>`
|
||
|
||
## `src/pages/PasswordResetRequest.tsx`:80
|
||
|
||
- **Text:** ' '
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder=" "`
|
||
|
||
## `src/pages/PasswordResetRequest.tsx`:100
|
||
|
||
- **Text:** 'Geben Sie Ihren Benutzernamen ein. Falls ein Konto existiert, erhalten Sie einen Link zum Zurücksetzen des Passworts an Ihre hinterlegte E-Mail-Adresse.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Geben Sie Ihren Benutzernamen ein. Falls ein Konto existiert, erhalten Sie einen Link zum Zurücksetzen des Passworts an Ihre hinterlegte E-Mail-Adresse.</p>`
|
||
|
||
## `src/pages/PasswordResetRequest.tsx`:108
|
||
|
||
- **Text:** 'Wird gesendet...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isLoading ? "Wird gesendet..." : "Reset-Link anfordern"}`
|
||
|
||
## `src/pages/PasswordResetRequest.tsx`:108
|
||
|
||
- **Text:** 'Reset-Link anfordern'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isLoading ? "Wird gesendet..." : "Reset-Link anfordern"}`
|
||
|
||
## `src/pages/PasswordResetRequest.tsx`:114
|
||
|
||
- **Text:** 'Zurück zum'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Zurück zum</span>`
|
||
|
||
## `src/pages/Register.tsx`:40
|
||
|
||
- **Text:** 'PowerOn AI Platform - Registrieren'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` document.title = "PowerOn AI Platform - Registrieren";`
|
||
|
||
## `src/pages/Register.tsx`:58
|
||
|
||
- **Text:** 'Bitte füllen Sie alle Pflichtfelder aus.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setValidationError('Bitte füllen Sie alle Pflichtfelder aus.');`
|
||
|
||
## `src/pages/Register.tsx`:63
|
||
|
||
- **Text:** 'Bitte geben Sie eine gültige E-Mail-Adresse ein.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setValidationError('Bitte geben Sie eine gültige E-Mail-Adresse ein.');`
|
||
|
||
## `src/pages/Register.tsx`:81
|
||
|
||
- **Text:** 'Username is not available'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const errorMessage = availabilityResult.message || 'Username is not available';`
|
||
|
||
## `src/pages/Register.tsx`:82
|
||
|
||
- **Text:** 'Username is already taken'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` if (errorMessage === 'Username is already taken') {`
|
||
|
||
## `src/pages/Register.tsx`:83
|
||
|
||
- **Text:** 'Benutzername ist bereits vergeben'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setValidationError('Benutzername ist bereits vergeben');`
|
||
|
||
## `src/pages/Register.tsx`:86
|
||
|
||
- **Text:** 'Benutzername ist nicht verfügbar'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setValidationError('Benutzername ist nicht verfügbar');`
|
||
|
||
## `src/pages/Register.tsx`:93
|
||
|
||
- **Text:** 'Registrierung erfolgreich! Bitte prüfen Sie Ihre E-Mail (auch den Spam-Ordner) für den Link zum Setzen Ihres Passworts.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` let message = 'Registrierung erfolgreich! Bitte prüfen Sie Ihre E-Mail (auch den Spam-Ordner) für den Link zum Setzen Ihres Passworts.';`
|
||
|
||
## `src/pages/Register.tsx`:95
|
||
|
||
- **Text:** ' Nach dem Setzen Ihres Passworts können Sie sich anmelden und Ihre Einladung annehmen.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` message += ' Nach dem Setzen Ihres Passworts können Sie sich anmelden und Ihre Einladung annehmen.';`
|
||
|
||
## `src/pages/Register.tsx`:104
|
||
|
||
- **Text:** 'Registrierung erfolgreich. Bitte prüfen Sie Ihre E-Mail für den Passwort-Link.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` message: 'Registrierung erfolgreich. Bitte prüfen Sie Ihre E-Mail für den Passwort-Link.',`
|
||
|
||
## `src/pages/Register.tsx`:116
|
||
|
||
- **Text:** 'Registration failed'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` if (registerError) return typeof registerError === 'string' ? registerError : 'Registration failed';`
|
||
|
||
## `src/pages/Register.tsx`:117
|
||
|
||
- **Text:** 'Microsoft registration failed'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` if (msalError) return typeof msalError === 'string' ? msalError : 'Microsoft registration failed';`
|
||
|
||
## `src/pages/Register.tsx`:118
|
||
|
||
- **Text:** 'Username availability check failed'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` if (availabilityError) return typeof availabilityError === 'string' ? availabilityError : 'Username availability check failed';`
|
||
|
||
## `src/pages/Register.tsx`:128
|
||
|
||
- **Text:** 'PowerOn'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` alt="PowerOn"`
|
||
|
||
## `src/pages/Register.tsx`:138
|
||
|
||
- **Text:** 'Sie haben eine ausstehende Einladung. Nach der Registrierung und Anmeldung können Sie diese annehmen.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Sie haben eine ausstehende Einladung. Nach der Registrierung und Anmeldung können Sie diese annehmen.</span>`
|
||
|
||
## `src/pages/Register.tsx`:156
|
||
|
||
- **Text:** ' '
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder=" "`
|
||
|
||
## `src/pages/Register.tsx`:170
|
||
|
||
- **Text:** ' '
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder=" "`
|
||
|
||
## `src/pages/Register.tsx`:184
|
||
|
||
- **Text:** ' '
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder=" "`
|
||
|
||
## `src/pages/Register.tsx`:191
|
||
|
||
- **Text:** 'Vollständiger Name'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={fullNameFocused || formData.fullName ? styles.focusedLabel : styles.label}>Vollständiger Name</label>`
|
||
|
||
## `src/pages/Register.tsx`:195
|
||
|
||
- **Text:** 'Nach der Registrierung erhalten Sie eine E-Mail mit einem Link zum Setzen Ihres Passworts.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Nach der Registrierung erhalten Sie eine E-Mail mit einem Link zum Setzen Ihres Passworts.</p>`
|
||
|
||
## `src/pages/Register.tsx`:209
|
||
|
||
- **Text:** 'Registrierung läuft...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isLoading ? "Registrierung läuft..." : isChecking ? "Benutzername wird geprüft..." : 'Kostenlos registrieren'}`
|
||
|
||
## `src/pages/Register.tsx`:209
|
||
|
||
- **Text:** 'Benutzername wird geprüft...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isLoading ? "Registrierung läuft..." : isChecking ? "Benutzername wird geprüft..." : 'Kostenlos registrieren'}`
|
||
|
||
## `src/pages/Register.tsx`:209
|
||
|
||
- **Text:** 'Kostenlos registrieren'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isLoading ? "Registrierung läuft..." : isChecking ? "Benutzername wird geprüft..." : 'Kostenlos registrieren'}`
|
||
|
||
## `src/pages/Register.tsx`:215
|
||
|
||
- **Text:** 'Bereits registriert?'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Bereits registriert?</span>`
|
||
|
||
## `src/pages/Reset.tsx`:26
|
||
|
||
- **Text:** 'PowerOn AI Platform - Neues Passwort setzen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` document.title = "PowerOn AI Platform - Neues Passwort setzen";`
|
||
|
||
## `src/pages/Reset.tsx`:31
|
||
|
||
- **Text:** 'Ungültiger Reset-Link. Bitte fordern Sie einen neuen Link an.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setTokenError('Ungültiger Reset-Link. Bitte fordern Sie einen neuen Link an.');`
|
||
|
||
## `src/pages/Reset.tsx`:33
|
||
|
||
- **Text:** 'Ungültiger Reset-Link. Bitte fordern Sie einen neuen Link an.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setTokenError('Ungültiger Reset-Link. Bitte fordern Sie einen neuen Link an.');`
|
||
|
||
## `src/pages/Reset.tsx`:44
|
||
|
||
- **Text:** 'Passwort muss mindestens 8 Zeichen lang sein.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setValidationError('Passwort muss mindestens 8 Zeichen lang sein.');`
|
||
|
||
## `src/pages/Reset.tsx`:49
|
||
|
||
- **Text:** 'Die Passwörter stimmen nicht überein.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setValidationError('Die Passwörter stimmen nicht überein.');`
|
||
|
||
## `src/pages/Reset.tsx`:65
|
||
|
||
- **Text:** 'Token fehlt. Bitte fordern Sie einen neuen Reset-Link an.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setValidationError('Token fehlt. Bitte fordern Sie einen neuen Reset-Link an.');`
|
||
|
||
## `src/pages/Reset.tsx`:71
|
||
|
||
- **Text:** 'Passwort erfolgreich gesetzt! Sie werden zum Login weitergeleitet...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setSuccessMessage('Passwort erfolgreich gesetzt! Sie werden zum Login weitergeleitet...');`
|
||
|
||
## `src/pages/Reset.tsx`:78
|
||
|
||
- **Text:** 'Passwort erfolgreich geändert. Bitte melden Sie sich an.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` message: 'Passwort erfolgreich geändert. Bitte melden Sie sich an.'`
|
||
|
||
## `src/pages/Reset.tsx`:84
|
||
|
||
- **Text:** 'Passwort-Zurücksetzung fehlgeschlagen.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const errorMessage = err?.response?.data?.detail || err?.message || 'Passwort-Zurücksetzung fehlgeschlagen.';`
|
||
|
||
## `src/pages/Reset.tsx`:85
|
||
|
||
- **Text:** 'Ungültig'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` if (errorMessage.includes('abgelaufen') || errorMessage.includes('expired') || errorMessage.includes('Ungültig') || errorMessage.includes('invalid')) {`
|
||
|
||
## `src/pages/Reset.tsx`:86
|
||
|
||
- **Text:** 'Der Reset-Link ist ungültig oder abgelaufen. Bitte fordern Sie einen neuen Link an.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setValidationError('Der Reset-Link ist ungültig oder abgelaufen. Bitte fordern Sie einen neuen Link an.');`
|
||
|
||
## `src/pages/Reset.tsx`:101
|
||
|
||
- **Text:** 'PowerOn'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` alt="PowerOn"`
|
||
|
||
## `src/pages/Reset.tsx`:107
|
||
|
||
- **Text:** 'Neues Passwort setzen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.title}>Neues Passwort setzen</h2>`
|
||
|
||
## `src/pages/Reset.tsx`:119
|
||
|
||
- **Text:** 'oder zurück zum'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>oder zurück zum</span>`
|
||
|
||
## `src/pages/Reset.tsx`:141
|
||
|
||
- **Text:** 'PowerOn'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` alt="PowerOn"`
|
||
|
||
## `src/pages/Reset.tsx`:147
|
||
|
||
- **Text:** 'Neues Passwort setzen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.title}>Neues Passwort setzen</h2>`
|
||
|
||
## `src/pages/Reset.tsx`:159
|
||
|
||
- **Text:** 'Mindestens 8 Zeichen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.passwordHint}>Mindestens 8 Zeichen</div>`
|
||
|
||
## `src/pages/Reset.tsx`:163
|
||
|
||
- **Text:** ' '
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder=" "`
|
||
|
||
## `src/pages/Reset.tsx`:174
|
||
|
||
- **Text:** 'Neues Passwort'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={passwordFocused || password ? styles.focusedLabel : styles.label}>Neues Passwort</label>`
|
||
|
||
## `src/pages/Reset.tsx`:181
|
||
|
||
- **Text:** ' '
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder=" "`
|
||
|
||
## `src/pages/Reset.tsx`:192
|
||
|
||
- **Text:** 'Passwort bestätigen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={confirmPasswordFocused || confirmPassword ? styles.focusedLabel : styles.label}>Passwort bestätigen</label>`
|
||
|
||
## `src/pages/Reset.tsx`:200
|
||
|
||
- **Text:** 'Wird gespeichert...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isLoading ? "Wird gespeichert..." : "Passwort setzen"}`
|
||
|
||
## `src/pages/Reset.tsx`:200
|
||
|
||
- **Text:** 'Passwort setzen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isLoading ? "Wird gespeichert..." : "Passwort setzen"}`
|
||
|
||
## `src/pages/Reset.tsx`:206
|
||
|
||
- **Text:** 'Zurück zum'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Zurück zum</span>`
|
||
|
||
## `src/pages/Settings.tsx`:23
|
||
|
||
- **Text:** 'Profil'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'profile', label: 'Profil' },`
|
||
|
||
## `src/pages/Settings.tsx`:24
|
||
|
||
- **Text:** 'Darstellung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'appearance', label: 'Darstellung' },`
|
||
|
||
## `src/pages/Settings.tsx`:25
|
||
|
||
- **Text:** 'Stimme & Sprache'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'voice', label: 'Stimme & Sprache' },`
|
||
|
||
## `src/pages/Settings.tsx`:26
|
||
|
||
- **Text:** 'Neutralisierung (lokal)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'neutralization', label: 'Neutralisierung (lokal)' },`
|
||
|
||
## `src/pages/Settings.tsx`:27
|
||
|
||
- **Text:** 'Datenschutz'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'privacy', label: 'Datenschutz' },`
|
||
|
||
## `src/pages/Settings.tsx`:50
|
||
|
||
- **Text:** 'Deutsch'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'de', label: 'Deutsch' },`
|
||
|
||
## `src/pages/Settings.tsx`:51
|
||
|
||
- **Text:** 'English'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'en', label: 'English' },`
|
||
|
||
## `src/pages/Settings.tsx`:52
|
||
|
||
- **Text:** 'Français'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'fr', label: 'Français' },`
|
||
|
||
## `src/pages/Settings.tsx`:56
|
||
|
||
- **Text:** 'Vollstaendiger Name'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { name: 'fullName', type: 'string', label: 'Vollstaendiger Name', description: 'Ihr vollstaendiger Name', required: false, placeholder: 'Max Mustermann' },`
|
||
|
||
## `src/pages/Settings.tsx`:56
|
||
|
||
- **Text:** 'Ihr vollstaendiger Name'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` { name: 'fullName', type: 'string', label: 'Vollstaendiger Name', description: 'Ihr vollstaendiger Name', required: false, placeholder: 'Max Mustermann' },`
|
||
|
||
## `src/pages/Settings.tsx`:56
|
||
|
||
- **Text:** 'Max Mustermann'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` { name: 'fullName', type: 'string', label: 'Vollstaendiger Name', description: 'Ihr vollstaendiger Name', required: false, placeholder: 'Max Mustermann' },`
|
||
|
||
## `src/pages/Settings.tsx`:57
|
||
|
||
- **Text:** 'E-Mail-Adresse'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { name: 'email', type: 'email', label: 'E-Mail-Adresse', description: 'Ihre E-Mail-Adresse fuer Benachrichtigungen', required: true, placeholder: 'name@example.com' },`
|
||
|
||
## `src/pages/Settings.tsx`:57
|
||
|
||
- **Text:** 'Ihre E-Mail-Adresse fuer Benachrichtigungen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` { name: 'email', type: 'email', label: 'E-Mail-Adresse', description: 'Ihre E-Mail-Adresse fuer Benachrichtigungen', required: true, placeholder: 'name@example.com' },`
|
||
|
||
## `src/pages/Settings.tsx`:58
|
||
|
||
- **Text:** 'Sprache'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { name: 'language', type: 'select', label: 'Sprache', description: 'Anzeigesprache der Anwendung', required: true, options: languageOptions },`
|
||
|
||
## `src/pages/Settings.tsx`:58
|
||
|
||
- **Text:** 'Anzeigesprache der Anwendung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` { name: 'language', type: 'select', label: 'Sprache', description: 'Anzeigesprache der Anwendung', required: true, options: languageOptions },`
|
||
|
||
## `src/pages/Settings.tsx`:68
|
||
|
||
- **Text:** 'Fehler beim Speichern des Profils'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err.message || 'Fehler beim Speichern des Profils');`
|
||
|
||
## `src/pages/Settings.tsx`:80
|
||
|
||
- **Text:** 'Profil bearbeiten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2>Profil bearbeiten</h2>`
|
||
|
||
## `src/pages/Settings.tsx`:137
|
||
|
||
- **Text:** 'Fehler beim Laden der Voice-Einstellungen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err.message || 'Fehler beim Laden der Voice-Einstellungen');`
|
||
|
||
## `src/pages/Settings.tsx`:184
|
||
|
||
- **Text:** 'Einstellungen gespeichert'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setSuccess('Einstellungen gespeichert');`
|
||
|
||
## `src/pages/Settings.tsx`:188
|
||
|
||
- **Text:** 'Fehler beim Speichern'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err.message || 'Fehler beim Speichern');`
|
||
|
||
## `src/pages/Settings.tsx`:206
|
||
|
||
- **Text:** 'Stimmtest fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` } catch { setError('Stimmtest fehlgeschlagen'); }`
|
||
|
||
## `src/pages/Settings.tsx`:216
|
||
|
||
- **Text:** 'English (US)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` { code: 'de-DE', name: 'Deutsch' }, { code: 'en-US', name: 'English (US)' },`
|
||
|
||
## `src/pages/Settings.tsx`:230
|
||
|
||
- **Text:** 'STT-Sprache (Spracheingabe)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.sectionTitle}>STT-Sprache (Spracheingabe)</h2>`
|
||
|
||
## `src/pages/Settings.tsx`:233
|
||
|
||
- **Text:** 'Sprache fuer Spracherkennung'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={styles.settingLabel}>Sprache fuer Spracherkennung</label>`
|
||
|
||
## `src/pages/Settings.tsx`:234
|
||
|
||
- **Text:** 'Wird fuer die Sprache-zu-Text-Erkennung verwendet.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.settingDescription}>Wird fuer die Sprache-zu-Text-Erkennung verwendet.</p>`
|
||
|
||
## `src/pages/Settings.tsx`:247
|
||
|
||
- **Text:** 'TTS-Stimmen (Sprachausgabe)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.sectionTitle}>TTS-Stimmen (Sprachausgabe)</h2>`
|
||
|
||
## `src/pages/Settings.tsx`:304
|
||
|
||
- **Text:** 'Einstellungen speichern'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {saving ? 'Speichern...' : 'Einstellungen speichern'}`
|
||
|
||
## `src/pages/Settings.tsx`:342
|
||
|
||
- **Text:** 'Fehler beim Laden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err.message || 'Fehler beim Laden');`
|
||
|
||
## `src/pages/Settings.tsx`:355
|
||
|
||
- **Text:** 'Fehler beim Loeschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err.message || 'Fehler beim Loeschen');`
|
||
|
||
## `src/pages/Settings.tsx`:371
|
||
|
||
- **Text:** 'Platzhalter-Mappings (lokal)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.sectionTitle}>Platzhalter-Mappings (lokal)</h2>`
|
||
|
||
## `src/pages/Settings.tsx`:377
|
||
|
||
- **Text:** '1px solid var(--border-color, #bfdbfe)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #bfdbfe)',`
|
||
|
||
## `src/pages/Settings.tsx`:385
|
||
|
||
- **Text:** 'Mandant → AI-Workspace-Instanz → Einstellungen → Tab „Neutralisierung“'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <strong>Mandant → AI-Workspace-Instanz → Einstellungen → Tab „Neutralisierung“</strong> (nicht auf dieser`
|
||
|
||
## `src/pages/Settings.tsx`:470
|
||
|
||
- **Text:** 'Sprache konnte nicht gespeichert werden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` } catch { setLanguageError('Sprache konnte nicht gespeichert werden'); }`
|
||
|
||
## `src/pages/Settings.tsx`:475
|
||
|
||
- **Text:** 'Nicht angemeldet'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` if (!currentUser?.id || !currentUser?.username) throw new Error('Nicht angemeldet');`
|
||
|
||
## `src/pages/Settings.tsx`:489
|
||
|
||
- **Text:** 'Persoenliche Einstellungen und Praeferenzen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.subtitle}>Persoenliche Einstellungen und Praeferenzen</p>`
|
||
|
||
## `src/pages/Settings.tsx`:511
|
||
|
||
- **Text:** 'Profil bearbeiten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={styles.settingLabel}>Profil bearbeiten</label>`
|
||
|
||
## `src/pages/Settings.tsx`:512
|
||
|
||
- **Text:** 'Aendern Sie Ihren Namen und Ihre E-Mail-Adresse.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.settingDescription}>Aendern Sie Ihren Namen und Ihre E-Mail-Adresse.</p>`
|
||
|
||
## `src/pages/Settings.tsx`:540
|
||
|
||
- **Text:** 'Waehlen Sie zwischen hellem und dunklem Design.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.settingInfo}><label className={styles.settingLabel}>Theme</label><p className={styles.settingDescription}>Waehlen Sie zwischen hellem und dunklem Design.</p></div>`
|
||
|
||
## `src/pages/Settings.tsx`:555
|
||
|
||
- **Text:** 'Deutsch'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'de', label: 'Deutsch' },`
|
||
|
||
## `src/pages/Settings.tsx`:556
|
||
|
||
- **Text:** 'English'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'en', label: 'English' },`
|
||
|
||
## `src/pages/Settings.tsx`:557
|
||
|
||
- **Text:** 'Français'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'fr', label: 'Français' },`
|
||
|
||
## `src/pages/Settings.tsx`:584
|
||
|
||
- **Text:** 'GDPR / Privacy'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.settingInfo}><label className={styles.settingLabel}>GDPR / Privacy</label><p className={styles.settingDescription}>Datenexport, Portabilität und Kontolöschung.</p></div>`
|
||
|
||
## `src/pages/Settings.tsx`:584
|
||
|
||
- **Text:** 'Datenexport, Portabilität und Kontolöschung.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.settingInfo}><label className={styles.settingLabel}>GDPR / Privacy</label><p className={styles.settingDescription}>Datenexport, Portabilität und Kontolöschung.</p></div>`
|
||
|
||
## `src/pages/Settings.tsx`:585
|
||
|
||
- **Text:** 'GDPR öffnen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.settingControl}><Link className={`${styles.button} ${styles.linkButton}`} to="/gdpr">GDPR öffnen</Link></div>`
|
||
|
||
## `src/pages/Store.tsx`:25
|
||
|
||
- **Text:** 'Erstelle und verwalte Automatisierungen, um wiederkehrende Aufgaben effizient zu erledigen.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` de: 'Erstelle und verwalte Automatisierungen, um wiederkehrende Aufgaben effizient zu erledigen.',`
|
||
|
||
## `src/pages/Store.tsx`:26
|
||
|
||
- **Text:** 'Create and manage automations to handle recurring tasks efficiently.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` en: 'Create and manage automations to handle recurring tasks efficiently.',`
|
||
|
||
## `src/pages/Store.tsx`:27
|
||
|
||
- **Text:** 'Creer et gerer des automatisations pour traiter efficacement les taches recurrentes.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` fr: 'Creer et gerer des automatisations pour traiter efficacement les taches recurrentes.',`
|
||
|
||
## `src/pages/Store.tsx`:30
|
||
|
||
- **Text:** 'n8n-style Flow-Automatisierung mit grafischem Editor, RAG und Tools.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` de: 'n8n-style Flow-Automatisierung mit grafischem Editor, RAG und Tools.',`
|
||
|
||
## `src/pages/Store.tsx`:31
|
||
|
||
- **Text:** 'n8n-style flow automation with visual editor, RAG and tools.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` en: 'n8n-style flow automation with visual editor, RAG and tools.',`
|
||
|
||
## `src/pages/Store.tsx`:32
|
||
|
||
- **Text:** 'Automatisation de flux style n8n avec editeur visuel, RAG et outils.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` fr: 'Automatisation de flux style n8n avec editeur visuel, RAG et outils.',`
|
||
|
||
## `src/pages/Store.tsx`:35
|
||
|
||
- **Text:** 'Integriere einen AI-Bot in deine Microsoft Teams Meetings und Channels.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` de: 'Integriere einen AI-Bot in deine Microsoft Teams Meetings und Channels.',`
|
||
|
||
## `src/pages/Store.tsx`:36
|
||
|
||
- **Text:** 'Integrate an AI bot into your Microsoft Teams meetings and channels.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` en: 'Integrate an AI bot into your Microsoft Teams meetings and channels.',`
|
||
|
||
## `src/pages/Store.tsx`:37
|
||
|
||
- **Text:** 'Integrez un bot IA dans vos reunions et canaux Microsoft Teams.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` fr: 'Integrez un bot IA dans vos reunions et canaux Microsoft Teams.',`
|
||
|
||
## `src/pages/Store.tsx`:40
|
||
|
||
- **Text:** 'Nutze den gemeinsamen AI Workspace: Chats, Tools und Kontext pro Instanz.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` de: 'Nutze den gemeinsamen AI Workspace: Chats, Tools und Kontext pro Instanz.',`
|
||
|
||
## `src/pages/Store.tsx`:41
|
||
|
||
- **Text:** 'Use the shared AI workspace: chats, tools, and context per instance.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` en: 'Use the shared AI workspace: chats, tools, and context per instance.',`
|
||
|
||
## `src/pages/Store.tsx`:42
|
||
|
||
- **Text:** "Utilisez l'espace de travail IA partage: chats, outils et contexte par instance."
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` fr: 'Utilisez l\'espace de travail IA partage: chats, outils et contexte par instance.',`
|
||
|
||
## `src/pages/Store.tsx`:45
|
||
|
||
- **Text:** 'CommCoach: Kommunikation trainieren mit KI-gestütztem Coaching und Feedback.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` de: 'CommCoach: Kommunikation trainieren mit KI-gestütztem Coaching und Feedback.',`
|
||
|
||
## `src/pages/Store.tsx`:46
|
||
|
||
- **Text:** 'CommCoach: practice communication with AI-assisted coaching and feedback.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` en: 'CommCoach: practice communication with AI-assisted coaching and feedback.',`
|
||
|
||
## `src/pages/Store.tsx`:47
|
||
|
||
- **Text:** 'CommCoach: entrainer la communication avec un coaching assiste par IA.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` fr: 'CommCoach: entrainer la communication avec un coaching assiste par IA.',`
|
||
|
||
## `src/pages/Store.tsx`:140
|
||
|
||
- **Text:** 'Wird aktiviert...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? (language === 'de' ? 'Wird aktiviert...' : 'Activating...')`
|
||
|
||
## `src/pages/Store.tsx`:160
|
||
|
||
- **Text:** 'Feature Store'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <h1>{currentLanguage === 'de' ? 'Feature Store' : currentLanguage === 'fr' ? 'Feature Store' : 'Feature Store'}</h1>`
|
||
|
||
## `src/pages/Store.tsx`:163
|
||
|
||
- **Text:** 'Aktiviere Features fuer dein Konto. Deine Daten sind isoliert und nur fuer dich sichtbar.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Aktiviere Features fuer dein Konto. Deine Daten sind isoliert und nur fuer dich sichtbar.'`
|
||
|
||
## `src/pages/Store.tsx`:165
|
||
|
||
- **Text:** 'Activez des fonctionnalites pour votre compte. Vos donnees sont isolees et visibles uniquement par vous.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Activez des fonctionnalites pour votre compte. Vos donnees sont isolees et visibles uniquement par vous.'`
|
||
|
||
## `src/pages/Store.tsx`:166
|
||
|
||
- **Text:** 'Activate features for your account. Your data is isolated and only visible to you.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'Activate features for your account. Your data is isolated and only visible to you.'}`
|
||
|
||
## `src/pages/Store.tsx`:186
|
||
|
||
- **Text:** 'AI budget'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {currentLanguage === 'de' ? 'AI-Budget' : 'AI budget'}: {subscriptionInfo.budgetAiCHF} CHF`
|
||
|
||
## `src/pages/Store.tsx`:191
|
||
|
||
- **Text:** 'Trial endet'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {currentLanguage === 'de' ? 'Trial endet' : 'Trial ends'}: {new Date(subscriptionInfo.trialEndsAt).toLocaleDateString()}`
|
||
|
||
## `src/pages/Store.tsx`:191
|
||
|
||
- **Text:** 'Trial ends'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {currentLanguage === 'de' ? 'Trial endet' : 'Trial ends'}: {new Date(subscriptionInfo.trialEndsAt).toLocaleDateString()}`
|
||
|
||
## `src/pages/Store.tsx`:201
|
||
|
||
- **Text:** 'Lade Features...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {currentLanguage === 'de' ? 'Lade Features...' : 'Loading features...'}`
|
||
|
||
## `src/pages/Store.tsx`:201
|
||
|
||
- **Text:** 'Loading features...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {currentLanguage === 'de' ? 'Lade Features...' : 'Loading features...'}`
|
||
|
||
## `src/pages/Store.tsx`:206
|
||
|
||
- **Text:** 'Keine Features im Store verfuegbar.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Keine Features im Store verfuegbar.'`
|
||
|
||
## `src/pages/Store.tsx`:207
|
||
|
||
- **Text:** 'No features available in the store.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'No features available in the store.'}`
|
||
|
||
## `src/pages/admin/AccessManagementHub.tsx`:147
|
||
|
||
- **Text:** 'Rollen synchronisiert'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'Rollen synchronisiert',`
|
||
|
||
## `src/pages/admin/AccessManagementHub.tsx`:152
|
||
|
||
- **Text:** 'Synchronisierung fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Synchronisierung fehlgeschlagen', result.error || 'Fehler beim Synchronisieren');`
|
||
|
||
## `src/pages/admin/AccessManagementHub.tsx`:152
|
||
|
||
- **Text:** 'Fehler beim Synchronisieren'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Synchronisierung fehlgeschlagen', result.error || 'Fehler beim Synchronisieren');`
|
||
|
||
## `src/pages/admin/AccessManagementHub.tsx`:155
|
||
|
||
- **Text:** 'Rollen konnten nicht synchronisiert werden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', 'Rollen konnten nicht synchronisiert werden');`
|
||
|
||
## `src/pages/admin/AccessManagementHub.tsx`:308
|
||
|
||
- **Text:** 'Fehler: {error}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.errorMessage}>Fehler: {error}</p>`
|
||
|
||
## `src/pages/admin/AccessManagementHub.tsx`:342
|
||
|
||
- **Text:** '-- Mandant wählen --'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">-- Mandant wählen --</option>`
|
||
|
||
## `src/pages/admin/AccessManagementHub.tsx`:431
|
||
|
||
- **Text:** 'Kein Mandant ausgewählt'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.emptyTitle}>Kein Mandant ausgewählt</h3>`
|
||
|
||
## `src/pages/admin/AccessManagementHub.tsx`:463
|
||
|
||
- **Text:** 'Rollen (max)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={hubStyles.statsLabel}>Rollen (max)</span>`
|
||
|
||
## `src/pages/admin/AccessManagementHub.tsx`:496
|
||
|
||
- **Text:** 'Lade Instanzen...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Instanzen...</span>`
|
||
|
||
## `src/pages/admin/AccessManagementHub.tsx`:501
|
||
|
||
- **Text:** 'Keine Feature-Instanzen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.emptyTitle}>Keine Feature-Instanzen</h3>`
|
||
|
||
## `src/pages/admin/AccessManagementHub.tsx`:526
|
||
|
||
- **Text:** 'f.code === inst.featureCode) || { code: inst.featureCode, label: inst.featureCode })}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>{getFeatureLabel(features.find((f) => f.code === inst.featureCode) || { code: inst.featureCode, label: inst.featureCode })}</span>`
|
||
|
||
## `src/pages/admin/AccessManagementHub.tsx`:543
|
||
|
||
- **Text:** 'Rollen synchronisieren'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Rollen synchronisieren"`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:87
|
||
|
||
- **Text:** 'Name'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'label', label: 'Name', type: 'string' as const, sortable: true, filterable: true, searchable: true, width: 200 },`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:88
|
||
|
||
- **Text:** 'Feature'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'featureCode', label: 'Feature', type: 'string' as const, sortable: true, filterable: true, width: 150,`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:100
|
||
|
||
- **Text:** 'Aktiv'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'enabled', label: 'Aktiv', type: 'boolean' as const, sortable: true, filterable: true, width: 80 },`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:123
|
||
|
||
- **Text:** 'Label ist erforderlich.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', 'Label ist erforderlich.');`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:133
|
||
|
||
- **Text:** 'System Prompt ist erforderlich für Chatbot-Instanzen.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', 'System Prompt ist erforderlich für Chatbot-Instanzen.');`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:177
|
||
|
||
- **Text:** 'Feature-Instanz erstellt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Feature-Instanz erstellt', `Die Instanz "${createLabel}" wurde erfolgreich erstellt.`);`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:179
|
||
|
||
- **Text:** 'Fehler beim Erstellen der Feature-Instanz'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Erstellen der Feature-Instanz');`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:229
|
||
|
||
- **Text:** 'System Prompt ist erforderlich für Chatbot-Instanzen.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', 'System Prompt ist erforderlich für Chatbot-Instanzen.');`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:271
|
||
|
||
- **Text:** 'Feature-Instanz aktualisiert'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Feature-Instanz aktualisiert', `Die Instanz "${data.label}" wurde erfolgreich aktualisiert.`);`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:273
|
||
|
||
- **Text:** 'Fehler beim Aktualisieren der Feature-Instanz'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Aktualisieren der Feature-Instanz');`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:286
|
||
|
||
- **Text:** 'Instanz gelöscht'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Instanz gelöscht', 'Die Feature-Instanz wurde gelöscht.');`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:286
|
||
|
||
- **Text:** 'Die Feature-Instanz wurde gelöscht.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Instanz gelöscht', 'Die Feature-Instanz wurde gelöscht.');`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:289
|
||
|
||
- **Text:** 'Fehler beim Löschen der Feature-Instanz'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Löschen der Feature-Instanz');`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:302
|
||
|
||
- **Text:** 'Rollen synchronisiert'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'Rollen synchronisiert',`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:306
|
||
|
||
- **Text:** 'Synchronisierung fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Synchronisierung fehlgeschlagen', result.error || 'Fehler beim Synchronisieren der Rollen');`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:306
|
||
|
||
- **Text:** 'Fehler beim Synchronisieren der Rollen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Synchronisierung fehlgeschlagen', result.error || 'Fehler beim Synchronisieren der Rollen');`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:338
|
||
|
||
- **Text:** 'Fehler: {error}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.errorMessage}>Fehler: {error}</p>`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:352
|
||
|
||
- **Text:** 'Verwalten Sie Feature-Instanzen für jeden Mandanten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.pageSubtitle}>Verwalten Sie Feature-Instanzen für jeden Mandanten</p>`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:368
|
||
|
||
- **Text:** '-- Mandant wählen --'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">-- Mandant wählen --</option>`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:390
|
||
|
||
- **Text:** 'Keine Features verfügbar. Bitte laden Sie die Seite neu oder prüfen Sie die Konsole auf Fehler.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title={features.length === 0 ? 'Keine Features verfügbar. Bitte laden Sie die Seite neu oder prüfen Sie die Konsole auf Fehler.' : undefined}`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:402
|
||
|
||
- **Text:** 'Verfügbare Features:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Verfügbare Features: </span>`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:415
|
||
|
||
- **Text:** ' Die API hat keine Features zurückgegeben.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {error ? ` Fehler: ${error}` : ' Die API hat keine Features zurückgegeben.'}`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:432
|
||
|
||
- **Text:** 'Kein Mandant ausgewählt'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.emptyTitle}>Kein Mandant ausgewählt</h3>`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:453
|
||
|
||
- **Text:** 'Instanz löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Instanz löschen',`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:461
|
||
|
||
- **Text:** 'Instanz bearbeiten'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Instanz bearbeiten',`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:467
|
||
|
||
- **Text:** 'Rollen synchronisieren'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Rollen synchronisieren',`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:477
|
||
|
||
- **Text:** 'Keine Feature-Instanzen gefunden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage="Keine Feature-Instanzen gefunden"`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:487
|
||
|
||
- **Text:** 'Neue Feature-Instanz erstellen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>Neue Feature-Instanz erstellen</h2>`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:497
|
||
|
||
- **Text:** 'Keine Features verfügbar. Bitte wenden Sie sich an den System-Administrator.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Keine Features verfügbar. Bitte wenden Sie sich an den System-Administrator.</p>`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:501
|
||
|
||
- **Text:** 'Lade Formular...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Formular...</span>`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:528
|
||
|
||
- **Text:** 'Feature auswählen (erforderlich)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Feature auswählen (erforderlich)"`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:555
|
||
|
||
- **Text:** 'Instanz-Bezeichnung eingeben...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Instanz-Bezeichnung eingeben..."`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:611
|
||
|
||
- **Text:** 'Feature-Instanz bearbeiten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>Feature-Instanz bearbeiten</h2>`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:625
|
||
|
||
- **Text:** 'Bezeichnung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Bezeichnung',`
|
||
|
||
## `src/pages/admin/AdminFeatureAccessPage.tsx`:632
|
||
|
||
- **Text:** 'Aktiviert'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Aktiviert',`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:201
|
||
|
||
- **Text:** 'Benutzername'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Benutzername',`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:210
|
||
|
||
- **Text:** 'E-Mail'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'E-Mail',`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:219
|
||
|
||
- **Text:** 'Vollständiger Name'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Vollständiger Name',`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:228
|
||
|
||
- **Text:** 'Rollen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Rollen',`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:241
|
||
|
||
- **Text:** 'Aktiv'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Aktiv',`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:268
|
||
|
||
- **Text:** 'Benutzer'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Benutzer',`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:275
|
||
|
||
- **Text:** 'Rollen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Rollen',`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:288
|
||
|
||
- **Text:** 'Rollen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Rollen',`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:295
|
||
|
||
- **Text:** 'Aktiv'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Aktiv',`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:312
|
||
|
||
- **Text:** 'Benutzer hinzugefügt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Benutzer hinzugefügt', 'Der Benutzer wurde erfolgreich zur Feature-Instanz hinzugefügt.');`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:312
|
||
|
||
- **Text:** 'Der Benutzer wurde erfolgreich zur Feature-Instanz hinzugefügt.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Benutzer hinzugefügt', 'Der Benutzer wurde erfolgreich zur Feature-Instanz hinzugefügt.');`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:314
|
||
|
||
- **Text:** 'Fehler beim Hinzufügen des Benutzers'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Hinzufügen des Benutzers');`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:336
|
||
|
||
- **Text:** 'Eintrag aktualisiert'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Eintrag aktualisiert', 'Rollen und Aktiv-Status wurden erfolgreich aktualisiert.');`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:336
|
||
|
||
- **Text:** 'Rollen und Aktiv-Status wurden erfolgreich aktualisiert.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Eintrag aktualisiert', 'Rollen und Aktiv-Status wurden erfolgreich aktualisiert.');`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:338
|
||
|
||
- **Text:** 'Fehler beim Aktualisieren'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Aktualisieren');`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:352
|
||
|
||
- **Text:** 'Benutzer entfernt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Benutzer entfernt', `"${user.username}" wurde aus der Feature-Instanz entfernt.`);`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:354
|
||
|
||
- **Text:** 'Fehler beim Entfernen des Benutzers'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Entfernen des Benutzers');`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:396
|
||
|
||
- **Text:** 'Fehler: {error}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.errorMessage}>Fehler: {error}</p>`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:409
|
||
|
||
- **Text:** 'Feature Instanz Benutzer'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h1 className={styles.pageTitle}>Feature Instanz Benutzer</h1>`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:410
|
||
|
||
- **Text:** 'Verwalten Sie Benutzerzugriffe auf Feature-Instanzen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.pageSubtitle}>Verwalten Sie Benutzerzugriffe auf Feature-Instanzen</p>`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:427
|
||
|
||
- **Text:** '-- Mandant / Feature-Instanz wählen --'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">-- Mandant / Feature-Instanz wählen --</option>`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:485
|
||
|
||
- **Text:** 'Verfügbare Rollen:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Verfügbare Rollen: </span>`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:499
|
||
|
||
- **Text:** 'Diese Instanz hat noch keine Rollen. Bitte synchronisieren Sie die Rollen zuerst unter "Feature-Instanzen".'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Diese Instanz hat noch keine Rollen. Bitte synchronisieren Sie die Rollen zuerst unter "Feature-Instanzen".</span>`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:507
|
||
|
||
- **Text:** 'Keine Feature-Instanz ausgewählt'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.emptyTitle}>Keine Feature-Instanz ausgewählt</h3>`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:510
|
||
|
||
- **Text:** 'Es gibt noch keine Feature-Instanzen. Erstellen Sie zuerst Feature-Instanzen unter "Feature-Instanzen".'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Es gibt noch keine Feature-Instanzen. Erstellen Sie zuerst Feature-Instanzen unter "Feature-Instanzen".'`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:511
|
||
|
||
- **Text:** 'Wählen Sie eine Feature-Instanz aus, um deren Benutzer zu verwalten.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'Wählen Sie eine Feature-Instanz aus, um deren Benutzer zu verwalten.'}`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:531
|
||
|
||
- **Text:** 'Rollen bearbeiten'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Rollen bearbeiten',`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:535
|
||
|
||
- **Text:** 'Aus Instanz entfernen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Aus Instanz entfernen',`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:552
|
||
|
||
- **Text:** 'Keine Benutzer gefunden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage="Keine Benutzer gefunden"`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:562
|
||
|
||
- **Text:** 'Benutzer zur Feature-Instanz hinzufügen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>Benutzer zur Feature-Instanz hinzufügen</h2>`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:572
|
||
|
||
- **Text:** 'Alle Benutzer haben bereits Zugriff auf diese Feature-Instanz.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Alle Benutzer haben bereits Zugriff auf diese Feature-Instanz.</p>`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:574
|
||
|
||
- **Text:** 'Diese Feature-Instanz hat keine Rollen. Bitte synchronisieren Sie zuerst die Rollen.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Diese Feature-Instanz hat keine Rollen. Bitte synchronisieren Sie zuerst die Rollen.</p>`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:581
|
||
|
||
- **Text:** 'Hinzufügen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` submitButtonText="Hinzufügen"`
|
||
|
||
## `src/pages/admin/AdminFeatureInstanceUsersPage.tsx`:595
|
||
|
||
- **Text:** 'Rollen bearbeiten: {editingUser.username}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>Rollen bearbeiten: {editingUser.username}</h2>`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:69
|
||
|
||
- **Text:** 'Fehler beim Laden der Features'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError('Fehler beim Laden der Features');`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:111
|
||
|
||
- **Text:** 'Fehler beim Laden der Feature-Rollen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError('Fehler beim Laden der Feature-Rollen');`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:134
|
||
|
||
- **Text:** 'Rollen-Label'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Rollen-Label',`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:143
|
||
|
||
- **Text:** 'Beschreibung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Beschreibung',`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:151
|
||
|
||
- **Text:** 'Feature'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Feature',`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:169
|
||
|
||
- **Text:** 'Rollen-Label'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Rollen-Label',`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:172
|
||
|
||
- **Text:** 'Eindeutiger Bezeichner der Rolle (z.B. trustee-admin)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` description: 'Eindeutiger Bezeichner der Rolle (z.B. trustee-admin)'`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:176
|
||
|
||
- **Text:** 'Beschreibung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Beschreibung',`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:179
|
||
|
||
- **Text:** 'Mehrsprachige Beschreibung der Rolle'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` description: 'Mehrsprachige Beschreibung der Rolle'`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:190
|
||
|
||
- **Text:** 'Rollen-Label'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Rollen-Label',`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:194
|
||
|
||
- **Text:** 'Eindeutiger Bezeichner der Rolle'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` description: 'Eindeutiger Bezeichner der Rolle'`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:198
|
||
|
||
- **Text:** 'Beschreibung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Beschreibung',`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:201
|
||
|
||
- **Text:** 'Mehrsprachige Beschreibung der Rolle'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` description: 'Mehrsprachige Beschreibung der Rolle'`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:221
|
||
|
||
- **Text:** 'Fehler beim Erstellen der Rolle'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', err.response?.data?.detail || 'Fehler beim Erstellen der Rolle');`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:240
|
||
|
||
- **Text:** 'Fehler beim Aktualisieren der Rolle'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', err.response?.data?.detail || 'Fehler beim Aktualisieren der Rolle');`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:253
|
||
|
||
- **Text:** 'Fehler beim Löschen der Rolle'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', err.response?.data?.detail || 'Fehler beim Löschen der Rolle');`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:283
|
||
|
||
- **Text:** 'Feature Rollen & Rechte'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h1 className={styles.pageTitle}>Feature Rollen & Rechte</h1>`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:284
|
||
|
||
- **Text:** 'Template-Rollen und deren Berechtigungen für Feature-Instanzen verwalten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.pageSubtitle}>Template-Rollen und deren Berechtigungen für Feature-Instanzen verwalten</p>`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:300
|
||
|
||
- **Text:** '-- Feature wählen --'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">-- Feature wählen --</option>`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:346
|
||
|
||
- **Text:** 'Kein Feature ausgewählt'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.emptyTitle}>Kein Feature ausgewählt</h3>`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:368
|
||
|
||
- **Text:** 'Rolle bearbeiten'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Rolle bearbeiten',`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:372
|
||
|
||
- **Text:** 'Rolle löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Rolle löschen',`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:380
|
||
|
||
- **Text:** 'Berechtigungen verwalten'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Berechtigungen verwalten',`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:389
|
||
|
||
- **Text:** 'Keine Feature-Rollen gefunden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage="Keine Feature-Rollen gefunden"`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:399
|
||
|
||
- **Text:** 'Neue Feature-Rolle erstellen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>Neue Feature-Rolle erstellen</h2>`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:417
|
||
|
||
- **Text:** 'Rolle erstellen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` submitButtonText={isSubmitting ? 'Erstelle...' : 'Rolle erstellen'}`
|
||
|
||
## `src/pages/admin/AdminFeatureRolesPage.tsx`:430
|
||
|
||
- **Text:** 'Feature-Rolle bearbeiten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>Feature-Rolle bearbeiten</h2>`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:86
|
||
|
||
- **Text:** 'Benutzername'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Benutzername',`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:95
|
||
|
||
- **Text:** 'E-Mail'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'E-Mail',`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:104
|
||
|
||
- **Text:** 'Email wurde gesendet'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <span title={emailSent ? 'Email wurde gesendet' : 'Email nicht gesendet'}>`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:104
|
||
|
||
- **Text:** 'Email nicht gesendet'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <span title={emailSent ? 'Email wurde gesendet' : 'Email nicht gesendet'}>`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:112
|
||
|
||
- **Text:** 'Rollen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Rollen',`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:127
|
||
|
||
- **Text:** 'Gültig bis'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Gültig bis',`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:143
|
||
|
||
- **Text:** 'Verwendet'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Verwendet',`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:151
|
||
|
||
- **Text:** 'Erstellt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Erstellt',`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:177
|
||
|
||
- **Text:** 'Gültigkeitsdauer (Stunden)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` fields.push({ name: 'expiresInHours', label: 'Gültigkeitsdauer (Stunden)', type: 'number',`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:200
|
||
|
||
- **Text:** 'Fehler beim Erstellen der Einladung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Erstellen der Einladung');`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:213
|
||
|
||
- **Text:** 'Fehler beim Widerrufen der Einladung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Widerrufen der Einladung');`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:248
|
||
|
||
- **Text:** 'Fehler: {error}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.errorMessage}>Fehler: {error}</p>`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:262
|
||
|
||
- **Text:** 'Erstellen und verwalten Sie Einladungen für neue Benutzer'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.pageSubtitle}>Erstellen und verwalten Sie Einladungen für neue Benutzer</p>`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:278
|
||
|
||
- **Text:** '-- Mandant wählen --'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">-- Mandant wählen --</option>`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:329
|
||
|
||
- **Text:** 'Kein Mandant ausgewählt'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.emptyTitle}>Kein Mandant ausgewählt</h3>`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:350
|
||
|
||
- **Text:** 'Einladung widerrufen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Einladung widerrufen',`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:358
|
||
|
||
- **Text:** 'Einladungs-Link anzeigen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Einladungs-Link anzeigen',`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:366
|
||
|
||
- **Text:** 'Keine Einladungen gefunden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage="Keine Einladungen gefunden"`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:376
|
||
|
||
- **Text:** 'Neue Einladung erstellen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>Neue Einladung erstellen</h2>`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:388
|
||
|
||
- **Text:** 'Lade Rollen...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Rollen...</span>`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:393
|
||
|
||
- **Text:** 'Lade Formular...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Formular...</span>`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:401
|
||
|
||
- **Text:** 'Einladung erstellen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` submitButtonText="Einladung erstellen"`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:438
|
||
|
||
- **Text:** 'In Zwischenablage kopieren'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="In Zwischenablage kopieren"`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:441
|
||
|
||
- **Text:** ' Kopiert!'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {copySuccess ? ' Kopiert!' : ' Kopieren'}`
|
||
|
||
## `src/pages/admin/AdminInvitationsPage.tsx`:441
|
||
|
||
- **Text:** ' Kopieren'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {copySuccess ? ' Kopiert!' : ' Kopieren'}`
|
||
|
||
## `src/pages/admin/AdminLanguagesPage.tsx`:22
|
||
|
||
- **Text:** 'Code'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'id', label: 'Code', type: 'text', sortable: true, filterable: true, width: 90 },`
|
||
|
||
## `src/pages/admin/AdminLanguagesPage.tsx`:23
|
||
|
||
- **Text:** 'Bezeichnung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'label', label: 'Bezeichnung', type: 'text', sortable: true, filterable: true, width: 160 },`
|
||
|
||
## `src/pages/admin/AdminLanguagesPage.tsx`:24
|
||
|
||
- **Text:** 'Status'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'status', label: 'Status', type: 'text', sortable: true, filterable: true, width: 120 },`
|
||
|
||
## `src/pages/admin/AdminLanguagesPage.tsx`:25
|
||
|
||
- **Text:** 'Keys'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'keysCount', label: 'Keys', type: 'number', sortable: true, width: 90 },`
|
||
|
||
## `src/pages/admin/AdminLanguagesPage.tsx`:29
|
||
|
||
- **Text:** 'it — Italiano'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'it', label: 'it — Italiano' },`
|
||
|
||
## `src/pages/admin/AdminLanguagesPage.tsx`:30
|
||
|
||
- **Text:** 'es — Español'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'es', label: 'es — Español' },`
|
||
|
||
## `src/pages/admin/AdminLanguagesPage.tsx`:31
|
||
|
||
- **Text:** 'pt — Português'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'pt', label: 'pt — Português' },`
|
||
|
||
## `src/pages/admin/AdminLanguagesPage.tsx`:32
|
||
|
||
- **Text:** 'nl — Nederlands'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'nl', label: 'nl — Nederlands' },`
|
||
|
||
## `src/pages/admin/AdminLanguagesPage.tsx`:33
|
||
|
||
- **Text:** 'pl — Polski'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'pl', label: 'pl — Polski' },`
|
||
|
||
## `src/pages/admin/AdminLanguagesPage.tsx`:34
|
||
|
||
- **Text:** 'cs — Čeština'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'cs', label: 'cs — Čeština' },`
|
||
|
||
## `src/pages/admin/AdminLanguagesPage.tsx`:35
|
||
|
||
- **Text:** 'sk — Slovenčina'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'sk', label: 'sk — Slovenčina' },`
|
||
|
||
## `src/pages/admin/AdminLanguagesPage.tsx`:36
|
||
|
||
- **Text:** 'sv — Svenska'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'sv', label: 'sv — Svenska' },`
|
||
|
||
## `src/pages/admin/AdminLanguagesPage.tsx`:37
|
||
|
||
- **Text:** 'no — Norsk'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'no', label: 'no — Norsk' },`
|
||
|
||
## `src/pages/admin/AdminLanguagesPage.tsx`:38
|
||
|
||
- **Text:** 'da — Dansk'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'da', label: 'da — Dansk' },`
|
||
|
||
## `src/pages/admin/AdminLanguagesPage.tsx`:65
|
||
|
||
- **Text:** 'Laden fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(e.response?.data?.detail || e.message || 'Laden fehlgeschlagen');`
|
||
|
||
## `src/pages/admin/AdminLogsPage.tsx`:49
|
||
|
||
- **Text:** 'Fehler beim Laden der Logs'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err.response?.data?.detail || 'Fehler beim Laden der Logs');`
|
||
|
||
## `src/pages/admin/AdminLogsPage.tsx`:81
|
||
|
||
- **Text:** 'Fehler beim Download'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err.response?.data?.detail || 'Fehler beim Download');`
|
||
|
||
## `src/pages/admin/AdminLogsPage.tsx`:107
|
||
|
||
- **Text:** 'Gateway Logs'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h1 className={styles.pageTitle}>Gateway Logs</h1>`
|
||
|
||
## `src/pages/admin/AdminLogsPage.tsx`:111
|
||
|
||
- **Text:** 'Keine Logs geladen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'Keine Logs geladen'}`
|
||
|
||
## `src/pages/admin/AdminLogsPage.tsx`:112
|
||
|
||
- **Text:** '— {logDir}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` {logDir && <span className={logStyles.logDirHint}> — {logDir}</span>}`
|
||
|
||
## `src/pages/admin/AdminLogsPage.tsx`:120
|
||
|
||
- **Text:** 'Log herunterladen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Log herunterladen"`
|
||
|
||
## `src/pages/admin/AdminLogsPage.tsx`:139
|
||
|
||
- **Text:** 'Einträge'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={logStyles.controlLabel}>Einträge</label>`
|
||
|
||
## `src/pages/admin/AdminLogsPage.tsx`:182
|
||
|
||
- **Text:** 'Keine Logs geladen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.emptyTitle}>Keine Logs geladen</p>`
|
||
|
||
## `src/pages/admin/AdminLogsPage.tsx`:191
|
||
|
||
- **Text:** 'Logs werden geladen...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Logs werden geladen...</span>`
|
||
|
||
## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:14
|
||
|
||
- **Text:** 'Cleanup Duplicates'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` * Includes a "Cleanup Duplicates" tool to find and remove duplicate AccessRules.`
|
||
|
||
## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:180
|
||
|
||
- **Text:** 'Fehler beim Laden der Duplikate'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setCleanupError(err?.response?.data?.detail || err?.message || 'Fehler beim Laden der Duplikate');`
|
||
|
||
## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:200
|
||
|
||
- **Text:** 'Fehler beim Bereinigen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setCleanupError(err?.response?.data?.detail || err?.message || 'Fehler beim Bereinigen');`
|
||
|
||
## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:215
|
||
|
||
- **Text:** 'Mandanten-Rollen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'mandate', label: 'Mandanten-Rollen' },`
|
||
|
||
## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:216
|
||
|
||
- **Text:** 'Alle (inkl. Templates)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'all', label: 'Alle (inkl. Templates)' },`
|
||
|
||
## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:217
|
||
|
||
- **Text:** 'Nur Templates'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'global', label: 'Nur Templates' },`
|
||
|
||
## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:225
|
||
|
||
- **Text:** 'Fehler beim Laden: {error}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.errorMessage}>Fehler beim Laden: {error}</p>`
|
||
|
||
## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:252
|
||
|
||
- **Text:** 'Doppelte Regeln finden und bereinigen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Doppelte Regeln finden und bereinigen"`
|
||
|
||
## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:313
|
||
|
||
- **Text:** 'Lade Rollen...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Rollen...</span>`
|
||
|
||
## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:321
|
||
|
||
- **Text:** 'Keine Rollen gefunden'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Keine Rollen gefunden</p>`
|
||
|
||
## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:324
|
||
|
||
- **Text:** 'Es gibt noch keine Mandanten-Rollen. System-Rollen werden bei der Mandant-Erstellung automatisch kopiert.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Es gibt noch keine Mandanten-Rollen. System-Rollen werden bei der Mandant-Erstellung automatisch kopiert.'`
|
||
|
||
## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:326
|
||
|
||
- **Text:** 'Es gibt noch keine Rollen-Templates.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Es gibt noch keine Rollen-Templates.'`
|
||
|
||
## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:327
|
||
|
||
- **Text:** 'Es gibt noch keine Rollen für diesen Mandanten.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'Es gibt noch keine Rollen für diesen Mandanten.'}`
|
||
|
||
## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:402
|
||
|
||
- **Text:** 'Analysiere Duplikate...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <span>{cleanupPhase === 'idle' ? 'Analysiere Duplikate...' : 'Bereinige Duplikate...'}</span>`
|
||
|
||
## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:402
|
||
|
||
- **Text:** 'Bereinige Duplikate...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <span>{cleanupPhase === 'idle' ? 'Analysiere Duplikate...' : 'Bereinige Duplikate...'}</span>`
|
||
|
||
## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:436
|
||
|
||
- **Text:** 'Zu loeschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {cleanupPhase === 'done' ? 'Geloescht' : 'Zu loeschen'}`
|
||
|
||
## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:445
|
||
|
||
- **Text:** 'doppelte Regeln wurden erfolgreich entfernt.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span><strong>{cleanupResult.deletedCount}</strong> doppelte Regeln wurden erfolgreich entfernt.</span>`
|
||
|
||
## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:452
|
||
|
||
- **Text:** 'Keine Duplikate gefunden. Alles sauber!'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Keine Duplikate gefunden. Alles sauber!</span>`
|
||
|
||
## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:515
|
||
|
||
- **Text:** 'Zu reparieren'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {cleanupPhase === 'done' ? 'Repariert' : 'Zu reparieren'}`
|
||
|
||
## `src/pages/admin/AdminMandateRolePermissionsPage.tsx`:566
|
||
|
||
- **Text:** 'Keine fehlerhaften Template-Rollen-Zuweisungen.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Keine fehlerhaften Template-Rollen-Zuweisungen.</span>`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:102
|
||
|
||
- **Text:** 'Bezeichnung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Bezeichnung',`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:111
|
||
|
||
- **Text:** 'Beschreibung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Beschreibung',`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:120
|
||
|
||
- **Text:** 'Geltungsbereich'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Geltungsbereich',`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:161
|
||
|
||
- **Text:** 'Geltungsbereich'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Geltungsbereich',`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:166
|
||
|
||
- **Text:** 'Nur dieser Mandant'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'mandate', label: 'Nur dieser Mandant' },`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:167
|
||
|
||
- **Text:** 'Template (wird bei neuen Mandanten kopiert)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 'global', label: 'Template (wird bei neuen Mandanten kopiert)' },`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:216
|
||
|
||
- **Text:** 'Fehler beim Erstellen der Rolle'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Erstellen der Rolle');`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:220
|
||
|
||
- **Text:** 'Fehler beim Erstellen der Rolle'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', err.message || 'Fehler beim Erstellen der Rolle');`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:255
|
||
|
||
- **Text:** 'Fehler beim Aktualisieren der Rolle'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Aktualisieren der Rolle');`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:259
|
||
|
||
- **Text:** 'Fehler beim Aktualisieren der Rolle'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', err.message || 'Fehler beim Aktualisieren der Rolle');`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:268
|
||
|
||
- **Text:** 'Nicht erlaubt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showWarning('Nicht erlaubt', 'System-Rollen können nicht gelöscht werden.');`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:268
|
||
|
||
- **Text:** 'System-Rollen können nicht gelöscht werden.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showWarning('Nicht erlaubt', 'System-Rollen können nicht gelöscht werden.');`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:277
|
||
|
||
- **Text:** 'Fehler beim Löschen der Rolle'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Löschen der Rolle');`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:300
|
||
|
||
- **Text:** 'Fehler: {error}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.errorMessage}>Fehler: {error}</p>`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:314
|
||
|
||
- **Text:** 'Verwalten Sie System-, globale und mandantenspezifische Rollen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.pageSubtitle}>Verwalten Sie System-, globale und mandantenspezifische Rollen</p>`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:346
|
||
|
||
- **Text:** '-- Mandant wählen --'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">-- Mandant wählen --</option>`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:364
|
||
|
||
- **Text:** 'Alle (inkl. Templates)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="all">Alle (inkl. Templates)</option>`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:365
|
||
|
||
- **Text:** 'Nur Templates'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="global">Nur Templates</option>`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:404
|
||
|
||
- **Text:** 'Kein Mandant ausgewählt'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.emptyTitle}>Kein Mandant ausgewählt</h3>`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:426
|
||
|
||
- **Text:** 'Rolle bearbeiten'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Rolle bearbeiten',`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:427
|
||
|
||
- **Text:** 'System-Rollen können nicht bearbeitet werden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` disabled: (row: Role) => row.isSystemRole ? { disabled: true, message: 'System-Rollen können nicht bearbeitet werden' } : false`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:431
|
||
|
||
- **Text:** 'Rolle löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Rolle löschen',`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:432
|
||
|
||
- **Text:** 'System-Rollen können nicht gelöscht werden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` disabled: (row: Role) => row.isSystemRole ? { disabled: true, message: 'System-Rollen können nicht gelöscht werden' } : false`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:441
|
||
|
||
- **Text:** 'Keine Rollen gefunden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage="Keine Rollen gefunden"`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:451
|
||
|
||
- **Text:** 'Neue Rolle erstellen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>Neue Rolle erstellen</h2>`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:463
|
||
|
||
- **Text:** 'Lade Formular...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Formular...</span>`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:471
|
||
|
||
- **Text:** 'Rolle erstellen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` submitButtonText={isSubmitting ? 'Erstelle...' : 'Rolle erstellen'}`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:485
|
||
|
||
- **Text:** 'Rolle bearbeiten: {editingRole.roleLabel}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>Rolle bearbeiten: {editingRole.roleLabel}</h2>`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:497
|
||
|
||
- **Text:** 'Lade Formular...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Formular...</span>`
|
||
|
||
## `src/pages/admin/AdminMandateRolesPage.tsx`:504
|
||
|
||
- **Text:** 'Template (global)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` Geltungsbereich: <strong>{editingRole.mandateId ? 'Mandanten-Instanz' : 'Template (global)'}</strong>`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:76
|
||
|
||
- **Text:** 'Abrechnungseinstellungen konnten nicht geladen werden. Nur Mandantendaten sind sicher bearbeitbar.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'Abrechnungseinstellungen konnten nicht geladen werden. Nur Mandantendaten sind sicher bearbeitbar.'`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:88
|
||
|
||
- **Text:** 'Mandant inkl. Abrechnungseinstellungen gespeichert.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Erstellt', 'Mandant inkl. Abrechnungseinstellungen gespeichert.');`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:92
|
||
|
||
- **Text:** 'Mandant erstellt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'Mandant erstellt',`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:93
|
||
|
||
- **Text:** 'Abrechnungseinstellungen konnten nicht gespeichert werden. Bitte unter Administration → Abrechnung nachpflegen.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'Abrechnungseinstellungen konnten nicht gespeichert werden. Bitte unter Administration → Abrechnung nachpflegen.'`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:108
|
||
|
||
- **Text:** 'Mandant und Abrechnung aktualisiert.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Gespeichert', 'Mandant und Abrechnung aktualisiert.');`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:111
|
||
|
||
- **Text:** 'Teilweise gespeichert'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showWarning('Teilweise gespeichert', 'Mandant gespeichert, Abrechnung konnte nicht aktualisiert werden.');`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:111
|
||
|
||
- **Text:** 'Mandant gespeichert, Abrechnung konnte nicht aktualisiert werden.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showWarning('Teilweise gespeichert', 'Mandant gespeichert, Abrechnung konnte nicht aktualisiert werden.');`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:123
|
||
|
||
- **Text:** 'Mandant deaktivieren'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` { title: 'Mandant deaktivieren', confirmLabel: 'Deaktivieren', variant: 'danger', placeholder: mandate.name },`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:127
|
||
|
||
- **Text:** 'Der eingegebene Name stimmt nicht überein.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showWarning('Abgebrochen', 'Der eingegebene Name stimmt nicht überein.');`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:135
|
||
|
||
- **Text:** 'Nicht erlaubt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showWarning('Nicht erlaubt', 'System-Mandanten können nicht gelöscht werden.');`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:135
|
||
|
||
- **Text:** 'System-Mandanten können nicht gelöscht werden.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showWarning('Nicht erlaubt', 'System-Mandanten können nicht gelöscht werden.');`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:140
|
||
|
||
- **Text:** 'Hard Delete (irreversibel)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` { title: 'Hard Delete (irreversibel)', confirmLabel: 'Endgültig löschen', variant: 'danger', placeholder: mandate.name },`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:140
|
||
|
||
- **Text:** 'Endgültig löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` { title: 'Hard Delete (irreversibel)', confirmLabel: 'Endgültig löschen', variant: 'danger', placeholder: mandate.name },`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:144
|
||
|
||
- **Text:** 'Der eingegebene Name stimmt nicht überein.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showWarning('Abgebrochen', 'Der eingegebene Name stimmt nicht überein.');`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:149
|
||
|
||
- **Text:** 'Gelöscht'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Gelöscht', `Mandant "${mandate.name}" wurde endgültig gelöscht.`);`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:158
|
||
|
||
- **Text:** 'Fehler beim Laden der Mandanten: {error}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.errorMessage}>Fehler beim Laden der Mandanten: {error}</p>`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:172
|
||
|
||
- **Text:** 'Verwalten Sie alle Mandanten im System'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.pageSubtitle}>Verwalten Sie alle Mandanten im System</p>`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:220
|
||
|
||
- **Text:** 'Deaktivieren (Soft-Delete)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Deaktivieren (Soft-Delete)',`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:222
|
||
|
||
- **Text:** 'System-Mandanten können nicht gelöscht werden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? { disabled: true, message: 'System-Mandanten können nicht gelöscht werden' }`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:230
|
||
|
||
- **Text:** 'Hard Delete (irreversibel)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Hard Delete (irreversibel)',`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:232
|
||
|
||
- **Text:** 'System-Mandanten können nicht gelöscht werden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? { disabled: true, message: 'System-Mandanten können nicht gelöscht werden' }`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:244
|
||
|
||
- **Text:** 'Keine Mandanten gefunden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage="Keine Mandanten gefunden"`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:253
|
||
|
||
- **Text:** 'Neuer Mandant'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>Neuer Mandant</h2>`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:269
|
||
|
||
- **Text:** 'Lade Formular...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Formular...</span>`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:299
|
||
|
||
- **Text:** 'Mandant bearbeiten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>Mandant bearbeiten</h2>`
|
||
|
||
## `src/pages/admin/AdminMandatesPage.tsx`:330
|
||
|
||
- **Text:** 'Lade Formular...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Formular...</span>`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:105
|
||
|
||
- **Text:** 'Failed to fetch users'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err?.response?.data?.detail || err?.message || 'Failed to fetch users');`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:133
|
||
|
||
- **Text:** 'Failed to fetch overview'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err?.response?.data?.detail || err?.message || 'Failed to fetch overview');`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:200
|
||
|
||
- **Text:** 'Dieser Benutzer ist SysAdmin und hat vollen Systemzugriff.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <span>{overview.sysAdminNote || 'Dieser Benutzer ist SysAdmin und hat vollen Systemzugriff.'}</span>`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:207
|
||
|
||
- **Text:** 'Keine Mandate-Zuordnungen vorhanden.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.emptyHint}>Keine Mandate-Zuordnungen vorhanden.</p>`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:231
|
||
|
||
- **Text:** 'Keine Rollen direkt am Mandanten.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.emptyHint}>Keine Rollen direkt am Mandanten.</p>`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:256
|
||
|
||
- **Text:** 'Keine Feature-Instanzen zugewiesen.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.emptyHint}>Keine Feature-Instanzen zugewiesen.</p>`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:358
|
||
|
||
- **Text:** 'UI-Zugriffsrechte bestimmen, welche Seiten und Views der Benutzer sehen kann.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>UI-Zugriffsrechte bestimmen, welche Seiten und Views der Benutzer sehen kann.</span>`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:364
|
||
|
||
- **Text:** 'Keine UI-Berechtigungen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.emptyTitle}>Keine UI-Berechtigungen</h3>`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:375
|
||
|
||
- **Text:** 'Gewährt durch'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <th style={{ textAlign: 'left', padding: '0.75rem', color: 'var(--text-secondary)' }}>Gewährt durch</th>`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:383
|
||
|
||
- **Text:** '1px solid var(--border-color)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: '1px solid var(--border-color)',`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:425
|
||
|
||
- **Text:** 'Keine Daten-Berechtigungen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.emptyTitle}>Keine Daten-Berechtigungen</h3>`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:438
|
||
|
||
- **Text:** 'Löschen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <th style={{ textAlign: 'center', padding: '0.75rem', color: 'var(--text-secondary)', width: '70px' }}>Löschen</th>`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:439
|
||
|
||
- **Text:** 'Gewährt durch'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <th style={{ textAlign: 'left', padding: '0.75rem', color: 'var(--text-secondary)' }}>Gewährt durch</th>`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:447
|
||
|
||
- **Text:** '1px solid var(--border-color)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: '1px solid var(--border-color)',`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:521
|
||
|
||
- **Text:** 'Ressourcen-Zugriffsrechte bestimmen, welche System-Ressourcen (z.B. AI-Modelle) der Benutzer verwenden kann.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Ressourcen-Zugriffsrechte bestimmen, welche System-Ressourcen (z.B. AI-Modelle) der Benutzer verwenden kann.</span>`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:527
|
||
|
||
- **Text:** 'Keine Ressourcen-Berechtigungen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.emptyTitle}>Keine Ressourcen-Berechtigungen</h3>`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:538
|
||
|
||
- **Text:** 'Gewährt durch'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <th style={{ textAlign: 'left', padding: '0.75rem', color: 'var(--text-secondary)' }}>Gewährt durch</th>`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:546
|
||
|
||
- **Text:** '1px solid var(--border-color)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: '1px solid var(--border-color)',`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:577
|
||
|
||
- **Text:** 'Fehler: {error}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.errorMessage}>Fehler: {error}</p>`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:593
|
||
|
||
- **Text:** 'Benutzer-Zugriffsübersicht'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h1 className={styles.pageTitle}>Benutzer-Zugriffsübersicht</h1>`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:594
|
||
|
||
- **Text:** 'Zeigt alle Berechtigungen eines Benutzers an'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.pageSubtitle}>Zeigt alle Berechtigungen eines Benutzers an</p>`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:612
|
||
|
||
- **Text:** '-- Benutzer wählen --'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">-- Benutzer wählen --</option>`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:616
|
||
|
||
- **Text:** ' [SysAdmin]'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {user.isSysAdmin && ' [SysAdmin]'}`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:637
|
||
|
||
- **Text:** 'Benutzer auswählen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.emptyTitle}>Benutzer auswählen</h3>`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:645
|
||
|
||
- **Text:** 'Lade Zugriffsübersicht...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Zugriffsübersicht...</span>`
|
||
|
||
## `src/pages/admin/AdminUserAccessOverviewPage.tsx`:669
|
||
|
||
- **Text:** '1px solid var(--border-color)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: '1px solid var(--border-color)',`
|
||
|
||
## `src/pages/admin/AdminUserMandatesPage.tsx`:100
|
||
|
||
- **Text:** 'Benutzername'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Benutzername',`
|
||
|
||
## `src/pages/admin/AdminUserMandatesPage.tsx`:109
|
||
|
||
- **Text:** 'E-Mail'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'E-Mail',`
|
||
|
||
## `src/pages/admin/AdminUserMandatesPage.tsx`:118
|
||
|
||
- **Text:** 'Vollständiger Name'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Vollständiger Name',`
|
||
|
||
## `src/pages/admin/AdminUserMandatesPage.tsx`:127
|
||
|
||
- **Text:** 'Rollen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Rollen',`
|
||
|
||
## `src/pages/admin/AdminUserMandatesPage.tsx`:140
|
||
|
||
- **Text:** 'Aktiv'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Aktiv',`
|
||
|
||
## `src/pages/admin/AdminUserMandatesPage.tsx`:211
|
||
|
||
- **Text:** 'Fehler beim Hinzufügen des Benutzers'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Hinzufügen des Benutzers');`
|
||
|
||
## `src/pages/admin/AdminUserMandatesPage.tsx`:228
|
||
|
||
- **Text:** 'Fehler beim Aktualisieren der Rollen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Aktualisieren der Rollen');`
|
||
|
||
## `src/pages/admin/AdminUserMandatesPage.tsx`:240
|
||
|
||
- **Text:** 'Fehler beim Entfernen des Benutzers'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Entfernen des Benutzers');`
|
||
|
||
## `src/pages/admin/AdminUserMandatesPage.tsx`:263
|
||
|
||
- **Text:** 'Fehler: {error}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.errorMessage}>Fehler: {error}</p>`
|
||
|
||
## `src/pages/admin/AdminUserMandatesPage.tsx`:277
|
||
|
||
- **Text:** 'Verwalten Sie, welche Benutzer Zugriff auf welche Mandanten haben'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.pageSubtitle}>Verwalten Sie, welche Benutzer Zugriff auf welche Mandanten haben</p>`
|
||
|
||
## `src/pages/admin/AdminUserMandatesPage.tsx`:293
|
||
|
||
- **Text:** '-- Mandant wählen --'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">-- Mandant wählen --</option>`
|
||
|
||
## `src/pages/admin/AdminUserMandatesPage.tsx`:326
|
||
|
||
- **Text:** 'Kein Mandant ausgewählt'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.emptyTitle}>Kein Mandant ausgewählt</h3>`
|
||
|
||
## `src/pages/admin/AdminUserMandatesPage.tsx`:348
|
||
|
||
- **Text:** 'Rollen bearbeiten'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Rollen bearbeiten',`
|
||
|
||
## `src/pages/admin/AdminUserMandatesPage.tsx`:352
|
||
|
||
- **Text:** 'Aus Mandant entfernen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Aus Mandant entfernen',`
|
||
|
||
## `src/pages/admin/AdminUserMandatesPage.tsx`:369
|
||
|
||
- **Text:** 'Keine Mitglieder gefunden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage="Keine Mitglieder gefunden"`
|
||
|
||
## `src/pages/admin/AdminUserMandatesPage.tsx`:379
|
||
|
||
- **Text:** 'Benutzer zum Mandanten hinzufügen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>Benutzer zum Mandanten hinzufügen</h2>`
|
||
|
||
## `src/pages/admin/AdminUserMandatesPage.tsx`:389
|
||
|
||
- **Text:** 'Alle Benutzer sind bereits diesem Mandanten zugewiesen.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Alle Benutzer sind bereits diesem Mandanten zugewiesen.</p>`
|
||
|
||
## `src/pages/admin/AdminUserMandatesPage.tsx`:393
|
||
|
||
- **Text:** 'Lade Rollen...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Rollen...</span>`
|
||
|
||
## `src/pages/admin/AdminUserMandatesPage.tsx`:401
|
||
|
||
- **Text:** 'Hinzufügen...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` submitButtonText={isSubmitting ? 'Hinzufügen...' : 'Hinzufügen'}`
|
||
|
||
## `src/pages/admin/AdminUserMandatesPage.tsx`:401
|
||
|
||
- **Text:** 'Hinzufügen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` submitButtonText={isSubmitting ? 'Hinzufügen...' : 'Hinzufügen'}`
|
||
|
||
## `src/pages/admin/AdminUserMandatesPage.tsx`:415
|
||
|
||
- **Text:** 'Rollen bearbeiten: {editingUser.username}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>Rollen bearbeiten: {editingUser.username}</h2>`
|
||
|
||
## `src/pages/admin/AdminUsersPage.tsx`:131
|
||
|
||
- **Text:** 'Fehler beim Laden der Benutzer: {error}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.errorMessage}>Fehler beim Laden der Benutzer: {error}</p>`
|
||
|
||
## `src/pages/admin/AdminUsersPage.tsx`:145
|
||
|
||
- **Text:** 'Verwalten Sie alle Benutzer im System'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.pageSubtitle}>Verwalten Sie alle Benutzer im System</p>`
|
||
|
||
## `src/pages/admin/AdminUsersPage.tsx`:200
|
||
|
||
- **Text:** 'Löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Löschen',`
|
||
|
||
## `src/pages/admin/AdminUsersPage.tsx`:208
|
||
|
||
- **Text:** 'Passwort-Link senden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Passwort-Link senden',`
|
||
|
||
## `src/pages/admin/AdminUsersPage.tsx`:221
|
||
|
||
- **Text:** 'Keine Benutzer gefunden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage="Keine Benutzer gefunden"`
|
||
|
||
## `src/pages/admin/AdminUsersPage.tsx`:230
|
||
|
||
- **Text:** 'Neuer Benutzer'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>Neuer Benutzer</h2>`
|
||
|
||
## `src/pages/admin/AdminUsersPage.tsx`:242
|
||
|
||
- **Text:** 'Lade Formular...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Formular...</span>`
|
||
|
||
## `src/pages/admin/AdminUsersPage.tsx`:264
|
||
|
||
- **Text:** 'Benutzer bearbeiten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>Benutzer bearbeiten</h2>`
|
||
|
||
## `src/pages/admin/AdminUsersPage.tsx`:276
|
||
|
||
- **Text:** 'Lade Formular...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Formular...</span>`
|
||
|
||
## `src/pages/admin/ChatbotConfigSection.tsx`:14
|
||
|
||
- **Text:** 'Anthropic (Claude)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` anthropic: 'Anthropic (Claude)',`
|
||
|
||
## `src/pages/admin/ChatbotConfigSection.tsx`:15
|
||
|
||
- **Text:** 'OpenAI (GPT)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` openai: 'OpenAI (GPT)',`
|
||
|
||
## `src/pages/admin/ChatbotConfigSection.tsx`:17
|
||
|
||
- **Text:** 'Tavily (Web Search)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` tavily: 'Tavily (Web Search)',`
|
||
|
||
## `src/pages/admin/ChatbotConfigSection.tsx`:18
|
||
|
||
- **Text:** 'Private LLM'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` privatellm: 'Private LLM',`
|
||
|
||
## `src/pages/admin/ChatbotConfigSection.tsx`:57
|
||
|
||
- **Text:** 'Althaus Preprocessor'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { id: 'preprocessor', label: 'Althaus Preprocessor', value: 'preprocessor' }`
|
||
|
||
## `src/pages/admin/ChatbotConfigSection.tsx`:113
|
||
|
||
- **Text:** 'Web Research aktivieren (Tavily)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Web Research aktivieren (Tavily)</span>`
|
||
|
||
## `src/pages/admin/ChatbotConfigSection.tsx`:158
|
||
|
||
- **Text:** 'Benutzerdefinierter System-Prompt für den Chatbot...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Benutzerdefinierter System-Prompt für den Chatbot..."`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:115
|
||
|
||
- **Text:** 'Benutzer hinzugefügt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Benutzer hinzugefügt', 'Der Benutzer wurde der Instanz hinzugefügt.');`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:115
|
||
|
||
- **Text:** 'Der Benutzer wurde der Instanz hinzugefügt.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Benutzer hinzugefügt', 'Der Benutzer wurde der Instanz hinzugefügt.');`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:117
|
||
|
||
- **Text:** 'Fehler beim Hinzufügen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Hinzufügen');`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:126
|
||
|
||
- **Text:** 'Benutzer entfernt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Benutzer entfernt', `"${user.username}" wurde entfernt.`);`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:128
|
||
|
||
- **Text:** 'Fehler beim Entfernen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Entfernen');`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:146
|
||
|
||
- **Text:** 'Rollen und Status wurden gespeichert.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Aktualisiert', 'Rollen und Status wurden gespeichert.');`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:148
|
||
|
||
- **Text:** 'Fehler beim Speichern'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Speichern');`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:160
|
||
|
||
- **Text:** 'Rollen synchronisiert'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'Rollen synchronisiert',`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:164
|
||
|
||
- **Text:** 'Synchronisierung fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', result.error || 'Synchronisierung fehlgeschlagen');`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:175
|
||
|
||
- **Text:** 'Instanz aktualisiert'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Instanz aktualisiert', 'Einstellungen wurden gespeichert.');`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:175
|
||
|
||
- **Text:** 'Einstellungen wurden gespeichert.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Instanz aktualisiert', 'Einstellungen wurden gespeichert.');`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:177
|
||
|
||
- **Text:** 'Fehler beim Speichern'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', result.error || 'Fehler beim Speichern');`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:185
|
||
|
||
- **Text:** 'Benutzer'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Benutzer',`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:195
|
||
|
||
- **Text:** 'Rollen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Rollen',`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:208
|
||
|
||
- **Text:** 'Rollen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Rollen',`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:215
|
||
|
||
- **Text:** 'Aktiv'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Aktiv',`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:226
|
||
|
||
- **Text:** 'Benutzer'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Benutzer',`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:232
|
||
|
||
- **Text:** 'Lade Benutzer...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Benutzer...</span>`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:248
|
||
|
||
- **Text:** 'Rollen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Rollen',`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:272
|
||
|
||
- **Text:** 'Einstellungen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Einstellungen',`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:277
|
||
|
||
- **Text:** 'Bezeichnung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { name: 'label', type: 'string' as const, label: 'Bezeichnung', required: true, editable: true },`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:278
|
||
|
||
- **Text:** 'Aktiviert'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { name: 'enabled', type: 'boolean' as const, label: 'Aktiviert', required: false, editable: true },`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:302
|
||
|
||
- **Text:** 'Schließen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <button type="button" className={styles.modalClose} onClick={onClose} aria-label="Schließen">`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:315
|
||
|
||
- **Text:** 'Benutzer hinzufügen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>Benutzer hinzufügen</h2>`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:322
|
||
|
||
- **Text:** 'Alle Mandanten-Benutzer haben bereits Zugriff.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Alle Mandanten-Benutzer haben bereits Zugriff.</p>`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:331
|
||
|
||
- **Text:** 'Hinzufügen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` submitButtonText="Hinzufügen"`
|
||
|
||
## `src/pages/admin/InstanceDetailModal.tsx`:344
|
||
|
||
- **Text:** 'Rollen: {editingUser.username}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>Rollen: {editingUser.username}</h2>`
|
||
|
||
## `src/pages/admin/InstanceHierarchyView.tsx`:129
|
||
|
||
- **Text:** 'Benutzer verwalten'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Benutzer verwalten"`
|
||
|
||
## `src/pages/admin/InstanceHierarchyView.tsx`:189
|
||
|
||
- **Text:** 'Lade Hierarchie und Benutzer...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Hierarchie und Benutzer...</span>`
|
||
|
||
## `src/pages/admin/InstanceHierarchyView.tsx`:266
|
||
|
||
- **Text:** 'Keine Rollen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'Keine Rollen';`
|
||
|
||
## `src/pages/admin/InstanceHierarchyView.tsx`:286
|
||
|
||
- **Text:** 'Zugang: {statusText}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={hierarchyStyles.tooltipStatus}>Zugang: {statusText}</div>`
|
||
|
||
## `src/pages/admin/PermissionMatrix.tsx`:38
|
||
|
||
- **Text:** 'Benutzer entfernen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Benutzer entfernen',`
|
||
|
||
## `src/pages/admin/PermissionMatrix.tsx`:51
|
||
|
||
- **Text:** 'Keine Rollen in dieser Instanz. Bitte zuerst Rollen synchronisieren.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Keine Rollen in dieser Instanz. Bitte zuerst Rollen synchronisieren.</p>`
|
||
|
||
## `src/pages/admin/PermissionMatrix.tsx`:114
|
||
|
||
- **Text:** 'Rollen bearbeiten'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Rollen bearbeiten"`
|
||
|
||
## `src/pages/admin/PermissionMatrix.tsx`:123
|
||
|
||
- **Text:** 'Aus Instanz entfernen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Aus Instanz entfernen"`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:5
|
||
|
||
- **Text:** 'Invite to mandate'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` * 1. Choose invite type: "Invite to mandate" OR "Invite to feature instance"`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:5
|
||
|
||
- **Text:** 'Invite to feature instance'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` * 1. Choose invite type: "Invite to mandate" OR "Invite to feature instance"`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:67
|
||
|
||
- **Text:** '1px solid var(--border-color, #C5D9E8)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #C5D9E8)',`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:172
|
||
|
||
- **Text:** 'Bitte mindestens eine E-Mail-Adresse oder einen Benutzernamen angeben.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError('Bitte mindestens eine E-Mail-Adresse oder einen Benutzernamen angeben.');`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:178
|
||
|
||
- **Text:** 'Diese E-Mail ist bereits in der Liste'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError('Diese E-Mail ist bereits in der Liste');`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:182
|
||
|
||
- **Text:** 'Dieser Benutzername ist bereits in der Liste'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError('Dieser Benutzername ist bereits in der Liste');`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:197
|
||
|
||
- **Text:** 'Bitte wählen Sie einen Benutzer'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError('Bitte wählen Sie einen Benutzer');`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:204
|
||
|
||
- **Text:** 'Dieser Benutzer ist bereits in der Liste'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError('Dieser Benutzer ist bereits in der Liste');`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:234
|
||
|
||
- **Text:** 'Bitte wählen Sie eine Feature-Instanz aus.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError('Bitte wählen Sie eine Feature-Instanz aus.');`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:273
|
||
|
||
- **Text:** 'Fehler beim Versand'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err?.response?.data?.detail || err?.message || 'Fehler beim Versand');`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:295
|
||
|
||
- **Text:** 'Mandant & Instanz'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? ['Art', 'Mandant & Instanz', 'Einladungen', 'Zusammenfassung']`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:356
|
||
|
||
- **Text:** 'Wohin möchten Sie einladen?'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 style={{ margin: '0 0 16px 0', fontSize: '16px' }}>Wohin möchten Sie einladen?</h3>`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:397
|
||
|
||
- **Text:** 'Mandant auswählen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {inviteType === 'mandate' ? 'Mandant auswählen' : 'Mandant und Feature-Instanz auswählen'}`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:397
|
||
|
||
- **Text:** 'Mandant und Feature-Instanz auswählen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {inviteType === 'mandate' ? 'Mandant auswählen' : 'Mandant und Feature-Instanz auswählen'}`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:400
|
||
|
||
- **Text:** 'Mandant *'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={styles.formLabel}>Mandant *</label>`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:411
|
||
|
||
- **Text:** '-- Mandant wählen --'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">-- Mandant wählen --</option>`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:419
|
||
|
||
- **Text:** 'Feature-Instanz *'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={styles.formLabel}>Feature-Instanz *</label>`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:421
|
||
|
||
- **Text:** 'Keine Feature-Instanzen für diesen Mandanten vorhanden.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p style={{ fontSize: '13px', color: 'var(--text-secondary)' }}>Keine Feature-Instanzen für diesen Mandanten vorhanden.</p>`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:432
|
||
|
||
- **Text:** '-- Feature-Instanz wählen --'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">-- Feature-Instanz wählen --</option>`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:435
|
||
|
||
- **Text:** ' (deaktiviert)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const suffix = inst.enabled === false ? ' (deaktiviert)' : '';`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:445
|
||
|
||
- **Text:** 'setStep(1)}>← Zurück'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <button className={styles.secondaryButton} onClick={() => setStep(1)}>← Zurück</button>`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:461
|
||
|
||
- **Text:** 'Einladungen hinzufügen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 style={{ margin: '0 0 8px 0', fontSize: '16px' }}>Einladungen hinzufügen</h3>`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:487
|
||
|
||
- **Text:** 'E-Mail (optional)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={styles.formLabel}>E-Mail (optional)</label>`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:493
|
||
|
||
- **Text:** 'beispiel@firma.com'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="beispiel@firma.com"`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:497
|
||
|
||
- **Text:** 'Benutzername (optional)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={styles.formLabel}>Benutzername (optional)</label>`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:504
|
||
|
||
- **Text:** 'z. B. vorname.nachname'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="z. B. vorname.nachname"`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:512
|
||
|
||
- **Text:** "Rolle{inviteType === 'featureInstance' ? ' (pro Instanz)' : ''} *"
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={styles.formLabel}>Rolle{inviteType === 'featureInstance' ? ' (pro Instanz)' : ''} *</label>`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:512
|
||
|
||
- **Text:** ' (pro Instanz)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <label className={styles.formLabel}>Rolle{inviteType === 'featureInstance' ? ' (pro Instanz)' : ''} *</label>`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:552
|
||
|
||
- **Text:** 'Bestehender Benutzer *'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={styles.formLabel}>Bestehender Benutzer *</label>`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:559
|
||
|
||
- **Text:** '-- Benutzer wählen --'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">-- Benutzer wählen --</option>`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:566
|
||
|
||
- **Text:** 'Keine weiteren Benutzer verfügbar.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` {availableExistingUsers.length === 0 && <p style={{ fontSize: '12px', color: 'var(--text-secondary)', marginTop: '4px' }}>Keine weiteren Benutzer verfügbar.</p>}`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:570
|
||
|
||
- **Text:** 'Rolle *'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={styles.formLabel}>Rolle *</label>`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:644
|
||
|
||
- **Text:** 'Noch keine Einladungen hinzugefügt.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p style={{ color: 'var(--text-secondary)', fontSize: '13px', marginBottom: '16px' }}>Noch keine Einladungen hinzugefügt.</p>`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:649
|
||
|
||
- **Text:** 'setStep(2)}>← Zurück'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <button className={styles.secondaryButton} onClick={() => setStep(2)}>← Zurück</button>`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:666
|
||
|
||
- **Text:** 'Einladung zum Mandanten'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <strong>Art:</strong> {inviteType === 'mandate' ? 'Einladung zum Mandanten' : 'Einladung zur Feature-Instanz'}`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:666
|
||
|
||
- **Text:** 'Einladung zur Feature-Instanz'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <strong>Art:</strong> {inviteType === 'mandate' ? 'Einladung zum Mandanten' : 'Einladung zur Feature-Instanz'}`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:677
|
||
|
||
- **Text:** 'Einladungen ({invitees.length}):'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <strong>Einladungen ({invitees.length}):</strong>`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:689
|
||
|
||
- **Text:** 'setStep(3)}>← Zurück'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <button className={styles.secondaryButton} onClick={() => setStep(3)}>← Zurück</button>`
|
||
|
||
## `src/pages/admin/wizards/AdminInvitationWizardPage.tsx`:695
|
||
|
||
- **Text:** 'Wird versendet...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isLoading ? 'Wird versendet...' : `${invitees.length} Einladungen versenden`}`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:84
|
||
|
||
- **Text:** ''
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` const [instanceForm, setInstanceForm] = useState({ label: '', enabled: true });`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:136
|
||
|
||
- **Text:** 'Fehler beim Laden der Mandanten'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError('Fehler beim Laden der Mandanten');`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:230
|
||
|
||
- **Text:** 'Mandant erstellt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'Mandant erstellt',`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:231
|
||
|
||
- **Text:** 'Abrechnungseinstellungen konnten nicht gespeichert werden. Bitte unter Administration → Abrechnung nachpflegen.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'Abrechnungseinstellungen konnten nicht gespeichert werden. Bitte unter Administration → Abrechnung nachpflegen.',`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:237
|
||
|
||
- **Text:** 'Mandant inkl. Abrechnung gespeichert'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Erstellt', 'Mandant inkl. Abrechnung gespeichert');`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:243
|
||
|
||
- **Text:** 'Fehler beim Erstellen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(e?.response?.data?.detail || e?.message || 'Fehler beim Erstellen');`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:267
|
||
|
||
- **Text:** 'Hinzugefügt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Hinzugefügt', `${ok} Benutzer zum Mandanten hinzugefügt`);`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:272
|
||
|
||
- **Text:** 'Teilweise fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'Teilweise fehlgeschlagen',`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:287
|
||
|
||
- **Text:** 'Benutzer aus Mandant entfernt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Entfernt', 'Benutzer aus Mandant entfernt');`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:290
|
||
|
||
- **Text:** 'Fehler beim Entfernen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(result.error || 'Fehler beim Entfernen');`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:306
|
||
|
||
- **Text:** ''
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` setInstanceForm({ label: '', enabled: true });`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:307
|
||
|
||
- **Text:** 'Instance erstellt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Erstellt', 'Instance erstellt');`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:310
|
||
|
||
- **Text:** 'Fehler beim Erstellen (Limit erreicht?)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(result.error || 'Fehler beim Erstellen (Limit erreicht?)');`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:321
|
||
|
||
- **Text:** 'Gelöscht'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Gelöscht', 'Instance gelöscht');`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:321
|
||
|
||
- **Text:** 'Instance gelöscht'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Gelöscht', 'Instance gelöscht');`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:324
|
||
|
||
- **Text:** 'Fehler beim Löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(result.error || 'Fehler beim Löschen');`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:346
|
||
|
||
- **Text:** 'Hinzugefügt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Hinzugefügt', `${ok} Benutzer zur Feature-Instanz hinzugefügt`);`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:351
|
||
|
||
- **Text:** 'Teilweise fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'Teilweise fehlgeschlagen',`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:368
|
||
|
||
- **Text:** 'Rollen aktualisiert'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Gespeichert', 'Rollen aktualisiert');`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:373
|
||
|
||
- **Text:** 'Rollen konnten nicht gespeichert werden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', r.error || 'Rollen konnten nicht gespeichert werden');`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:389
|
||
|
||
- **Text:** 'Rollen aktualisiert'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Gespeichert', 'Rollen aktualisiert');`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:394
|
||
|
||
- **Text:** 'Rollen konnten nicht gespeichert werden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', r.error || 'Rollen konnten nicht gespeichert werden');`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:403
|
||
|
||
- **Text:** 'Benutzer aus Feature-Instanz entfernt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Entfernt', 'Benutzer aus Feature-Instanz entfernt');`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:406
|
||
|
||
- **Text:** 'Fehler beim Entfernen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(result.error || 'Fehler beim Entfernen');`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:483
|
||
|
||
- **Text:** '1px solid var(--border-color, #e5e7eb)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #e5e7eb)',`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:535
|
||
|
||
- **Text:** 'Benutzer * (mehrfach möglich)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={styles.formLabel}>Benutzer * (mehrfach möglich)</label>`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:540
|
||
|
||
- **Text:** '1px solid var(--border-color, #e5e7eb)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #e5e7eb)',`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:576
|
||
|
||
- **Text:** 'Rollen (für alle ausgewählten Benutzer)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={styles.formLabel}>Rollen (für alle ausgewählten Benutzer)</label>`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:604
|
||
|
||
- **Text:** 'Hinzufügen...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isLoading ? 'Hinzufügen...' : 'Hinzufügen'}`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:604
|
||
|
||
- **Text:** 'Hinzufügen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isLoading ? 'Hinzufügen...' : 'Hinzufügen'}`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:633
|
||
|
||
- **Text:** 'background 0.2s'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` transition: 'background 0.2s',`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:657
|
||
|
||
- **Text:** '1px solid var(--border-color, #e5e7eb)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #e5e7eb)',`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:671
|
||
|
||
- **Text:** 'Schritt-für-Schritt Wizard zur Mandanten-Konfiguration'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.pageSubtitle}>Schritt-für-Schritt Wizard zur Mandanten-Konfiguration</p>`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:679
|
||
|
||
- **Text:** '1px solid var(--danger-color, #fecaca)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--danger-color, #fecaca)',`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:691
|
||
|
||
- **Text:** 'Mandant auswählen oder erstellen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 style={{ fontSize: '15px', fontWeight: 600, marginBottom: '16px', marginTop: 0 }}>Mandant auswählen oder erstellen</h3>`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:726
|
||
|
||
- **Text:** 'Formular wird geladen...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Formular wird geladen...</span>`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:734
|
||
|
||
- **Text:** 'Mandant erstellen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` submitButtonText={isLoading ? 'Erstellen...' : 'Mandant erstellen'}`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:786
|
||
|
||
- **Text:** '1px solid var(--border-color, #e5e7eb)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #e5e7eb)',`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:836
|
||
|
||
- **Text:** 'setStep(1)}>← Zurück'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <button className={styles.secondaryButton} onClick={() => setStep(1)}>← Zurück</button>`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:858
|
||
|
||
- **Text:** 'Feature filtern:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={styles.formLabel}>Feature filtern:</label>`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:864
|
||
|
||
- **Text:** 'Alle Features'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">Alle Features</option>`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:875
|
||
|
||
- **Text:** '1px solid var(--border-color, #e5e7eb)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #e5e7eb)',`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:914
|
||
|
||
- **Text:** 'Feature *'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={styles.formLabel}>Feature *</label>`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:921
|
||
|
||
- **Text:** '-- Feature wählen --'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">-- Feature wählen --</option>`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:933
|
||
|
||
- **Text:** 'z.B. Kunde A'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="z.B. Kunde A"`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:954
|
||
|
||
- **Text:** 'setStep(2)}>← Zurück'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <button className={styles.secondaryButton} onClick={() => setStep(2)}>← Zurück</button>`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:1003
|
||
|
||
- **Text:** '1px solid var(--border-color, #e5e7eb)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #e5e7eb)',`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:1058
|
||
|
||
- **Text:** 'setStep(3)}>← Zurück'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <button className={styles.secondaryButton} onClick={() => setStep(3)}>← Zurück</button>`
|
||
|
||
## `src/pages/admin/wizards/AdminMandateWizardPage.tsx`:1060
|
||
|
||
- **Text:** 'Konfiguration abgeschlossen!'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Fertig', 'Konfiguration abgeschlossen!');`
|
||
|
||
## `src/pages/admin/wizards/FeatureInstanceWizard.tsx`:36
|
||
|
||
- **Text:** 'Instanz erstellen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` { id: 'create', title: 'Instanz erstellen' },`
|
||
|
||
## `src/pages/admin/wizards/FeatureInstanceWizard.tsx`:38
|
||
|
||
- **Text:** 'Benutzer (optional)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` { id: 'users', title: 'Benutzer (optional)' },`
|
||
|
||
## `src/pages/admin/wizards/FeatureInstanceWizard.tsx`:74
|
||
|
||
- **Text:** 'Mandant'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { name: 'mandateId', label: 'Mandant', type: 'enum' as const, required: true, options: mandateOptions },`
|
||
|
||
## `src/pages/admin/wizards/FeatureInstanceWizard.tsx`:75
|
||
|
||
- **Text:** 'Feature'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { name: 'featureCode', label: 'Feature', type: 'enum' as const, required: true, options: featureOptions },`
|
||
|
||
## `src/pages/admin/wizards/FeatureInstanceWizard.tsx`:76
|
||
|
||
- **Text:** 'Bezeichnung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { name: 'label', label: 'Bezeichnung', type: 'string' as const, required: true, editable: true },`
|
||
|
||
## `src/pages/admin/wizards/FeatureInstanceWizard.tsx`:77
|
||
|
||
- **Text:** 'Aktiv'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { name: 'enabled', label: 'Aktiv', type: 'boolean' as const, required: false, editable: true },`
|
||
|
||
## `src/pages/admin/wizards/FeatureInstanceWizard.tsx`:104
|
||
|
||
- **Text:** 'Instanz konnte nicht erstellt werden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', result.error || 'Instanz konnte nicht erstellt werden');`
|
||
|
||
## `src/pages/admin/wizards/FeatureInstanceWizard.tsx`:152
|
||
|
||
- **Text:** 'Feature-Instanz wurde erstellt und Benutzer zugewiesen.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Fertig', 'Feature-Instanz wurde erstellt und Benutzer zugewiesen.');`
|
||
|
||
## `src/pages/admin/wizards/FeatureInstanceWizard.tsx`:155
|
||
|
||
- **Text:** 'Einige Benutzer konnten nicht zugewiesen werden.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', 'Einige Benutzer konnten nicht zugewiesen werden.');`
|
||
|
||
## `src/pages/admin/wizards/FeatureInstanceWizard.tsx`:175
|
||
|
||
- **Text:** 'Neue Feature-Instanz'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>Neue Feature-Instanz</h2>`
|
||
|
||
## `src/pages/admin/wizards/FeatureInstanceWizard.tsx`:176
|
||
|
||
- **Text:** 'Schließen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <button type="button" className={styles.modalClose} onClick={onClose} aria-label="Schließen">`
|
||
|
||
## `src/pages/admin/wizards/FeatureInstanceWizard.tsx`:243
|
||
|
||
- **Text:** 'Keine Mandanten-Benutzer vorhanden.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={wizardStyles.stepText}>Keine Mandanten-Benutzer vorhanden.</p>`
|
||
|
||
## `src/pages/admin/wizards/FeatureInstanceWizard.tsx`:261
|
||
|
||
- **Text:** '— Keine Rolle —'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">— Keine Rolle —</option>`
|
||
|
||
## `src/pages/basedata/ConnectionsPage.tsx`:237
|
||
|
||
- **Text:** 'Fehler beim Laden der Verbindungen: {error}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.errorMessage}>Fehler beim Laden der Verbindungen: {error}</p>`
|
||
|
||
## `src/pages/basedata/ConnectionsPage.tsx`:253
|
||
|
||
- **Text:** ', ClickUp'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isClickupConnectionUiEnabled ? ', ClickUp' : ''})`
|
||
|
||
## `src/pages/basedata/ConnectionsPage.tsx`:261
|
||
|
||
- **Text:** 'Microsoft Admin Consent — erteilt der App die nötigen Berechtigungen für den gesamten Tenant'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Microsoft Admin Consent — erteilt der App die nötigen Berechtigungen für den gesamten Tenant"`
|
||
|
||
## `src/pages/basedata/ConnectionsPage.tsx`:294
|
||
|
||
- **Text:** 'ClickUp-Konto verbinden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="ClickUp-Konto verbinden"`
|
||
|
||
## `src/pages/basedata/ConnectionsPage.tsx`:324
|
||
|
||
- **Text:** 'Löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Löschen',`
|
||
|
||
## `src/pages/basedata/ConnectionsPage.tsx`:343
|
||
|
||
- **Text:** 'Token erneuern'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Token erneuern',`
|
||
|
||
## `src/pages/basedata/ConnectionsPage.tsx`:357
|
||
|
||
- **Text:** 'Keine Verbindungen gefunden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage="Keine Verbindungen gefunden"`
|
||
|
||
## `src/pages/basedata/ConnectionsPage.tsx`:366
|
||
|
||
- **Text:** 'Verbindung bearbeiten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>Verbindung bearbeiten</h2>`
|
||
|
||
## `src/pages/basedata/ConnectionsPage.tsx`:378
|
||
|
||
- **Text:** 'Lade Formular...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Formular...</span>`
|
||
|
||
## `src/pages/basedata/FilesPage.tsx`:148
|
||
|
||
- **Text:** 'Created By'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Created By',`
|
||
|
||
## `src/pages/basedata/FilesPage.tsx`:218
|
||
|
||
- **Text:** 'Upload erfolgreich'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'Upload erfolgreich',`
|
||
|
||
## `src/pages/basedata/FilesPage.tsx`:222
|
||
|
||
- **Text:** 'Upload fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Upload fehlgeschlagen', `${errorCount} Datei(en) konnten nicht hochgeladen werden`);`
|
||
|
||
## `src/pages/basedata/FilesPage.tsx`:228
|
||
|
||
- **Text:** 'Neuer Ordnername:'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const name = await promptInput('Neuer Ordnername:', { title: 'Neuer Ordner', placeholder: 'Ordnername' });`
|
||
|
||
## `src/pages/basedata/FilesPage.tsx`:228
|
||
|
||
- **Text:** 'Neuer Ordner'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const name = await promptInput('Neuer Ordnername:', { title: 'Neuer Ordner', placeholder: 'Ordnername' });`
|
||
|
||
## `src/pages/basedata/FilesPage.tsx`:303
|
||
|
||
- **Text:** 'Fehler beim Laden der Dateien: {error}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.errorMessage}>Fehler beim Laden der Dateien: {error}</p>`
|
||
|
||
## `src/pages/basedata/FilesPage.tsx`:344
|
||
|
||
- **Text:** '1px solid var(--color-border, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderRight: '1px solid var(--color-border, #e0e0e0)',`
|
||
|
||
## `src/pages/basedata/FilesPage.tsx`:385
|
||
|
||
- **Text:** 'background 0.15s'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` transition: isDragging ? 'none' : 'background 0.15s',`
|
||
|
||
## `src/pages/basedata/FilesPage.tsx`:398
|
||
|
||
- **Text:** '1px solid var(--color-border, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: '1px solid var(--color-border, #e0e0e0)',`
|
||
|
||
## `src/pages/basedata/FilesPage.tsx`:406
|
||
|
||
- **Text:** 'Datei hochladen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <FaUpload /> {uploadingFile ? 'Uploading...' : 'Datei hochladen'}`
|
||
|
||
## `src/pages/basedata/FilesPage.tsx`:438
|
||
|
||
- **Text:** 'Löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Löschen',`
|
||
|
||
## `src/pages/basedata/FilesPage.tsx`:468
|
||
|
||
- **Text:** 'Keine Dateien gefunden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage="Keine Dateien gefunden"`
|
||
|
||
## `src/pages/basedata/FilesPage.tsx`:479
|
||
|
||
- **Text:** 'Datei bearbeiten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>Datei bearbeiten</h2>`
|
||
|
||
## `src/pages/basedata/FilesPage.tsx`:486
|
||
|
||
- **Text:** 'Lade Formular...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Formular...</span>`
|
||
|
||
## `src/pages/basedata/PromptsPage.tsx`:77
|
||
|
||
- **Text:** 'Created By'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Created By',`
|
||
|
||
## `src/pages/basedata/PromptsPage.tsx`:161
|
||
|
||
- **Text:** 'Fehler beim Laden der Prompts: {error}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.errorMessage}>Fehler beim Laden der Prompts: {error}</p>`
|
||
|
||
## `src/pages/basedata/PromptsPage.tsx`:175
|
||
|
||
- **Text:** 'Prompt-Templates verwalten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.pageSubtitle}>Prompt-Templates verwalten</p>`
|
||
|
||
## `src/pages/basedata/PromptsPage.tsx`:221
|
||
|
||
- **Text:** 'Löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Löschen',`
|
||
|
||
## `src/pages/basedata/PromptsPage.tsx`:234
|
||
|
||
- **Text:** 'Keine Prompts gefunden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage="Keine Prompts gefunden"`
|
||
|
||
## `src/pages/basedata/PromptsPage.tsx`:243
|
||
|
||
- **Text:** 'Neuer Prompt'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>Neuer Prompt</h2>`
|
||
|
||
## `src/pages/basedata/PromptsPage.tsx`:255
|
||
|
||
- **Text:** 'Lade Formular...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Formular...</span>`
|
||
|
||
## `src/pages/basedata/PromptsPage.tsx`:277
|
||
|
||
- **Text:** 'Prompt bearbeiten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>Prompt bearbeiten</h2>`
|
||
|
||
## `src/pages/basedata/PromptsPage.tsx`:289
|
||
|
||
- **Text:** 'Lade Formular...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Formular...</span>`
|
||
|
||
## `src/pages/billing/AdminSubscriptionsPage.tsx`:11
|
||
|
||
- **Text:** 'Mandant'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'mandateName', label: 'Mandant', type: 'text', sortable: true, filterable: true, width: 180 },`
|
||
|
||
## `src/pages/billing/AdminSubscriptionsPage.tsx`:12
|
||
|
||
- **Text:** 'Plan'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'planTitle', label: 'Plan', type: 'text', sortable: true, filterable: true, width: 180 },`
|
||
|
||
## `src/pages/billing/AdminSubscriptionsPage.tsx`:13
|
||
|
||
- **Text:** 'Status'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'status', label: 'Status', type: 'text', sortable: true, filterable: true, width: 110 },`
|
||
|
||
## `src/pages/billing/AdminSubscriptionsPage.tsx`:14
|
||
|
||
- **Text:** 'Wiederkehrend'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'recurring', label: 'Wiederkehrend', type: 'boolean', sortable: true, filterable: true, width: 120 },`
|
||
|
||
## `src/pages/billing/AdminSubscriptionsPage.tsx`:15
|
||
|
||
- **Text:** 'User'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'activeUsers', label: 'User', type: 'number', sortable: true, width: 70 },`
|
||
|
||
## `src/pages/billing/AdminSubscriptionsPage.tsx`:16
|
||
|
||
- **Text:** 'Instanzen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'activeInstances', label: 'Instanzen', type: 'number', sortable: true, width: 90 },`
|
||
|
||
## `src/pages/billing/AdminSubscriptionsPage.tsx`:17
|
||
|
||
- **Text:** 'Revenue/Mt (CHF)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'monthlyRevenueCHF', label: 'Revenue/Mt (CHF)', type: 'number', sortable: true, width: 140 },`
|
||
|
||
## `src/pages/billing/AdminSubscriptionsPage.tsx`:18
|
||
|
||
- **Text:** 'Gestartet'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'startedAt', label: 'Gestartet', type: 'date', sortable: true, filterable: true, width: 130 },`
|
||
|
||
## `src/pages/billing/AdminSubscriptionsPage.tsx`:19
|
||
|
||
- **Text:** 'Periodenende'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'currentPeriodEnd', label: 'Periodenende', type: 'date', sortable: true, filterable: true, width: 130 },`
|
||
|
||
## `src/pages/billing/AdminSubscriptionsPage.tsx`:20
|
||
|
||
- **Text:** 'Preis/User'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'snapshotPricePerUserCHF', label: 'Preis/User', type: 'number', sortable: true, width: 100 },`
|
||
|
||
## `src/pages/billing/AdminSubscriptionsPage.tsx`:21
|
||
|
||
- **Text:** 'Preis/Instanz'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'snapshotPricePerInstanceCHF', label: 'Preis/Instanz', type: 'number', sortable: true, width: 110 },`
|
||
|
||
## `src/pages/billing/AdminSubscriptionsPage.tsx`:31
|
||
|
||
- **Text:** 'Sofort kündigen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` { confirmLabel: 'Sofort kündigen', cancelLabel: 'Abbrechen', variant: 'danger' },`
|
||
|
||
## `src/pages/billing/AdminSubscriptionsPage.tsx`:46
|
||
|
||
- **Text:** 'Subscription-Übersicht'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h1>Subscription-Übersicht</h1>`
|
||
|
||
## `src/pages/billing/AdminSubscriptionsPage.tsx`:47
|
||
|
||
- **Text:** 'Alle Abonnements aller Mandanten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.subtitle}>Alle Abonnements aller Mandanten</p>`
|
||
|
||
## `src/pages/billing/AdminSubscriptionsPage.tsx`:63
|
||
|
||
- **Text:** 'Sofort kündigen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Sofort kündigen',`
|
||
|
||
## `src/pages/billing/AdminSubscriptionsPage.tsx`:69
|
||
|
||
- **Text:** 'Keine Subscriptions vorhanden.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage="Keine Subscriptions vorhanden."`
|
||
|
||
## `src/pages/billing/BillingAdmin.tsx`:67
|
||
|
||
- **Text:** '-- Mandant wählen --'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">-- Mandant wählen --</option>`
|
||
|
||
## `src/pages/billing/BillingAdmin.tsx`:119
|
||
|
||
- **Text:** 'Einstellungen gespeichert!'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setMessage({ type: 'success', text: 'Einstellungen gespeichert!' });`
|
||
|
||
## `src/pages/billing/BillingAdmin.tsx`:121
|
||
|
||
- **Text:** 'Fehler beim Speichern'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setMessage({ type: 'error', text: err.message || 'Fehler beim Speichern' });`
|
||
|
||
## `src/pages/billing/BillingAdmin.tsx`:182
|
||
|
||
- **Text:** 'Betrag pro Nachladung (CHF)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Betrag pro Nachladung (CHF)</label>`
|
||
|
||
## `src/pages/billing/BillingAdmin.tsx`:384
|
||
|
||
- **Text:** 'Betrag muss positiv sein'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setLocalMsg('Betrag muss positiv sein');`
|
||
|
||
## `src/pages/billing/BillingAdmin.tsx`:421
|
||
|
||
- **Text:** 'Betrag (CHF)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>Betrag (CHF)</label>`
|
||
|
||
## `src/pages/billing/BillingAdmin.tsx`:427
|
||
|
||
- **Text:** 'z.B. 50'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="z.B. 50"`
|
||
|
||
## `src/pages/billing/BillingAdmin.tsx`:484
|
||
|
||
- **Text:** 'Mandant nicht ausgewählt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` if (!selectedMandateId) throw new Error('Mandant nicht ausgewählt');`
|
||
|
||
## `src/pages/billing/BillingAdmin.tsx`:486
|
||
|
||
- **Text:** 'Gutschrift konnte nicht erstellt werden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` if (!result) throw new Error('Gutschrift konnte nicht erstellt werden');`
|
||
|
||
## `src/pages/billing/BillingAdmin.tsx`:650
|
||
|
||
- **Text:** '1px solid var(--color-border, #333)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: '1px solid var(--color-border, #333)',`
|
||
|
||
## `src/pages/billing/BillingDashboard.tsx`:67
|
||
|
||
- **Text:** 'Lade Statistiken...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` return <div className={styles.loadingPlaceholder}>Lade Statistiken...</div>;`
|
||
|
||
## `src/pages/billing/BillingDashboard.tsx`:71
|
||
|
||
- **Text:** 'Keine Statistiken verfügbar'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` return <div className={styles.noData}>Keine Statistiken verfügbar</div>;`
|
||
|
||
## `src/pages/billing/BillingDashboard.tsx`:85
|
||
|
||
- **Text:** 'Kosten nach Anbieter'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h4>Kosten nach Anbieter</h4>`
|
||
|
||
## `src/pages/billing/BillingDashboard.tsx`:87
|
||
|
||
- **Text:** 'Keine Daten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.noData}>Keine Daten</div>`
|
||
|
||
## `src/pages/billing/BillingDashboard.tsx`:107
|
||
|
||
- **Text:** 'Kosten nach Modell'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h4>Kosten nach Modell</h4>`
|
||
|
||
## `src/pages/billing/BillingDashboard.tsx`:109
|
||
|
||
- **Text:** 'Keine Daten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.noData}>Keine Daten</div>`
|
||
|
||
## `src/pages/billing/BillingDashboard.tsx`:129
|
||
|
||
- **Text:** 'Kosten nach Feature'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h4>Kosten nach Feature</h4>`
|
||
|
||
## `src/pages/billing/BillingDashboard.tsx`:131
|
||
|
||
- **Text:** 'Keine Daten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.noData}>Keine Daten</div>`
|
||
|
||
## `src/pages/billing/BillingDashboard.tsx`:180
|
||
|
||
- **Text:** 'Januar'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 1, label: 'Januar' },`
|
||
|
||
## `src/pages/billing/BillingDashboard.tsx`:181
|
||
|
||
- **Text:** 'Februar'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 2, label: 'Februar' },`
|
||
|
||
## `src/pages/billing/BillingDashboard.tsx`:182
|
||
|
||
- **Text:** 'März'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 3, label: 'März' },`
|
||
|
||
## `src/pages/billing/BillingDashboard.tsx`:183
|
||
|
||
- **Text:** 'April'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 4, label: 'April' },`
|
||
|
||
## `src/pages/billing/BillingDashboard.tsx`:184
|
||
|
||
- **Text:** 'Mai'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 5, label: 'Mai' },`
|
||
|
||
## `src/pages/billing/BillingDashboard.tsx`:185
|
||
|
||
- **Text:** 'Juni'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 6, label: 'Juni' },`
|
||
|
||
## `src/pages/billing/BillingDashboard.tsx`:186
|
||
|
||
- **Text:** 'Juli'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 7, label: 'Juli' },`
|
||
|
||
## `src/pages/billing/BillingDashboard.tsx`:187
|
||
|
||
- **Text:** 'August'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 8, label: 'August' },`
|
||
|
||
## `src/pages/billing/BillingDashboard.tsx`:188
|
||
|
||
- **Text:** 'September'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 9, label: 'September' },`
|
||
|
||
## `src/pages/billing/BillingDashboard.tsx`:189
|
||
|
||
- **Text:** 'Oktober'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 10, label: 'Oktober' },`
|
||
|
||
## `src/pages/billing/BillingDashboard.tsx`:190
|
||
|
||
- **Text:** 'November'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 11, label: 'November' },`
|
||
|
||
## `src/pages/billing/BillingDashboard.tsx`:191
|
||
|
||
- **Text:** 'Dezember'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { value: 12, label: 'Dezember' },`
|
||
|
||
## `src/pages/billing/BillingDashboard.tsx`:198
|
||
|
||
- **Text:** 'Übersicht über Guthaben und Nutzung'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.subtitle}>Übersicht über Guthaben und Nutzung</p>`
|
||
|
||
## `src/pages/billing/BillingDashboard.tsx`:207
|
||
|
||
- **Text:** 'Lade Guthaben...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.loadingPlaceholder}>Lade Guthaben...</div>`
|
||
|
||
## `src/pages/billing/BillingDashboard.tsx`:209
|
||
|
||
- **Text:** 'Keine Abrechnungskonten vorhanden'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.noData}>Keine Abrechnungskonten vorhanden</div>`
|
||
|
||
## `src/pages/billing/BillingDataView.tsx`:5
|
||
|
||
- **Text:** 'Übersicht'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` * - Tab "Übersicht": KPI grid with cost, balance, storage metrics`
|
||
|
||
## `src/pages/billing/BillingDataView.tsx`:90
|
||
|
||
- **Text:** '1px solid var(--color-border, #333)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: '1px solid var(--color-border, #333)',`
|
||
|
||
## `src/pages/billing/BillingDataView.tsx`:133
|
||
|
||
- **Text:** '{n} Transaktionen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` subtitle: tr('{n} Transaktionen', { n: String(viewStats.transactionCount) }),`
|
||
|
||
## `src/pages/billing/BillingDataView.tsx`:138
|
||
|
||
- **Text:** 'Top: {name}'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` subtitle: topProvider ? tr('Top: {name}', { name: topProvider[0] }) : tr('Keine Nutzung'),`
|
||
|
||
## `src/pages/billing/BillingDataView.tsx`:138
|
||
|
||
- **Text:** 'Keine Nutzung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` subtitle: topProvider ? tr('Top: {name}', { name: topProvider[0] }) : tr('Keine Nutzung'),`
|
||
|
||
## `src/pages/billing/BillingDataView.tsx`:143
|
||
|
||
- **Text:** 'Top: {name}'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` subtitle: topModel ? tr('Top: {name}', { name: topModel[0] }) : tr('Keine Nutzung'),`
|
||
|
||
## `src/pages/billing/BillingDataView.tsx`:143
|
||
|
||
- **Text:** 'Keine Nutzung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` subtitle: topModel ? tr('Top: {name}', { name: topModel[0] }) : tr('Keine Nutzung'),`
|
||
|
||
## `src/pages/billing/BillingDataView.tsx`:148
|
||
|
||
- **Text:** 'Top: {name}'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` subtitle: topFeature ? tr('Top: {name}', { name: topFeature[0] }) : tr('Keine Nutzung'),`
|
||
|
||
## `src/pages/billing/BillingDataView.tsx`:148
|
||
|
||
- **Text:** 'Keine Nutzung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` subtitle: topFeature ? tr('Top: {name}', { name: topFeature[0] }) : tr('Keine Nutzung'),`
|
||
|
||
## `src/pages/billing/BillingDataView.tsx`:179
|
||
|
||
- **Text:** '{n} Transaktionen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` { label: tr('Gesamtkosten'), value: _formatCurrency(viewStats.totalCost), subtitle: tr('{n} Transaktionen', { n: String(viewStats.transactionCount) }) },`
|
||
|
||
## `src/pages/billing/BillingDataView.tsx`:180
|
||
|
||
- **Text:** 'pro Transaktion'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` { label: tr('Durchschnitt'), value: _formatCurrency(avgCost), subtitle: tr('pro Transaktion') },`
|
||
|
||
## `src/pages/billing/BillingDataView.tsx`:196
|
||
|
||
- **Text:** 'Kosten nach Anbieter'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: tr('Kosten nach Anbieter'),`
|
||
|
||
## `src/pages/billing/BillingDataView.tsx`:204
|
||
|
||
- **Text:** 'Kosten nach Modell'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: tr('Kosten nach Modell'),`
|
||
|
||
## `src/pages/billing/BillingDataView.tsx`:212
|
||
|
||
- **Text:** 'Kosten nach Feature'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: tr('Kosten nach Feature'),`
|
||
|
||
## `src/pages/billing/BillingDataView.tsx`:220
|
||
|
||
- **Text:** 'Kosten nach Mandant'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: tr('Kosten nach Mandant'),`
|
||
|
||
## `src/pages/billing/BillingDataView.tsx`:277
|
||
|
||
- **Text:** 'Zahlung erfolgreich. Guthaben wurde verbucht.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setCheckoutMessage({ type: 'success', text: 'Zahlung erfolgreich. Guthaben wurde verbucht.' });`
|
||
|
||
## `src/pages/billing/BillingDataView.tsx`:523
|
||
|
||
- **Text:** 'Nutzung, Diagramme und Transaktionen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.subtitle}>Nutzung, Diagramme und Transaktionen</p>`
|
||
|
||
## `src/pages/billing/BillingDataView.tsx`:586
|
||
|
||
- **Text:** '1px solid var(--border-color, #333)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #333)',`
|
||
|
||
## `src/pages/billing/BillingMandateView.tsx`:47
|
||
|
||
- **Text:** 'Anzahl Benutzer'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <th>Anzahl Benutzer</th>`
|
||
|
||
## `src/pages/billing/BillingMandateView.tsx`:48
|
||
|
||
- **Text:** 'Warnschwelle (%)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <th>Warnschwelle (%)</th>`
|
||
|
||
## `src/pages/billing/BillingMandateView.tsx`:217
|
||
|
||
- **Text:** 'Guthaben und Transaktionen pro Mandant'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.subtitle}>Guthaben und Transaktionen pro Mandant</p>`
|
||
|
||
## `src/pages/billing/BillingMandateView.tsx`:228
|
||
|
||
- **Text:** 'Lade Daten...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.loadingPlaceholder}>Lade Daten...</div>`
|
||
|
||
## `src/pages/billing/BillingMandateView.tsx`:230
|
||
|
||
- **Text:** 'Keine Mandanten mit Billing-Settings vorhanden'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.noData}>Keine Mandanten mit Billing-Settings vorhanden</div>`
|
||
|
||
## `src/pages/billing/BillingMandateView.tsx`:253
|
||
|
||
- **Text:** 'Lade Transaktionen...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.loadingPlaceholder}>Lade Transaktionen...</div>`
|
||
|
||
## `src/pages/billing/BillingMandateView.tsx`:255
|
||
|
||
- **Text:** 'Keine Transaktionen vorhanden'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.noData}>Keine Transaktionen vorhanden</div>`
|
||
|
||
## `src/pages/billing/BillingMandateView.tsx`:267
|
||
|
||
- **Text:** 'Mehr laden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {loading ? 'Laden...' : 'Mehr laden'}`
|
||
|
||
## `src/pages/billing/BillingNav.tsx`:27
|
||
|
||
- **Text:** '1px solid var(--color-border)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: '1px solid var(--color-border)',`
|
||
|
||
## `src/pages/billing/BillingTransactions.tsx`:97
|
||
|
||
- **Text:** 'Übersicht aller Kontobewegungen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.subtitle}>Übersicht aller Kontobewegungen</p>`
|
||
|
||
## `src/pages/billing/BillingTransactions.tsx`:104
|
||
|
||
- **Text:** 'Lade Transaktionen...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.loadingPlaceholder}>Lade Transaktionen...</div>`
|
||
|
||
## `src/pages/billing/BillingTransactions.tsx`:106
|
||
|
||
- **Text:** 'Keine Transaktionen vorhanden'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.noData}>Keine Transaktionen vorhanden</div>`
|
||
|
||
## `src/pages/billing/BillingTransactions.tsx`:138
|
||
|
||
- **Text:** 'Mehr laden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {loading ? 'Laden...' : 'Mehr laden'}`
|
||
|
||
## `src/pages/billing/BillingUserView.tsx`:92
|
||
|
||
- **Text:** 'Alle Mandanten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">Alle Mandanten</option>`
|
||
|
||
## `src/pages/billing/BillingUserView.tsx`:107
|
||
|
||
- **Text:** 'Alle Benutzer'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">Alle Benutzer</option>`
|
||
|
||
## `src/pages/billing/BillingUserView.tsx`:313
|
||
|
||
- **Text:** 'Guthaben und Transaktionen pro Benutzer'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.subtitle}>Guthaben und Transaktionen pro Benutzer</p>`
|
||
|
||
## `src/pages/billing/BillingUserView.tsx`:322
|
||
|
||
- **Text:** 'Lade Daten...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.loadingPlaceholder}>Lade Daten...</div>`
|
||
|
||
## `src/pages/billing/BillingUserView.tsx`:324
|
||
|
||
- **Text:** 'Keine Benutzer-Konten vorhanden'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.noData}>Keine Benutzer-Konten vorhanden</div>`
|
||
|
||
## `src/pages/billing/BillingUserView.tsx`:349
|
||
|
||
- **Text:** 'Lade Transaktionen...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.loadingPlaceholder}>Lade Transaktionen...</div>`
|
||
|
||
## `src/pages/billing/BillingUserView.tsx`:351
|
||
|
||
- **Text:** 'Keine Transaktionen vorhanden'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.noData}>Keine Transaktionen vorhanden</div>`
|
||
|
||
## `src/pages/billing/BillingUserView.tsx`:367
|
||
|
||
- **Text:** 'Mehr laden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {loading ? 'Laden...' : 'Mehr laden'}`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:44
|
||
|
||
- **Text:** 'Zahlung ausstehend'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` PENDING: { label: 'Zahlung ausstehend', color: '#f59e0b' },`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:45
|
||
|
||
- **Text:** 'Geplant'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` SCHEDULED: { label: 'Geplant', color: '#8b5cf6' },`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:46
|
||
|
||
- **Text:** 'Aktiv'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` ACTIVE: { label: 'Aktiv', color: '#22c55e' },`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:47
|
||
|
||
- **Text:** 'Testphase'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` TRIALING: { label: 'Testphase', color: '#38bdf8' },`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:48
|
||
|
||
- **Text:** 'Zahlung ausstehend'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` PAST_DUE: { label: 'Zahlung ausstehend', color: '#f59e0b' },`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:49
|
||
|
||
- **Text:** 'Abgelaufen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` EXPIRED: { label: 'Abgelaufen', color: '#6b7280' },`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:54
|
||
|
||
- **Text:** 'Jährlich'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` YEARLY: 'Jährlich',`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:78
|
||
|
||
- **Text:** '2px solid var(--primary-color, #F25843)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: isCurrent ? '2px solid var(--primary-color, #F25843)' : '1px solid var(--color-border, var(--border-color, #333))',`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:78
|
||
|
||
- **Text:** '1px solid var(--color-border, var(--border-color, #333))'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: isCurrent ? '2px solid var(--primary-color, #F25843)' : '1px solid var(--color-border, var(--border-color, #333))',`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:103
|
||
|
||
- **Text:** '/ {_periodLabel[plan.billingPeriod] || plan.billingPeriod}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div>User: <strong>{_formatCurrency(plan.pricePerUserCHF)}</strong> / {_periodLabel[plan.billingPeriod] || plan.billingPeriod}</div>`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:104
|
||
|
||
- **Text:** '/ {_periodLabel[plan.billingPeriod] || plan.billingPeriod}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div>Instanz: <strong>{_formatCurrency(plan.pricePerFeatureInstanceCHF)}</strong> / {_periodLabel[plan.billingPeriod] || plan.billingPeriod}</div>`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:124
|
||
|
||
- **Text:** '· max. {plan.maxUsers} User'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` {plan.maxUsers && <> · max. {plan.maxUsers} User</>}`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:125
|
||
|
||
- **Text:** '· max. {plan.maxFeatureInstances} Instanzen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` {plan.maxFeatureInstances && <> · max. {plan.maxFeatureInstances} Instanzen</>}`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:129
|
||
|
||
- **Text:** '· Speicher inkl. {formatBinaryDataSizeFromMebibytes(plan.maxDataVolumeMB)}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <> · Speicher inkl. {formatBinaryDataSizeFromMebibytes(plan.maxDataVolumeMB)}</>`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:131
|
||
|
||
- **Text:** '· AI-Budget { _formatCurrency(plan.budgetAiCHF ?? 0)}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` {(plan.budgetAiCHF ?? 0) > 0 && <> · AI-Budget { _formatCurrency(plan.budgetAiCHF ?? 0)}</>}`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:150
|
||
|
||
- **Text:** 'Kostenpflichtig abonnieren'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : (!isFreePlan && !plan.trialDays) ? 'Kostenpflichtig abonnieren' : 'Auswählen'}`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:150
|
||
|
||
- **Text:** 'Auswählen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : (!isFreePlan && !plan.trialDays) ? 'Kostenpflichtig abonnieren' : 'Auswählen'}`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:180
|
||
|
||
- **Text:** '1px solid var(--color-border, var(--border-color, #333))'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--color-border, var(--border-color, #333))',`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:198
|
||
|
||
- **Text:** 'Gekündigt'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` }}>Gekündigt</span>`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:215
|
||
|
||
- **Text:** 'Zahlung erfolgreich. Abonnement wird aktiviert — bitte warten...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Zahlung erfolgreich. Abonnement wird aktiviert — bitte warten...'`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:216
|
||
|
||
- **Text:** 'Die Zahlung wurde noch nicht abgeschlossen. Sie können den Checkout abbrechen oder erneut starten.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'Die Zahlung wurde noch nicht abgeschlossen. Sie können den Checkout abbrechen oder erneut starten.'}`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:235
|
||
|
||
- **Text:** 'Gestartet: {_formatDate(sub.startedAt)}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Gestartet: {_formatDate(sub.startedAt)}</span>`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:236
|
||
|
||
- **Text:** "Periode: {_periodLabel[plan.billingPeriod] || '—'}"
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` {plan && <span>Periode: {_periodLabel[plan.billingPeriod] || '—'}</span>}`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:237
|
||
|
||
- **Text:** 'Periodenende: {_formatDate(sub.currentPeriodEnd)}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` {sub.currentPeriodEnd && <span>Periodenende: {_formatDate(sub.currentPeriodEnd)}</span>}`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:238
|
||
|
||
- **Text:** 'Trial endet: {_formatDate(sub.trialEndsAt)}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` {sub.trialEndsAt && <span>Trial endet: {_formatDate(sub.trialEndsAt)}</span>}`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:240
|
||
|
||
- **Text:** 'Läuft aus am: {_formatDate(sub.currentPeriodEnd)}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span style={{ color: '#ef4444' }}>Läuft aus am: {_formatDate(sub.currentPeriodEnd)}</span>`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:244
|
||
|
||
- **Text:** 'AI-Budget (inkl.): {_formatCurrency(plan.budgetAiCHF ?? 0)} / Periode'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>AI-Budget (inkl.): {_formatCurrency(plan.budgetAiCHF ?? 0)} / Periode</span>`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:270
|
||
|
||
- **Text:** 'Wird reaktiviert...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {reactivating ? 'Wird reaktiviert...' : 'Reaktivieren'}`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:285
|
||
|
||
- **Text:** 'Wird gekündigt...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {cancelling ? 'Wird gekündigt...' : 'Kündigen'}`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:285
|
||
|
||
- **Text:** 'Kündigen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {cancelling ? 'Wird gekündigt...' : 'Kündigen'}`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:300
|
||
|
||
- **Text:** 'Wird abgebrochen...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {cancelling ? 'Wird abgebrochen...' : 'Abbrechen'}`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:343
|
||
|
||
- **Text:** 'Zahlung erfolgreich — Abonnement wird aktiviert...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setCheckoutMessage({ type: 'success', text: 'Zahlung erfolgreich — Abonnement wird aktiviert...' });`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:357
|
||
|
||
- **Text:** 'Abonnement wurde aktiviert.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setCheckoutMessage({ type: 'success', text: 'Abonnement wurde aktiviert.' });`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:370
|
||
|
||
- **Text:** 'Checkout abgebrochen. Ihr bestehendes Abonnement bleibt aktiv.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setCheckoutMessage({ type: 'info', text: 'Checkout abgebrochen. Ihr bestehendes Abonnement bleibt aktiv.' });`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:381
|
||
|
||
- **Text:** 'Abonnement wurde aktiviert.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setCheckoutMessage({ type: 'success', text: 'Abonnement wurde aktiviert.' });`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:391
|
||
|
||
- **Text:** 'Fehler beim Aktivieren'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setActionError(err?.response?.data?.detail || err.message || 'Fehler beim Aktivieren');`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:402
|
||
|
||
- **Text:** 'Diesen Vorgang abbrechen?'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Diesen Vorgang abbrechen?'`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:403
|
||
|
||
- **Text:** 'Abonnement kündigen? Es bleibt bis zum Periodenende aktiv.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'Abonnement kündigen? Es bleibt bis zum Periodenende aktiv.',`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:405
|
||
|
||
- **Text:** 'Vorgang abbrechen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: isPendingOrScheduled ? 'Vorgang abbrechen' : 'Abonnement kündigen',`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:405
|
||
|
||
- **Text:** 'Abonnement kündigen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: isPendingOrScheduled ? 'Vorgang abbrechen' : 'Abonnement kündigen',`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:406
|
||
|
||
- **Text:** 'Ja, abbrechen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` confirmLabel: isPendingOrScheduled ? 'Ja, abbrechen' : 'Kündigen',`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:406
|
||
|
||
- **Text:** 'Kündigen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` confirmLabel: isPendingOrScheduled ? 'Ja, abbrechen' : 'Kündigen',`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:407
|
||
|
||
- **Text:** 'Nein, zurück'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` cancelLabel: isPendingOrScheduled ? 'Nein, zurück' : 'Abbrechen',`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:430
|
||
|
||
- **Text:** 'Fehler beim Reaktivieren'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setActionError(err?.response?.data?.detail || err.message || 'Fehler beim Reaktivieren');`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:437
|
||
|
||
- **Text:** 'Lade Abonnement-Daten...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` return <div className={styles.loadingPlaceholder}>Lade Abonnement-Daten...</div>;`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:464
|
||
|
||
- **Text:** 'Aktuelles Abonnement'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.sectionTitle}>Aktuelles Abonnement</h2>`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:470
|
||
|
||
- **Text:** 'Zahlung wird verarbeitet'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? (justPaid ? 'Zahlung wird verarbeitet' : 'Checkout in Bearbeitung')`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:470
|
||
|
||
- **Text:** 'Checkout in Bearbeitung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? (justPaid ? 'Zahlung wird verarbeitet' : 'Checkout in Bearbeitung')`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:471
|
||
|
||
- **Text:** 'Operatives Abonnement'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'Operatives Abonnement'}`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:488
|
||
|
||
- **Text:** 'Geplanter Nachfolger'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.sectionTitle}>Geplanter Nachfolger</h2>`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:492
|
||
|
||
- **Text:** 'Startet nach Ablauf des aktuellen Abonnements'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` label="Startet nach Ablauf des aktuellen Abonnements"`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:502
|
||
|
||
- **Text:** 'Verfügbare Pläne'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.sectionTitle}>Verfügbare Pläne</h2>`
|
||
|
||
## `src/pages/billing/SubscriptionTab.tsx`:504
|
||
|
||
- **Text:** 'Keine Pläne verfügbar'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.noData}>Keine Pläne verfügbar</div>`
|
||
|
||
## `src/pages/views/chatbot/ChatbotConversationsView.tsx`:83
|
||
|
||
- **Text:** 'Möchten Sie diese Konversation wirklich löschen?'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const ok = await confirm('Möchten Sie diese Konversation wirklich löschen?', {`
|
||
|
||
## `src/pages/views/chatbot/ChatbotConversationsView.tsx`:84
|
||
|
||
- **Text:** 'Konversation löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Konversation löschen',`
|
||
|
||
## `src/pages/views/chatbot/ChatbotConversationsView.tsx`:85
|
||
|
||
- **Text:** 'Löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` confirmLabel: 'Löschen',`
|
||
|
||
## `src/pages/views/chatbot/ChatbotConversationsView.tsx`:108
|
||
|
||
- **Text:** 'Gerade eben'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` if (diffMins < 1) return 'Gerade eben';`
|
||
|
||
## `src/pages/views/chatbot/ChatbotConversationsView.tsx`:125
|
||
|
||
- **Text:** 'Neue Konversation'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` return 'Neue Konversation';`
|
||
|
||
## `src/pages/views/chatbot/ChatbotConversationsView.tsx`:137
|
||
|
||
- **Text:** 'Neue Konversation'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Neue Konversation"`
|
||
|
||
## `src/pages/views/chatbot/ChatbotConversationsView.tsx`:146
|
||
|
||
- **Text:** 'Lade Konversationen...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Konversationen...</span>`
|
||
|
||
## `src/pages/views/chatbot/ChatbotConversationsView.tsx`:158
|
||
|
||
- **Text:** 'Noch keine Konversationen vorhanden.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Noch keine Konversationen vorhanden.</p>`
|
||
|
||
## `src/pages/views/chatbot/ChatbotConversationsView.tsx`:159
|
||
|
||
- **Text:** 'Starte eine neue Konversation, um zu beginnen.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.emptyHint}>Starte eine neue Konversation, um zu beginnen.</p>`
|
||
|
||
## `src/pages/views/chatbot/ChatbotConversationsView.tsx`:179
|
||
|
||
- **Text:** 'Löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Löschen"`
|
||
|
||
## `src/pages/views/chatbot/ChatbotConversationsView.tsx`:200
|
||
|
||
- **Text:** 'Lade Nachrichten...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Nachrichten...</span>`
|
||
|
||
## `src/pages/views/chatbot/ChatbotConversationsView.tsx`:249
|
||
|
||
- **Text:** 'Nachricht eingeben...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Nachricht eingeben..."`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDashboardView.tsx`:25
|
||
|
||
- **Text:** 'Dashboard wird geladen...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` return <div className={styles.loading}>Dashboard wird geladen...</div>;`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDashboardView.tsx`:33
|
||
|
||
- **Text:** 'Keine Daten verfügbar.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` return <div className={styles.empty}>Keine Daten verfügbar.</div>;`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDashboardView.tsx`:42
|
||
|
||
- **Text:** 'Tage Streak'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.kpiLabel}>Tage Streak</div>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDashboardView.tsx`:43
|
||
|
||
- **Text:** 'Rekord: {dashboard.longestStreak}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.kpiSub}>Rekord: {dashboard.longestStreak}</div>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDashboardView.tsx`:68
|
||
|
||
- **Text:** 'Aktive Coaching-Themen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.sectionTitle}>Aktive Coaching-Themen</h3>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDashboardView.tsx`:71
|
||
|
||
- **Text:** 'Noch keine Coaching-Themen erstellt.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Noch keine Coaching-Themen erstellt.</p>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDashboardView.tsx`:72
|
||
|
||
- **Text:** 'Wechsle zum Coaching-Tab, um dein erstes Thema anzulegen.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Wechsle zum Coaching-Tab, um dein erstes Thema anzulegen.</p>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDashboardView.tsx`:89
|
||
|
||
- **Text:** 'Ziele: {ctx.goalProgress}%'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` {ctx.goalProgress != null && <span>Ziele: {ctx.goalProgress}%</span>}`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDashboardView.tsx`:125
|
||
|
||
- **Text:** 'Tipp des Tages'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.sectionTitle}>Tipp des Tages</h3>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDashboardView.tsx`:137
|
||
|
||
- **Text:** 'Führung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` leadership: 'Führung',`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDashboardView.tsx`:140
|
||
|
||
- **Text:** 'Präsentation'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` presentation: 'Präsentation',`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDashboardView.tsx`:143
|
||
|
||
- **Text:** 'Change Mgmt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` changeManagement: 'Change Mgmt',`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:262
|
||
|
||
- **Text:** 'Seitenleiste einblenden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title={udbCollapsed ? 'Seitenleiste einblenden' : 'Seitenleiste ausblenden'}`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:262
|
||
|
||
- **Text:** 'Seitenleiste ausblenden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title={udbCollapsed ? 'Seitenleiste einblenden' : 'Seitenleiste ausblenden'}`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:294
|
||
|
||
- **Text:** 'Neues Thema'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Neues Thema"`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:305
|
||
|
||
- **Text:** 'Thema / Titel...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Thema / Titel..."`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:313
|
||
|
||
- **Text:** 'Beschreibung (optional)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Beschreibung (optional)"`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:319
|
||
|
||
- **Text:** 'Führung'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="leadership">Führung</option>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:322
|
||
|
||
- **Text:** 'Präsentation'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="presentation">Präsentation</option>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:325
|
||
|
||
- **Text:** 'Change Management'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="changeManagement">Change Management</option>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:329
|
||
|
||
- **Text:** 'Wird erstellt...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {coach.actionLoading === 'creating' ? 'Wird erstellt...' : 'Erstellen'}`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:339
|
||
|
||
- **Text:** 'Willkommen beim Kommunikations-Coach'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3>Willkommen beim Kommunikations-Coach</h3>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:340
|
||
|
||
- **Text:** 'Erstelle ein Thema, um zu beginnen.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Erstelle ein Thema, um zu beginnen.</p>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:341
|
||
|
||
- **Text:** 'setShowNewContext(true)}>Neues Thema erstellen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <button className={styles.btnPrimary} onClick={() => setShowNewContext(true)}>Neues Thema erstellen</button>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:362
|
||
|
||
- **Text:** 'Wird archiviert...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {coach.actionLoading === 'archiving' ? 'Wird archiviert...' : 'Archivieren'}`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:387
|
||
|
||
- **Text:** 'Starte eine neue Coaching-Session zu diesem Thema.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Starte eine neue Coaching-Session zu diesem Thema.</p>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:390
|
||
|
||
- **Text:** 'Gesprächspartner wählen:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={styles.personaLabel}>Gesprächspartner wählen:</label>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:408
|
||
|
||
- **Text:** 'Wird gestartet...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Wird gestartet...'`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:411
|
||
|
||
- **Text:** 'Session starten'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'Session starten'}`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:418
|
||
|
||
- **Text:** 'Session aktiv'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.sessionLabel}>Session aktiv</span>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:432
|
||
|
||
- **Text:** 'Stummschaltung aufheben'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title={voice.muted ? 'Stummschaltung aufheben' : 'Stummschalten'}`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:434
|
||
|
||
- **Text:** '\\u{1F507} Stumm'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {voice.muted ? '\u{1F507} Stumm' : '\u{1F3A4} Ton an'}`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:434
|
||
|
||
- **Text:** '\\u{1F3A4} Ton an'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {voice.muted ? '\u{1F507} Stumm' : '\u{1F3A4} Ton an'}`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:437
|
||
|
||
- **Text:** 'Wird abgeschlossen...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {coach.actionLoading === 'completing' ? 'Wird abgeschlossen...' : 'Abschliessen'}`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:440
|
||
|
||
- **Text:** 'Wird abgebrochen...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {coach.actionLoading === 'cancelling' ? 'Wird abgebrochen...' : 'Abbrechen'}`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:469
|
||
|
||
- **Text:** 'Coach denkt nach'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <div className={styles.typing}>{coach.streamingStatus || 'Coach denkt nach'}<span className={styles.typingDots}>...</span></div>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:489
|
||
|
||
- **Text:** 'Tool-Aufrufe vorhanden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {coach.streamingStatus || (coach.agentToolCalls.length > 0 ? 'Tool-Aufrufe vorhanden' : 'Warte auf Agent')}`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:489
|
||
|
||
- **Text:** 'Warte auf Agent'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {coach.streamingStatus || (coach.agentToolCalls.length > 0 ? 'Tool-Aufrufe vorhanden' : 'Warte auf Agent')}`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:513
|
||
|
||
- **Text:** 'läuft'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {toolCall.success === true ? 'fertig' : toolCall.success === false ? 'fehler' : 'läuft'}`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:539
|
||
|
||
- **Text:** 'Stumm – Mikrofon aus'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Stumm – Mikrofon aus'`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:541
|
||
|
||
- **Text:** 'Coach spricht...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? (coach.streamingStatus || 'Coach spricht...')`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:543
|
||
|
||
- **Text:** 'Coach denkt nach...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? (coach.streamingStatus || 'Coach denkt nach...')`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:545
|
||
|
||
- **Text:** 'Unterbrochen – Mikrofon an'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Unterbrochen – Mikrofon an'`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:547
|
||
|
||
- **Text:** 'Mikrofon an – bitte sprechen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? (voice.liveTranscript ? 'Spricht...' : 'Mikrofon an – bitte sprechen')`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:548
|
||
|
||
- **Text:** 'Mikrofon wird gestartet...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'Mikrofon wird gestartet...'}`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:602
|
||
|
||
- **Text:** 'Nachricht eingeben...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Nachricht eingeben..."`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:616
|
||
|
||
- **Text:** 'Datei anhängen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Datei anhängen"`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:641
|
||
|
||
- **Text:** 'Dateien anhängen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div style={{ padding: '6px 12px', fontSize: 11, color: '#999', fontWeight: 600, borderBottom: '1px solid #f0f0f0' }}>Dateien anhängen</div>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:671
|
||
|
||
- **Text:** 'Datenquellen anhängen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Datenquellen anhängen"`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:698
|
||
|
||
- **Text:** 'Persönliche Quellen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div style={{ padding: '6px 12px', fontSize: 11, color: '#999', fontWeight: 600, borderBottom: '1px solid #f0f0f0' }}>Persönliche Quellen</div>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:775
|
||
|
||
- **Text:** 'Neue Aufgabe...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Neue Aufgabe..."`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:781
|
||
|
||
- **Text:** 'Wird hinzugefügt...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {coach.actionLoading === 'addingTask' ? 'Wird hinzugefügt...' : 'Hinzufügen'}`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:781
|
||
|
||
- **Text:** 'Hinzufügen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {coach.actionLoading === 'addingTask' ? 'Wird hinzugefügt...' : 'Hinzufügen'}`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:785
|
||
|
||
- **Text:** 'Noch keine Aufgaben. Der Coach schlägt während Sessions Aufgaben vor.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.emptyTab}>Noch keine Aufgaben. Der Coach schlägt während Sessions Aufgaben vor.</div>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:814
|
||
|
||
- **Text:** 'Noch keine abgeschlossenen Sessions.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.emptyTab}>Noch keine abgeschlossenen Sessions.</div>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:824
|
||
|
||
- **Text:** 'Score: {Math.round(s.competenceScore)}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` {s.competenceScore != null && <span className={styles.sessionScore}>Score: {Math.round(s.competenceScore)}</span>}`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:831
|
||
|
||
- **Text:** '| Persona'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` {s.personaId && <span> | Persona</span>}`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:849
|
||
|
||
- **Text:** 'Noch keine Bewertungen. Schliesse eine Session ab, um Scores zu erhalten.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.emptyTab}>Noch keine Bewertungen. Schliesse eine Session ab, um Scores zu erhalten.</div>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:899
|
||
|
||
- **Text:** 'Coaching (aktiv)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` case 'coaching': return coach.session ? 'Coaching (aktiv)' : 'Coaching';`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:925
|
||
|
||
- **Text:** 'Einfühlungsvermögen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` empathy: 'Einfühlungsvermögen', clarity: 'Klarheit',`
|
||
|
||
## `src/pages/views/commcoach/CommcoachDossierView.tsx`:926
|
||
|
||
- **Text:** 'Zuhören'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` assertiveness: 'Durchsetzung', listening: 'Zuhören',`
|
||
|
||
## `src/pages/views/commcoach/CommcoachSettingsView.tsx`:5
|
||
|
||
- **Text:** 'Stimme & Sprache'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` * Voice/language settings are in user-level settings (/settings -> "Stimme & Sprache").`
|
||
|
||
## `src/pages/views/commcoach/CommcoachSettingsView.tsx`:45
|
||
|
||
- **Text:** 'Fehler beim Laden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err.message || 'Fehler beim Laden');`
|
||
|
||
## `src/pages/views/commcoach/CommcoachSettingsView.tsx`:65
|
||
|
||
- **Text:** 'Einstellungen gespeichert'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setSuccess('Einstellungen gespeichert');`
|
||
|
||
## `src/pages/views/commcoach/CommcoachSettingsView.tsx`:68
|
||
|
||
- **Text:** 'Fehler beim Speichern'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err.message || 'Fehler beim Speichern');`
|
||
|
||
## `src/pages/views/commcoach/CommcoachSettingsView.tsx`:75
|
||
|
||
- **Text:** 'Einstellungen werden geladen...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` return <div className={styles.loading}>Einstellungen werden geladen...</div>;`
|
||
|
||
## `src/pages/views/commcoach/CommcoachSettingsView.tsx`:86
|
||
|
||
- **Text:** 'Stimme & Sprache'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.sectionTitle}>Stimme & Sprache</h3>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachSettingsView.tsx`:91
|
||
|
||
- **Text:** 'Stimme & Sprache'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` Benutzereinstellungen oeffnen (Tab "Stimme & Sprache")`
|
||
|
||
## `src/pages/views/commcoach/CommcoachSettingsView.tsx`:121
|
||
|
||
- **Text:** 'Sessions gesamt'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.statItem}><span className={styles.statValue}>{profile.totalSessions}</span><span className={styles.statLabel}>Sessions gesamt</span></div>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachSettingsView.tsx`:122
|
||
|
||
- **Text:** 'Minuten gesamt'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.statItem}><span className={styles.statValue}>{profile.totalMinutes}</span><span className={styles.statLabel}>Minuten gesamt</span></div>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachSettingsView.tsx`:123
|
||
|
||
- **Text:** 'Aktueller Streak'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.statItem}><span className={styles.statValue}>{profile.streakDays}</span><span className={styles.statLabel}>Aktueller Streak</span></div>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachSettingsView.tsx`:124
|
||
|
||
- **Text:** 'Laengster Streak'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.statItem}><span className={styles.statValue}>{profile.longestStreak}</span><span className={styles.statLabel}>Laengster Streak</span></div>`
|
||
|
||
## `src/pages/views/commcoach/CommcoachSettingsView.tsx`:130
|
||
|
||
- **Text:** 'Einstellungen speichern'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {saving ? 'Speichern...' : 'Einstellungen speichern'}`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorPage.tsx`:105
|
||
|
||
- **Text:** 'Graphical Editor'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2>Graphical Editor</h2>`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorPage.tsx`:106
|
||
|
||
- **Text:** 'Keine Feature-Instanz gefunden.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Keine Feature-Instanz gefunden.</p>`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:80
|
||
|
||
- **Text:** 'Fehler beim Laden der Vorlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler beim Laden der Vorlagen');`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:95
|
||
|
||
- **Text:** 'Vorlage gelöscht'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Vorlage gelöscht');`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:99
|
||
|
||
- **Text:** 'Löschen fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError(`Fehler: ${e?.message || 'Löschen fehlgeschlagen'}`);`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:112
|
||
|
||
- **Text:** 'Vorlage als Workflow kopiert'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Vorlage als Workflow kopiert');`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:114
|
||
|
||
- **Text:** 'Kopieren fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError(`Fehler: ${e?.message || 'Kopieren fehlgeschlagen'}`);`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:131
|
||
|
||
- **Text:** 'Scope-Änderung fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError(`Fehler: ${e?.message || 'Scope-Änderung fehlgeschlagen'}`);`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:144
|
||
|
||
- **Text:** 'Neuer Name:'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const newLabel = await promptInput('Neuer Name:', {`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:145
|
||
|
||
- **Text:** 'Vorlage umbenennen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Vorlage umbenennen',`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:152
|
||
|
||
- **Text:** 'Vorlage umbenannt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Vorlage umbenannt');`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:155
|
||
|
||
- **Text:** 'Umbenennen fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError(`Fehler: ${e?.message || 'Umbenennen fehlgeschlagen'}`);`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:170
|
||
|
||
- **Text:** 'Vorlage'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'label', label: 'Vorlage', type: 'string', width: 220, sortable: true },`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:173
|
||
|
||
- **Text:** 'Scope'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Scope',`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:180
|
||
|
||
- **Text:** 'Freigegeben'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Freigegeben',`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:192
|
||
|
||
- **Text:** 'Erstellt von'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Erstellt von',`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:198
|
||
|
||
- **Text:** 'Erstellt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Erstellt',`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:208
|
||
|
||
- **Text:** 'Keine Feature-Instanz gefunden.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Keine Feature-Instanz gefunden.</p>`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:259
|
||
|
||
- **Text:** 'Im Editor öffnen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Im Editor öffnen',`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:264
|
||
|
||
- **Text:** 'Löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Löschen',`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:278
|
||
|
||
- **Text:** 'Als Workflow kopieren'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Als Workflow kopieren',`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:285
|
||
|
||
- **Text:** 'Scope ändern'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Scope ändern',`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:293
|
||
|
||
- **Text:** 'Keine Vorlagen gefunden. Erstelle eine Vorlage aus einem bestehenden Workflow.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage="Keine Vorlagen gefunden. Erstelle eine Vorlage aus einem bestehenden Workflow."`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:310
|
||
|
||
- **Text:** 'translate(-50%, -50%)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` position: 'fixed', top: '50%', left: '50%', transform: 'translate(-50%, -50%)',`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorTemplatesPage.tsx`:316
|
||
|
||
- **Text:** 'Scope ändern'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h4 style={{ margin: '0 0 8px', fontSize: '0.9rem' }}>Scope ändern</h4>`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:71
|
||
|
||
- **Text:** 'Fehler beim Laden der Workflows'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler beim Laden der Workflows');`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:86
|
||
|
||
- **Text:** 'Workflow gelöscht'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Workflow gelöscht');`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:90
|
||
|
||
- **Text:** 'Löschen fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError(`Fehler: ${e?.message || 'Löschen fehlgeschlagen'}`);`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:117
|
||
|
||
- **Text:** 'Workflow aktiviert'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess(next ? 'Workflow aktiviert' : 'Workflow deaktiviert');`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:117
|
||
|
||
- **Text:** 'Workflow deaktiviert'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess(next ? 'Workflow aktiviert' : 'Workflow deaktiviert');`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:120
|
||
|
||
- **Text:** 'Status-Update fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError(`Fehler: ${e?.message || 'Status-Update fehlgeschlagen'}`);`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:131
|
||
|
||
- **Text:** 'Neuer Name:'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const newLabel = await promptInput('Neuer Name:', {`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:132
|
||
|
||
- **Text:** 'Workflow umbenennen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Workflow umbenennen',`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:139
|
||
|
||
- **Text:** 'Workflow umbenannt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Workflow umbenannt');`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:142
|
||
|
||
- **Text:** 'Umbenennen fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError(`Fehler: ${e?.message || 'Umbenennen fehlgeschlagen'}`);`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:162
|
||
|
||
- **Text:** 'Workflow gestartet und bei Human Task pausiert. Öffne Workflows & Tasks.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Workflow gestartet und bei Human Task pausiert. Öffne Workflows & Tasks.');`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:164
|
||
|
||
- **Text:** 'Workflow ausgeführt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Workflow ausgeführt');`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:168
|
||
|
||
- **Text:** 'Ausführung fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError(result?.error || 'Ausführung fehlgeschlagen');`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:171
|
||
|
||
- **Text:** 'Ausführung fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError(`Fehler: ${e?.message || 'Ausführung fehlgeschlagen'}`);`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:180
|
||
|
||
- **Text:** 'Workflow'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'label', label: 'Workflow', type: 'string', width: 200, sortable: true },`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:183
|
||
|
||
- **Text:** 'Aktiv'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Aktiv',`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:195
|
||
|
||
- **Text:** 'Läuft'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Läuft',`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:207
|
||
|
||
- **Text:** 'Steht bei'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Steht bei',`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:217
|
||
|
||
- **Text:** 'Erstellt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Erstellt',`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:224
|
||
|
||
- **Text:** 'Zuletzt gestartet'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Zuletzt gestartet',`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:231
|
||
|
||
- **Text:** 'Läufe'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Läufe',`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:247
|
||
|
||
- **Text:** 'Keine Feature-Instanz gefunden.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Keine Feature-Instanz gefunden.</p>`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:256
|
||
|
||
- **Text:** 'Gespeicherte Workflows'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h1 className={styles.pageTitle}>Gespeicherte Workflows</h1>`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:303
|
||
|
||
- **Text:** 'Löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Löschen',`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:332
|
||
|
||
- **Text:** 'Ausführen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Ausführen',`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsPage.tsx`:340
|
||
|
||
- **Text:** 'Keine Workflows gefunden. Erstelle einen im Editor.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage="Keine Workflows gefunden. Erstelle einen im Editor."`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:34
|
||
|
||
- **Text:** 'input.upload'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'input.upload': 'Upload',`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:34
|
||
|
||
- **Text:** 'Upload'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'input.upload': 'Upload',`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:36
|
||
|
||
- **Text:** 'Prüfung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'input.review': 'Prüfung',`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:38
|
||
|
||
- **Text:** 'Bestätigung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'input.confirmation': 'Bestätigung',`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:159
|
||
|
||
- **Text:** 'Workflow gestartet und bei Human Task pausiert.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Workflow gestartet und bei Human Task pausiert.');`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:161
|
||
|
||
- **Text:** 'Workflow gestartet'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Workflow gestartet');`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:165
|
||
|
||
- **Text:** 'Ausführung fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError(result?.error || 'Ausführung fehlgeschlagen');`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:169
|
||
|
||
- **Text:** 'Ausführung fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` (e as { message?: string })?.message ?? 'Ausführung fehlgeschlagen';`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:185
|
||
|
||
- **Text:** 'Keine Feature-Instanz gefunden.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Keine Feature-Instanz gefunden.</p>`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:194
|
||
|
||
- **Text:** 'Lade Tasks…'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Lade Tasks…</p>`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:212
|
||
|
||
- **Text:** 'Keine offenen Tasks'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.empty}>Keine offenen Tasks</p>`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:236
|
||
|
||
- **Text:** 'Erledigte Tasks'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Erledigte Tasks</span>`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:244
|
||
|
||
- **Text:** 'Keine erledigten Tasks'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.empty}>Keine erledigten Tasks</p>`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:291
|
||
|
||
- **Text:** 'Workflows starten'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <aside className={styles.startSidebar} aria-label="Workflows starten">`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:292
|
||
|
||
- **Text:** 'Workflow starten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.startSidebarTitle}>Workflow starten</h3>`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:315
|
||
|
||
- **Text:** 'Workflow ausführen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Workflow ausführen"`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:387
|
||
|
||
- **Text:** 'Kein Output (z.B. Workflow ohne file.create)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.empty}>Kein Output (z.B. Workflow ohne file.create)</p>`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:444
|
||
|
||
- **Text:** 'Aufgaben konnten nicht geladen werden.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setErr('Aufgaben konnten nicht geladen werden.');`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:482
|
||
|
||
- **Text:** '— Aufgabe wählen —'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">— Aufgabe wählen —</option>`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:596
|
||
|
||
- **Text:** '— Status wählen —'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">— Status wählen —</option>`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:630
|
||
|
||
- **Text:** 'Formular ausfüllen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Formular ausfüllen"`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:644
|
||
|
||
- **Text:** 'Wird gesendet…'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {submitting ? 'Wird gesendet…' : 'Absenden'}`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:736
|
||
|
||
- **Text:** 'Bestätigen?'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <p>{(config.question as string) ?? 'Bestätigen?'}</p>`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:743
|
||
|
||
- **Text:** 'Bestätigen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {typeof config.confirmLabel === 'string' ? config.confirmLabel : 'Bestätigen'}`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:755
|
||
|
||
- **Text:** 'input.upload'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` case 'input.upload': {`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:765
|
||
|
||
- **Text:** 'Nur eine Datei erlaubt.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setUploadError('Nur eine Datei erlaubt.');`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:808
|
||
|
||
- **Text:** 'Upload fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const msg = (err as { response?: { data?: { detail?: string } }; message?: string })?.response?.data?.detail ?? (err as Error)?.message ?? 'Upload fehlgeschlagen';`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:822
|
||
|
||
- **Text:** 'Bitte mindestens eine Datei hochladen.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setUploadError('Bitte mindestens eine Datei hochladen.');`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:851
|
||
|
||
- **Text:** 'Wird hochgeladen…'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <FaUpload /> {uploading ? 'Wird hochgeladen…' : 'Datei(en) auswählen'}`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:851
|
||
|
||
- **Text:** 'Datei(en) auswählen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <FaUpload /> {uploading ? 'Wird hochgeladen…' : 'Datei(en) auswählen'}`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:867
|
||
|
||
- **Text:** 'Wird gesendet…'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {submitting ? 'Wird gesendet…' : 'Absenden'}`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:875
|
||
|
||
- **Text:** 'Review – Content anzeigen + Feedback'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Review – Content anzeigen + Feedback</p>`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:877
|
||
|
||
- **Text:** 'Feedback...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Feedback..."`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:893
|
||
|
||
- **Text:** 'Unbekannter Task-Typ: {nodeType}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Unbekannter Task-Typ: {nodeType}</p>`
|
||
|
||
## `src/pages/views/graphicalEditor/GraphicalEditorWorkflowsTasksPage.tsx`:922
|
||
|
||
- **Text:** 'Fällig'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.metaLabel}>Fällig</span>`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:75
|
||
|
||
- **Text:** 'Error loading configuration'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'Error loading configuration';`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:77
|
||
|
||
- **Text:** 'Error'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', message);`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:94
|
||
|
||
- **Text:** 'Missing mandate or instance context'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` throw new Error('Missing mandate or instance context');`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:105
|
||
|
||
- **Text:** 'Configuration saved successfully.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Saved', 'Configuration saved successfully.');`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:112
|
||
|
||
- **Text:** 'Failed to save configuration'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'Failed to save configuration';`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:114
|
||
|
||
- **Text:** 'Error'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', message);`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:123
|
||
|
||
- **Text:** 'Loading configuration...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` return <div className={styles.loading}>Loading configuration...</div>;`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:128
|
||
|
||
- **Text:** 'Neutralization Configuration'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.sectionTitle}>Neutralization Configuration</h3>`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:137
|
||
|
||
- **Text:** 'Dismiss'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <button type="button" onClick={dismissError} aria-label="Dismiss">`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:144
|
||
|
||
- **Text:** 'Names to Parse (one per line):'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label htmlFor="names-to-parse">Names to Parse (one per line):</label>`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:150
|
||
|
||
- **Text:** 'Enter names to parse, one per line...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Enter names to parse, one per line..."`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:162
|
||
|
||
- **Text:** 'Save Configuration'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {saving ? 'Saving...' : 'Save Configuration'}`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:217
|
||
|
||
- **Text:** 'Failed to load SharePoint sites'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setBrowseError(typeof detail === 'string' ? detail : 'Failed to load SharePoint sites');`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:236
|
||
|
||
- **Text:** 'Failed to load folders'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setBrowseError(typeof detail === 'string' ? detail : 'Failed to load folders');`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:321
|
||
|
||
- **Text:** 'Error'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', 'Please enter text to neutralize.');`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:321
|
||
|
||
- **Text:** 'Please enter text to neutralize.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', 'Please enter text to neutralize.');`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:329
|
||
|
||
- **Text:** 'Text neutralized successfully.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Done', 'Text neutralized successfully.');`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:335
|
||
|
||
- **Text:** 'Failed to neutralize text'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'Failed to neutralize text';`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:336
|
||
|
||
- **Text:** 'Error'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', message);`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:360
|
||
|
||
- **Text:** 'File neutralized. Download below or find it in your Files.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Done', 'File neutralized. Download below or find it in your Files.');`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:364
|
||
|
||
- **Text:** 'File neutralized. Download or find in Files.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Done', result.neutralized_file_id ? 'File neutralized. Download or find in Files.' : 'File neutralized.');`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:364
|
||
|
||
- **Text:** 'File neutralized.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Done', result.neutralized_file_id ? 'File neutralized. Download or find in Files.' : 'File neutralized.');`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:366
|
||
|
||
- **Text:** 'No result returned'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const err = (result.processed_info as { error?: string })?.error || 'No result returned';`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:368
|
||
|
||
- **Text:** 'Error'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', err);`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:378
|
||
|
||
- **Text:** 'Failed to neutralize file'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'Failed to neutralize file';`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:379
|
||
|
||
- **Text:** 'Error'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', message);`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:392
|
||
|
||
- **Text:** 'Error'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', 'Failed to download file');`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:392
|
||
|
||
- **Text:** 'Failed to download file'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', 'Failed to download file');`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:409
|
||
|
||
- **Text:** 'Error'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', 'Failed to download file');`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:409
|
||
|
||
- **Text:** 'Failed to download file'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', 'Failed to download file');`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:423
|
||
|
||
- **Text:** 'Error'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', 'No file data available to download. The neutralized file may not have been generated.');`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:423
|
||
|
||
- **Text:** 'No file data available to download. The neutralized file may not have been generated.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', 'No file data available to download. The neutralized file may not have been generated.');`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:428
|
||
|
||
- **Text:** 'Error'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', 'No neutralized text to resolve.');`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:428
|
||
|
||
- **Text:** 'No neutralized text to resolve.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', 'No neutralized text to resolve.');`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:435
|
||
|
||
- **Text:** 'Text resolved successfully.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Done', 'Text resolved successfully.');`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:441
|
||
|
||
- **Text:** 'Failed to resolve text'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'Failed to resolve text';`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:442
|
||
|
||
- **Text:** 'Error'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', message);`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:455
|
||
|
||
- **Text:** 'Error'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', 'Both SharePoint source and target paths are required.');`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:455
|
||
|
||
- **Text:** 'Both SharePoint source and target paths are required.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', 'Both SharePoint source and target paths are required.');`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:462
|
||
|
||
- **Text:** 'SharePoint files processed successfully.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Done', result.message || 'SharePoint files processed successfully.');`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:464
|
||
|
||
- **Text:** 'Error'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', result.message || 'Processing failed');`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:464
|
||
|
||
- **Text:** 'Processing failed'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', result.message || 'Processing failed');`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:471
|
||
|
||
- **Text:** 'Failed to process SharePoint files'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` 'Failed to process SharePoint files';`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:472
|
||
|
||
- **Text:** 'Error'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', message);`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:481
|
||
|
||
- **Text:** 'Manual Text & File Neutralization'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.sectionTitle}>Manual Text & File Neutralization</h3>`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:488
|
||
|
||
- **Text:** '1. Upload file to neutralize:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>1. Upload file to neutralize:</label>`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:503
|
||
|
||
- **Text:** 'Upload & Neutralize File'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {neutralizing ? 'Processing...' : 'Upload & Neutralize File'}`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:511
|
||
|
||
- **Text:** 'Neutralized File'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` Download {fileResult.fileName || 'Neutralized File'}`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:523
|
||
|
||
- **Text:** '2. Or paste text:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label htmlFor="input-text">2. Or paste text:</label>`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:529
|
||
|
||
- **Text:** 'Enter text to neutralize...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Enter text to neutralize..."`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:540
|
||
|
||
- **Text:** 'Neutralize Text'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {neutralizing ? 'Neutralizing...' : 'Neutralize Text'}`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:548
|
||
|
||
- **Text:** 'Resolve Text'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {resolving ? 'Resolving...' : 'Resolve Text'}`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:553
|
||
|
||
- **Text:** '3. Or neutralize SharePoint files:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label>3. Or neutralize SharePoint files:</label>`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:563
|
||
|
||
- **Text:** 'SharePoint source path...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="SharePoint source path..."`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:570
|
||
|
||
- **Text:** 'Browse SharePoint'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title={hasMsftConnection ? 'Browse SharePoint' : 'Add a Microsoft connection first (Basisdaten → Connections)'}`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:570
|
||
|
||
- **Text:** 'Add a Microsoft connection first (Basisdaten → Connections)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title={hasMsftConnection ? 'Browse SharePoint' : 'Add a Microsoft connection first (Basisdaten → Connections)'}`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:584
|
||
|
||
- **Text:** 'SharePoint target path...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="SharePoint target path..."`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:591
|
||
|
||
- **Text:** 'Browse SharePoint'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title={hasMsftConnection ? 'Browse SharePoint' : 'Add a Microsoft connection first (Basisdaten → Connections)'}`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:591
|
||
|
||
- **Text:** 'Add a Microsoft connection first (Basisdaten → Connections)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title={hasMsftConnection ? 'Browse SharePoint' : 'Add a Microsoft connection first (Basisdaten → Connections)'}`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:606
|
||
|
||
- **Text:** 'Enter source and target SharePoint paths to enable'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Enter source and target SharePoint paths to enable'`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:610
|
||
|
||
- **Text:** 'Neutralize SharePoint Files'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {processingSharepoint ? 'Processing...' : 'Neutralize SharePoint Files'}`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:617
|
||
|
||
- **Text:** 'Neutralized Text:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label htmlFor="neutralized-text">Neutralized Text:</label>`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:653
|
||
|
||
- **Text:** 'Loading sites...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.loading}>Loading sites...</div>`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:663
|
||
|
||
- **Text:** 'Select a site...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">Select a site...</option>`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:678
|
||
|
||
- **Text:** 'Loading folders...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.loading}>Loading folders...</div>`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:740
|
||
|
||
- **Text:** 'Configuration'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { id: 'config', label: 'Configuration', content: <ConfigTab /> },`
|
||
|
||
## `src/pages/views/neutralization/NeutralizationView.tsx`:741
|
||
|
||
- **Text:** 'Playground'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { id: 'playground', label: 'Playground', content: <PlaygroundTab /> },`
|
||
|
||
## `src/pages/views/realestate/RealEstateDashboardView.tsx`:57
|
||
|
||
- **Text:** 'Deine Rolle'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {instance.userRoles.length === 1 ? 'Deine Rolle' : 'Deine Rollen'}`
|
||
|
||
## `src/pages/views/realestate/RealEstateDashboardView.tsx`:57
|
||
|
||
- **Text:** 'Deine Rollen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {instance.userRoles.length === 1 ? 'Deine Rolle' : 'Deine Rollen'}`
|
||
|
||
## `src/pages/views/realestate/RealEstateInstanceRolesPlaceholder.tsx`:4
|
||
|
||
- **Text:** 'Rollen & Rechte'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` * Platzhalter für die View "Rollen & Rechte" bei Real-Estate-Instanzen.`
|
||
|
||
## `src/pages/views/realestate/RealEstateInstanceRolesPlaceholder.tsx`:16
|
||
|
||
- **Text:** 'Rollen & Rechte'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3>Rollen & Rechte</h3>`
|
||
|
||
## `src/pages/views/realestate/RealEstateParcelsView.tsx`:134
|
||
|
||
- **Text:** 'Fehler beim Laden der Parzellen: {error}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.errorMessage}>Fehler beim Laden der Parzellen: {error}</p>`
|
||
|
||
## `src/pages/views/realestate/RealEstateParcelsView.tsx`:147
|
||
|
||
- **Text:** 'Parzellen verwalten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.pageSubtitle}>Parzellen verwalten</p>`
|
||
|
||
## `src/pages/views/realestate/RealEstateParcelsView.tsx`:190
|
||
|
||
- **Text:** 'Löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Löschen',`
|
||
|
||
## `src/pages/views/realestate/RealEstateParcelsView.tsx`:205
|
||
|
||
- **Text:** 'Keine Parzellen gefunden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage="Keine Parzellen gefunden"`
|
||
|
||
## `src/pages/views/realestate/RealEstateParcelsView.tsx`:214
|
||
|
||
- **Text:** 'Neue Parzelle'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isCreateMode ? 'Neue Parzelle' : 'Parzelle bearbeiten'}`
|
||
|
||
## `src/pages/views/realestate/RealEstateParcelsView.tsx`:214
|
||
|
||
- **Text:** 'Parzelle bearbeiten'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isCreateMode ? 'Neue Parzelle' : 'Parzelle bearbeiten'}`
|
||
|
||
## `src/pages/views/realestate/RealEstateParcelsView.tsx`:224
|
||
|
||
- **Text:** 'Lade Formular...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Formular...</span>`
|
||
|
||
## `src/pages/views/realestate/RealEstateProjectsView.tsx`:124
|
||
|
||
- **Text:** 'Fehler beim Laden der Projekte: {error}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.errorMessage}>Fehler beim Laden der Projekte: {error}</p>`
|
||
|
||
## `src/pages/views/realestate/RealEstateProjectsView.tsx`:137
|
||
|
||
- **Text:** 'Projekte verwalten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.pageSubtitle}>Projekte verwalten</p>`
|
||
|
||
## `src/pages/views/realestate/RealEstateProjectsView.tsx`:164
|
||
|
||
- **Text:** 'Löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ...(canDelete ? [{ type: 'delete' as const, title: 'Löschen', loading: (row: RealEstateProject) => deletingItems.has(row.id) }] : []),`
|
||
|
||
## `src/pages/views/realestate/RealEstateProjectsView.tsx`:168
|
||
|
||
- **Text:** 'Keine Projekte gefunden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage="Keine Projekte gefunden"`
|
||
|
||
## `src/pages/views/realestate/RealEstateProjectsView.tsx`:176
|
||
|
||
- **Text:** 'Neues Projekt'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>{isCreateMode ? 'Neues Projekt' : 'Projekt bearbeiten'}</h2>`
|
||
|
||
## `src/pages/views/realestate/RealEstateProjectsView.tsx`:176
|
||
|
||
- **Text:** 'Projekt bearbeiten'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>{isCreateMode ? 'Neues Projekt' : 'Projekt bearbeiten'}</h2>`
|
||
|
||
## `src/pages/views/realestate/RealEstateProjectsView.tsx`:183
|
||
|
||
- **Text:** 'Lade Formular...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Formular...</span>`
|
||
|
||
## `src/pages/views/realestate/pek/PekLocationInput.tsx`:37
|
||
|
||
- **Text:** 'z.B. Bundesplatz 3'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="z.B. Bundesplatz 3"`
|
||
|
||
## `src/pages/views/realestate/pek/PekLocationInput.tsx`:38
|
||
|
||
- **Text:** 'Adresse oder Parzelle'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` label="Adresse oder Parzelle"`
|
||
|
||
## `src/pages/views/realestate/pek/PekMapView.tsx`:33
|
||
|
||
- **Text:** 'Alle Parzellen anzeigen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Alle Parzellen anzeigen</span>`
|
||
|
||
## `src/pages/views/realestate/pek/PekMapView.tsx`:53
|
||
|
||
- **Text:** 'Klicken Sie auf die Karte, um einen Standort auszuwählen, oder suchen Sie nach einer Adresse oben.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage="Klicken Sie auf die Karte, um einen Standort auszuwählen, oder suchen Sie nach einer Adresse oben."`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:12
|
||
|
||
- **Text:** 'Mein Account'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` * Supports "Mein Account" login with saved credentials and MFA relay.`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:55
|
||
|
||
- **Text:** 'Fehler beim Laden der Sitzungen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err.message || 'Fehler beim Laden der Sitzungen');`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:103
|
||
|
||
- **Text:** 'MFA-Zeitlimit ueberschritten. Bitte erneut versuchen.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError('MFA-Zeitlimit ueberschritten. Bitte erneut versuchen.');`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:139
|
||
|
||
- **Text:** 'Fehler beim Speichern der Zugangsdaten'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err.message || 'Fehler beim Speichern der Zugangsdaten');`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:171
|
||
|
||
- **Text:** 'Fehler beim Starten der Sitzung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err.message || 'Fehler beim Starten der Sitzung');`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:191
|
||
|
||
- **Text:** 'Fehler beim Senden des MFA-Codes'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err.message || 'Fehler beim Senden des MFA-Codes');`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:202
|
||
|
||
- **Text:** 'Fehler beim Loeschen der Zugangsdaten'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err.message || 'Fehler beim Loeschen der Zugangsdaten');`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:211
|
||
|
||
- **Text:** 'Fehler beim Stoppen der Sitzung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err.message || 'Fehler beim Stoppen der Sitzung');`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:220
|
||
|
||
- **Text:** 'Fehler beim Loeschen der Sitzung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err.message || 'Fehler beim Loeschen der Sitzung');`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:272
|
||
|
||
- **Text:** 'Code eingeben'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Code eingeben"`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:300
|
||
|
||
- **Text:** 'Neue Bot-Sitzung starten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.cardTitle}>Neue Bot-Sitzung starten</h3>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:306
|
||
|
||
- **Text:** 'Teams Meeting-Link *'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={styles.label}>Teams Meeting-Link *</label>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:325
|
||
|
||
- **Text:** 'System-Bot (authentifiziert)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` {_isSysAdmin && <option value="systemBot">System-Bot (authentifiziert)</option>}`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:326
|
||
|
||
- **Text:** 'Anonymer Gast'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="anonymous">Anonymer Gast</option>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:327
|
||
|
||
- **Text:** 'Mein Account'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="userAccount">Mein Account</option>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:354
|
||
|
||
- **Text:** 'Microsoft E-Mail'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={styles.label}>Microsoft E-Mail</label>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:358
|
||
|
||
- **Text:** 'name@example.com'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="name@example.com"`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:369
|
||
|
||
- **Text:** 'Microsoft-Passwort'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Microsoft-Passwort"`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:393
|
||
|
||
- **Text:** 'Bot-Name (optional)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={styles.label}>Bot-Name (optional)</label>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:397
|
||
|
||
- **Text:** 'AI Assistant'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="AI Assistant"`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:405
|
||
|
||
- **Text:** 'Session-Kontext (optional)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={styles.label}>Session-Kontext (optional)</label>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:408
|
||
|
||
- **Text:** 'Agenda, Hintergrundinformationen, Dokumente oder andere Informationen fuer den Bot...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Agenda, Hintergrundinformationen, Dokumente oder andere Informationen fuer den Bot..."`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:426
|
||
|
||
- **Text:** 'Wird gestartet...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isStarting ? 'Wird gestartet...' : 'Bot ins Meeting senden'}`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:426
|
||
|
||
- **Text:** 'Bot ins Meeting senden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isStarting ? 'Wird gestartet...' : 'Bot ins Meeting senden'}`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:435
|
||
|
||
- **Text:** 'Aktive Sitzungen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.sectionTitle}>Aktive Sitzungen</h3>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:448
|
||
|
||
- **Text:** "Seit: {new Date(session.startedAt).toLocaleTimeString('de-CH')}"
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` {session.startedAt && <span>Seit: {new Date(session.startedAt).toLocaleTimeString('de-CH')}</span>}`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:451
|
||
|
||
- **Text:** 'navigate(`/mandates/${mandateId}/${featureCode}/${instanceId}/sessions?sessionId=${session.id}`)}>Live ansehen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <button className={styles.viewButton} onClick={() => navigate(`/mandates/${mandateId}/${featureCode}/${instanceId}/sessions?sessionId=${session.id}`)}>Live ansehen</button>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:467
|
||
|
||
- **Text:** 'Lade Sitzungen...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {loading ? 'Lade Sitzungen...' : `Vergangene Sitzungen (${pastSessions.length})`}`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotDashboardView.tsx`:470
|
||
|
||
- **Text:** 'Noch keine vergangenen Sitzungen.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.emptyState}>Noch keine vergangenen Sitzungen.</p>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSessionView.tsx`:87
|
||
|
||
- **Text:** 'Fehler beim Laden der Sitzung'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err.message || 'Fehler beim Laden der Sitzung');`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSessionView.tsx`:199
|
||
|
||
- **Text:** 'Unbekannter Fehler'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const errMsg = errData.message || 'Unbekannter Fehler';`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSessionView.tsx`:280
|
||
|
||
- **Text:** 'Lade Sitzung...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` if (loading) return <div className={styles.loading}>Lade Sitzung...</div>;`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSessionView.tsx`:283
|
||
|
||
- **Text:** 'Keine Sitzungen vorhanden.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Keine Sitzungen vorhanden.</p>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSessionView.tsx`:287
|
||
|
||
- **Text:** 'Sitzung nicht gefunden'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` if (!session) return <div className={styles.errorBanner}>Sitzung nicht gefunden</div>;`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSessionView.tsx`:305
|
||
|
||
- **Text:** '2px solid #4A90D9'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: s.id === sessionId ? '2px solid #4A90D9' : '1px solid #ddd',`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSessionView.tsx`:305
|
||
|
||
- **Text:** '1px solid #ddd'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: s.id === sessionId ? '2px solid #4A90D9' : '1px solid #ddd',`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSessionView.tsx`:313
|
||
|
||
- **Text:** ' (aktiv)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {['active', 'joining', 'pending'].includes(s.status) && ' (aktiv)'}`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSessionView.tsx`:314
|
||
|
||
- **Text:** ' (beendet)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {s.status === 'ended' && ' (beendet)'}`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSessionView.tsx`:331
|
||
|
||
- **Text:** 'Sitzung beenden'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <button className={styles.stopButton} onClick={_handleStop}>Sitzung beenden</button>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSessionView.tsx`:342
|
||
|
||
- **Text:** 'Transkript ({transcripts.length} Segmente)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h4 className={styles.panelTitle}>Transkript ({transcripts.length} Segmente)</h4>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSessionView.tsx`:358
|
||
|
||
- **Text:** 'Noch kein Transkript vorhanden.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.emptyState}>Noch kein Transkript vorhanden.</div>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSessionView.tsx`:365
|
||
|
||
- **Text:** 'Bot-Antworten ({botResponses.length})'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h4 className={styles.panelTitle}>Bot-Antworten ({botResponses.length})</h4>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSessionView.tsx`:376
|
||
|
||
- **Text:** 'Reasoning: {r.reasoning}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <em>Reasoning: {r.reasoning}</em>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSessionView.tsx`:389
|
||
|
||
- **Text:** 'Noch keine Bot-Antworten.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.emptyState}>Noch keine Bot-Antworten.</div>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSessionView.tsx`:405
|
||
|
||
- **Text:** 'TTS Delivery Status'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h4 className={styles.panelTitle}>TTS Delivery Status</h4>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSessionView.tsx`:407
|
||
|
||
- **Text:** 'Noch keine TTS-Events.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.emptyState}>Noch keine TTS-Events.</div>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSessionView.tsx`:414
|
||
|
||
- **Text:** "ws: {ev.hasWebSocket ? 'yes' : 'no'}"
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>ws: {ev.hasWebSocket ? 'yes' : 'no'}</span>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSessionView.tsx`:459
|
||
|
||
- **Text:** 'Screenshots laden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {screenshotsLoading ? 'Laden...' : screenshotsLoaded ? 'Aktualisieren' : 'Screenshots laden'}`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSessionView.tsx`:463
|
||
|
||
- **Text:** 'Keine Screenshots fuer diese Session.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.emptyState}>Keine Screenshots fuer diese Session.</div>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSessionView.tsx`:474
|
||
|
||
- **Text:** 'noopener noreferrer'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` rel="noopener noreferrer"`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:8
|
||
|
||
- **Text:** 'Wavenet A'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** `/** Format voice name for display: "de-DE-Wavenet-A" -> "Wavenet A" + gender */`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:60
|
||
|
||
- **Text:** 'Fehler beim Laden der Konfiguration'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err.message || 'Fehler beim Laden der Konfiguration');`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:81
|
||
|
||
- **Text:** 'Einstellungen gespeichert'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setSuccessMsg('Einstellungen gespeichert');`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:84
|
||
|
||
- **Text:** 'Fehler beim Speichern'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err.message || 'Fehler beim Speichern');`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:117
|
||
|
||
- **Text:** 'AI Assistant'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const botName = formData.botName || 'AI Assistant';`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:135
|
||
|
||
- **Text:** 'Stimmtest fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(result.error || 'Stimmtest fehlgeschlagen');`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:139
|
||
|
||
- **Text:** 'Stimmtest fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err.message || 'Stimmtest fehlgeschlagen');`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:146
|
||
|
||
- **Text:** 'Lade Konfiguration...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` if (loading) return <div className={styles.loading}>Lade Konfiguration...</div>;`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:167
|
||
|
||
- **Text:** 'AI Assistant'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="AI Assistant"`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:170
|
||
|
||
- **Text:** 'Nyla Larsson'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` Default-Name fuer den Bot im Meeting. Falls keiner angegeben, wird der Name des System-Bots verwendet (z.B. "Nyla Larsson").`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:186
|
||
|
||
- **Text:** 'Beschreibe, wie sich der Bot im Meeting verhalten soll...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Beschreibe, wie sich der Bot im Meeting verhalten soll..."`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:188
|
||
|
||
- **Text:** 'Instruktionen fuer den AI-Bot: Wann und wie soll er antworten?'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.hint}>Instruktionen fuer den AI-Bot: Wann und wie soll er antworten?</span>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:198
|
||
|
||
- **Text:** 'Automatisch - AI entscheidet selbst'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="auto">Automatisch - AI entscheidet selbst</option>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:199
|
||
|
||
- **Text:** 'Manuell - Antworten muessen bestaetigt werden'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="manual">Manuell - Antworten muessen bestaetigt werden</option>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:200
|
||
|
||
- **Text:** 'Nur Transkription - Keine AI-Antworten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="transcribeOnly">Nur Transkription - Keine AI-Antworten</option>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:211
|
||
|
||
- **Text:** 'Nur Sprache - Bot antwortet per Audio'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="voice">Nur Sprache - Bot antwortet per Audio</option>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:212
|
||
|
||
- **Text:** 'Nur Chat - Bot antwortet per Textnachricht'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="chat">Nur Chat - Bot antwortet per Textnachricht</option>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:213
|
||
|
||
- **Text:** 'Sprache + Chat - Bot antwortet per Audio und Text'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="both">Sprache + Chat - Bot antwortet per Audio und Text</option>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:215
|
||
|
||
- **Text:** 'Wie soll der Bot im Meeting antworten?'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.hint}>Wie soll der Bot im Meeting antworten?</span>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:225
|
||
|
||
- **Text:** 'Automatisch - System waehlt basierend auf Join-Modus'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="auto">Automatisch - System waehlt basierend auf Join-Modus</option>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:226
|
||
|
||
- **Text:** 'Captions - Teams Live-Captions (nur Englisch verfuegbar)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="caption">Captions - Teams Live-Captions (nur Englisch verfuegbar)</option>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:227
|
||
|
||
- **Text:** 'Audio-Stream - Echtzeit-Spracherkennung ueber Gateway (alle Sprachen)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="audio">Audio-Stream - Echtzeit-Spracherkennung ueber Gateway (alle Sprachen)</option>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:252
|
||
|
||
- **Text:** 'Deutsch (Deutschland)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="de-DE">Deutsch (Deutschland)</option>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:253
|
||
|
||
- **Text:** 'English (US)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="en-US">English (US)</option>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:258
|
||
|
||
- **Text:** 'Sprache fuer Captions und Sprachausgabe ({languages.length} Sprachen verfuegbar)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.hint}>Sprache fuer Captions und Sprachausgabe ({languages.length} Sprachen verfuegbar)</span>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:282
|
||
|
||
- **Text:** 'Stimme testen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Stimme testen"`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:290
|
||
|
||
- **Text:** 'Lade Stimmen...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {loadingVoices ? 'Lade Stimmen...' : `${voices.length} Stimmen verfuegbar - klicke Test fuer Vorschau`}`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:297
|
||
|
||
- **Text:** 'Erweiterte Einstellungen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h4 className={styles.sectionTitle}>Erweiterte Einstellungen</h4>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:301
|
||
|
||
- **Text:** 'Analyse-Intervall (Sek.)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={styles.label}>Analyse-Intervall (Sek.)</label>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:310
|
||
|
||
- **Text:** 'Periodisches Analyse-Intervall'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.hint}>Periodisches Analyse-Intervall</span>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:314
|
||
|
||
- **Text:** 'Cooldown (Sek.)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={styles.label}>Cooldown (Sek.)</label>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:323
|
||
|
||
- **Text:** 'Min. Abstand zwischen AI-Calls'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.hint}>Min. Abstand zwischen AI-Calls</span>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:327
|
||
|
||
- **Text:** 'Kontext-Fenster (Segmente)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={styles.label}>Kontext-Fenster (Segmente)</label>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:336
|
||
|
||
- **Text:** 'Anzahl Transkript-Segmente fuer AI-Kontext'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.hint}>Anzahl Transkript-Segmente fuer AI-Kontext</span>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:341
|
||
|
||
- **Text:** 'Browser Bot URL (optional)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <label className={styles.label}>Browser Bot URL (optional)</label>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:347
|
||
|
||
- **Text:** 'Automatisch aus Umgebungskonfiguration'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Automatisch aus Umgebungskonfiguration"`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:349
|
||
|
||
- **Text:** 'URL des Browser Bot Service. Leer lassen fuer Standard-Konfiguration.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span className={styles.hint}>URL des Browser Bot Service. Leer lassen fuer Standard-Konfiguration.</span>`
|
||
|
||
## `src/pages/views/teamsbot/TeamsbotSettingsView.tsx`:375
|
||
|
||
- **Text:** 'Konfiguration speichern'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {saving ? 'Speichern...' : 'Konfiguration speichern'}`
|
||
|
||
## `src/pages/views/trustee/TrusteeAccountingSettingsView.tsx`:193
|
||
|
||
- **Text:** "· {t('Letzter Sync:')} {existingConfig.lastSyncStatus}"
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <> · {t('Letzter Sync:')} {existingConfig.lastSyncStatus}</>`
|
||
|
||
## `src/pages/views/trustee/TrusteeAccountingSettingsView.tsx`:209
|
||
|
||
- **Text:** "· {t('Status:')} {existingConfig.lastSyncStatus}"
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <> · {t('Status:')} {existingConfig.lastSyncStatus}</>`
|
||
|
||
## `src/pages/views/trustee/TrusteeAccountingSettingsView.tsx`:293
|
||
|
||
- **Text:** 'Save & Test'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h4>Save & Test</h4>`
|
||
|
||
## `src/pages/views/trustee/TrusteeAccountingSettingsView.tsx`:458
|
||
|
||
- **Text:** "· {t('Letzter Import:')} {new Date(importStatus.lastSyncAt * 1000).toLocaleString()}"
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <> · {t('Letzter Import:')} {new Date(importStatus.lastSyncAt * 1000).toLocaleString()}</>`
|
||
|
||
## `src/pages/views/trustee/TrusteeDashboardView.tsx`:81
|
||
|
||
- **Text:** 'Not configured'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'Not configured'`
|
||
|
||
## `src/pages/views/trustee/TrusteeDashboardView.tsx`:99
|
||
|
||
- **Text:** 'Deine Rolle'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {(instance?.userRoles?.length || 0) === 1 ? 'Deine Rolle' : 'Deine Rollen'}`
|
||
|
||
## `src/pages/views/trustee/TrusteeDashboardView.tsx`:99
|
||
|
||
- **Text:** 'Deine Rollen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {(instance?.userRoles?.length || 0) === 1 ? 'Deine Rolle' : 'Deine Rollen'}`
|
||
|
||
## `src/pages/views/trustee/TrusteeDocumentsView.tsx`:139
|
||
|
||
- **Text:** 'Fehler beim Herunterladen des Dokuments.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', 'Fehler beim Herunterladen des Dokuments.');`
|
||
|
||
## `src/pages/views/trustee/TrusteeDocumentsView.tsx`:171
|
||
|
||
- **Text:** 'Fehler beim Laden der Dokumente: {error}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.errorMessage}>Fehler beim Laden der Dokumente: {error}</p>`
|
||
|
||
## `src/pages/views/trustee/TrusteeDocumentsView.tsx`:184
|
||
|
||
- **Text:** 'Belege und Dokumente verwalten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.pageSubtitle}>Belege und Dokumente verwalten</p>`
|
||
|
||
## `src/pages/views/trustee/TrusteeDocumentsView.tsx`:225
|
||
|
||
- **Text:** 'Löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Löschen',`
|
||
|
||
## `src/pages/views/trustee/TrusteeDocumentsView.tsx`:247
|
||
|
||
- **Text:** 'Keine Dokumente gefunden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage="Keine Dokumente gefunden"`
|
||
|
||
## `src/pages/views/trustee/TrusteeDocumentsView.tsx`:257
|
||
|
||
- **Text:** 'Neues Dokument'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isCreateMode ? 'Neues Dokument' : 'Dokument bearbeiten'}`
|
||
|
||
## `src/pages/views/trustee/TrusteeDocumentsView.tsx`:257
|
||
|
||
- **Text:** 'Dokument bearbeiten'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isCreateMode ? 'Neues Dokument' : 'Dokument bearbeiten'}`
|
||
|
||
## `src/pages/views/trustee/TrusteeDocumentsView.tsx`:270
|
||
|
||
- **Text:** 'Lade Formular...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Formular...</span>`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:71
|
||
|
||
- **Text:** 'Trustee Expense Import'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** `const EXPENSE_IMPORT_LABEL = 'Trustee Expense Import';`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:72
|
||
|
||
- **Text:** '0 22 * * *'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** `const DAILY_CRON = '0 22 * * *';`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:241
|
||
|
||
- **Text:** 'Failed to load SharePoint sites'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(_parseErrorDetail(err.response?.data?.detail) || 'Failed to load SharePoint sites');`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:263
|
||
|
||
- **Text:** 'Failed to load folders'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(_parseErrorDetail(err.response?.data?.detail) || 'Failed to load folders');`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:318
|
||
|
||
- **Text:** 'Microsoft connection failed'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err.message || 'Microsoft connection failed');`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:326
|
||
|
||
- **Text:** 'Missing Connection'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Missing Connection', 'Please select a Microsoft connection first.');`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:326
|
||
|
||
- **Text:** 'Please select a Microsoft connection first.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Missing Connection', 'Please select a Microsoft connection first.');`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:330
|
||
|
||
- **Text:** 'Missing Folder'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Missing Folder', 'Please select a SharePoint folder first.');`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:330
|
||
|
||
- **Text:** 'Please select a SharePoint folder first.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Missing Folder', 'Please select a SharePoint folder first.');`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:334
|
||
|
||
- **Text:** 'Error'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', 'Feature instance not found. Please refresh the page.');`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:334
|
||
|
||
- **Text:** 'Feature instance not found. Please refresh the page.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', 'Feature instance not found. Please refresh the page.');`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:357
|
||
|
||
- **Text:** 'Daily at 22:00'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Daily at 22:00',`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:373
|
||
|
||
- **Text:** 'Expense import workflow updated and activated!'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Expense import workflow updated and activated!'`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:374
|
||
|
||
- **Text:** 'Expense import workflow updated and deactivated.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'Expense import workflow updated and deactivated.';`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:376
|
||
|
||
- **Text:** 'Success'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Success', msg);`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:387
|
||
|
||
- **Text:** 'Expense import workflow created and activated! It will run daily at 22:00.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const msg = 'Expense import workflow created and activated! It will run daily at 22:00.';`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:389
|
||
|
||
- **Text:** 'Success'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Success', msg);`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:404
|
||
|
||
- **Text:** 'Failed to save workflow'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const errorMsg = _parseErrorDetail(err.response?.data?.detail) || err.message || 'Failed to save workflow';`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:406
|
||
|
||
- **Text:** 'Error'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', errorMsg);`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:414
|
||
|
||
- **Text:** 'Missing data'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Missing data', 'Please select connection and folder first.');`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:414
|
||
|
||
- **Text:** 'Please select connection and folder first.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Missing data', 'Please select connection and folder first.');`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:431
|
||
|
||
- **Text:** 'Workflow started. Extract → Process → Sync will run once.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Started', 'Workflow started. Extract → Process → Sync will run once.');`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:433
|
||
|
||
- **Text:** 'Failed to start workflow'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const msg = _parseErrorDetail(err.response?.data?.detail) || err.message || 'Failed to start workflow';`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:435
|
||
|
||
- **Text:** 'Error'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', msg);`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:454
|
||
|
||
- **Text:** 'Expense import workflow deactivated.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setSuccessMessage('Expense import workflow deactivated.');`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:455
|
||
|
||
- **Text:** 'Expense import workflow deactivated.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Deactivated', 'Expense import workflow deactivated.');`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:458
|
||
|
||
- **Text:** 'Failed to deactivate workflow'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const errorMsg = _parseErrorDetail(err.response?.data?.detail) || err.message || 'Failed to deactivate workflow';`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:460
|
||
|
||
- **Text:** 'Error'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', errorMsg);`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:469
|
||
|
||
- **Text:** 'Expense Import Setup'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.sectionTitle}>Expense Import Setup</h3>`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:478
|
||
|
||
- **Text:** 'How it works'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="How it works"`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:484
|
||
|
||
- **Text:** 'How it works:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <strong>How it works:</strong>`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:486
|
||
|
||
- **Text:** 'Place expense PDF documents (receipts, invoices) in the selected SharePoint folder'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <li>Place expense PDF documents (receipts, invoices) in the selected SharePoint folder</li>`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:487
|
||
|
||
- **Text:** 'The system runs daily at 22:00 and processes all PDF files'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <li>The system runs daily at 22:00 and processes all PDF files</li>`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:488
|
||
|
||
- **Text:** 'AI extracts expense data: date, amount, VAT, company, description'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <li>AI extracts expense data: date, amount, VAT, company, description</li>`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:489
|
||
|
||
- **Text:** 'Each expense is saved as a position in this Trustee instance'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <li>Each expense is saved as a position in this Trustee instance</li>`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:490
|
||
|
||
- **Text:** 'Processed PDFs are moved to a "processed" subfolder'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <li>Processed PDFs are moved to a "processed" subfolder</li>`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:491
|
||
|
||
- **Text:** 'Failed PDFs are moved to an "error" subfolder'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <li>Failed PDFs are moved to an "error" subfolder</li>`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:492
|
||
|
||
- **Text:** 'Maximum 50 PDFs are processed per run'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <li>Maximum 50 PDFs are processed per run</li>`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:513
|
||
|
||
- **Text:** 'Current Status:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <strong>Current Status:</strong> {existingWorkflow.active ? '✓ Active' : '○ Inactive'}`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:513
|
||
|
||
- **Text:** '✓ Active'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <strong>Current Status:</strong> {existingWorkflow.active ? '✓ Active' : '○ Inactive'}`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:513
|
||
|
||
- **Text:** '○ Inactive'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <strong>Current Status:</strong> {existingWorkflow.active ? '✓ Active' : '○ Inactive'}`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:515
|
||
|
||
- **Text:** 'Folder: {existingWorkflow.sharepointFolder}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <><br />Folder: {existingWorkflow.sharepointFolder}</>`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:524
|
||
|
||
- **Text:** 'Microsoft Connection'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h4>Microsoft Connection</h4>`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:531
|
||
|
||
- **Text:** 'Connect Microsoft Account'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isConnecting ? 'Connecting...' : 'Connect Microsoft Account'}`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:537
|
||
|
||
- **Text:** 'Microsoft Account'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` Connected as <strong>{msftConnections[0].accountName || 'Microsoft Account'}</strong>`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:554
|
||
|
||
- **Text:** 'Select a Microsoft account...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">Select a Microsoft account...</option>`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:567
|
||
|
||
- **Text:** 'Add another account'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isConnecting ? 'Connecting...' : 'Add another account'}`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:579
|
||
|
||
- **Text:** 'SharePoint Site'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h4>SharePoint Site</h4>`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:581
|
||
|
||
- **Text:** 'Loading sites...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.loadingText}>Loading sites...</div>`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:588
|
||
|
||
- **Text:** 'Select a site...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <option value="">Select a site...</option>`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:605
|
||
|
||
- **Text:** 'Expense Folder'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h4>Expense Folder</h4>`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:610
|
||
|
||
- **Text:** 'Loading folders...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.loadingText}>Loading folders...</div>`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:651
|
||
|
||
- **Text:** 'No subfolders found'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.emptyText}>No subfolders found</div>`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:670
|
||
|
||
- **Text:** 'Update Configuration'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <h4>{existingWorkflow ? 'Update Configuration' : 'Activate Daily Import'}</h4>`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:670
|
||
|
||
- **Text:** 'Activate Daily Import'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` <h4>{existingWorkflow ? 'Update Configuration' : 'Activate Daily Import'}</h4>`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:681
|
||
|
||
- **Text:** 'Save & Activate'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isActivating ? 'Saving...' : (existingWorkflow ? 'Save & Activate' : 'Activate Daily Import')}`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:681
|
||
|
||
- **Text:** 'Activate Daily Import'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isActivating ? 'Saving...' : (existingWorkflow ? 'Save & Activate' : 'Activate Daily Import')}`
|
||
|
||
## `src/pages/views/trustee/TrusteeExpenseImportView.tsx`:688
|
||
|
||
- **Text:** 'Jetzt ausführen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isRunningNow ? 'Starting...' : 'Jetzt ausführen'}`
|
||
|
||
## `src/pages/views/trustee/TrusteeInstanceRolesView.tsx`:56
|
||
|
||
- **Text:** 'Fehler beim Laden der Rollen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const errorMsg = err.response?.data?.detail || err.message || 'Fehler beim Laden der Rollen';`
|
||
|
||
## `src/pages/views/trustee/TrusteeInstanceRolesView.tsx`:76
|
||
|
||
- **Text:** 'Keine Feature-Instanz ausgewählt'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.error}>Keine Feature-Instanz ausgewählt</div>`
|
||
|
||
## `src/pages/views/trustee/TrusteeInstanceRolesView.tsx`:84
|
||
|
||
- **Text:** 'Lade Instanz-Rollen...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <div className={styles.loading}>Lade Instanz-Rollen...</div>`
|
||
|
||
## `src/pages/views/trustee/TrusteeInstanceRolesView.tsx`:132
|
||
|
||
- **Text:** 'Keine Instanz-Rollen gefunden'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>Keine Instanz-Rollen gefunden</p>`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionDocumentsView.tsx`:139
|
||
|
||
- **Text:** 'Fehler beim Laden der Verknüpfungen: {error}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.errorMessage}>Fehler beim Laden der Verknüpfungen: {error}</p>`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionDocumentsView.tsx`:152
|
||
|
||
- **Text:** 'Belege mit Buchungspositionen verknüpfen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.pageSubtitle}>Belege mit Buchungspositionen verknüpfen</p>`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionDocumentsView.tsx`:188
|
||
|
||
- **Text:** 'Verknüpfung bearbeiten'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Verknüpfung bearbeiten',`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionDocumentsView.tsx`:194
|
||
|
||
- **Text:** 'Verknüpfung entfernen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Verknüpfung entfernen',`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionDocumentsView.tsx`:206
|
||
|
||
- **Text:** 'Keine Verknüpfungen gefunden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage="Keine Verknüpfungen gefunden"`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionDocumentsView.tsx`:215
|
||
|
||
- **Text:** 'Neue Verknüpfung erstellen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>Neue Verknüpfung erstellen</h2>`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionDocumentsView.tsx`:227
|
||
|
||
- **Text:** 'Lade Formular...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Formular...</span>`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionDocumentsView.tsx`:236
|
||
|
||
- **Text:** 'Verknüpfung erstellen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` submitButtonText="Verknüpfung erstellen"`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionDocumentsView.tsx`:251
|
||
|
||
- **Text:** 'Verknüpfung bearbeiten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.modalTitle}>Verknüpfung bearbeiten</h2>`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionDocumentsView.tsx`:263
|
||
|
||
- **Text:** 'Lade Formular...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Formular...</span>`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionsView.tsx`:91
|
||
|
||
- **Text:** 'Sync teilweise fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Sync teilweise fehlgeschlagen', `${res.success} OK, ${res.errors} Fehler.`);`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionsView.tsx`:94
|
||
|
||
- **Text:** 'Sync fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Sync fehlgeschlagen', firstError?.errorMessage || `${res.errors} Fehler.`);`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionsView.tsx`:99
|
||
|
||
- **Text:** 'Sync fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Sync fehlgeschlagen', err.response?.data?.detail || err.message || 'Unbekannter Fehler.');`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionsView.tsx`:99
|
||
|
||
- **Text:** 'Unbekannter Fehler.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Sync fehlgeschlagen', err.response?.data?.detail || err.message || 'Unbekannter Fehler.');`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionsView.tsx`:127
|
||
|
||
- **Text:** 'Dokument nicht gefunden.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', 'Dokument nicht gefunden.');`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionsView.tsx`:145
|
||
|
||
- **Text:** 'Fehler beim Herunterladen des Dokuments.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Fehler', 'Fehler beim Herunterladen des Dokuments.');`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionsView.tsx`:163
|
||
|
||
- **Text:** 'Belege'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Belege',`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionsView.tsx`:190
|
||
|
||
- **Text:** '1px solid var(--border-color, #e5e7eb)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #e5e7eb)',`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionsView.tsx`:228
|
||
|
||
- **Text:** 'Sync-Status'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Sync-Status',`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionsView.tsx`:393
|
||
|
||
- **Text:** 'Fehler beim Laden der Positionen: {error}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.errorMessage}>Fehler beim Laden der Positionen: {error}</p>`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionsView.tsx`:406
|
||
|
||
- **Text:** 'Buchungspositionen verwalten'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.pageSubtitle}>Buchungspositionen verwalten</p>`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionsView.tsx`:441
|
||
|
||
- **Text:** 'Buchhaltung synchronisieren'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` label: 'Buchhaltung synchronisieren',`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionsView.tsx`:455
|
||
|
||
- **Text:** 'Löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'Löschen',`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionsView.tsx`:463
|
||
|
||
- **Text:** 'In Buchhaltung synchronisieren'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title: 'In Buchhaltung synchronisieren',`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionsView.tsx`:477
|
||
|
||
- **Text:** 'Keine Positionen gefunden'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` emptyMessage="Keine Positionen gefunden"`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionsView.tsx`:487
|
||
|
||
- **Text:** 'Neue Position'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isCreateMode ? 'Neue Position' : 'Position bearbeiten'}`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionsView.tsx`:487
|
||
|
||
- **Text:** 'Position bearbeiten'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {isCreateMode ? 'Neue Position' : 'Position bearbeiten'}`
|
||
|
||
## `src/pages/views/trustee/TrusteePositionsView.tsx`:500
|
||
|
||
- **Text:** 'Lade Formular...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Lade Formular...</span>`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:77
|
||
|
||
- **Text:** 'Invalid file'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Invalid file', `${file.name}: only PDF and JPG are supported.`);`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:85
|
||
|
||
- **Text:** 'Upload'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` else showError('Upload', 'Could not get file ID from server.');`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:85
|
||
|
||
- **Text:** 'Could not get file ID from server.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` else showError('Upload', 'Could not get file ID from server.');`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:87
|
||
|
||
- **Text:** 'Upload failed'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Upload failed', result.error || 'Unknown error');`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:87
|
||
|
||
- **Text:** 'Unknown error'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Upload failed', result.error || 'Unknown error');`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:157
|
||
|
||
- **Text:** 'Step failed'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const errMsg = failedStep.error || 'Step failed';`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:161
|
||
|
||
- **Text:** 'Pipeline error'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Pipeline error', errMsg);`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:168
|
||
|
||
- **Text:** 'Pipeline completed'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Pipeline completed', 'Extraction and processing workflow finished successfully.');`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:168
|
||
|
||
- **Text:** 'Extraction and processing workflow finished successfully.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Pipeline completed', 'Extraction and processing workflow finished successfully.');`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:178
|
||
|
||
- **Text:** 'Polling failed'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const msg = _parseErrorDetail(pollErr.response?.data?.detail) || pollErr.message || 'Polling failed';`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:182
|
||
|
||
- **Text:** 'Polling error'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Polling error', msg);`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:213
|
||
|
||
- **Text:** 'Missing data'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Missing data', 'Please upload at least one PDF or JPG first.');`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:213
|
||
|
||
- **Text:** 'Please upload at least one PDF or JPG first.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Missing data', 'Please upload at least one PDF or JPG first.');`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:219
|
||
|
||
- **Text:** 'Starting pipeline workflow...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setPipelineSummary('Starting pipeline workflow...');`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:233
|
||
|
||
- **Text:** 'Pipeline completed (synchronous execution).'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setPipelineSummary('Pipeline completed (synchronous execution).');`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:234
|
||
|
||
- **Text:** 'Pipeline finished: Extract → Process → Sync.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Completed', 'Pipeline finished: Extract → Process → Sync.');`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:236
|
||
|
||
- **Text:** 'Workflow executed but no run ID returned.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` throw new Error(response?.data?.error || 'Workflow executed but no run ID returned.');`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:242
|
||
|
||
- **Text:** 'Pipeline started: Extract → Process → Sync. You can follow progress in Workflows.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showSuccess('Started', 'Pipeline started: Extract → Process → Sync. You can follow progress in Workflows.');`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:245
|
||
|
||
- **Text:** 'Failed to start workflow'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const msg = _parseErrorDetail(err.response?.data?.detail) || err.message || 'Failed to start workflow';`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:248
|
||
|
||
- **Text:** 'Error'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` showError('Error', msg);`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:257
|
||
|
||
- **Text:** 'File upload is not available in this context.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p>File upload is not available in this context.</p>`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:265
|
||
|
||
- **Text:** 'Scan / Upload'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.sectionTitle}>Scan / Upload</h3>`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:272
|
||
|
||
- **Text:** 'Pipeline status:'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <strong>Pipeline status:</strong> {pipelineState}`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:308
|
||
|
||
- **Text:** 'Choose files'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` aria-label="Choose files"`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:310
|
||
|
||
- **Text:** 'Choose files'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {uploadingFile ? 'Uploading…' : 'Choose files'}`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:320
|
||
|
||
- **Text:** 'Take photo'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` aria-label="Take photo"`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:341
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:364
|
||
|
||
- **Text:** 'Pipeline running...'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Pipeline running...'`
|
||
|
||
## `src/pages/views/trustee/TrusteeScanUploadView.tsx`:365
|
||
|
||
- **Text:** 'Start pipeline'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'Start pipeline'}`
|
||
|
||
## `src/pages/views/workspace/ChatStream.tsx`:63
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/pages/views/workspace/ChatStream.tsx`:108
|
||
|
||
- **Text:** '2px solid #ddd'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: '2px solid #ddd',`
|
||
|
||
## `src/pages/views/workspace/ChatStream.tsx`:120
|
||
|
||
- **Text:** '1px solid #eee'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: '1px solid #eee',`
|
||
|
||
## `src/pages/views/workspace/ChatStream.tsx`:201
|
||
|
||
- **Text:** '1px solid var(--warning-color, #ff9800)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--warning-color, #ff9800)',`
|
||
|
||
## `src/pages/views/workspace/ChatStream.tsx`:246
|
||
|
||
- **Text:** '1px solid var(--border-color, #ccc)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #ccc)',`
|
||
|
||
## `src/pages/views/workspace/ChatStream.tsx`:262
|
||
|
||
- **Text:** '1px solid var(--progress-border, #c8e6c9)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--progress-border, #c8e6c9)',`
|
||
|
||
## `src/pages/views/workspace/ChatStream.tsx`:354
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/pages/views/workspace/ChatStream.tsx`:357
|
||
|
||
- **Text:** 'background 0.15s'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` transition: 'background 0.15s',`
|
||
|
||
## `src/pages/views/workspace/ChatStream.tsx`:376
|
||
|
||
- **Text:** 'Download'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <span style={{ fontSize: 14, color: 'var(--primary-color, #F25843)' }} title="Download">⬇</span>`
|
||
|
||
## `src/pages/views/workspace/ChatStream.tsx`:451
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/pages/views/workspace/ChatStream.tsx`:478
|
||
|
||
- **Text:** 'width 0.2s'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` transition: 'width 0.2s',`
|
||
|
||
## `src/pages/views/workspace/ChatStream.tsx`:500
|
||
|
||
- **Text:** 'Stop'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Stop"`
|
||
|
||
## `src/pages/views/workspace/ChatStream.tsx`:530
|
||
|
||
- **Text:** 'Consolas, Monaco, "Courier New", monospace'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` fontFamily: 'Consolas, Monaco, "Courier New", monospace',`
|
||
|
||
## `src/pages/views/workspace/ChatStream.tsx`:557
|
||
|
||
- **Text:** 'Consolas, Monaco, "Courier New", monospace'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` fontFamily: 'Consolas, Monaco, "Courier New", monospace',`
|
||
|
||
## `src/pages/views/workspace/FilePreview.tsx`:72
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/pages/views/workspace/FilePreview.tsx`:106
|
||
|
||
- **Text:** 'Consolas, Monaco, "Courier New", monospace'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` fontFamily: 'Consolas, Monaco, "Courier New", monospace',`
|
||
|
||
## `src/pages/views/workspace/FilePreview.tsx`:135
|
||
|
||
- **Text:** 'File too large for inline preview'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'File too large for inline preview'`
|
||
|
||
## `src/pages/views/workspace/NeutralizationPanel.tsx`:214
|
||
|
||
- **Text:** 'Chat, Prompt & Kontext'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` fileName: 'Chat, Prompt & Kontext',`
|
||
|
||
## `src/pages/views/workspace/NeutralizationPanel.tsx`:366
|
||
|
||
- **Text:** '2px solid var(--accent, #4f46e5)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` selectedSource === src.fileId ? '2px solid var(--accent, #4f46e5)' : '1px solid var(--border-color, #e5e7eb)',`
|
||
|
||
## `src/pages/views/workspace/NeutralizationPanel.tsx`:366
|
||
|
||
- **Text:** '1px solid var(--border-color, #e5e7eb)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` selectedSource === src.fileId ? '2px solid var(--accent, #4f46e5)' : '1px solid var(--border-color, #e5e7eb)',`
|
||
|
||
## `src/pages/views/workspace/NeutralizationPanel.tsx`:394
|
||
|
||
- **Text:** '1px solid var(--border-color, #d1d5db)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #d1d5db)',`
|
||
|
||
## `src/pages/views/workspace/NeutralizationPanel.tsx`:423
|
||
|
||
- **Text:** '1px solid var(--border-color, #f3f4f6)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderTop: '1px solid var(--border-color, #f3f4f6)',`
|
||
|
||
## `src/pages/views/workspace/NeutralizationPanel.tsx`:437
|
||
|
||
- **Text:** 'Mapping löschen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Mapping löschen"`
|
||
|
||
## `src/pages/views/workspace/NeutralizationPanel.tsx`:450
|
||
|
||
- **Text:** 'Keine Mappings ohne Dateizuordnung.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? 'Keine Mappings ohne Dateizuordnung.'`
|
||
|
||
## `src/pages/views/workspace/NeutralizationPanel.tsx`:451
|
||
|
||
- **Text:** 'Keine gespeicherten Mappings für diese Datenquelle.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : 'Keine gespeicherten Mappings für diese Datenquelle.'}`
|
||
|
||
## `src/pages/views/workspace/WorkspaceEditorPage.tsx`:71
|
||
|
||
- **Text:** 'Zurueck zum Dashboard'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <button onClick={_goBack} style={_btnStyle} title="Zurueck zum Dashboard">`
|
||
|
||
## `src/pages/views/workspace/WorkspaceEditorPage.tsx`:80
|
||
|
||
- **Text:** 'Aktualisieren'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` <button onClick={editor.refresh} style={_btnStyle} title="Aktualisieren">`
|
||
|
||
## `src/pages/views/workspace/WorkspaceEditorPage.tsx`:106
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/pages/views/workspace/WorkspaceEditorPage.tsx`:153
|
||
|
||
- **Text:** 'Original: {formatBinaryDataSizeBytes(activeEdit.oldContent.length)}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Original: {formatBinaryDataSizeBytes(activeEdit.oldContent.length)}</span>`
|
||
|
||
## `src/pages/views/workspace/WorkspaceEditorPage.tsx`:154
|
||
|
||
- **Text:** 'Geaendert: {formatBinaryDataSizeBytes(activeEdit.newContent.length)}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <span>Geaendert: {formatBinaryDataSizeBytes(activeEdit.newContent.length)}</span>`
|
||
|
||
## `src/pages/views/workspace/WorkspaceEditorPage.tsx`:177
|
||
|
||
- **Text:** 'TextModel got disposed'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** `// Safe DiffEditor wrapper -- prevents "TextModel got disposed" errors`
|
||
|
||
## `src/pages/views/workspace/WorkspaceEditorPage.tsx`:239
|
||
|
||
- **Text:** '2px solid var(--primary-color, #F25843)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: isActive ? '2px solid var(--primary-color, #F25843)' : '2px solid transparent',`
|
||
|
||
## `src/pages/views/workspace/WorkspaceEditorPage.tsx`:239
|
||
|
||
- **Text:** '2px solid transparent'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: isActive ? '2px solid var(--primary-color, #F25843)' : '2px solid transparent',`
|
||
|
||
## `src/pages/views/workspace/WorkspaceGeneralSettings.tsx`:50
|
||
|
||
- **Text:** 'Fehler beim Laden der Einstellungen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err?.message || 'Fehler beim Laden der Einstellungen');`
|
||
|
||
## `src/pages/views/workspace/WorkspaceGeneralSettings.tsx`:67
|
||
|
||
- **Text:** 'Wert muss zwischen 1 und 100 liegen.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError('Wert muss zwischen 1 und 100 liegen.');`
|
||
|
||
## `src/pages/views/workspace/WorkspaceGeneralSettings.tsx`:81
|
||
|
||
- **Text:** 'Einstellungen gespeichert.'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setSuccess('Einstellungen gespeichert.');`
|
||
|
||
## `src/pages/views/workspace/WorkspaceGeneralSettings.tsx`:84
|
||
|
||
- **Text:** 'Fehler beim Speichern'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(err?.message || 'Fehler beim Speichern');`
|
||
|
||
## `src/pages/views/workspace/WorkspaceGeneralSettings.tsx`:95
|
||
|
||
- **Text:** 'Lade Einstellungen...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` return <div className={styles.loading}>Lade Einstellungen...</div>;`
|
||
|
||
## `src/pages/views/workspace/WorkspaceGeneralSettings.tsx`:102
|
||
|
||
- **Text:** 'Generelle Einstellungen'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h2 className={styles.heading}>Generelle Einstellungen</h2>`
|
||
|
||
## `src/pages/views/workspace/WorkspaceGeneralSettings.tsx`:130
|
||
|
||
- **Text:** 'Auf Standard zurücksetzen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Auf Standard zurücksetzen"`
|
||
|
||
## `src/pages/views/workspace/WorkspaceGeneralSettings.tsx`:139
|
||
|
||
- **Text:** 'Ihr Override: {maxRoundsInfo.userOverride}.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <> Ihr Override: {maxRoundsInfo.userOverride}.</>`
|
||
|
||
## `src/pages/views/workspace/WorkspaceGeneralSettings.tsx`:151
|
||
|
||
- **Text:** 'Einstellungen speichern'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` {saving ? 'Speichern...' : 'Einstellungen speichern'}`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:14
|
||
|
||
- **Text:** 'Deutsch'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'de-DE', label: 'Deutsch' },`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:15
|
||
|
||
- **Text:** 'English (US)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'en-US', label: 'English (US)' },`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:16
|
||
|
||
- **Text:** 'English (UK)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'en-GB', label: 'English (UK)' },`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:17
|
||
|
||
- **Text:** 'Francais'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'fr-FR', label: 'Francais' },`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:18
|
||
|
||
- **Text:** 'Italiano'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'it-IT', label: 'Italiano' },`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:19
|
||
|
||
- **Text:** 'Espanol'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'es-ES', label: 'Espanol' },`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:20
|
||
|
||
- **Text:** 'Portugues'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'pt-BR', label: 'Portugues' },`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:21
|
||
|
||
- **Text:** 'Nederlands'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'nl-NL', label: 'Nederlands' },`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:22
|
||
|
||
- **Text:** 'Polski'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'pl-PL', label: 'Polski' },`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:23
|
||
|
||
- **Text:** 'Russkij'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'ru-RU', label: 'Russkij' },`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:24
|
||
|
||
- **Text:** 'Japanese'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'ja-JP', label: 'Japanese' },`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:25
|
||
|
||
- **Text:** 'Chinese'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { code: 'zh-CN', label: 'Chinese' },`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:324
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderTop: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:327
|
||
|
||
- **Text:** '2px dashed var(--primary-color, #F25843)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` outline: treeDropOver ? '2px dashed var(--primary-color, #F25843)' : 'none',`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:329
|
||
|
||
- **Text:** 'background 0.15s, outline 0.15s'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` transition: 'background 0.15s, outline 0.15s',`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:342
|
||
|
||
- **Text:** '1px solid var(--border-color, #f0f0f0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: '1px solid var(--border-color, #f0f0f0)',`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:381
|
||
|
||
- **Text:** '1px solid var(--border-color, #f0f0f0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: '1px solid var(--border-color, #f0f0f0)',`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:471
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:473
|
||
|
||
- **Text:** '0 -2px 8px rgba(0,0,0,0.1)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` boxShadow: '0 -2px 8px rgba(0,0,0,0.1)',`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:484
|
||
|
||
- **Text:** '1px solid #f0f0f0'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: '1px solid #f0f0f0',`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:512
|
||
|
||
- **Text:** 'Type a message... Use @filename to reference files'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` placeholder="Type a message... Use @filename to reference files"`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:521
|
||
|
||
- **Text:** '1px solid var(--border-color, #ccc)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #ccc)',`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:533
|
||
|
||
- **Text:** 'Datei anhängen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Datei anhängen"`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:551
|
||
|
||
- **Text:** 'Datenquellen anhängen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Datenquellen anhängen"`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:600
|
||
|
||
- **Text:** '2px solid #2e7d32'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: isSelected ? '2px solid #2e7d32' : '2px solid #ccc',`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:600
|
||
|
||
- **Text:** '2px solid #ccc'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: isSelected ? '2px solid #2e7d32' : '2px solid #ccc',`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:634
|
||
|
||
- **Text:** '2px solid #7b1fa2'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: isSelected ? '2px solid #7b1fa2' : '2px solid #ccc',`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:634
|
||
|
||
- **Text:** '2px solid #ccc'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: isSelected ? '2px solid #7b1fa2' : '2px solid #ccc',`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:669
|
||
|
||
- **Text:** 'Sprache waehlen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** jsx/html attribute (title|placeholder|aria-label|alt)
|
||
- **Zeile:** ` title="Sprache waehlen"`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:682
|
||
|
||
- **Text:** 'Aufnahme stoppen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title={voiceActive ? 'Aufnahme stoppen' : 'Sprachaufnahme starten'}`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:682
|
||
|
||
- **Text:** 'Sprachaufnahme starten'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title={voiceActive ? 'Aufnahme stoppen' : 'Sprachaufnahme starten'}`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:724
|
||
|
||
- **Text:** 'Neutralisierung aktiv (klicken zum Deaktivieren)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title={neutralizeActive ? 'Neutralisierung aktiv (klicken zum Deaktivieren)' : 'Neutralisierung aus (klicken zum Aktivieren)'}`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:724
|
||
|
||
- **Text:** 'Neutralisierung aus (klicken zum Aktivieren)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` title={neutralizeActive ? 'Neutralisierung aktiv (klicken zum Deaktivieren)' : 'Neutralisierung aus (klicken zum Aktivieren)'}`
|
||
|
||
## `src/pages/views/workspace/WorkspaceInput.tsx`:731
|
||
|
||
- **Text:** 'all 0.15s'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` transition: 'all 0.15s',`
|
||
|
||
## `src/pages/views/workspace/WorkspacePage.tsx`:223
|
||
|
||
- **Text:** '2px solid var(--primary-color, #F25843)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: active ? '2px solid var(--primary-color, #F25843)' : '2px solid transparent',`
|
||
|
||
## `src/pages/views/workspace/WorkspacePage.tsx`:223
|
||
|
||
- **Text:** '2px solid transparent'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: active ? '2px solid var(--primary-color, #F25843)' : '2px solid transparent',`
|
||
|
||
## `src/pages/views/workspace/WorkspacePage.tsx`:310
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderRight: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/pages/views/workspace/WorkspacePage.tsx`:356
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/pages/views/workspace/WorkspacePage.tsx`:365
|
||
|
||
- **Text:** '1px solid var(--border-color, #ddd)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #ddd)',`
|
||
|
||
## `src/pages/views/workspace/WorkspacePage.tsx`:379
|
||
|
||
- **Text:** '1px solid var(--border-color, #ddd)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #ddd)',`
|
||
|
||
## `src/pages/views/workspace/WorkspacePage.tsx`:392
|
||
|
||
- **Text:** '1px solid var(--border-color, #ddd)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` border: '1px solid var(--border-color, #ddd)',`
|
||
|
||
## `src/pages/views/workspace/WorkspacePage.tsx`:465
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderLeft: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/pages/views/workspace/WorkspacePage.tsx`:498
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderRight: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/pages/views/workspace/WorkspacePage.tsx`:532
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderLeft: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/pages/views/workspace/WorkspaceRagInsightsPage.tsx`:28
|
||
|
||
- **Text:** 'Office (Text)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` office_doc: 'Office (Text)',`
|
||
|
||
## `src/pages/views/workspace/WorkspaceRagInsightsPage.tsx`:29
|
||
|
||
- **Text:** 'Office (Tabellen)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` office_sheet: 'Office (Tabellen)',`
|
||
|
||
## `src/pages/views/workspace/WorkspaceRagInsightsPage.tsx`:30
|
||
|
||
- **Text:** 'Office (Folien)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` office_slides: 'Office (Folien)',`
|
||
|
||
## `src/pages/views/workspace/WorkspaceRagInsightsPage.tsx`:87
|
||
|
||
- **Text:** 'Laden fehlgeschlagen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` setError(e instanceof Error ? e.message : 'Laden fehlgeschlagen');`
|
||
|
||
## `src/pages/views/workspace/WorkspaceRagInsightsPage.tsx`:150
|
||
|
||
- **Text:** 'Indexierte Dokumente'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.kpiLabel}>Indexierte Dokumente</p>`
|
||
|
||
## `src/pages/views/workspace/WorkspaceRagInsightsPage.tsx`:154
|
||
|
||
- **Text:** 'Indexiertes Datenvolumen (geschätzt)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.kpiLabel}>Indexiertes Datenvolumen (geschätzt)</p>`
|
||
|
||
## `src/pages/views/workspace/WorkspaceRagInsightsPage.tsx`:158
|
||
|
||
- **Text:** 'Inhalts-Fragmente (Chunks)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.kpiLabel}>Inhalts-Fragmente (Chunks)</p>`
|
||
|
||
## `src/pages/views/workspace/WorkspaceRagInsightsPage.tsx`:164
|
||
|
||
- **Text:** 'Anteil Fragmente mit Embedding'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.kpiLabel}>Anteil Fragmente mit Embedding</p>`
|
||
|
||
## `src/pages/views/workspace/WorkspaceRagInsightsPage.tsx`:168
|
||
|
||
- **Text:** 'Beitragende Benutzer (Anzahl)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.kpiLabel}>Beitragende Benutzer (Anzahl)</p>`
|
||
|
||
## `src/pages/views/workspace/WorkspaceRagInsightsPage.tsx`:172
|
||
|
||
- **Text:** 'Workflow-Entitäten (Cache)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.kpiLabel}>Workflow-Entitäten (Cache)</p>`
|
||
|
||
## `src/pages/views/workspace/WorkspaceRagInsightsPage.tsx`:178
|
||
|
||
- **Text:** 'Neu indexierte Dokumente pro Tag (letzte Wochen)'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.chartTitle}>Neu indexierte Dokumente pro Tag (letzte Wochen)</h3>`
|
||
|
||
## `src/pages/views/workspace/WorkspaceRagInsightsPage.tsx`:180
|
||
|
||
- **Text:** 'Keine Zeitreihen-Daten für den gewählten Zeitraum.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.meta}>Keine Zeitreihen-Daten für den gewählten Zeitraum.</p>`
|
||
|
||
## `src/pages/views/workspace/WorkspaceRagInsightsPage.tsx`:196
|
||
|
||
- **Text:** 'Dokumente nach Format-Kategorie'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.chartTitle}>Dokumente nach Format-Kategorie</h3>`
|
||
|
||
## `src/pages/views/workspace/WorkspaceRagInsightsPage.tsx`:198
|
||
|
||
- **Text:** 'Keine Daten.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.meta}>Keine Daten.</p>`
|
||
|
||
## `src/pages/views/workspace/WorkspaceRagInsightsPage.tsx`:215
|
||
|
||
- **Text:** 'Keine Daten.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.meta}>Keine Daten.</p>`
|
||
|
||
## `src/pages/views/workspace/WorkspaceRagInsightsPage.tsx`:241
|
||
|
||
- **Text:** 'Fragmente nach Inhaltstyp'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <h3 className={styles.chartTitle}>Fragmente nach Inhaltstyp</h3>`
|
||
|
||
## `src/pages/views/workspace/WorkspaceRagInsightsPage.tsx`:243
|
||
|
||
- **Text:** 'Keine Chunk-Daten.'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.meta}>Keine Chunk-Daten.</p>`
|
||
|
||
## `src/pages/views/workspace/WorkspaceRagInsightsPage.tsx`:258
|
||
|
||
- **Text:** 'Stand (UTC): {stats.generatedAtUtc}'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` <p className={styles.meta}>Stand (UTC): {stats.generatedAtUtc}</p>`
|
||
|
||
## `src/pages/views/workspace/WorkspaceSettingsPage.tsx`:5
|
||
|
||
- **Text:** 'Stimme & Sprache'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` * Voice settings are now in user-level settings (/settings -> "Stimme & Sprache").`
|
||
|
||
## `src/pages/views/workspace/WorkspaceSettingsPage.tsx`:16
|
||
|
||
- **Text:** 'Generelle Einstellungen'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'general', label: 'Generelle Einstellungen' },`
|
||
|
||
## `src/pages/views/workspace/WorkspaceSettingsPage.tsx`:17
|
||
|
||
- **Text:** 'Neutralisierung (Workspace)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** object property label: (e.g. table column)
|
||
- **Zeile:** ` { key: 'neutralization', label: 'Neutralisierung (Workspace)' },`
|
||
|
||
## `src/pages/views/workspace/WorkspaceSettingsPage.tsx`:37
|
||
|
||
- **Text:** '1px solid var(--border-color, #e0e0e0)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` borderBottom: '1px solid var(--border-color, #e0e0e0)',`
|
||
|
||
## `src/pages/views/workspace/WorkspaceSettingsPage.tsx`:49
|
||
|
||
- **Text:** '2px solid var(--primary-color, #F25843)'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` ? '2px solid var(--primary-color, #F25843)'`
|
||
|
||
## `src/pages/views/workspace/WorkspaceSettingsPage.tsx`:50
|
||
|
||
- **Text:** '2px solid transparent'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` : '2px solid transparent',`
|
||
|
||
## `src/providers/auth/AuthProvider.tsx`:89
|
||
|
||
- **Text:** 'Loading authentication...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` return <div>Loading authentication...</div>;`
|
||
|
||
## `src/providers/auth/ProtectedRoute.tsx`:109
|
||
|
||
- **Text:** 'Checking authentication...'
|
||
- **Art:** jsx_text
|
||
- **Kontext:** between tags, user-visible text node
|
||
- **Zeile:** ` return <div>Checking authentication...</div>;`
|
||
|
||
## `src/stores/featureStore.tsx`:124
|
||
|
||
- **Text:** 'Failed to load features'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` const errorMessage = err instanceof Error ? err.message : 'Failed to load features';`
|
||
|
||
## `src/stores/featureStore.tsx`:264
|
||
|
||
- **Text:** 'useFeatureStore must be used within a FeatureProvider'
|
||
- **Art:** string_literal
|
||
- **Kontext:** string literal
|
||
- **Zeile:** ` throw new Error('useFeatureStore must be used within a FeatureProvider');`
|