autocomplete
This commit is contained in:
@@ -2,15 +2,19 @@ package handlers
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/url"
|
||||
"strconv"
|
||||
|
||||
"github.com/a-h/templ"
|
||||
"github.com/emarifer/go-templ-project-structure/services"
|
||||
"github.com/emarifer/go-templ-project-structure/views/component/customtextfieldautocomplete"
|
||||
mastermenuusergroup "github.com/emarifer/go-templ-project-structure/views/mastermenuusergroup"
|
||||
"github.com/labstack/echo/v4"
|
||||
)
|
||||
|
||||
type MasterMenuUserGroupService interface {
|
||||
GetMasterMenus() ([]services.MasterMenu, error)
|
||||
GetAutoComplete(param string, pageOf string, limit string) (string, string, string, []services.AutoComplete, error)
|
||||
}
|
||||
|
||||
func NewMasterMenuUserGroupHandler(us MasterMenuUserGroupService) *MasterMenuUserGroupHandler {
|
||||
@@ -48,6 +52,174 @@ func (lh *MasterMenuUserGroupHandler) HandlerShowMasterMenuUserGroup(c echo.Cont
|
||||
return lh.View(c, si)
|
||||
}
|
||||
|
||||
// initial
|
||||
func (lh *MasterMenuUserGroupHandler) HandlerListAutoComplete(c echo.Context) error {
|
||||
// param := c.Param("p")
|
||||
param := c.QueryParam("searchAutocomplete")
|
||||
pageOf := "1"
|
||||
limit := "3"
|
||||
|
||||
pageOfBefore, _ := strconv.Atoi(c.Param("pageOf"))
|
||||
limitBefore, _ := strconv.Atoi(c.Param("limit"))
|
||||
|
||||
if pageOfBefore > 1 {
|
||||
pageCurrent := pageOfBefore + 1
|
||||
pageOf = strconv.Itoa(pageCurrent)
|
||||
|
||||
limitCurrent := limitBefore
|
||||
limit = strconv.Itoa(limitCurrent)
|
||||
}
|
||||
|
||||
// urlCustomAutoComplete := "/client/autoCompleteLoadMore/"+ strconv.Itoa(pageOf)
|
||||
var si templ.Component
|
||||
if param != "" {
|
||||
totalData, foundCount, textFound, dataAutoComplete, err := lh.MasterMenuUserGroupService.GetAutoComplete(param, pageOf, limit)
|
||||
fmt.Println(param)
|
||||
// fmt.Println(err)
|
||||
if err != nil {
|
||||
fmt.Println(dataAutoComplete)
|
||||
return err
|
||||
}
|
||||
|
||||
foundCountInt, err := strconv.Atoi(foundCount)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
totalDataInt, err := strconv.Atoi(totalData)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// si := customtextfieldautocomplete.ListCustomAutoComplete(dataAutoComplete)
|
||||
|
||||
si = customtextfieldautocomplete.ListCustomAutoComplete(limit, param, totalDataInt, foundCountInt, pageOf, textFound, dataAutoComplete)
|
||||
} else {
|
||||
si = customtextfieldautocomplete.ListCustomAutoCompleteHide()
|
||||
}
|
||||
|
||||
return lh.View(c, si)
|
||||
}
|
||||
|
||||
// after selected
|
||||
func (lh *MasterMenuUserGroupHandler) HandlerListAutoCompleteAfterSelected(c echo.Context) error {
|
||||
// param := c.QueryParam("searchAutocomplete")
|
||||
|
||||
setvalue := c.Param("setvalue")
|
||||
setvalue, err := url.PathUnescape(setvalue)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
si := customtextfieldautocomplete.MainCustomAutoComplete(setvalue)
|
||||
|
||||
return lh.View(c, si)
|
||||
}
|
||||
|
||||
// load more autocomplete
|
||||
func (lh *MasterMenuUserGroupHandler) HandlerListAutoCompleteLoadMore(c echo.Context) error {
|
||||
// param := c.QueryParam("searchAutocomplete")
|
||||
|
||||
var totalPerPage int = 3
|
||||
paramSearch := c.Param("searchParam")
|
||||
searchParam, err := url.PathUnescape(paramSearch)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
pageOfStr := c.Param("pageOf")
|
||||
pageOfInt, err := strconv.Atoi(pageOfStr)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
pageOfInt++
|
||||
pageOf := strconv.Itoa(pageOfInt)
|
||||
|
||||
limitOfStr := c.Param("limit")
|
||||
limitOfInt, err := strconv.Atoi(limitOfStr)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
limitOfX := limitOfInt + totalPerPage
|
||||
limitOf := strconv.Itoa(limitOfX)
|
||||
|
||||
var si templ.Component
|
||||
|
||||
totalData, foundCount, textFound, dataAutoComplete, err := lh.MasterMenuUserGroupService.GetAutoComplete(searchParam, pageOf, limitOf)
|
||||
|
||||
// fmt.Println(param)
|
||||
// fmt.Println(err)
|
||||
|
||||
if err != nil {
|
||||
fmt.Println(dataAutoComplete)
|
||||
return err
|
||||
}
|
||||
|
||||
foundCountInt, err := strconv.Atoi(foundCount)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
totalDataInt, err := strconv.Atoi(totalData)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// si := customtextfieldautocomplete.ListCustomAutoComplete(dataAutoComplete)
|
||||
si = customtextfieldautocomplete.ListCustomAutoComplete(limitOf, searchParam, totalDataInt, foundCountInt, pageOf, textFound, dataAutoComplete)
|
||||
|
||||
// if param != "" {
|
||||
// textFound, dataAutoComplete, err := lh.MasterMenuUserGroupService.GetAutoComplete(param, pageOf)
|
||||
// fmt.Println(param)
|
||||
// // fmt.Println(err)
|
||||
// if err != nil {
|
||||
// fmt.Println(dataAutoComplete)
|
||||
// return err
|
||||
// }
|
||||
|
||||
// // si := customtextfieldautocomplete.ListCustomAutoComplete(dataAutoComplete)
|
||||
// si = customtextfieldautocomplete.ListCustomAutoComplete(pageOf, textFound, dataAutoComplete)
|
||||
|
||||
// } else {
|
||||
// si = customtextfieldautocomplete.ListCustomAutoCompleteHide()
|
||||
// }
|
||||
|
||||
return lh.View(c, si)
|
||||
}
|
||||
|
||||
func (lh *MasterMenuUserGroupHandler) HandlerAutoCompleteExample(c echo.Context) error {
|
||||
// dataAutoComplete, err := lh.MasterMenuUserGroupService.GetAutoCompleteExample()
|
||||
// fmt.Println(dataAutoComplete)
|
||||
// fmt.Println(err)
|
||||
// if err != nil {
|
||||
// fmt.Println(dataAutoComplete)
|
||||
// return err
|
||||
// }
|
||||
// fmt.Printf("%+v\n", dataMenu)
|
||||
// si := mastermenu.ShowMasterMenu("Master Menu",
|
||||
// mastermenu.MainMasterMenu(dataMenu),
|
||||
// mastermenu.CssMasterMenu(),
|
||||
// mastermenu.JsMasterMenu(),
|
||||
// )
|
||||
|
||||
// si := mastermenuusergroup.ShowMasterMenuUserGroup(
|
||||
// "Master Menu",
|
||||
// mastermenuusergroup.MainMasterMenuUserGroup(dataMenu),
|
||||
// mastermenuusergroup.CssMasterMenuUserGroup(),
|
||||
// mastermenuusergroup.JsMasterMenuUserGroup(),
|
||||
// )
|
||||
|
||||
si := customtextfieldautocomplete.ShowCustomAutoComplete("",
|
||||
customtextfieldautocomplete.MainCustomAutoComplete(""),
|
||||
customtextfieldautocomplete.CssCustomAutoComplete(),
|
||||
customtextfieldautocomplete.JsCustomAutoComplete(),
|
||||
)
|
||||
|
||||
return lh.View(c, si)
|
||||
}
|
||||
|
||||
func (uh *MasterMenuUserGroupHandler) View(c echo.Context, cmp templ.Component) error {
|
||||
c.Response().Header().Set(echo.HeaderContentType, echo.MIMETextHTML)
|
||||
|
||||
|
||||
@@ -26,6 +26,11 @@ func SetupRoutesLandingPage(app *echo.Echo, h *LandingPageHandler, mastermenuuse
|
||||
// mdgroup := clientgroup.Group("/md")
|
||||
// clientusergroup.GET("/md", mastermenuusergroupHandler.HandlerShowMasterMenuUserGroup)
|
||||
clientgroup.GET("/usergroup", mastermenuusergroupHandler.HandlerShowMasterMenuUserGroup)
|
||||
autocomplete := app.Group("/client")
|
||||
autocomplete.GET("/autocomplete", mastermenuusergroupHandler.HandlerListAutoComplete)
|
||||
autocomplete.GET("/autoCompleteLoadMore/:pageOf/:searchParam/:limit", mastermenuusergroupHandler.HandlerListAutoCompleteLoadMore)
|
||||
autocomplete.GET("/autoCompleteSetValue/:setvalue", mastermenuusergroupHandler.HandlerListAutoCompleteAfterSelected)
|
||||
|
||||
}
|
||||
func SetupRoutesPieChart(app *echo.Echo, h *PiechartHandler) {
|
||||
Lp := app.Group("/pie_chart")
|
||||
|
||||
Reference in New Issue
Block a user