feat: OnlyOffice Document Server Integration + Preview ohne neuen Tab
OnlyOffice Integration: - DOCX, XLSX, PPTX nativ im Browser bearbeiten (wie Google Docs) - Automatische Erkennung: Wenn OnlyOffice konfiguriert ist, wird der vollwertige Editor geladen, sonst die einfache Vorschau als Fallback - Backend: WOPI-aehnliche Endpunkte - GET /files/<id>/onlyoffice-config - Editor-Konfiguration - POST /files/onlyoffice-callback - Speicher-Callback von OnlyOffice - GET /files/onlyoffice-status - Verfuegbarkeits-Check - JWT-Signierung fuer sichere Kommunikation mit OnlyOffice - Dokument-Key basiert auf file_id + checksum (Cache-Invalidierung) Admin-Einstellungen: - OnlyOffice URL + JWT Secret konfigurierbar - Setup-Anleitung direkt in der UI (docker-compose auskommentieren) docker-compose.yml: - OnlyOffice Document Server als optionaler Service (auskommentiert) - Einfach auskommentieren fuer volle Office-Bearbeitung Preview: - Oeffnet sich jetzt innerhalb der App (kein neuer Tab) - Zurueck-Button in der Toolbar Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -153,6 +153,9 @@ def get_settings():
|
||||
'system_smtp_username': AppSettings.get('system_smtp_username', ''),
|
||||
'system_smtp_password_set': bool(AppSettings.get('system_smtp_password', '')),
|
||||
'system_email_from': AppSettings.get('system_email_from', ''),
|
||||
'onlyoffice_url': AppSettings.get('onlyoffice_url', os.environ.get('ONLYOFFICE_URL', '')),
|
||||
'onlyoffice_jwt_secret': AppSettings.get('onlyoffice_jwt_secret', ''),
|
||||
'onlyoffice_jwt_secret_set': bool(AppSettings.get('onlyoffice_jwt_secret', '')),
|
||||
}), 200
|
||||
|
||||
|
||||
@@ -163,11 +166,13 @@ def update_settings():
|
||||
if 'public_registration' in data:
|
||||
AppSettings.set('public_registration', str(data['public_registration']).lower())
|
||||
for key in ['system_smtp_host', 'system_smtp_port', 'system_smtp_ssl',
|
||||
'system_smtp_username', 'system_email_from']:
|
||||
'system_smtp_username', 'system_email_from', 'onlyoffice_url']:
|
||||
if key in data:
|
||||
AppSettings.set(key, str(data[key]))
|
||||
if 'system_smtp_password' in data and data['system_smtp_password']:
|
||||
AppSettings.set('system_smtp_password', data['system_smtp_password'])
|
||||
if 'onlyoffice_jwt_secret' in data and data['onlyoffice_jwt_secret']:
|
||||
AppSettings.set('onlyoffice_jwt_secret', data['onlyoffice_jwt_secret'])
|
||||
return jsonify({'message': 'Einstellungen gespeichert'}), 200
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user