diff --git a/build/go-generate/updateVersionNumbers.go b/build/go-generate/updateVersionNumbers.go index bdec134..5780a3c 100644 --- a/build/go-generate/updateVersionNumbers.go +++ b/build/go-generate/updateVersionNumbers.go @@ -10,7 +10,7 @@ import ( "strings" ) -const versionJsAdmin = "4" +const versionJsAdmin = "5" const versionJsDropzone = "4" const versionJsE2EAdmin = "3" const versionCssMain = "2" @@ -76,7 +76,7 @@ func parseGokapiVersion() string { return "" } -const templateVersions = `// Change these for rebranding +const templateVersions = `// File contains auto-generated values. Do not change manually {{define "version"}}%gokapiversion%{{end}} // Specifies the version of JS files, so that the browser doesn't diff --git a/cmd/gokapi/Main.go b/cmd/gokapi/Main.go index 97e2fd4..593b299 100644 --- a/cmd/gokapi/Main.go +++ b/cmd/gokapi/Main.go @@ -33,7 +33,7 @@ import ( // versionGokapi is the current version in readable form. // Other version numbers can be modified in /build/go-generate/updateVersionNumbers.go -const versionGokapi = "1.9.0" +const versionGokapi = "1.9.1" // The following calls update the version numbers, update documentation, minify Js/CSS and build the WASM modules //go:generate go run "../../build/go-generate/updateVersionNumbers.go" diff --git a/internal/models/UploadStatus.go b/internal/models/UploadStatus.go index 1e5fc2f..ce016f0 100644 --- a/internal/models/UploadStatus.go +++ b/internal/models/UploadStatus.go @@ -12,13 +12,10 @@ type UploadStatus struct { // hashing) or being moved/uploaded to the file storage // See processingstatus for definition CurrentStatus int `json:"currentstatus"` - // Type is the type of the message and is always "uploadstatus" - Type string `json:"type"` } // ToJson returns the struct as a Json byte array func (u *UploadStatus) ToJson() ([]byte, error) { - u.Type = "uploadstatus" return json.Marshal(u) } diff --git a/internal/storage/processingstatus/ProcessingStatus.go b/internal/storage/processingstatus/ProcessingStatus.go index cbb0f8b..320a0da 100644 --- a/internal/storage/processingstatus/ProcessingStatus.go +++ b/internal/storage/processingstatus/ProcessingStatus.go @@ -16,7 +16,7 @@ const StatusUploading = 1 func passNewStatus(newStatus models.UploadStatus) { status, err := newStatus.ToJson() helper.Check(err) - sse.PublishNewStatus(string(status) + "\n") + sse.PublishNewStatus(string(status)) } // Set sets the status for an id diff --git a/internal/webserver/sse/Sse.go b/internal/webserver/sse/Sse.go index d3a67ce..9192264 100644 --- a/internal/webserver/sse/Sse.go +++ b/internal/webserver/sse/Sse.go @@ -35,7 +35,7 @@ func removeListener(id string) { func PublishNewStatus(reply string) { mutex.RLock() for _, channel := range listeners { - go channel.Reply(reply) + go channel.Reply("event: message\ndata: " + reply + "\n\n") } mutex.RUnlock() } @@ -71,7 +71,7 @@ func GetStatusSSE(w http.ResponseWriter, r *http.Request) { for _, status := range allStatus { jsonOutput, err := status.ToJson() helper.Check(err) - _, _ = io.WriteString(w, string(jsonOutput)+"\n") + _, _ = io.WriteString(w, "event: message\ndata: "+string(jsonOutput)+"\n\n") } w.(http.Flusher).Flush() for { @@ -84,7 +84,7 @@ func GetStatusSSE(w http.ResponseWriter, r *http.Request) { case reply := <-replyChannel: _, _ = io.WriteString(w, reply) case <-time.After(pingInterval): - _, _ = io.WriteString(w, "{\"type\":\"ping\"}\n") + _, _ = io.WriteString(w, "event: ping\n\n") case <-ctx.Done(): removeListener(channelId) return diff --git a/internal/webserver/web/static/js/admin.js b/internal/webserver/web/static/js/admin.js index d89cc26..37c1477 100644 --- a/internal/webserver/web/static/js/admin.js +++ b/internal/webserver/web/static/js/admin.js @@ -458,7 +458,7 @@ function registerChangeHandler() { source.onmessage = (event) => { try { let eventData = JSON.parse(event.data); - setProgressStatus(eventData.chunkid, eventData.currentstatus); + setProgressStatus(eventData.chunkid, eventData.currentstatus); } catch (e) { console.error("Failed to parse event data:", e); } @@ -469,8 +469,6 @@ function registerChangeHandler() { if (error.target.readyState !== EventSource.CLOSED) { source.close(); } - - console.log("Reconnecting to SSE..."); // Attempt to reconnect after a delay setTimeout(registerChangeHandler, 5000); diff --git a/internal/webserver/web/templates/string_constants.tmpl b/internal/webserver/web/templates/string_constants.tmpl index a21b193..f5fe72a 100644 --- a/internal/webserver/web/templates/string_constants.tmpl +++ b/internal/webserver/web/templates/string_constants.tmpl @@ -1,9 +1,9 @@ // File contains auto-generated values. Do not change manually -{{define "version"}}1.9.0{{end}} +{{define "version"}}1.9.1{{end}} // Specifies the version of JS files, so that the browser doesn't // use a cached version, if the file has been updated -{{define "js_admin_version"}}4{{end}} +{{define "js_admin_version"}}5{{end}} {{define "js_dropzone_version"}}4{{end}} {{define "js_e2eversion"}}3{{end}} -{{define "css_main"}}2{{end}} +{{define "css_main"}}2{{end}} \ No newline at end of file