diff --git a/src/contentfilter/main.py b/src/contentfilter/main.py index 6eebc64..d3b5c01 100644 --- a/src/contentfilter/main.py +++ b/src/contentfilter/main.py @@ -281,4 +281,28 @@ async def import_json( return redir_resp +@webapp.post("/remove/all", name="remove_all_urls") +async def clear_urls( + request: Request, + username: str = AuthDependency, +): + redir_resp = RedirectResponse( + request.url_for("settings"), status_code=http.HTTPStatus.FOUND + ) + try: + num_urls = len(database) + database.clear() + if num_urls: + flash( + request, + f"Successfully removed {num_urls} blocked URL(s) from the list", + "success", + ) + else: + flash(request, "The list was already empty", "info") + except Exception as exc: + flash(request, f"Unable to remove URLs: {exc}.", "danger") + return redir_resp + + app.mount(Conf.webroot_prefix, webapp) diff --git a/src/contentfilter/templates/settings.html b/src/contentfilter/templates/settings.html index 75e76c2..283d229 100644 --- a/src/contentfilter/templates/settings.html +++ b/src/contentfilter/templates/settings.html @@ -19,6 +19,12 @@
Remove all blocked URLs from your list. This action cannot be undone.
+ +