md nonlab template listing data + filter + pagination
This commit is contained in:
252
handlers/dev/md.nonlabtemplate.handlers.go
Normal file
252
handlers/dev/md.nonlabtemplate.handlers.go
Normal file
@@ -0,0 +1,252 @@
|
||||
package dev_handlers
|
||||
|
||||
import (
|
||||
breadcrumadmin "cpone/component/breadcrumbadmin"
|
||||
"cpone/component/customtextfieldsearch"
|
||||
navbarmenu "cpone/component/navbar"
|
||||
"cpone/component/pagination"
|
||||
sidebaruserprofile "cpone/component/sidebar_user_profile"
|
||||
"cpone/models"
|
||||
"cpone/services"
|
||||
"cpone/utils"
|
||||
dev_mdnonlabtemplateview "cpone/views/dev/mdnonlabtemplate"
|
||||
"fmt"
|
||||
"strconv"
|
||||
|
||||
"github.com/a-h/templ"
|
||||
"github.com/labstack/echo/v4"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
type MDNonLabTemplateServices interface {
|
||||
GetMDNonLabTemplateBreadcrumb() (models.BreadCrumbV1, error)
|
||||
GetMDNonLabTemplateData(search string, currentPage int, rowPerPage int) ([]models.MDNonLabTemplate, int, error)
|
||||
}
|
||||
|
||||
type MDNonLabTemplateHandler struct {
|
||||
MDNonLabTemplateServices MDNonLabTemplateServices
|
||||
}
|
||||
|
||||
func NewMDNonLabTemplateHandler(nlt MDNonLabTemplateServices) *MDNonLabTemplateHandler {
|
||||
return &MDNonLabTemplateHandler{
|
||||
MDNonLabTemplateServices: nlt,
|
||||
}
|
||||
}
|
||||
|
||||
func (mdnlt *MDNonLabTemplateHandler) HandleShowMDNonLabTemplateScreen(c echo.Context) error {
|
||||
logger, _ := zap.NewProduction()
|
||||
|
||||
tableID := utils.GenerateRandomID("tableid")
|
||||
paginationID := utils.GenerateRandomID("paginationid")
|
||||
searchID := utils.GenerateRandomID("searchid")
|
||||
dialogAddID := utils.GenerateRandomID("dialogaddid")
|
||||
dialogAddBodyID := utils.GenerateRandomID("dialogaddbodyid")
|
||||
dialogEditID := utils.GenerateRandomID("dialogeditid")
|
||||
dialogEditBodyID := utils.GenerateRandomID("dialogeditbodyid")
|
||||
dialogDeleteID := utils.GenerateRandomID("dialogdeleteid")
|
||||
dialogDeleteBodyID := utils.GenerateRandomID("dialogdeletebodyid")
|
||||
|
||||
dataMenu, err := services.GetMenu()
|
||||
if err != nil {
|
||||
fmt.Println(dataMenu)
|
||||
return err
|
||||
}
|
||||
|
||||
dataUser, err := services.GetUserLogin()
|
||||
if err != nil {
|
||||
fmt.Println(dataUser)
|
||||
return err
|
||||
}
|
||||
defer logger.Sync()
|
||||
logger.Info("LOAD USER DEV", zap.Any("data", dataUser))
|
||||
|
||||
title := "Master Non-lab Template"
|
||||
|
||||
dataBreadCrumb, err := mdnlt.MDNonLabTemplateServices.GetMDNonLabTemplateBreadcrumb()
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Info("ERROR BREADCRUMB DEV", zap.Any("error", err))
|
||||
return err
|
||||
}
|
||||
defer logger.Sync()
|
||||
logger.Info("LOAD BREADCRUMB DEV", zap.Any("data", dataBreadCrumb))
|
||||
|
||||
breadcrumbComp := breadcrumadmin.MainBreadcrumbAdminV1(dataBreadCrumb)
|
||||
navbarmenuComp := navbarmenu.NavbarMenu(dataMenu)
|
||||
navbaruserComp := navbarmenu.Navbar(dataUser)
|
||||
sidebarusrComp := sidebaruserprofile.Navbaruserprofile(dataUser)
|
||||
|
||||
dataList, totalPage, err := mdnlt.MDNonLabTemplateServices.GetMDNonLabTemplateData("", 1, 5)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Info("ERROR GET DATA DEV", zap.Any("error", err))
|
||||
return err
|
||||
}
|
||||
|
||||
tableComp := dev_mdnonlabtemplateview.TableNonLabTemplate(dataList,
|
||||
tableID,
|
||||
"/dev/md/nonlabtemplate/openedit",
|
||||
"#"+dialogEditBodyID,
|
||||
"outerHTML",
|
||||
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
|
||||
"/dev/md/nonlabtemplate/opendelete",
|
||||
"#"+dialogDeleteBodyID,
|
||||
"outerHTML",
|
||||
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
|
||||
)
|
||||
|
||||
tableFilter := customtextfieldsearch.MainCustomTextFieldSearchV3(searchID,
|
||||
"search",
|
||||
"Cari Nama Template",
|
||||
"text",
|
||||
"/dev/md/nonlabtemplate/filter",
|
||||
"input changed delay:500ms, search",
|
||||
"#"+paginationID,
|
||||
"#loadingcontent", "",
|
||||
"outerHTML",
|
||||
"#tableID, #paginationID, #searchID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
|
||||
dev_mdnonlabtemplateview.BeforeRequestContent(),
|
||||
dev_mdnonlabtemplateview.AfterRequestContent(),
|
||||
)
|
||||
|
||||
tablePagination := pagination.PaginationV3(totalPage,
|
||||
1,
|
||||
"/dev/md/nonlabtemplate/changepage",
|
||||
paginationID,
|
||||
"#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
|
||||
"#"+paginationID,
|
||||
"outerHTML", "", "",
|
||||
dev_mdnonlabtemplateview.BeforeRequestContent(),
|
||||
dev_mdnonlabtemplateview.AfterRequestContent(),
|
||||
)
|
||||
|
||||
content := dev_mdnonlabtemplateview.MDNonLabTemplateScreen(
|
||||
tableID,
|
||||
paginationID,
|
||||
searchID,
|
||||
dialogAddID,
|
||||
dialogAddBodyID,
|
||||
dialogEditID,
|
||||
dialogEditBodyID,
|
||||
dialogDeleteID,
|
||||
dialogDeleteBodyID,
|
||||
breadcrumbComp,
|
||||
tableFilter,
|
||||
tableComp,
|
||||
tablePagination,
|
||||
)
|
||||
css := dev_mdnonlabtemplateview.CSSMDNonLabTemplate()
|
||||
js := dev_mdnonlabtemplateview.JSSMDNonLabTemplate()
|
||||
|
||||
view := dev_mdnonlabtemplateview.ShowMDNonLabTemplate(
|
||||
title,
|
||||
content,
|
||||
css,
|
||||
js,
|
||||
navbarmenuComp,
|
||||
navbaruserComp,
|
||||
sidebarusrComp,
|
||||
)
|
||||
|
||||
return utils.View(c, view)
|
||||
}
|
||||
|
||||
func (mdnlt *MDNonLabTemplateHandler) HandleFilterMDNonLabTemplate(c echo.Context) error {
|
||||
search := c.QueryParam("search")
|
||||
searchID := c.QueryParam("searchID")
|
||||
tableID := c.QueryParam("tableID")
|
||||
paginationID := c.QueryParam("paginationID")
|
||||
dialogEditBodyID := c.QueryParam("dialogEditBodyID")
|
||||
dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID")
|
||||
var retval []templ.Component
|
||||
logger, _ := zap.NewProduction()
|
||||
|
||||
dataList, totalPage, err := mdnlt.MDNonLabTemplateServices.GetMDNonLabTemplateData(search, 1, 5)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Info("ERROR GET DATA", zap.Any("error", err))
|
||||
return err
|
||||
}
|
||||
|
||||
tableComp := dev_mdnonlabtemplateview.TableNonLabTemplate(dataList,
|
||||
tableID,
|
||||
"/dev/md/nonlabtemplate/openedit",
|
||||
"#"+dialogEditBodyID,
|
||||
"outerHTML",
|
||||
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
|
||||
"/dev/md/nonlabtemplate/opendelete",
|
||||
"#"+dialogDeleteBodyID,
|
||||
"outerHTML",
|
||||
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
|
||||
)
|
||||
|
||||
tablePagination := pagination.PaginationV3(
|
||||
totalPage,
|
||||
1,
|
||||
"/dev/md/nonlabtemplate/changepage",
|
||||
paginationID,
|
||||
"#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
|
||||
"#"+paginationID,
|
||||
"outerHTML", "", "",
|
||||
dev_mdnonlabtemplateview.BeforeRequestContent(),
|
||||
dev_mdnonlabtemplateview.AfterRequestContent(),
|
||||
)
|
||||
|
||||
retval = append(retval, tableComp)
|
||||
retval = append(retval, tablePagination)
|
||||
return utils.ViewMulti(c, retval)
|
||||
}
|
||||
|
||||
func (mdnlt *MDNonLabTemplateHandler) HandleChangePageMDNonLabTemplate(c echo.Context) error {
|
||||
search := c.QueryParam("search")
|
||||
pageparam := c.QueryParam("page")
|
||||
tableID := c.QueryParam("tableID")
|
||||
searchID := c.QueryParam("searchID")
|
||||
paginationID := c.QueryParam("paginationID")
|
||||
dialogEditBodyID := c.QueryParam("dialogEditBodyID")
|
||||
dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID")
|
||||
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
|
||||
}
|
||||
|
||||
dataList, totalPage, err := mdnlt.MDNonLabTemplateServices.GetMDNonLabTemplateData(search, page, 5)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Info("ERROR CONVERT PAGE PARAM", zap.Any("error", err))
|
||||
return err
|
||||
}
|
||||
|
||||
tableComp := dev_mdnonlabtemplateview.TableNonLabTemplate(dataList,
|
||||
tableID,
|
||||
"/dev/md/nonlabtemplate/openedit",
|
||||
"#"+dialogEditBodyID,
|
||||
"outerHTML",
|
||||
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
|
||||
"/dev/md/nonlabtemplate/opendelete",
|
||||
"#"+dialogDeleteBodyID,
|
||||
"outerHTML",
|
||||
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
|
||||
)
|
||||
|
||||
tablePagination := pagination.PaginationV3(
|
||||
totalPage,
|
||||
page,
|
||||
"/dev/md/nonlabtemplate/changepage",
|
||||
paginationID,
|
||||
"#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
|
||||
"#"+paginationID,
|
||||
"outerHTML", "", "",
|
||||
dev_mdnonlabtemplateview.BeforeRequestContent(),
|
||||
dev_mdnonlabtemplateview.AfterRequestContent(),
|
||||
)
|
||||
|
||||
retval = append(retval, tableComp)
|
||||
retval = append(retval, tablePagination)
|
||||
return utils.ViewMulti(c, retval)
|
||||
}
|
||||
Reference in New Issue
Block a user