(w http.ResponseWriter, r *http.Request)
| 213 | } |
| 214 | |
| 215 | func (h *handler) handleRoot(w http.ResponseWriter, r *http.Request) { |
| 216 | topMessage := "" |
| 217 | if saved_doc := r.FormValue("saved_doc"); saved_doc != "" { |
| 218 | topMessage = fmt.Sprintf("Saved <a href='doc/%s'>doc %s</a>", saved_doc, saved_doc) |
| 219 | } |
| 220 | errorMessage := r.FormValue("error_message") |
| 221 | |
| 222 | limit := maxScan |
| 223 | if limitparam := r.FormValue("limit"); limitparam != "" { |
| 224 | newlimit, err := strconv.Atoi(limitparam) |
| 225 | if err == nil { |
| 226 | limit = newlimit |
| 227 | } |
| 228 | } |
| 229 | |
| 230 | var ( |
| 231 | movm []MediaObjectVM |
| 232 | searchedDocs []DocumentVM |
| 233 | ) |
| 234 | tags := newSeparatedString(r.FormValue("tags")) |
| 235 | docs, err := h.fetchDocuments(limit, searchOpts{tags: tags}) |
| 236 | if err != nil { |
| 237 | httputil.ServeError(w, r, err) |
| 238 | return |
| 239 | } |
| 240 | |
| 241 | if len(tags) != 0 { |
| 242 | searchedDocs = MakeDocumentViewModels(docs) |
| 243 | // We've just done a search, in which case we don't show the scans, |
| 244 | // so no need to look for them. |
| 245 | } else { |
| 246 | // fetch media objects |
| 247 | mediaObjects, err := h.fetchScans(limit) |
| 248 | if err != nil { |
| 249 | httputil.ServeError(w, r, err) |
| 250 | return |
| 251 | } |
| 252 | movm = MakeMediaObjectViewModels(mediaObjects) |
| 253 | } |
| 254 | allTags, err := h.fetchTags() |
| 255 | if err != nil { |
| 256 | httputil.ServeError(w, r, err) |
| 257 | return |
| 258 | } |
| 259 | |
| 260 | // fetch upcoming documents |
| 261 | upcoming, err := h.fetchDocuments(maxDue, searchOpts{due: true}) |
| 262 | if err != nil { |
| 263 | httputil.ServeError(w, r, err) |
| 264 | return |
| 265 | } |
| 266 | |
| 267 | // fetch untagged documents |
| 268 | untagged, err := h.fetchDocuments(limit, searchOpts{untagged: true}) |
| 269 | if err != nil { |
| 270 | httputil.ServeError(w, r, err) |
| 271 | return |
| 272 | } |
nothing calls this directly
no test coverage detected