From c31e86ed0c5a452fc999e2d4221fdff9aea68eca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Dvo=C5=99=C3=A1k?= <150935816+Dvorinka@users.noreply.github.com> Date: Wed, 21 May 2025 12:49:01 +0200 Subject: [PATCH] Add files via upload --- index.html | 26 +++++++++++++------------- main.go | 41 +---------------------------------------- 2 files changed, 14 insertions(+), 53 deletions(-) diff --git a/index.html b/index.html index e431a3d..63d4c20 100644 --- a/index.html +++ b/index.html @@ -185,20 +185,20 @@ }); }); - // Function to open Windows Explorer with a specific path using our integrated Go server + // Function to open Windows Explorer with a specific path function openWindowsFolder(path) { - // Call our Go server to open the folder in Windows Explorer - fetch(`/open?path=${encodeURIComponent(path)}`) - .then(response => { - if (!response.ok) { - throw new Error('Failed to open folder'); - } - console.log('Folder opened successfully'); - }) - .catch(error => { - console.error('Error opening folder:', error); - alert('Could not open folder. Make sure the server is running.'); - }); + // Using ActiveX to open Windows Explorer (works in IE) + try { + const shell = new ActiveXObject("Shell.Application"); + shell.Explore(path); + return; + } catch (e) { + console.log("ActiveX not supported or disabled"); + } + + // Fallback to file:// protocol + const encodedPath = path.split('\\').map(part => encodeURIComponent(part)).join('/'); + window.open('file:///' + encodedPath, '_blank'); } diff --git a/main.go b/main.go index 934dc7b..89102d1 100644 --- a/main.go +++ b/main.go @@ -8,7 +8,6 @@ import ( "log" "net/http" "os" - "os/exec" "strings" "time" @@ -51,15 +50,12 @@ func main() { http.ServeFile(w, r, "evidence-aut.html") })) - // Add folder opener endpoint - http.HandleFunc("/open", enableCORS(openFolderHandler)) - port := os.Getenv("PORT") if port == "" { port = "8080" } - log.Printf("Server běží na portu %s (včetně otevírání složek Windows)", port) + log.Printf("Server běží na portu %s", port) err := http.ListenAndServe(":"+port, nil) if err != nil { log.Fatalf("Chyba při spuštění serveru: %v", err) @@ -160,41 +156,6 @@ func handleSubmit(w http.ResponseWriter, r *http.Request) { w.Write([]byte(`{"message":"Záznam byl úspěšně uložen a email odeslán"}`)) } -// Handler pro otevírání Windows složek přímo z prohlížeče -func openFolderHandler(w http.ResponseWriter, r *http.Request) { - // Get the folder path from the query parameter - folderPath := r.URL.Query().Get("path") - if folderPath == "" { - http.Error(w, "Missing path parameter", http.StatusBadRequest) - return - } - - // Log the request - log.Printf("Otevírání složky: %s", folderPath) - - // Open the folder in Windows Explorer - cmd := exec.Command("explorer.exe", folderPath) - err := cmd.Start() - - if err != nil { - // If there was an error, try to clean the path and retry - cleanPath := strings.ReplaceAll(folderPath, "/", "\\") - cmd = exec.Command("explorer.exe", cleanPath) - err = cmd.Start() - - if err != nil { - log.Printf("Chyba při otevírání složky: %v", err) - http.Error(w, fmt.Sprintf("Error opening folder: %v", err), http.StatusInternalServerError) - return - } - } - - // Return success response - w.Header().Set("Content-Type", "application/json") - w.WriteHeader(http.StatusOK) - json.NewEncoder(w).Encode(map[string]string{"status": "success", "message": fmt.Sprintf("Opening folder: %s", folderPath)}) -} - func sendEmail(entry TripEntry, parsedDateStart, parsedDateEnd time.Time, czechMonths []string) error { smtpHost := "mail.pp-kunovice.cz" smtpPort := 465