master unit listing

This commit is contained in:
Hanan Askarim
2024-05-25 21:10:18 +07:00
parent 4ea514c3f0
commit f6ac4944e8
8 changed files with 791 additions and 0 deletions

View File

@@ -0,0 +1,228 @@
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_mdnatunitview "cpone/views/dev/mdnatunit"
"fmt"
"strconv"
"github.com/a-h/templ"
"github.com/labstack/echo/v4"
"go.uber.org/zap"
)
type MdNatUnitServices interface {
GetListMdNatUnit(search string, currentPage int, rowPerPage int) ([]models.NatUnit, int, error)
GetMdNatUnitBreadCrumb(title string) (models.BreadCrumbV1, error)
}
func NeWMdNatUnitHandler(nu MdNatUnitServices) *MdNatUnitHandler {
return &MdNatUnitHandler{
MdNatUnitServices: nu,
}
}
type MdNatUnitHandler struct {
MdNatUnitServices MdNatUnitServices
}
func (nh *MdNatUnitHandler) HandleShowMdNatUnitScreen(c echo.Context) error {
logger, _ := zap.NewProduction()
tableID := utils.GenerateRandomID("tablebody")
paginationID := utils.GenerateRandomID("paginationid")
searchID := utils.GenerateRandomID("searchid")
dataMenu, err := services.GetMenu()
fmt.Println(dataMenu)
fmt.Println(err)
if err != nil {
fmt.Println(dataMenu)
return err
}
//get user login
dataUser, err := services.GetUserLogin()
fmt.Println(dataUser)
fmt.Println(err)
if err != nil {
fmt.Println(dataUser)
return err
}
defer logger.Sync()
logger.Info("LOAD USER DEV",
zap.Any("data", dataUser),
)
title := "Master Unit"
dataBreadCrumb, err := nh.MdNatUnitServices.GetMdNatUnitBreadCrumb(title)
fmt.Println(dataBreadCrumb)
fmt.Println(err)
if err != nil {
defer logger.Sync()
logger.Info("ERROR BREADCRUMB DEV",
zap.Any("error", err),
)
fmt.Println(dataBreadCrumb)
return err
}
defer logger.Sync()
logger.Info("LOAD BREADCRUMB DEV",
zap.Any("data", dataBreadCrumb),
)
//Breadcrumb component
breadcrumbComponent := breadcrumadmin.MainBreadcrumbAdminV1(dataBreadCrumb)
// navbar menu
navbarmenuComponent := navbarmenu.NavbarMenu(dataMenu)
// navbar user
navbaruserComponent := navbarmenu.Navbar(dataUser)
// sidebar
sidebaruserprofileComponent := sidebaruserprofile.Navbaruserprofile(dataUser)
//Table component
dataNatUnit, totalPage, err := nh.MdNatUnitServices.GetListMdNatUnit("", 1, 5)
if err != nil {
defer logger.Sync()
logger.Info("ERROR GET NAT UNTI",
zap.Any("error", err),
)
fmt.Println(dataNatUnit)
return err
}
tableComponent := dev_mdnatunitview.TableNatUnit(dataNatUnit,
tableID,
)
//filter user group component
natUnitFilterComponent := customtextfieldsearch.MainCustomTextFieldSearchV2(searchID,
"search",
"Cari Kode/Nama",
"text",
"/dev/md/natunit/filter",
"input changed delay:500ms, search",
"#"+paginationID, "", "", "outerHTML", "#tableID, #paginationID, #searchID")
//Pagination
natUnitPaginationComponent := pagination.PaginationV2(
totalPage,
1,
"/dev/md/natunit/changepage",
paginationID,
"#tableID, #searchID, #"+searchID+", #paginationID",
"#"+paginationID,
"outerHTML", "", "",
)
// content, css, js
content := dev_mdnatunitview.MdNatUnitScreen(
tableID,
paginationID,
searchID,
breadcrumbComponent,
tableComponent,
natUnitFilterComponent,
natUnitPaginationComponent,
)
css := dev_mdnatunitview.CssMdNatUnit()
js := dev_mdnatunitview.JsMdNatUnit()
view := dev_mdnatunitview.ShowMdNatUnitScreen(
title,
content,
css,
js,
navbarmenuComponent,
navbaruserComponent,
sidebaruserprofileComponent,
)
return utils.View(c, view)
}
func (nh *MdNatUnitHandler) HandleFilterMdNatUnit(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()
dataNatUnit, totalpage, err := nh.MdNatUnitServices.GetListMdNatUnit(search, 1, 5)
if err != nil {
defer logger.Sync()
logger.Info("ERROR GET NAT UNTI",
zap.Any("error", err),
)
fmt.Println(dataNatUnit)
return err
}
tableComponent := dev_mdnatunitview.TableNatUnit(dataNatUnit,
tableID)
natUnitPaginationComponent := pagination.PaginationV2(
totalpage,
1,
"/dev/md/natunit/changepage",
paginationID,
"#tableID, #searchID, #"+searchID+", #paginationID",
"#"+paginationID,
"outerHTML", "", "",
)
retval = append(retval, tableComponent)
retval = append(retval, natUnitPaginationComponent)
return utils.ViewMulti(c, retval)
}
func (nh *MdNatUnitHandler) HandlerChangePageMdNatUnit(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
}
dataNatUnit, totalpage, err := nh.MdNatUnitServices.GetListMdNatUnit(search, page, 5)
if err != nil {
defer logger.Sync()
logger.Info("ERROR GET NAT UNIT",
zap.Any("error", err),
)
fmt.Println(dataNatUnit)
return err
}
tableComponent := dev_mdnatunitview.TableNatUnit(dataNatUnit,
tableID)
natUnitPaginationComponent := pagination.PaginationV2(
totalpage,
page,
"/dev/md/natunit/changepage",
paginationID,
"#tableID, #searchID, #"+searchID+", #paginationID",
"#"+paginationID,
"outerHTML", "", "",
)
retval = append(retval, tableComponent)
retval = append(retval, natUnitPaginationComponent)
return utils.ViewMulti(c, retval)
}

View File

@@ -247,4 +247,10 @@ func SetupRoutesDev(app *echo.Echo, appStore db.AppStore) {
dev.POST("/md/usergroupv2/closedeleteform", devMdUserGroupHandlers.HandleCloseFormDelete)
dev.POST("/md/usergroupv2/delete", devMdUserGroupHandlers.HandleDeleteUserGroup)
// masterdata nat unit
devMdNatUnitServices := dev_services.NewMdNatUnitServices(appStore)
devMdNatUnitHandlers := dev_handlers.NeWMdNatUnitHandler(devMdNatUnitServices)
dev.GET("/md/natunit", devMdNatUnitHandlers.HandleShowMdNatUnitScreen)
dev.GET("/md/natunit/filter", devMdNatUnitHandlers.HandleFilterMdNatUnit)
dev.GET("/md/natunit/changepage", devMdNatUnitHandlers.HandlerChangePageMdNatUnit)
}