search & oagination md pasien

This commit is contained in:
Sas Andy
2024-05-29 16:30:42 +07:00
parent fb29e251d9
commit 66ee6a7839
9 changed files with 1507 additions and 12 deletions

View File

@@ -0,0 +1,255 @@
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_mdpasienview "cpone/views/dev/mdpasien"
"strconv"
"github.com/a-h/templ"
"github.com/labstack/echo/v4"
"go.uber.org/zap"
)
type MdPasienServices interface {
GetListMdPasien(
search string,
currentPage int,
rowPerPage int) ([]models.Pasien, int, error)
GetMdPasienBreadCrumb(title string) (models.BreadCrumbV1, error)
}
func NewMdPasienHandler(us MdPasienServices) *MdPasienHandler {
return &MdPasienHandler{
MdPasienServices: us,
}
}
type MdPasienHandler struct {
MdPasienServices MdPasienServices
}
func (lh *MdPasienHandler) HandleShowMdPasienScreen(c echo.Context) error {
logger, _ := zap.NewProduction()
dataMenu, err := services.GetMenu()
if err != nil {
defer logger.Sync()
logger.Info("ERROR BREADCRUMB DEV",
zap.Any("error", err),
)
return err
}
paginationID := utils.GenerateRandomID("paginationID")
dialogAddID := utils.GenerateRandomID("dialogAdd")
dialogAddBodyID := utils.GenerateRandomID("dialogAddbody")
dialogEditID := utils.GenerateRandomID("dialogEdit")
dialogEditBodyID := utils.GenerateRandomID("dialogEditbody")
dialogDeleteID := utils.GenerateRandomID("dialogDelete")
dialogDeleteBodyID := utils.GenerateRandomID("dialogDeletebody")
tablePasienID := utils.GenerateRandomID("PasienID")
dataBreadCrumb, err := lh.MdPasienServices.GetMdPasienBreadCrumb("l")
if err != nil {
defer logger.Sync()
logger.Info("ERROR BREADCRUMB DEV",
zap.Any("error", err),
)
return err
}
//get user login
dataUser, err := services.GetUserLogin()
if err != nil {
defer logger.Sync()
logger.Info("ERROR BREADCRUMB DEV",
zap.Any("error", err),
)
return err
}
//Breadcrumb component
breadcrumbComponent := breadcrumadmin.MainBreadcrumbAdminV1(dataBreadCrumb)
// navbar menu
navbarmenuComponent := navbarmenu.NavbarMenu(dataMenu)
// navbar user
navbaruserComponent := navbarmenu.Navbar(dataUser)
// sidebar
sidebaruserprofileComponent := sidebaruserprofile.Navbaruserprofile(dataUser)
//filter pasien component
filterPasien := customtextfieldsearch.MainCustomTextFieldSearchV3(
"filtersearch",
"search",
"PID/Nama",
"text",
"/dev/md/pasien/filter",
"input changed delay:500ms",
"#"+paginationID,
"indicator",
"",
"outerHTML",
"#filtersearch, #tableID, #paginationID, #dialogAddID, #dialogAddBodyID, #dialogEditID, #dialogEditBodyID, #dialogDeleteBodyID, #dialogDeleteID, #currpage"+paginationID,
dev_mdpasienview.BeforeRequestContent(),
dev_mdpasienview.AfterRequestContent(),
)
//table component
pasienlist, totalPage, err := lh.MdPasienServices.GetListMdPasien("", 1, 5)
if err != nil {
defer logger.Sync()
logger.Info("ERRO GET DATA PASIEN",
zap.Any("error", err),
)
return err
}
tablePasien := dev_mdpasienview.TablePasien(pasienlist, tablePasienID,
"getEdit",
"trgtedt",
"swpedt",
"#filtersearch, #tableID, #paginationID, #dialogAddID, #dialogAddBodyID, #dialogEditID, #dialogEditBodyID, #dialogDeleteBodyID, #dialogDeleteID, #currpage"+paginationID,
"getdlt",
"trgtdlt",
"swpdlt",
"#filtersearch, #tableID, #paginationID, #dialogAddID, #dialogAddBodyID, #dialogEditID, #dialogEditBodyID, #dialogDeleteBodyID, #dialogDeleteID, #currpage"+paginationID)
//Pagination
paginationPasien := pagination.PaginationV3(totalPage, 1,
"/dev/md/pasien/pagination",
paginationID,
"#filtersearch, #tableID, #paginationID, #dialogAddID, #dialogAddBodyID, #dialogEditID, #dialogEditBodyID, #dialogDeleteBodyID, #dialogDeleteID, #currpage"+paginationID,
"#"+paginationID,
"outerHTML",
"",
"",
dev_mdpasienview.BeforeRequestContent(),
dev_mdpasienview.AfterRequestContent())
//Pasien Screen
cmpPasienContent := dev_mdpasienview.MdPasienScreen(
tablePasienID,
paginationID,
dialogAddID,
dialogAddBodyID,
dialogEditID,
dialogEditBodyID,
dialogDeleteID,
dialogDeleteBodyID,
breadcrumbComponent,
tablePasien,
filterPasien,
paginationPasien,
breadcrumbComponent,
breadcrumbComponent,
breadcrumbComponent)
jsMDpasien := dev_mdpasienview.JsMdPasien()
cssMdPasien := dev_mdpasienview.CssMdPasien()
viewMdPasienScreen := dev_mdpasienview.ShowMdPasienScreen("Master Pasien",
cmpPasienContent,
cssMdPasien,
jsMDpasien, navbarmenuComponent, navbaruserComponent, sidebaruserprofileComponent)
return utils.View(c, viewMdPasienScreen)
}
func (lh *MdPasienHandler) HandleSearchMdPasien(c echo.Context) error {
logger, _ := zap.NewProduction()
var retval []templ.Component
search := c.QueryParam("search")
// dialogEditBodyID := c.QueryParam("dialogEditBodyID")
// dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID")
tableID := c.QueryParam("tableID")
paginationID := c.QueryParam("paginationID")
pasienList, totalPage, err := lh.MdPasienServices.GetListMdPasien(search, 1, 5)
defer logger.Sync()
logger.Info("GET DATA BAHAN",
zap.Any("data", pasienList),
zap.Any("err", err),
zap.Any("totalPage", totalPage),
)
//Bahan Table
tablePasien := dev_mdpasienview.TablePasien(pasienList, tableID,
"getEdit",
"trgtedt",
"swpedt",
"#filtersearch, #tableID, #paginationID, #dialogAddID, #dialogAddBodyID, #dialogEditID, #dialogEditBodyID, #dialogDeleteBodyID, #dialogDeleteID, #currpage"+paginationID,
"getdlt",
"trgtdlt",
"swpdlt",
"#filtersearch, #tableID, #paginationID, #dialogAddID, #dialogAddBodyID, #dialogEditID, #dialogEditBodyID, #dialogDeleteBodyID, #dialogDeleteID, #currpage"+paginationID)
//Pagination
paginationPasien := pagination.PaginationV3(totalPage, 1,
"/dev/md/pasien/pagination",
paginationID,
"#filtersearch, #tableID, #paginationID, #dialogAddID, #dialogAddBodyID, #dialogEditID, #dialogEditBodyID, #dialogDeleteBodyID, #dialogDeleteID, #currpage"+paginationID,
"#"+paginationID,
"outerHTML",
"",
"",
dev_mdpasienview.BeforeRequestContent(),
dev_mdpasienview.AfterRequestContent())
retval = append(retval, tablePasien)
retval = append(retval, paginationPasien)
return utils.ViewMulti(c, retval)
}
func (lh *MdPasienHandler) HandlePaginationMdPasien(c echo.Context) error {
logger, _ := zap.NewProduction()
var retval []templ.Component
search := c.QueryParam("search")
// dialogEditBodyID := c.QueryParam("dialogEditBodyID")
// dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID")
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
}
pasienList, totalPage, err := lh.MdPasienServices.GetListMdPasien(search, page, 5)
defer logger.Sync()
logger.Info("GET DATA BAHAN",
zap.Any("data", pasienList),
zap.Any("err", err),
zap.Any("totalPage", totalPage),
)
tablePasien := dev_mdpasienview.TablePasien(pasienList, tableID,
"getEdit",
"trgtedt",
"swpedt",
"#filtersearch, #tableID, #paginationID, #dialogAddID, #dialogAddBodyID, #dialogEditID, #dialogEditBodyID, #dialogDeleteBodyID, #dialogDeleteID, #currpage"+paginationID,
"getdlt",
"trgtdlt",
"swpdlt",
"#filtersearch, #tableID, #paginationID, #dialogAddID, #dialogAddBodyID, #dialogEditID, #dialogEditBodyID, #dialogDeleteBodyID, #dialogDeleteID, #currpage"+paginationID)
//Pagination
paginationPasien := pagination.PaginationV3(totalPage, page,
"/dev/md/pasien/pagination",
paginationID,
"#filtersearch, #tableID, #paginationID, #dialogAddID, #dialogAddBodyID, #dialogEditID, #dialogEditBodyID, #dialogDeleteBodyID, #dialogDeleteID, #currpage"+paginationID,
"#"+paginationID,
"outerHTML",
"",
"",
dev_mdpasienview.BeforeRequestContent(),
dev_mdpasienview.AfterRequestContent())
retval = append(retval, tablePasien)
retval = append(retval, paginationPasien)
return utils.ViewMulti(c, retval)
}

View File

@@ -305,4 +305,12 @@ func SetupRoutesDev(app *echo.Echo, appStore db.AppStore) {
dev.GET("/md/bahan/opendelete", devMdBahanHandlers.HandleOpenDeleteMdBahan)
dev.POST("/md/bahan/closedeleteform", devMdBahanHandlers.HandleCloseDeleteMdBahan)
dev.POST("/md/bahan/delete", devMdBahanHandlers.HandleDeleteMdBahan)
//MD Pasien
devMdPasienServices := dev_services.NewMdPasienServices(appStore)
devMdPasienHandlers := dev_handlers.NewMdPasienHandler(devMdPasienServices)
dev.GET("/md/pasien", devMdPasienHandlers.HandleShowMdPasienScreen)
dev.GET("/md/pasien/filter", devMdPasienHandlers.HandleSearchMdPasien)
dev.GET("/md/pasien/pagination", devMdPasienHandlers.HandlePaginationMdPasien)
}