searching & pagination
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
}
|
||||
|
||||
@@ -11,7 +11,9 @@ templ MdUserGroupScreen(
|
||||
paginationID string,
|
||||
searchID string,
|
||||
breadcrumb templ.Component,
|
||||
tablecontent templ.Component) {
|
||||
tablecontent templ.Component,
|
||||
filterComponent templ.Component,
|
||||
paginationComponent templ.Component) {
|
||||
<div class="container-fluid">
|
||||
@customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "tableID",
|
||||
Name: "tableID",
|
||||
@@ -47,7 +49,9 @@ templ MdUserGroupScreen(
|
||||
>Add New</button>
|
||||
</div>
|
||||
</div>
|
||||
@filterComponent
|
||||
@tablecontent
|
||||
@paginationComponent
|
||||
</div>
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,9 @@ func MdUserGroupScreen(
|
||||
paginationID string,
|
||||
searchID string,
|
||||
breadcrumb templ.Component,
|
||||
tablecontent templ.Component) templ.Component {
|
||||
tablecontent templ.Component,
|
||||
filterComponent templ.Component,
|
||||
paginationComponent templ.Component) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
@@ -71,10 +73,18 @@ func MdUserGroupScreen(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = filterComponent.Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = tablecontent.Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = paginationComponent.Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
|
||||
Reference in New Issue
Block a user