step 1 : initial doctor list

This commit is contained in:
sindhu
2024-05-29 14:31:56 +07:00
parent 4ae90c5773
commit 6703e321be
8 changed files with 2507 additions and 0 deletions

View File

@@ -0,0 +1,380 @@
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"
"fmt"
dev_mddoctorview "cpone/views/dev/mddoctor"
"github.com/labstack/echo/v4"
"go.uber.org/zap"
)
type MdDoctorServices interface {
GetListMdDoctor(search string, currentPage int, rowPerPage int) ([]models.DoctorV1, int, error)
// GetMdGroupResultByID(id string) (models.DoctorV1, error)
// AddMdGroupResult(groupresultname string, groupresultflagpertest string, groupresultflagnonlab string, groupresultresumemcu string) (models.DoctorV1, error)
// EditMdGroupResult(id string, groupresultname string, groupresultflagpertest string, groupresultflagnonlab string, groupresultresumemcu string) (models.DoctorV1, error)
// DeleteMdGroupResult(id string) (models.DoctorV1, error)
GetMdDoctorBreadcrumb(title string) (models.BreadCrumbV1, error)
// GetMdGroupResultResumeMcu() ([]models.GroupResultResumeMcu, error)
}
func NewMdDoctorHandler(us MdDoctorServices) *MdDoctorHandler {
return &MdDoctorHandler{
MdDoctorServices: us,
}
}
type MdDoctorHandler struct {
MdDoctorServices MdDoctorServices
}
// INITIAL
func (lh *MdDoctorHandler) HandleShowMdDoctorScreen(c echo.Context) error {
logger, _ := zap.NewProduction()
//get sidebarmenu
tableID := utils.GenerateRandomID("tablebody")
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()
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 Group Result"
dataBreadCrumb, err := lh.MdDoctorServices.GetMdDoctorBreadcrumb(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
dataGroupResult, totalPage, err := lh.MdDoctorServices.GetListMdDoctor("", 1, 5)
if err != nil {
defer logger.Sync()
logger.Info("ERROR GET GROUP RESULT",
zap.Any("error", err),
)
fmt.Println(dataGroupResult)
return err
}
tableComponent := dev_mddoctorview.TableDoctor(dataGroupResult,
tableID,
"/dev/md/doctorv2/openedit",
"#"+dialogEditBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"/dev/md/doctorv2/opendelete",
"#"+dialogDeleteBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
)
//filter user group component
usergroupFilterComponent := customtextfieldsearch.MainCustomTextFieldSearchV3(searchID,
"search",
"Cari Nama / Doctor Code / Specialist",
"text",
"/dev/md/doctorv2/filter",
"input changed delay:500ms, search",
"#"+paginationID, "#loadingcontent", "", "outerHTML", "#tableID, #paginationID, #searchID,#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
dev_mddoctorview.BeforeRequestContentMdDoctor(),
dev_mddoctorview.AfterRequestContentMdDoctor())
//Pagination
userGroupPaginationComponent := pagination.PaginationV3(
totalPage,
1,
"/dev/md/doctorv2/changepage",
paginationID,
"#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"#"+paginationID,
"outerHTML", "", "",
dev_mddoctorview.BeforeRequestContentMdDoctor(),
dev_mddoctorview.AfterRequestContentMdDoctor(),
)
// // listItem
// dataResultMcu, err := lh.MdDoctorServices.GetMdGroupResultResumeMcu()
// fmt.Println(dataResultMcu)
// fmt.Println(err)
// if err != nil {
// defer logger.Sync()
// logger.Info("ERROR BREADCRUMB DEV",
// zap.Any("error", err),
// )
// fmt.Println(dataResultMcu)
// return err
// }
// defer logger.Sync()
// logger.Info("LOAD BREADCRUMB DEV",
// zap.Any("data", dataBreadCrumb),
// )
// // Component Dropdown MCU
// listItemResultMcuComponent := dev_mddoctorview.ItemDropdown(dataResultMcu, 0)
//modal add form
// dialogAddBodyCmp := dev_mddoctorview.BodyFormGroupResult(
// models.CustomTextFieldv2Prm{
// Label: "Group Result name",
// Name: "groupresultid",
// Placeholder: "Group Result name",
// Type: "hidden",
// ID: "groupresultid",
// },
// models.CustomTextFieldv2Prm{
// Label: "Group Result Name",
// Name: "groupresultname",
// Placeholder: "Group Result Name",
// Type: "text", ID: "groupresultname"},
// models.CustomCheckboxv1Prm{
// Label: "Group Result Flag Per Test (Dicentang Maka Ya)",
// Name: "groupresultflagpertest",
// ID: "groupresultflagpertest",
// Value: "N",
// },
// models.CustomCheckboxv1Prm{
// Label: "Group Result Flag Non Lab (Dicentang Maka Ya)",
// Name: "groupresultflagnonlab",
// ID: "groupresultflagnonlab",
// Value: "N",
// },
// models.CustomDropdownv1Prm{
// Label: "Group Result Resume MCU",
// Name: "groupresultresumemcu",
// ID: "groupresultresumemcu",
// },
// listItemResultMcuComponent,
// dialogAddBodyID, dev_mddoctorview.JsHideModalGroupResult(""))
// modalActioAddCmp := dev_mddoctorview.ActionFormGroupResult(
// "/dev/md/doctorv2/closeaddform",
// "#"+dialogAddBodyID,
// "outerHTML",
// "#"+dialogAddID)
// btnCloaseModalAdd := dev_mddoctorview.BtnCloseFormGroupResult(
// "/dev/md/doctorv2/closeaddform",
// "#"+dialogAddBodyID,
// "outerHTML",
// "#"+dialogAddID)
// // add
// modalAddFormComponent := dev_mddoctorview.GroupResultForm(
// models.GroupResultFormComponent{
// IDComponent: "formgroupresult",
// Link: "/dev/md/doctorv2/add",
// HxTarget: "#" + dialogAddBodyID,
// HxSwap: "outerHTML",
// HxInclude: "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogEditBodyID, #" + searchID + ", #currpage" + paginationID,
// ModalID: dialogAddID,
// ModalTitle: "New-Group Result",
// DialogBody: dialogAddBodyCmp,
// DialogAction: modalActioAddCmp,
// ButtonCLose: btnCloaseModalAdd,
// },
// )
// //modal edit form
// dialogEditBodyCmp := dev_mddoctorview.BodyFormGroupResult(
// models.CustomTextFieldv2Prm{
// Label: "Group Result name",
// Name: "groupresultid",
// Placeholder: "Group Result name",
// Type: "hidden",
// ID: "groupresultid",
// },
// models.CustomTextFieldv2Prm{
// Label: "Group Result Name",
// Name: "groupresultname",
// Placeholder: "Group Result Name",
// Type: "text", ID: "groupresultname"},
// models.CustomCheckboxv1Prm{
// Label: "Group Result Flag Per Test (Dicentang Maka Ya)",
// Name: "groupresultflagpertest",
// ID: "groupresultflagpertest",
// Value: "N",
// },
// models.CustomCheckboxv1Prm{
// Label: "Group Result Flag Non Lab (Dicentang Maka Ya)",
// Name: "groupresultflagnonlab",
// ID: "groupresultflagnonlab",
// Value: "N",
// },
// models.CustomDropdownv1Prm{
// Label: "Group Result Resume MCU",
// Name: "groupresultresumemcu",
// ID: "groupresultresumemcu",
// },
// listItemResultMcuComponent,
// dialogEditBodyID, dev_mddoctorview.JsHideModalGroupResult(""))
// modalActioEditCmp := dev_mddoctorview.ActionFormGroupResult(
// "/dev/md/doctorv2/closeeditform",
// "#"+dialogEditBodyID,
// "outerHTML",
// "#"+dialogEditID)
// btnCloaseModalEdit := dev_mddoctorview.BtnCloseFormGroupResult(
// "/dev/md/doctorv2/closeeditform",
// "#"+dialogEditBodyID,
// "outerHTML",
// "#"+dialogEditID)
// modalEditFormComponent := dev_mddoctorview.GroupResultForm(
// models.GroupResultFormComponent{
// IDComponent: "formgroupresult",
// Link: "/dev/md/doctorv2/edit",
// HxTarget: "#" + dialogEditBodyID,
// HxSwap: "outerHTML",
// HxInclude: "#tableID, #paginationID, #searchID, #dialogDeleteBodyID, #dialogEditBodyID, #dialogEditID, #" + searchID + ", #currpage" + paginationID,
// ModalID: dialogEditID,
// ModalTitle: "New-Group Result",
// DialogBody: dialogEditBodyCmp,
// DialogAction: modalActioEditCmp,
// ButtonCLose: btnCloaseModalEdit,
// },
// )
// //modal delete form
// dialogDeleteBodyCmp := dev_mddoctorview.BodyFormGroupResult(
// models.CustomTextFieldv2Prm{
// Label: "Group Result name",
// Name: "groupresultid",
// Placeholder: "Group Result name",
// Type: "hidden",
// ID: "groupresultid",
// },
// models.CustomTextFieldv2Prm{
// Label: "Group Result Name",
// Name: "groupresultname",
// Placeholder: "Group Result Name",
// Type: "text", ID: "groupresultname"},
// models.CustomCheckboxv1Prm{
// Label: "Group Result Flag Per Test (Dicentang Maka Ya)",
// Name: "groupresultflagpertest",
// ID: "groupresultflagpertest",
// Value: "N",
// },
// models.CustomCheckboxv1Prm{
// Label: "Group Result Flag Non Lab (Dicentang Maka Ya)",
// Name: "groupresultflagnonlab",
// ID: "groupresultflagnonlab",
// Value: "N",
// },
// models.CustomDropdownv1Prm{
// Label: "Group Result Resume MCU",
// Name: "groupresultresumemcu",
// ID: "groupresultresumemcu",
// },
// listItemResultMcuComponent,
// dialogDeleteBodyID, dev_mddoctorview.JsHideModalGroupResult(""))
// modalActioDeleteCmp := dev_mddoctorview.ActionFormGroupResultDelete(
// "/dev/md/doctorv2/closedeleteform",
// "#"+dialogDeleteBodyID,
// "outerHTML",
// "#"+dialogDeleteID)
// btnCloaseModalDelete := dev_mddoctorview.BtnCloseFormGroupResult(
// "/dev/md/doctorv2/closedeleteform",
// "#"+dialogDeleteBodyID,
// "outerHTML",
// "#"+dialogDeleteID)
// modalDeleteFormComponent := dev_mddoctorview.GroupResultForm(
// models.GroupResultFormComponent{
// IDComponent: "formgroupresult",
// Link: "/dev/md/doctorv2/delete",
// HxTarget: "#" + dialogDeleteBodyID,
// HxSwap: "outerHTML",
// HxInclude: "#tableID, #paginationID, #searchID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #" + searchID + ", #currpage" + paginationID,
// ModalID: dialogDeleteID,
// ModalTitle: "New-Group Result",
// DialogBody: dialogDeleteBodyCmp,
// DialogAction: modalActioDeleteCmp,
// ButtonCLose: btnCloaseModalDelete,
// },
// )
modalAddFormComponent := dev_mddoctorview.EmptyDiv1()
modalEditFormComponent := dev_mddoctorview.EmptyDiv1()
modalDeleteFormComponent := dev_mddoctorview.EmptyDiv1()
//content js & css
content := dev_mddoctorview.MdDoctorScreen(
tableID,
paginationID,
searchID,
dialogAddID,
dialogAddBodyID,
dialogEditID,
dialogEditBodyID,
dialogDeleteID,
dialogDeleteBodyID,
breadcrumbComponent,
tableComponent,
usergroupFilterComponent,
userGroupPaginationComponent,
modalAddFormComponent,
modalEditFormComponent,
modalDeleteFormComponent)
css := dev_mddoctorview.CssMdDoctor()
js := dev_mddoctorview.JsMdDoctor()
view := dev_mddoctorview.ShowMdDoctorScreen(title,
content,
css,
js,
navbarmenuComponent,
navbaruserComponent,
sidebaruserprofileComponent)
return utils.View(c, view)
}

View File

@@ -291,4 +291,9 @@ func SetupRoutesDev(app *echo.Echo, appStore db.AppStore) {
dev.GET("/md/groupresultv2/opendelete", devMdGRhandlers.HandleOpenDeleteForm)
dev.POST("/md/groupresultv2/closedeleteform", devMdGRhandlers.HandleCloseFormDelete)
dev.POST("/md/groupresultv2/delete", devMdGRhandlers.HandleDeleteUserGroup)
// doctor v2
devMdDCServices := dev_services.NewServicesMdDoctor(appStore)
devMdDChandlers := dev_handlers.NewMdDoctorHandler(devMdDCServices)
dev.GET("/md/doctorv2", devMdDChandlers.HandleShowMdDoctorScreen)
}