organize onts better

This commit is contained in:
Ted Unangst 2019-10-13 01:58:01 -04:00
parent 49a5b2ca8b
commit 39ff5b5aa8
3 changed files with 24 additions and 9 deletions

View File

@ -610,7 +610,7 @@ var stmtFindFile, stmtGetFileData, stmtSaveFileData, stmtSaveFile *sql.Stmt
var stmtAddDoover, stmtGetDoovers, stmtLoadDoover, stmtZapDoover, stmtOneHonker *sql.Stmt
var stmtThumbBiters, stmtDeleteHonk, stmtDeleteDonks, stmtDeleteOnts, stmtSaveZonker *sql.Stmt
var stmtGetZonkers, stmtRecentHonkers, stmtGetXonker, stmtSaveXonker, stmtDeleteXonker *sql.Stmt
var stmtSelectOnts, stmtSaveOnt, stmtUpdateFlags, stmtClearFlags *sql.Stmt
var stmtAllOnts, stmtSaveOnt, stmtUpdateFlags, stmtClearFlags *sql.Stmt
var stmtHonksForUserFirstClass, stmtSaveMeta, stmtDeleteMeta, stmtUpdateHonk *sql.Stmt
var stmtHonksISaved, stmtGetFilters, stmtSaveFilter, stmtDeleteFilter *sql.Stmt
@ -682,7 +682,7 @@ func prepareStatements(db *sql.DB) {
stmtRecentHonkers = preparetodie(db, "select distinct(honker) from honks where userid = ? and honker not in (select xid from honkers where userid = ? and flavor = 'sub') order by honkid desc limit 100")
stmtUpdateFlags = preparetodie(db, "update honks set flags = flags | ? where honkid = ?")
stmtClearFlags = preparetodie(db, "update honks set flags = flags & ~ ? where honkid = ?")
stmtSelectOnts = preparetodie(db, "select distinct(ontology) from onts join honks on onts.honkid = honks.honkid where (honks.userid = ? or honks.whofore = 2)")
stmtAllOnts = preparetodie(db, "select ontology, count(ontology) from onts join honks on onts.honkid = honks.honkid where (honks.userid = ? or honks.whofore = 2) group by ontology")
stmtGetFilters = preparetodie(db, "select hfcsid, json from hfcs where userid = ?")
stmtSaveFilter = preparetodie(db, "insert into hfcs (userid, json) values (?, ?)")
stmtDeleteFilter = preparetodie(db, "delete from hfcs where userid = ? and hfcsid = ?")

View File

@ -2,9 +2,15 @@
<main>
<div class="info">
<p>ontologies of interest
<p>
{{ $letter := 0 }}
<ul>
{{ range .Onts }}
<a href="/o/{{ index . 1 }}">{{ index . 0 }}</a>
{{ if not (eq $letter (index .Name 0)) }}
{{ $letter = (index .Name 0) }}
<li><p>
{{ end }}
<a href="/o/{{ .Name }}">#{{ .Name }}</a> ({{ .Count }})
{{ end }}
</ul>
</div>
</main>

19
web.go
View File

@ -654,28 +654,37 @@ func showontology(w http.ResponseWriter, r *http.Request) {
honkpage(w, u, honks, templinfo)
}
type Ont struct {
Name string
Count int64
}
func thelistingoftheontologies(w http.ResponseWriter, r *http.Request) {
u := login.GetUserInfo(r)
var userid int64 = -1
if u != nil {
userid = u.UserID
}
rows, err := stmtSelectOnts.Query(userid)
rows, err := stmtAllOnts.Query(userid)
if err != nil {
log.Printf("selection error: %s", err)
return
}
defer rows.Close()
var onts [][]string
var onts []Ont
for rows.Next() {
var o string
err := rows.Scan(&o)
var o Ont
err := rows.Scan(&o.Name, &o.Count)
if err != nil {
log.Printf("error scanning ont: %s", err)
continue
}
onts = append(onts, []string{o, o[1:]})
o.Name = o.Name[1:]
onts = append(onts, o)
}
sort.Slice(onts, func(i, j int) bool {
return onts[i].Name < onts[j].Name
})
if u == nil {
w.Header().Set("Cache-Control", "max-age=300")
}