tagliatelle

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

include-search.go (792B)


      1 package main
      2 
      3 import (
      4 	"fmt"
      5 	"net/http"
      6 	"strings"
      7 )
      8 
      9 func searchHandler(w http.ResponseWriter, r *http.Request) {
     10 	query := strings.TrimSpace(r.URL.Query().Get("q"))
     11 	page := pageFromRequest(r)
     12 	perPage := perPageFromConfig(50)
     13 
     14 	var files []File
     15 	var total int
     16 	var searchTitle string
     17 
     18 	if query != "" {
     19 		var err error
     20 		files, total, err = getSearchResultsPaginated(query, page, perPage)
     21 		if err != nil {
     22 			renderError(w, "Search failed: "+err.Error(), http.StatusInternalServerError)
     23 			return
     24 		}
     25 		searchTitle = fmt.Sprintf("Search Results for: %s", query)
     26 	} else {
     27 		searchTitle = "Search Files"
     28 	}
     29 
     30 	pageData := buildPageDataWithPagination(searchTitle, files, page, total, perPage, r)
     31 	pageData.Query = query
     32 	pageData.Files = files
     33 	renderTemplate(w, "search.html", pageData)
     34 }