"Refactor UI refactoring: Simplify app.c-specific components
This commit is contained in:
Binary file not shown.
2
app.py
2
app.py
@@ -9,7 +9,6 @@ from flask_sqlalchemy import SQLAlchemy
|
|||||||
from werkzeug.security import generate_password_hash, check_password_hash
|
from werkzeug.security import generate_password_hash, check_password_hash
|
||||||
import json
|
import json
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
from flask_wtf import FlaskForm
|
|
||||||
from wtforms import StringField, PasswordField, BooleanField, TextAreaField, SelectField, HiddenField
|
from wtforms import StringField, PasswordField, BooleanField, TextAreaField, SelectField, HiddenField
|
||||||
from wtforms.validators import DataRequired, Email, Length, EqualTo, ValidationError
|
from wtforms.validators import DataRequired, Email, Length, EqualTo, ValidationError
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
@@ -47,7 +46,6 @@ app.config['SQLALCHEMY_DATABASE_URI'] = f'sqlite:///{db_path}'
|
|||||||
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
|
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
|
||||||
app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(days=365) # Langlebige Session für Dark Mode-Einstellung
|
app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(days=365) # Langlebige Session für Dark Mode-Einstellung
|
||||||
app.config['UPLOAD_FOLDER'] = os.getenv('UPLOAD_FOLDER', os.path.join(os.getcwd(), 'uploads'))
|
app.config['UPLOAD_FOLDER'] = os.getenv('UPLOAD_FOLDER', os.path.join(os.getcwd(), 'uploads'))
|
||||||
app.config['WTF_CSRF_ENABLED'] = False
|
|
||||||
|
|
||||||
# OpenAI API-Konfiguration
|
# OpenAI API-Konfiguration
|
||||||
api_key = os.environ.get("OPENAI_API_KEY", "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")
|
api_key = os.environ.get("OPENAI_API_KEY", "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")
|
||||||
|
|||||||
@@ -335,7 +335,6 @@
|
|||||||
const isPrivateInput = document.getElementById('is_private');
|
const isPrivateInput = document.getElementById('is_private');
|
||||||
|
|
||||||
const mindmapId = "{{ mindmap.id }}"; // Sicherstellen, dass mindmap.id hier verfügbar ist
|
const mindmapId = "{{ mindmap.id }}"; // Sicherstellen, dass mindmap.id hier verfügbar ist
|
||||||
const csrfToken = "{{ csrf_token() }}";
|
|
||||||
|
|
||||||
const data = {
|
const data = {
|
||||||
name: nameInput.value,
|
name: nameInput.value,
|
||||||
@@ -351,8 +350,7 @@
|
|||||||
const response = await fetch(`/api/mindmaps/${mindmapId}`, {
|
const response = await fetch(`/api/mindmaps/${mindmapId}`, {
|
||||||
method: 'PUT',
|
method: 'PUT',
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json'
|
||||||
'X-CSRFToken': csrfToken
|
|
||||||
},
|
},
|
||||||
body: JSON.stringify(data)
|
body: JSON.stringify(data)
|
||||||
});
|
});
|
||||||
@@ -389,7 +387,6 @@
|
|||||||
// Die Metadaten (Name, Beschreibung, is_private) werden separat über das Formular oben gespeichert.
|
// Die Metadaten (Name, Beschreibung, is_private) werden separat über das Formular oben gespeichert.
|
||||||
// Diese onChange Funktion kümmert sich nur um die Strukturdaten (Knoten/Kanten).
|
// Diese onChange Funktion kümmert sich nur um die Strukturdaten (Knoten/Kanten).
|
||||||
const mindmapId = "{{ mindmap.id }}";
|
const mindmapId = "{{ mindmap.id }}";
|
||||||
const csrfToken = "{{ csrf_token() }}";
|
|
||||||
|
|
||||||
// Debounce-Funktion, um API-Aufrufe zu limitieren
|
// Debounce-Funktion, um API-Aufrufe zu limitieren
|
||||||
let debounceTimer;
|
let debounceTimer;
|
||||||
@@ -406,8 +403,7 @@
|
|||||||
fetch(`/api/mindmaps/${mindmapId}`, { // Endpunkt angepasst
|
fetch(`/api/mindmaps/${mindmapId}`, { // Endpunkt angepasst
|
||||||
method: 'PUT', // Methode zu PUT geändert
|
method: 'PUT', // Methode zu PUT geändert
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json'
|
||||||
'X-CSRFToken': csrfToken
|
|
||||||
},
|
},
|
||||||
body: JSON.stringify(payload) // Sende die Mindmap-Daten als { data: ... }
|
body: JSON.stringify(payload) // Sende die Mindmap-Daten als { data: ... }
|
||||||
}).then(response => {
|
}).then(response => {
|
||||||
@@ -455,14 +451,12 @@
|
|||||||
mindmap.initialize().then(() => {
|
mindmap.initialize().then(() => {
|
||||||
console.log("Mindmap-Editor initialisiert");
|
console.log("Mindmap-Editor initialisiert");
|
||||||
const mindmapId = "{{ mindmap.id }}";
|
const mindmapId = "{{ mindmap.id }}";
|
||||||
const csrfToken = "{{ csrf_token() }}";
|
|
||||||
|
|
||||||
// Lade existierende Daten für die Mindmap-Struktur
|
// Lade existierende Daten für die Mindmap-Struktur
|
||||||
fetch(`/api/mindmaps/${mindmapId}`, { // Endpunkt für GET angepasst
|
fetch(`/api/mindmaps/${mindmapId}`, { // Endpunkt für GET angepasst
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
headers: {
|
headers: {
|
||||||
'Accept': 'application/json',
|
'Accept': 'application/json'
|
||||||
'X-CSRFToken': csrfToken
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.then(response => {
|
.then(response => {
|
||||||
|
|||||||
@@ -326,11 +326,10 @@
|
|||||||
const mindmapId = event.currentTarget.dataset.mindmapId;
|
const mindmapId = event.currentTarget.dataset.mindmapId;
|
||||||
if (confirm('Bist du sicher, dass du diese Mindmap löschen möchtest?')) {
|
if (confirm('Bist du sicher, dass du diese Mindmap löschen möchtest?')) {
|
||||||
try {
|
try {
|
||||||
const csrfToken = "{{ csrf_token() }}"; // CSRF Token holen
|
|
||||||
const response = await fetch(`/api/mindmaps/${mindmapId}`, {
|
const response = await fetch(`/api/mindmaps/${mindmapId}`, {
|
||||||
method: 'DELETE',
|
method: 'DELETE',
|
||||||
headers: {
|
headers: {
|
||||||
'X-CSRFToken': csrfToken // CSRF Token im Header senden
|
'Content-Type': 'application/json'
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
@@ -359,12 +358,10 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const csrfToken = "{{ csrf_token() }}"; // CSRF Token holen
|
|
||||||
const response = await fetch('/api/mindmaps', {
|
const response = await fetch('/api/mindmaps', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json'
|
||||||
'X-CSRFToken': csrfToken // CSRF Token im Header senden
|
|
||||||
},
|
},
|
||||||
body: JSON.stringify({ name, description, is_private: false }), // is_private standardmäßig auf false setzen
|
body: JSON.stringify({ name, description, is_private: false }), // is_private standardmäßig auf false setzen
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user