Fix: Add truncate-table endpoint and improve dark mode visibility for usernames

- Added missing /api/maintenance/truncate-table endpoint to fix 404 error
- Fixed dark mode visibility issue for usernames in Current Users table
- Added explicit color styling for username strong tags in both light and dark modes
This commit is contained in:
Quality App System
2026-01-15 19:43:46 +02:00
parent f590d9006c
commit ce9563794a
2 changed files with 89 additions and 0 deletions

View File

@@ -5216,6 +5216,86 @@ def drop_table():
}), 500
@bp.route('/api/maintenance/truncate-table', methods=['POST'])
@admin_plus
def truncate_table():
"""Truncate a database table - removes all rows but keeps structure"""
try:
data = request.json
table_name = data.get('table_name', '').strip()
if not table_name:
return jsonify({
'success': False,
'message': 'Table name is required'
}), 400
# Validate table name to prevent SQL injection
if not table_name.replace('_', '').isalnum():
return jsonify({
'success': False,
'message': 'Invalid table name format'
}), 400
# Load database config directly
settings_file = os.path.join(current_app.instance_path, 'external_server.conf')
config = {}
with open(settings_file, 'r') as f:
for line in f:
if '=' in line:
key, value = line.strip().split('=', 1)
config[key] = value
conn = mariadb.connect(
host=config.get('server_domain', 'localhost'),
port=int(config.get('port', '3306')),
user=config.get('username', 'root'),
password=config.get('password', ''),
database=config.get('database_name', 'trasabilitate')
)
cursor = conn.cursor()
# Verify table exists and get row count
cursor.execute("""
SELECT COUNT(*) as count
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = %s AND TABLE_NAME = %s
""", (config.get('database_name', 'trasabilitate'), table_name))
result = cursor.fetchone()
if not result or result[0] == 0:
cursor.close()
conn.close()
return jsonify({
'success': False,
'message': f'Table "{table_name}" does not exist'
}), 404
# Get current row count before truncating
cursor.execute(f"SELECT COUNT(*) FROM `{table_name}`")
row_count = cursor.fetchone()[0]
# Truncate the table
cursor.execute(f"TRUNCATE TABLE `{table_name}`")
conn.commit()
cursor.close()
conn.close()
return jsonify({
'success': True,
'message': f'Table "{table_name}" has been cleared successfully',
'rows_cleared': row_count,
'structure_preserved': True
})
except Exception as e:
return jsonify({
'success': False,
'message': f'Failed to truncate table: {str(e)}'
}), 500
@bp.route('/api/backup/table', methods=['POST'])
@admin_plus
def backup_single_table():

View File

@@ -245,6 +245,15 @@
background-color: rgba(255, 255, 255, 0.075) !important;
}
/* Theme-aware username styling */
body.light-mode .user-management-page .table td strong {
color: #000 !important;
}
body.dark-mode .user-management-page .table td strong {
color: #fff !important;
}
/* Theme-aware form elements */
.user-management-page .form-control {
border: 1px solid #ced4da !important;