diff options
| -rw-r--r-- | go.sum | 2 | ||||
| -rw-r--r-- | pkg/server/server.go | 23 |
2 files changed, 23 insertions, 2 deletions
@@ -4,8 +4,6 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/goccy/go-yaml v1.17.1 h1:LI34wktB2xEE3ONG/2Ar54+/HJVBriAGJ55PHls4YuY= github.com/goccy/go-yaml v1.17.1/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= -github.com/mattn/go-sqlite3 v1.14.27 h1:drZCnuvf37yPfs95E5jd9s3XhdVWLal+6BOK6qrv6IU= -github.com/mattn/go-sqlite3 v1.14.27/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/mattn/go-sqlite3 v1.14.39 h1:sIwSjlJGOaRJjw44/HXaeTblZMjseqr6OOio1tz/+JI= github.com/mattn/go-sqlite3 v1.14.39/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/pkg/server/server.go b/pkg/server/server.go index 65034be..a68a952 100644 --- a/pkg/server/server.go +++ b/pkg/server/server.go @@ -41,6 +41,20 @@ You can change the order using <pre>sortOrder</pre> with <pre>asc</pre> or <pre> <fieldset><legend>Submit a Query</legend> <label for="query">Query:</label> <input type="text" name="query" required /> +<label for="sortBy">Sort By:</label> +<select name="sortBy"> +<option value="path">Path</option> +<option value="title">Title</option> +<option value="date">Date</option> +<option value="headings">Headings</option> +<option value="filetime">Filetime</option> +<option value="meta">Metadata</option> +</select> +<label for="sortOrder">Sort Order:</label> +<select name="sortOrder"> +<option value="">Ascending</option> +<option value="desc">Descending</option> +</select> <input type="submit" /> </fieldset> </form> @@ -96,12 +110,21 @@ func NewMux(db *data.Query) *http.ServeMux { queryParams := r.URL.Query() if queryParams.Has("sortBy") { + slog.Debug("Parsing sorting info from query params") sortBy := queryParams.Get("sortBy") sortOrder := queryParams.Get("sortOrder") docCmp, ok := index.NewDocCmp(sortBy, sortOrder == "desc" || sortOrder == "descending") if ok { slices.SortFunc(docs, docCmp) } + } else if r.Form.Has("sortBy") { + slog.Debug("Parsing sorting info from form data") + sortBy := r.Form.Get("sortBy") + sortOrder := r.Form.Get("sortOrder") + docCmp, ok := index.NewDocCmp(sortBy, sortOrder == "desc" || sortOrder == "descending") + if ok { + slices.SortFunc(docs, docCmp) + } } if !maxFileTime.IsZero() { |
