diff --git a/internal/db/db-edit.go b/internal/db/db-edit.go index 7480c10..e9cfb5b 100644 --- a/internal/db/db-edit.go +++ b/internal/db/db-edit.go @@ -64,3 +64,9 @@ func Delete(path string, id uint16) { sqlStatement = fmt.Sprintf(sqlStatement, id) dbExec(path, sqlStatement) } + +// Clear - delete all hosts from table +func Clear(path string) { + sqlStatement := `DELETE FROM "now";` + dbExec(path, sqlStatement) +} diff --git a/internal/web/config.go b/internal/web/config.go index c996017..77f2972 100644 --- a/internal/web/config.go +++ b/internal/web/config.go @@ -2,11 +2,13 @@ package web import ( "html/template" + "log" "net/http" "strconv" "github.com/aceberg/WatchYourLAN/internal/check" "github.com/aceberg/WatchYourLAN/internal/conf" + "github.com/aceberg/WatchYourLAN/internal/db" "github.com/aceberg/WatchYourLAN/internal/models" "github.com/aceberg/WatchYourLAN/internal/scan" ) @@ -50,3 +52,12 @@ func saveConfigHandler(w http.ResponseWriter, r *http.Request) { http.Redirect(w, r, r.Header.Get("Referer"), 302) } + +func clearHandler(w http.ResponseWriter, r *http.Request) { + + log.Println("INFO: delting all hosts from DB") + + db.Clear(AppConfig.DbPath) + + http.Redirect(w, r, r.Header.Get("Referer"), 302) +} diff --git a/internal/web/templates/config.html b/internal/web/templates/config.html index 5aacd38..8637ccc 100644 --- a/internal/web/templates/config.html +++ b/internal/web/templates/config.html @@ -50,7 +50,11 @@ + +
+
+ +
diff --git a/internal/web/webgui.go b/internal/web/webgui.go index a2097b5..997c9a8 100644 --- a/internal/web/webgui.go +++ b/internal/web/webgui.go @@ -55,6 +55,7 @@ func Gui(configPath string) { log.Println("=================================== ") http.HandleFunc("/", indexHandler) + http.HandleFunc("/clear/", clearHandler) http.HandleFunc("/config/", configHandler) http.HandleFunc("/del_host/", delHandler) http.HandleFunc("/home/", homeHandler)