add search dan pagination

This commit is contained in:
Hanan Askarim
2024-05-20 17:27:54 +07:00
parent ef8a98e586
commit d470943c90
5 changed files with 114 additions and 3 deletions

View File

@@ -11,6 +11,7 @@ import (
"cpone/utils"
"cpone/views/dev/masterkelainan"
"fmt"
"strconv"
"github.com/a-h/templ"
"github.com/labstack/echo/v4"
@@ -145,3 +146,78 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error
return utils.View(c, si)
}
func (lh *MasterKelainanHandler) HandlerShowMasterKelainanSearch(c echo.Context) error {
search := c.QueryParam("search")
tableID := c.QueryParam("tableID")
paginationID := c.QueryParam("paginationID")
logger, _ := zap.NewProduction()
dataKelainan, totalpage, err := lh.MasterKelainanService.GetListMasterKelainan(search, 1, 5)
if err != nil {
defer logger.Sync()
logger.Info("ERROR GET KELAINAN",
zap.Any("error", err),
)
fmt.Println(dataKelainan)
return err
}
contentKelainanComponent := masterkelainan.TableKelainan(
dataKelainan, tableID)
kelainanPaginationComponent := pagination.PaginationV2(totalpage,
1,
"/dev/kelainanpagination",
paginationID,
"#tableID, #searchID, #paginationID", "#"+paginationID, "outerHTML", "")
swapTable := masterkelainan.SwapTableKelainan(kelainanPaginationComponent, contentKelainanComponent)
si := swapTable
return utils.View(c, si)
}
func (lh *MasterKelainanHandler) HandlerShowMasterKelainanPagination(c echo.Context) error {
logger, _ := zap.NewProduction()
search := c.QueryParam("search")
pageparam := c.QueryParam("page")
tableID := c.QueryParam("tableID")
paginationID := c.QueryParam("paginationID")
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
}
dataKelainan, totalpage, err := lh.MasterKelainanService.GetListMasterKelainan(search, page, 5)
if err != nil {
defer logger.Sync()
logger.Info("ERROR GET KELAINAN",
zap.Any("error", err),
)
fmt.Println(dataKelainan)
return err
}
contentKelainanComponent := masterkelainan.TableKelainan(
dataKelainan, tableID)
kelainanPaginationComponent := pagination.PaginationV2(totalpage,
page,
"/dev/kelainanpagination",
paginationID,
"#tableID, #searchID, #paginationID", "#"+paginationID, "outerHTML", "")
swapTable := masterkelainan.SwapTableKelainan(kelainanPaginationComponent, contentKelainanComponent)
si := swapTable
return utils.View(c, si)
}

View File

@@ -216,4 +216,6 @@ func SetupRoutesDev(app *echo.Echo, appStore db.AppStore) {
devKLServices := dev_services.NewServicesMasterKelainan(appStore)
devKLhandlers := dev_handlers.NewMasterKelainanHandler(devKLServices)
dev.GET("/kelainan", devKLhandlers.HandlerShowMasterKelainan)
dev.GET("/searchkelainan", devKLhandlers.HandlerShowMasterKelainanSearch)
dev.GET("/kelainanpagination", devKLhandlers.HandlerShowMasterKelainanPagination)
}

View File

@@ -94,7 +94,7 @@ func (su *ServicesMasterKelainan) GetListMasterKelainan(search string, currentPa
query := `
SELECT
ROW_NUMBER() OVER () AS nomor,
ROW_NUMBER() OVER (ORDER BY Mcu_KelainanGroupID ASC) AS nomor,
Mcu_KelainanGroupID,
Mcu_KelainanGroupName,
Mcu_KelainanGroupIsActive,

View File

@@ -177,7 +177,12 @@ templ ShowKelainan(
templ TableKelainan(data []models.Kelainan, tableID string) {
<div id={ tableID } hx-swap-oob={ "#" + tableID }>
@tablecomponent.TableV3([]string{"NO", "GRUP KELAINAN", "AKSI"},
[]string{"15%", "65%", "20%"},
[]string{"10%", "70%", "20%"},
TableRowV1(data))
</div>
}
templ SwapTableKelainan(pagination templ.Component, table templ.Component) {
@pagination
@table
}

View File

@@ -329,7 +329,7 @@ func TableKelainan(data []models.Kelainan, tableID string) templ.Component {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = tablecomponent.TableV3([]string{"NO", "GRUP KELAINAN", "AKSI"},
[]string{"15%", "65%", "20%"},
[]string{"10%", "70%", "20%"},
TableRowV1(data)).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
@@ -344,3 +344,31 @@ func TableKelainan(data []models.Kelainan, tableID string) templ.Component {
return templ_7745c5c3_Err
})
}
func SwapTableKelainan(pagination templ.Component, table 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 {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var14 := templ.GetChildren(ctx)
if templ_7745c5c3_Var14 == nil {
templ_7745c5c3_Var14 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
templ_7745c5c3_Err = pagination.Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = table.Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}