Add files via upload

This commit is contained in:
Tomáš Dvořák
2025-05-27 08:56:21 +02:00
committed by GitHub
parent 7c1b422797
commit 7e119ab943
5 changed files with 471 additions and 476 deletions
+15 -20
View File
@@ -710,6 +710,7 @@
} }
} }
// Save banner
async function saveBanner(event) { async function saveBanner(event) {
event.preventDefault(); event.preventDefault();
@@ -729,20 +730,15 @@
formData.append('text', document.getElementById('bannerText').value); formData.append('text', document.getElementById('bannerText').value);
formData.append('link', document.getElementById('bannerLink').value); formData.append('link', document.getElementById('bannerLink').value);
// Create style object with default values // Add style properties to form data with the correct format
const style = { formData.append('style.backgroundColor', document.getElementById('bannerBgColor').value);
backgroundColor: document.getElementById('bannerBgColor').value, formData.append('style.textColor', document.getElementById('bannerTextColor').value);
textColor: document.getElementById('bannerTextColor').value, formData.append('style.textAlign', document.getElementById('bannerTextAlign').value);
textAlign: document.getElementById('bannerTextAlign').value, formData.append('style.fontSize', document.getElementById('bannerFontSize').value);
fontSize: document.getElementById('bannerFontSize').value || '16px', formData.append('style.padding', document.getElementById('bannerPadding').value);
padding: document.getElementById('bannerPadding').value || '0px', formData.append('style.margin', document.getElementById('bannerMargin').value);
margin: document.getElementById('bannerMargin').value || '0px', formData.append('style.borderRadius', document.getElementById('bannerBorderRadius').value);
borderRadius: document.getElementById('bannerBorderRadius').value || '0px', formData.append('style.isVisible', document.getElementById('bannerVisible').checked);
isVisible: document.getElementById('bannerVisible').checked
};
// Convert style object to JSON string and append to form data
formData.append('style', JSON.stringify(style));
// Log form data for debugging // Log form data for debugging
console.log('Odesílám data:'); console.log('Odesílám data:');
@@ -750,18 +746,17 @@
console.log(key, value); console.log(key, value);
} }
// Create headers object // Create a new headers object
const headers = {}; const headers = new Headers();
// Don't set Content-Type header manually when using FormData
// The browser will set it automatically with the correct boundary
// Add Authorization header if token exists // Add Authorization header if token exists
const token = localStorage.getItem('token'); const token = localStorage.getItem('token');
if (token) { if (token) {
headers['Authorization'] = `Bearer ${token}`; headers.append('Authorization', `Bearer ${token}`);
} }
// Note: Don't set Content-Type header when using FormData with files
// The browser will set it automatically with the correct boundary
const response = await fetch('/api/banner/update', { const response = await fetch('/api/banner/update', {
method: 'POST', method: 'POST',
headers: headers, headers: headers,
+11 -11
View File
@@ -156,20 +156,20 @@ func UpdateBannerHandler(w http.ResponseWriter, r *http.Request) {
// Log form values for debugging // Log form values for debugging
log.Printf("Form values: %+v", r.Form) log.Printf("Form values: %+v", r.Form)
// Parse style as JSON string // Create a new banner with default values
styleJSON := r.FormValue("style")
var style BannerStyle
if err := json.Unmarshal([]byte(styleJSON), &style); err != nil {
log.Printf("Error parsing style JSON: %v", err)
http.Error(w, "Error parsing style data: "+err.Error(), http.StatusBadRequest)
return
}
// Create a new banner with parsed style
newBanner := BannerContent{ newBanner := BannerContent{
Text: r.FormValue("text"), Text: r.FormValue("text"),
Link: r.FormValue("link"), Link: r.FormValue("link"),
Style: style, Style: BannerStyle{
BackgroundColor: r.FormValue("style[backgroundColor]"),
TextColor: r.FormValue("style[textColor]"),
TextAlign: r.FormValue("style[textAlign]"),
FontSize: r.FormValue("style[fontSize]"),
Padding: r.FormValue("style[padding]"),
Margin: r.FormValue("style[margin]"),
BorderRadius: r.FormValue("style[borderRadius]"),
IsVisible: r.FormValue("style[isVisible]") == "true",
},
} }
// Log the banner data for debugging // Log the banner data for debugging