diff --git a/download/download.go b/download/download.go index ee0f5ac..224dbde 100644 --- a/download/download.go +++ b/download/download.go @@ -36,6 +36,8 @@ type Download struct { type Downloads []*Download +var CanStopDownload = false + // StartQueued starts any downloads that have been queued, we would not exceed // maxRunning. If maxRunning is 0, there is no limit. func (dls Downloads) StartQueued(maxRunning int) { @@ -99,6 +101,10 @@ func (dl *Download) Queue() { } func (dl *Download) Stop() { + if !CanStopDownload { + log.Print("attempted to stop download on a platform that it is not currently supported on - please report this as a bug") + os.Exit(1) + } log.Printf("stopping the download") dl.mutex.Lock() dl.Log = append(dl.Log, "aborted by user") diff --git a/main.go b/main.go index efe8951..d040fbe 100644 --- a/main.go +++ b/main.go @@ -296,7 +296,7 @@ func fetchHandler(w http.ResponseWriter, r *http.Request) { panic(err) } - templateData := map[string]interface{}{"dl": dl, "config": conf} + templateData := map[string]interface{}{"dl": dl, "config": conf, "canStop": download.CanStopDownload} err = t.ExecuteTemplate(w, "layout", templateData) if err != nil { @@ -353,7 +353,7 @@ func fetchHandler(w http.ResponseWriter, r *http.Request) { panic(err) } - templateData := map[string]interface{}{"dl": newDownload, "config": conf} + templateData := map[string]interface{}{"dl": newDownload, "config": conf, "canStop": download.CanStopDownload} err = t.ExecuteTemplate(w, "layout", templateData) if err != nil { diff --git a/web/popup.html b/web/popup.html index 81fbbf9..dfcfbe4 100644 --- a/web/popup.html +++ b/web/popup.html @@ -21,7 +21,9 @@

You can close this window and your download will continue. Check the Status page to see all downloads in progress.

+ {{ if .canStop }} + {{ end }}

Logs