searching & pagination

This commit is contained in:
Sas Andy
2024-05-22 08:40:54 +07:00
parent b1dc143e83
commit e6afeb74b8
4 changed files with 121 additions and 4 deletions

View File

@@ -2,15 +2,19 @@ package dev_handlers
import (
breadcrumadmin "cpone/component/breadcrumbadmin"
customtextfieldsearch "cpone/component/customtextfieldsearch"
navbarmenu "cpone/component/navbar"
"cpone/component/pagination"
sidebaruserprofile "cpone/component/sidebar_user_profile"
"cpone/models"
"cpone/services"
"cpone/utils"
dev_mdusergroupview "cpone/views/dev/mdusergroup"
"strconv"
"fmt"
"github.com/a-h/templ"
"github.com/labstack/echo/v4"
"go.uber.org/zap"
)
@@ -91,7 +95,7 @@ func (lh *MdUserGroupHandler) HandleShowMdUserGroupScreen(c echo.Context) error
sidebaruserprofileComponent := sidebaruserprofile.Navbaruserprofile(dataUser)
//Table component
dataUserGroup, _, err := lh.MdUserGroupServices.GetListMdUserGroup("", 1, 10)
dataUserGroup, totalPage, err := lh.MdUserGroupServices.GetListMdUserGroup("", 1, 5)
if err != nil {
defer logger.Sync()
logger.Info("ERROR GET USER GROUP",
@@ -102,11 +106,108 @@ func (lh *MdUserGroupHandler) HandleShowMdUserGroupScreen(c echo.Context) error
}
tableComponent := dev_mdusergroupview.TableUserGroup(dataUserGroup, tableID)
//filter user group component
usergroupFilterComponent := customtextfieldsearch.MainCustomTextFieldSearchV2(searchID,
"search",
"Cari Kode/Nama",
"text",
"/dev/usergroupv2/filter",
"input changed delay:500ms, search",
"#"+paginationID, "", "", "outerHTML", "#tableID, #paginationID, #searchID")
//Pagination
userGroupPaginationComponent := pagination.PaginationV2(
totalPage,
1,
"/dev/usergroupv2/changepage",
paginationID,
"#tableID, #searchID, #"+searchID+", #paginationID",
"#"+paginationID,
"outerHTML", "", "",
)
//content js & css
content := dev_mdusergroupview.MdUserGroupScreen(tableID, paginationID, searchID, breadcrumbComponent, tableComponent)
content := dev_mdusergroupview.MdUserGroupScreen(
tableID,
paginationID,
searchID,
breadcrumbComponent,
tableComponent,
usergroupFilterComponent,
userGroupPaginationComponent)
css := dev_mdusergroupview.CssMdUserGroup()
js := dev_mdusergroupview.JsMdUserGroup()
view := dev_mdusergroupview.ShowMdUserGroupScreen(title, content, css, js, navbarmenuComponent, navbaruserComponent, sidebaruserprofileComponent)
return utils.View(c, view)
}
func (lh *MdUserGroupHandler) HandleFilterMdUserGroup(c echo.Context) error {
search := c.QueryParam("search")
searchID := c.QueryParam("searchID")
tableID := c.QueryParam("tableID")
paginationID := c.QueryParam("paginationID")
var retval []templ.Component
logger, _ := zap.NewProduction()
dataUserGroup, totalpage, err := lh.MdUserGroupServices.GetListMdUserGroup(search, 1, 5)
if err != nil {
defer logger.Sync()
logger.Info("ERROR GET USER GROUP",
zap.Any("error", err),
)
fmt.Println(dataUserGroup)
return err
}
tableComponent := dev_mdusergroupview.TableUserGroup(dataUserGroup, tableID)
userGroupPaginationComponent := pagination.PaginationV2(
totalpage,
1,
"/dev/usergroupv2/changepage",
paginationID,
"#tableID, #searchID, #"+searchID+", #paginationID",
"#"+paginationID,
"outerHTML", "", "",
)
retval = append(retval, tableComponent)
retval = append(retval, userGroupPaginationComponent)
return utils.ViewMulti(c, retval)
}
func (lh *MdUserGroupHandler) HandleChangePageMdUserGroup(c echo.Context) error {
search := c.QueryParam("search")
pageparam := c.QueryParam("page")
tableID := c.QueryParam("tableID")
searchID := c.QueryParam("searchID")
paginationID := c.QueryParam("paginationID")
var retval []templ.Component
logger, _ := zap.NewProduction()
page, err := strconv.Atoi(pageparam)
if err != nil {
defer logger.Sync()
logger.Info("ERROR CONVERT PAGE PARAM",
zap.Any("page", page),
zap.Any("error ", err),
)
return err
}
dataUserGroup, totalpage, err := lh.MdUserGroupServices.GetListMdUserGroup(search, page, 5)
if err != nil {
defer logger.Sync()
logger.Info("ERROR GET USER GROUP",
zap.Any("error", err),
)
fmt.Println(dataUserGroup)
return err
}
tableComponent := dev_mdusergroupview.TableUserGroup(dataUserGroup, tableID)
userGroupPaginationComponent := pagination.PaginationV2(
totalpage,
page,
"/dev/usergroupv2/changepage",
paginationID,
"#tableID, #searchID, #"+searchID+", #paginationID",
"#"+paginationID,
"outerHTML", "", "",
)
retval = append(retval, tableComponent)
retval = append(retval, userGroupPaginationComponent)
return utils.ViewMulti(c, retval)
}

View File

@@ -216,5 +216,7 @@ func SetupRoutesDev(app *echo.Echo, appStore db.AppStore) {
devMdUserGroupServices := dev_services.NewMdUserGroupServices(appStore)
devMdUserGroupHandlers := dev_handlers.NewMdUserGroupHandler(devMdUserGroupServices)
dev.GET("/usergroupv2", devMdUserGroupHandlers.HandleShowMdUserGroupScreen)
dev.GET("/usergroupv2/filter", devMdUserGroupHandlers.HandleFilterMdUserGroup)
dev.GET("/usergroupv2/changepage", devMdUserGroupHandlers.HandleChangePageMdUserGroup)
}