htmx integration

This commit is contained in:
2025-05-22 07:04:31 +02:00
parent ea37419860
commit f35699f501
29 changed files with 7561 additions and 46 deletions

86
main.go
View File

@@ -128,6 +128,7 @@ type Keyword struct {
type DataPort struct {
Contacts []Contact
Keywords []Keyword
/*Links []ContactKeywordLink*/
}
/* ################################################################## */
@@ -144,33 +145,39 @@ func (s *Server) privateHello(w http.ResponseWriter, r *http.Request) {
}
func GetDataReturnDataPort(QueryContact, QueryKeyword string) DataPort {
rows, err := DB.Query(QueryContact)
if err != nil {
fmt.Println("a", err)
}
var contList []Contact
for rows.Next() {
var c Contact
err = rows.Scan(&c.Id, &c.OwnerId, &c.AdUserId, &c.DisplayName, &c.Phone, &c.Mobile, &c.Homeoffice, &c.Email, &c.Room, &c.DepartmentId, &c.LocationId)
var keywordList []Keyword
if QueryContact != "" {
rowsContact, err := DB.Query(QueryContact)
if err != nil {
fmt.Println("b", err)
fmt.Println("a", err)
}
for rowsContact.Next() {
var c Contact
err = rowsContact.Scan(&c.Id, &c.OwnerId, &c.AdUserId, &c.DisplayName, &c.Phone, &c.Mobile, &c.Homeoffice, &c.Email, &c.Room, &c.DepartmentId, &c.LocationId)
if err != nil {
fmt.Println("b", err)
}
contList = append(contList, c)
}
contList = append(contList, c)
}
rows1, err := DB.Query(QueryKeyword)
if err != nil {
fmt.Println("c", err)
}
var keywordList []Keyword
for rows1.Next() {
var c0 Keyword
err = rows1.Scan(&c0.Id, &c0.Owner, &c0.Name)
if QueryKeyword != "" {
rowsKeyword, err := DB.Query(QueryKeyword)
if err != nil {
fmt.Println("d", err)
fmt.Println("c", err)
}
for rowsKeyword.Next() {
var c0 Keyword
err = rowsKeyword.Scan(&c0.Id, &c0.Owner, &c0.Name)
if err != nil {
fmt.Println("d", err)
}
keywordList = append(keywordList, c0)
}
keywordList = append(keywordList, c0)
}
return DataPort{Contacts: contList, Keywords: keywordList}
}
@@ -283,44 +290,39 @@ func main() {
tplFull.ExecuteTemplate(w, "layout", nil)
})*/
mux.HandleFunc("/htmx/kontakt", func(w http.ResponseWriter, r *http.Request) {
mux.HandleFunc("/htmx/contact", func(w http.ResponseWriter, r *http.Request) {
if err := r.ParseForm(); err != nil {
http.Error(w, "bad request", http.StatusBadRequest)
return
}
sparam := strings.TrimSpace(r.Form.Get("search"))
fmt.Println("All_OK", sparam)
sqlq := "SELECT * FROM contact c WHERE c.contact_displayname LIKE '%" + sparam + "%' OR c.contact_phone LIKE '%" + sparam + "%' OR c.contact_mobile LIKE '%" + sparam + "%' OR c.contact_homeoffice LIKE '%" + sparam + "%';"
rows, err := db.Query(sqlq)
if err != nil {
w.WriteHeader(http.StatusInternalServerError)
}
var contList []Contact
for rows.Next() {
var c Contact
err = rows.Scan(&c.Id)
contList = append(contList, c)
}
tplKontakt.ExecuteTemplate(w, "kontakt", contList)
D := GetDataReturnDataPort(sqlq, "")
tplKontakt.ExecuteTemplate(w, "kontakt", D)
})
mux.HandleFunc("/htmx/kontaktbyschlagwort", func(w http.ResponseWriter, r *http.Request) {
tplKontakt.ExecuteTemplate(w, "kontakt", nil)
})
mux.HandleFunc("/htmx/amt", func(w http.ResponseWriter, r *http.Request) {
mux.HandleFunc("/htmx/department", func(w http.ResponseWriter, r *http.Request) {
if err := r.ParseForm(); err != nil {
http.Error(w, "bad request", http.StatusBadRequest)
return
}
sparam := strings.TrimSpace(r.Form.Get("search"))
fmt.Println("Department_OK", sparam)
sqlq := "SELECT c.* FROM contact c JOIN department d ON c.contact_department_id = d.department_id WHERE d.department_name LIKE '%" + sparam + "%';"
D := GetDataReturnDataPort(sqlq, "")
tplKontakt.ExecuteTemplate(w, "kontakt", D)
})
mux.HandleFunc("/htmx/room", func(w http.ResponseWriter, r *http.Request) {
tplKontakt.ExecuteTemplate(w, "kontakt", nil)
})
mux.HandleFunc("/htmx/raum", func(w http.ResponseWriter, r *http.Request) {
tplKontakt.ExecuteTemplate(w, "kontakt", nil)
})
mux.HandleFunc("/htmx/gebaeude", func(w http.ResponseWriter, r *http.Request) {
mux.HandleFunc("/htmx/location", func(w http.ResponseWriter, r *http.Request) {
tplKontakt.ExecuteTemplate(w, "kontakt", nil)
})