diff --git a/handlers/dev/md.doctor.handlers.go b/handlers/dev/md.doctor.handlers.go new file mode 100644 index 0000000..adc19a7 --- /dev/null +++ b/handlers/dev/md.doctor.handlers.go @@ -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) +} diff --git a/handlers/routes.go b/handlers/routes.go index d1b13b1..6cbdf0e 100644 --- a/handlers/routes.go +++ b/handlers/routes.go @@ -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) } diff --git a/models/doctor.models.go b/models/doctor.models.go new file mode 100644 index 0000000..35e5785 --- /dev/null +++ b/models/doctor.models.go @@ -0,0 +1,43 @@ +package models + +type DoctorV1 struct { + Nomor string `db:"nomor"` + M_DoctorID int `db:"M_DoctorID"` + M_DoctorCode string `db:"M_DoctorCode"` + M_DoctorPrefix string `db:"M_DoctorPrefix"` + M_DoctorPrefix2 string `db:"M_DoctorPrefix2"` + M_DoctorName string `db:"M_DoctorName"` + M_DoctorSuffix string `db:"M_DoctorSuffix"` + M_DoctorSuffix2 string `db:"M_DoctorSuffix2"` + M_DoctorGender string `db:"M_DoctorGender"` + M_DoctorDOB string `db:"M_DoctorDOB"` + M_DoctorReligionCode string `db:"M_DoctorReligionCode"` + M_DoctorReligionSystem string `db:"M_DoctorReligionSystem"` + M_DoctorBloodTypeCode string `db:"M_DoctorBloodTypeCode"` + M_DoctorBloodTypeSystem string `db:"M_DoctorBloodTypeSystem"` + M_DoctorBloodRhCode string `db:"M_DoctorBloodRhCode"` + M_DoctorBloodRhSystem string `db:"M_DoctorBloodRhSystem"` + M_DoctorEducationCode string `db:"M_DoctorEducationCode"` + M_DoctorEducationSystem string `db:"M_DoctorEducationSystem"` + M_DoctorCitizenship string `db:"M_DoctorCitizenship"` + M_DoctorEtnicCode string `db:"M_DoctorEtnicCode"` + M_DoctorEtnicSystem string `db:"M_DoctorEtnicSystem"` + M_DoctorIdentifierValue string `db:"M_DoctorIdentifierValue"` + M_DoctorHp string `db:"M_DoctorHp"` + M_DoctorEmail string `db:"M_DoctorEmail"` + M_DoctorM_SpecialistID string `db:"M_DoctorM_SpecialistID"` + M_SpecialistID string `db:"M_SpecialistID"` + M_SpecialistName string `db:"M_SpecialistName"` + M_DoctorAddress string `db:"M_DoctorAddress"` + M_DoctorAddressRegionalCd string `db:"M_DoctorAddressRegionalCd"` + M_DoctorAddressCity string `db:"M_DoctorAddressCity"` + M_DoctorAddressDistrict string `db:"M_DoctorAddressDistrict"` + M_DoctorAddressState string `db:"M_DoctorAddressState"` + M_DoctorAddressCountry string `db:"M_DoctorAddressCountry"` + M_DoctorCreated string `db:"M_DoctorCreated"` + M_DoctorCreatedUserID string `db:"M_DoctorCreatedUserID"` + M_DoctorLastUpdated string `db:"M_DoctorLastUpdated"` + M_DoctorLastUpdatedUserID string `db:"M_DoctorLastUpdatedUserID"` + M_DoctorDeletedUserID string `db:"M_DoctorDeletedUserID"` + M_DoctorDeleted string `db:"M_DoctorDeleted"` +} diff --git a/services/dev/md.doctor.services.go b/services/dev/md.doctor.services.go new file mode 100644 index 0000000..aa14882 --- /dev/null +++ b/services/dev/md.doctor.services.go @@ -0,0 +1,772 @@ +package dev_services + +import ( + "cpone/db" + "cpone/models" + dbx "cpone/package/database" + "fmt" + "math" + "strings" + + "go.uber.org/zap" +) + +func NewServicesMdDoctor(uStore db.AppStore) *ServicesMdDoctor { + + return &ServicesMdDoctor{ + MdDoctorStore: uStore, + } +} + +type ServicesMdDoctor struct { + MdDoctorStore db.AppStore +} + +func (su *ServicesMdDoctor) GetMasterMenus() ([]MasterMenu, error) { + + // dummyBreadcrumb := []Breadcrumb{ + // { + // Name: "Dashboard", + // Url: "/client/dashboard", + // }, + // { + // Name: "Front Office", + // Url: "/client/usermanagement", + // }, + // } + + dummyMenu := []MasterMenu{ + // 1. Dashboard + { + ID: "1", + ParentMenuID: "0", + ParentMenuName: "Dashboard", + ParentUrl: "/client/md/dashboard", + ParentIcon: "", + Children: []ChildrenMenu{ + { + ChildrenParentID: "1", + ChildrenMenuID: "1", + ChildrenMenuName: "Master User", + ChildrenMenuURL: "/client/md/user", + // Breadcrumb: []Breadcrumb{ + // { + // IDBreadcrumb: "1", + // Title: "Dashboard", + // IsActive: "Y", + // }, + // }, + }, + }, + }, + + // 2. Front Office + { + ID: "2", + ParentMenuID: "1", + ParentMenuName: "Front Office", + ParentUrl: "#", + ParentIcon: "", + Children: []ChildrenMenu{ + { + ChildrenParentID: "1", + ChildrenMenuID: "1", + ChildrenMenuName: "Registrasi", + ChildrenMenuURL: "/fo/registrasi", + // Breadcrumb: []Breadcrumb{ + // { + // IDBreadcrumb: "1", + // Title: "Dashboard", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "2", + // Title: "Master", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "3", + // Title: "User", + // IsActive: "Y", + // }, + // }, + }, + }, + }, + + // 3. Station + { + ID: "3", + ParentMenuID: "2", + ParentMenuName: "Station", + ParentUrl: "#", + ParentIcon: "", + Children: []ChildrenMenu{ + { + ChildrenParentID: "2", + ChildrenMenuID: "1", + ChildrenMenuName: "Sample Station", + ChildrenMenuURL: "/station/sample", + // Breadcrumb: []Breadcrumb{ + // { + // IDBreadcrumb: "1", + // Title: "Dashboard", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "2", + // Title: "Master", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "3", + // Title: "User", + // IsActive: "Y", + // }, + // }, + }, + }, + }, + + // 4. Management MCU + { + ID: "4", + ParentMenuID: "3", + ParentMenuName: "Management MCU", + ParentUrl: "#", + ParentIcon: "", + Children: []ChildrenMenu{ + { + ChildrenParentID: "3", + ChildrenMenuID: "1", + ChildrenMenuName: "Setup MCU", + ChildrenMenuURL: "/mcu/setup", + // Breadcrumb: []Breadcrumb{ + // { + // IDBreadcrumb: "1", + // Title: "Dashboard", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "2", + // Title: "Master", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "3", + // Title: "User", + // IsActive: "Y", + // }, + // }, + }, + { + ChildrenParentID: "3", + ChildrenMenuID: "2", + ChildrenMenuName: "Pre-Registrasi", + ChildrenMenuURL: "/mcu/preregister", + // Breadcrumb: []Breadcrumb{ + // { + // IDBreadcrumb: "1", + // Title: "Dashboard", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "2", + // Title: "Master", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "3", + // Title: "User", + // IsActive: "Y", + // }, + // }, + }, + }, + }, + + // 5. Master Data + { + ID: "5", + ParentMenuID: "4", + ParentMenuName: "Master Data", + ParentUrl: "#", + ParentIcon: "", + Children: []ChildrenMenu{ + // * Master User + { + ChildrenParentID: "4", + ChildrenMenuID: "1", + ChildrenMenuName: "Master User", + ChildrenMenuURL: "/client/md/user", + // Breadcrumb: []Breadcrumb{ + // { + // IDBreadcrumb: "1", + // Title: "Dashboard", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "2", + // Title: "Master", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "3", + // Title: "User", + // IsActive: "Y", + // }, + // }, + }, + + // * Master User Group + { + ChildrenParentID: "4", + ChildrenMenuID: "2", + ChildrenMenuName: "Master User Group", + ChildrenMenuURL: "/client/md/usergroup", + // Breadcrumb: []Breadcrumb{ + // { + // IDBreadcrumb: "1", + // Title: "Dashboard", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "2", + // Title: "Master", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "3", + // Title: "User Group", + // IsActive: "Y", + // }, + // }, + }, + + // * Master Corporate + { + ChildrenParentID: "4", + ChildrenMenuID: "3", + ChildrenMenuName: "Corporate", + ChildrenMenuURL: "/client/md/corp", + // Breadcrumb: []Breadcrumb{ + // { + // IDBreadcrumb: "1", + // Title: "Dashboard", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "2", + // Title: "Master", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "3", + // Title: "User Group", + // IsActive: "Y", + // }, + // }, + }, + + // * Test + { + ChildrenParentID: "4", + ChildrenMenuID: "4", + ChildrenMenuName: "Test", + ChildrenMenuURL: "/client/md/test", + // Breadcrumb: []Breadcrumb{ + // { + // IDBreadcrumb: "1", + // Title: "Dashboard", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "2", + // Title: "Master", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "3", + // Title: "User Group", + // IsActive: "Y", + // }, + // }, + }, + + // * Bahan + { + ChildrenParentID: "4", + ChildrenMenuID: "5", + ChildrenMenuName: "Bahan", + ChildrenMenuURL: "/client/md/bahan", + // Breadcrumb: []Breadcrumb{ + // { + // IDBreadcrumb: "1", + // Title: "Dashboard", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "2", + // Title: "Master", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "3", + // Title: "User Group", + // IsActive: "Y", + // }, + // }, + }, + + // * Sample Type + { + ChildrenParentID: "4", + ChildrenMenuID: "6", + ChildrenMenuName: "Sample Type", + ChildrenMenuURL: "/client/sample/type", + // Breadcrumb: []Breadcrumb{ + // { + // IDBreadcrumb: "1", + // Title: "Dashboard", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "2", + // Title: "Master", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "3", + // Title: "User Group", + // IsActive: "Y", + // }, + // }, + }, + + // * Sample Station + { + ChildrenParentID: "4", + ChildrenMenuID: "7", + ChildrenMenuName: "Sample Station", + ChildrenMenuURL: "/station/sample", + // Breadcrumb: []Breadcrumb{ + // { + // IDBreadcrumb: "1", + // Title: "Dashboard", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "2", + // Title: "Master", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "3", + // Title: "User Group", + // IsActive: "Y", + // }, + // }, + }, + + // * Result Non Lab + { + ChildrenParentID: "4", + ChildrenMenuID: "8", + ChildrenMenuName: "Result Non Lab", + ChildrenMenuURL: "/client/md/resultnonlab", + // Breadcrumb: []Breadcrumb{ + // { + // IDBreadcrumb: "1", + // Title: "Dashboard", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "2", + // Title: "Master", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "3", + // Title: "User Group", + // IsActive: "Y", + // }, + // }, + }, + + // * Template Fisik + { + ChildrenParentID: "4", + ChildrenMenuID: "9", + ChildrenMenuName: "Template Fisik", + ChildrenMenuURL: "/client/md/template-fisik", + // Breadcrumb: []Breadcrumb{ + // { + // IDBreadcrumb: "1", + // Title: "Dashboard", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "2", + // Title: "Master", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "3", + // Title: "User Group", + // IsActive: "Y", + // }, + // }, + }, + + // * Pasien + { + ChildrenParentID: "4", + ChildrenMenuID: "10", + ChildrenMenuName: "Pasien", + ChildrenMenuURL: "/client/md/pasien", + // Breadcrumb: []Breadcrumb{ + // { + // IDBreadcrumb: "1", + // Title: "Dashboard", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "2", + // Title: "Master", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "3", + // Title: "User Group", + // IsActive: "Y", + // }, + // }, + }, + + // * Dokter + { + ChildrenParentID: "4", + ChildrenMenuID: "11", + ChildrenMenuName: "Dokter", + ChildrenMenuURL: "/client/md/dokter", + // Breadcrumb: []Breadcrumb{ + // { + // IDBreadcrumb: "1", + // Title: "Dashboard", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "2", + // Title: "Master", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "3", + // Title: "User Group", + // IsActive: "Y", + // }, + // }, + }, + + // * Paket + { + ChildrenParentID: "4", + ChildrenMenuID: "12", + ChildrenMenuName: "Paket", + ChildrenMenuURL: "/client/md/paket", + // Breadcrumb: []Breadcrumb{ + // { + // IDBreadcrumb: "1", + // Title: "Dashboard", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "2", + // Title: "Master", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "3", + // Title: "User Group", + // IsActive: "Y", + // }, + // }, + }, + + // * Harga Single + { + ChildrenParentID: "4", + ChildrenMenuID: "13", + ChildrenMenuName: "Harga Single", + ChildrenMenuURL: "/client/md/hargasingle", + // Breadcrumb: []Breadcrumb{ + // { + // IDBreadcrumb: "1", + // Title: "Dashboard", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "2", + // Title: "Master", + // IsActive: "N", + // }, + // { + // IDBreadcrumb: "3", + // Title: "User Group", + // IsActive: "Y", + // }, + // }, + }, + }, + }, + } + + return dummyMenu, nil +} + +func (ug *ServicesMdDoctor) GetUserGroup() ([]models.UserGroup, error) { + data := []models.UserGroup{ + {UserGroupID: 1, UserGroupKode: "A", UserGroupName: "UG1"}, + {UserGroupID: 2, UserGroupKode: "B", UserGroupName: "UG2"}, + {UserGroupID: 3, UserGroupKode: "C", UserGroupName: "UG3"}, + } + return data, nil +} + +func (su *ServicesMdDoctor) GetMdDoctorBreadcrumb(title string) (models.BreadCrumbV1, error) { + var ret models.BreadCrumbV1 + + dummyBreadcrumb := []models.BreadCrumbV1{ + { + Title: "Master User Group", + Item: []models.ItemBreadCrumbV1{ + { + Item: "Dashboard", + Url: "/dev/dashboard", + }, + { + Item: "Master", + Url: "/dev/master", + }, + { + Item: "User Group", + Url: "", + }, + }, + }, + + { + Title: "Master User", + Item: []models.ItemBreadCrumbV1{ + { + Item: "Dashboard", + Url: "/dev/dashboard", + }, + { + Item: "Master", + Url: "/dev/master", + }, + { + Item: "User", + Url: "", + }, + }, + }, + + { + Title: "Master Doctor", + Item: []models.ItemBreadCrumbV1{ + { + Item: "Dashboard", + Url: "/dev/dashboard", + }, + { + Item: "Master", + Url: "/dev/master", + }, + { + Item: "Doctor", + Url: "", + }, + }, + }, + } + + for _, breadcrumb := range dummyBreadcrumb { + // if utils.Contains(breadcrumb.Title, title) { + // ret = breadcrumb + // return ret, nil + // } + if breadcrumb.Title == title { + ret = breadcrumb + return ret, nil + } + } + + return ret, nil +} + +// LISTING, SEARCH, PAGINATION +func (su *ServicesMdDoctor) GetListMdDoctor(search string, currentPage int, rowPerPage int) ([]models.DoctorV1, int, error) { + var doctorList []models.DoctorV1 + + logger, _ := zap.NewProduction() + defer logger.Sync() + + var totalData int + offset := (currentPage - 1) * rowPerPage + + prm := "%" + strings.TrimSpace(search) + "%" + querytotal := ` + SELECT COUNT(*) + FROM m_doctor as d + -- join terminology religion + JOIN terminology as religion + ON d.M_DoctorReligionCode = religion.code + AND d.M_DoctorReligionSystem = religion.code_system + AND religion.status_cd = 'normal' + -- join terminology blood type + JOIN terminology as bloodType + ON d.M_DoctorBloodTypeCode = bloodType.code + AND d.M_DoctorBloodTypeSystem = bloodType.code_system + AND bloodType.status_cd = 'normal' + -- join terminology blood rhesus + JOIN terminology as bloodRh + ON d.M_DoctorBloodRhCode = bloodRh.code + AND d.M_DoctorBloodRhSystem = bloodRh.code_system + AND bloodRh.status_cd = 'normal' + -- join terminology education + JOIN terminology as education + ON d.M_DoctorEducationCode = education.code + AND d.M_DoctorEducationSystem = education.code_system + AND education.status_cd = 'normal' + -- join terminology ethnic + JOIN terminology as ethnic + ON d.M_DoctorEtnicCode = ethnic.code + AND d.M_DoctorEtnicSystem = ethnic.code_system + AND ethnic.status_cd = 'normal' + -- join terminology identifier + JOIN terminology as identifier + ON d.M_DoctorIdentifierCode = identifier.code + AND d.M_DoctorIdentifierSystem = identifier.code_system + AND identifier.status_cd = 'normal' + -- join m_specialist + JOIN m_specialist as spesialis + ON d.M_DoctorM_SpecialistID = spesialis.M_SpecialistID + AND spesialis.M_SpecialistIsActive = 'Y' + WHERE d.M_DoctorIsActive = 'Y' AND + ( + d.M_DoctorCode LIKE ? + OR d.M_DoctorName LIKE ? + OR spesialis.M_SpecialistName LIKE ? + ) + ` + + logger.Info("QUERY SEARCH INITIAL TOTAL COUNT", + zap.String("query search", querytotal), + ) + + if err := dbx.Handlex.Get(&totalData, querytotal, + prm, + prm, + prm, + ); err != nil { + return nil, 0, fmt.Errorf("error querying database: %v", err) + } + + query := ` + SELECT + ROW_NUMBER() OVER () AS nomor, + d.M_DoctorID, + ifnull(d.M_DoctorCode,'') as M_DoctorCode, + ifnull(d.M_DoctorPrefix,'') as M_DoctorPrefix, + ifnull(d.M_DoctorPrefix2,'') as M_DoctorPrefix2, + ifnull(d.M_DoctorName,'') as M_DoctorName, + ifnull(d.M_DoctorSuffix,'') as M_DoctorSuffix, + ifnull(d.M_DoctorSuffix2,'') as M_DoctorSuffix2, + d.M_DoctorGender, + d.M_DoctorDOB, + d.M_DoctorReligionCode, + d.M_DoctorReligionSystem, + d.M_DoctorBloodTypeCode, + d.M_DoctorBloodTypeSystem, + d.M_DoctorBloodRhCode, + d.M_DoctorBloodRhSystem, + d.M_DoctorEducationCode, + d.M_DoctorEducationSystem, + d.M_DoctorCitizenship, + d.M_DoctorEtnicCode, + d.M_DoctorEtnicSystem, + d.M_DoctorIdentifierValue, + d.M_DoctorHp, + d.M_DoctorEmail, + d.M_DoctorM_SpecialistID, + spesialis.M_SpecialistID, + spesialis.M_SpecialistName, + d.M_DoctorCreated, + d.M_DoctorCreatedUserID, + d.M_DoctorLastUpdated, + d.M_DoctorLastUpdatedUserID, + d.M_DoctorDeletedUserID, + d.M_DoctorDeleted + FROM m_doctor as d + -- join terminology religion + JOIN terminology as religion + ON d.M_DoctorReligionCode = religion.code + AND d.M_DoctorReligionSystem = religion.code_system + AND religion.status_cd = 'normal' + -- join terminology blood type + JOIN terminology as bloodType + ON d.M_DoctorBloodTypeCode = bloodType.code + AND d.M_DoctorBloodTypeSystem = bloodType.code_system + AND bloodType.status_cd = 'normal' + -- join terminology blood rhesus + JOIN terminology as bloodRh + ON d.M_DoctorBloodRhCode = bloodRh.code + AND d.M_DoctorBloodRhSystem = bloodRh.code_system + AND bloodRh.status_cd = 'normal' + -- join terminology education + JOIN terminology as education + ON d.M_DoctorEducationCode = education.code + AND d.M_DoctorEducationSystem = education.code_system + AND education.status_cd = 'normal' + -- join terminology ethnic + JOIN terminology as ethnic + ON d.M_DoctorEtnicCode = ethnic.code + AND d.M_DoctorEtnicSystem = ethnic.code_system + AND ethnic.status_cd = 'normal' + -- join terminology identifier + JOIN terminology as identifier + ON d.M_DoctorIdentifierCode = identifier.code + AND d.M_DoctorIdentifierSystem = identifier.code_system + AND identifier.status_cd = 'normal' + -- join m_specialist + JOIN m_specialist as spesialis + ON d.M_DoctorM_SpecialistID = spesialis.M_SpecialistID + AND spesialis.M_SpecialistIsActive = 'Y' + WHERE d.M_DoctorIsActive = 'Y' AND + ( + d.M_DoctorCode LIKE ? + OR d.M_DoctorName LIKE ? + OR spesialis.M_SpecialistName LIKE ? + ) + ORDER BY M_DoctorID ASC + LIMIT ? OFFSET ? + ` + + logger.Info("QUERY SEARCH INITIAL", + zap.String("query search", query), + ) + + if err := dbx.Handlex.Select(&doctorList, query, + prm, + prm, + prm, + rowPerPage, offset); err != nil { + return nil, 0, fmt.Errorf("error querying database: %v", err) + } + + totalPage := int(math.Ceil(float64(totalData) / float64(rowPerPage))) + + return doctorList, totalPage, nil +} diff --git a/views/dev/mddoctor/mddoctor.templ b/views/dev/mddoctor/mddoctor.templ new file mode 100644 index 0000000..dd09c4d --- /dev/null +++ b/views/dev/mddoctor/mddoctor.templ @@ -0,0 +1,237 @@ +package dev_mddoctorview + +import ( + "cpone/layout" + "cpone/component/customtextfield" + "cpone/models" + "strconv" +) + +templ MdDoctorScreen( + tableID string, + paginationID string, + searchID string, + dialogAddID string, + dialogAddBodyID string, + dialogEditID string, + dialogEditBodyID string, + dialogDeleteID string, + dialogDeleteBodyID string, + breadcrumb templ.Component, + tablecontent templ.Component, + filterComponent templ.Component, + paginationComponent templ.Component, + modalAddForm templ.Component, + modalEditForm templ.Component, + modalDeleteForm templ.Component) { +
+ @customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "tableID", + Name: "tableID", + Type: "hidden", + Value: tableID}) + @customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "paginationID", + Name: "paginationID", + Type: "hidden", + Value: paginationID}) + @customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "searchID", + Name: "searchID", + Type: "hidden", + Value: searchID}) + @customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogAddID", + Name: "dialogAddID", + Type: "hidden", + Value: dialogAddID}) + @customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogAddBodyID", + Name: "dialogAddBodyID", + Type: "hidden", + Value: dialogAddBodyID}) + @customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogEditID", + Name: "dialogEditID", + Type: "hidden", + Value: dialogEditID}) + @customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogEditBodyID", + Name: "dialogEditBodyID", + Type: "hidden", + Value: dialogEditBodyID}) + @customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogDeleteID", + Name: "dialogDeleteID", + Type: "hidden", + Value: dialogDeleteID}) + @customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogDeleteBodyID", + Name: "dialogDeleteBodyID", + Type: "hidden", + Value: dialogDeleteBodyID}) +
+
+ @breadcrumb +
+
+ //
+
+ +
+
+
+ +
+
+ @filterComponent +
+ @tablecontent + @paginationComponent + @modalAddForm + @modalEditForm + @modalDeleteForm +
+ //
+
+ Loading... +
+
+
+
+
+} + +// for item dropdown +templ ItemDropdown(dataDropdown []models.GroupResultResumeMcu, selectedId int) { + if len(dataDropdown) == 0 { + + } else { + for _, v := range dataDropdown { + if (selectedId == v.ID) { + + } else { + + } + } + } +} + +// for empty div +templ EmptyDiv1() { +
+} + +templ CssMdDoctor() { + + + + +} + +templ JsMdDoctor() { + +} + +script BeforeRequestContentMdDoctor() { + const loadingParent = document.getElementById("loading-parent"); + const loadingChild = document.getElementById("loading-child"); + const loadingSpinner = document.getElementById("loading-spinner"); + + loadingParent.classList.add("overlay"); + loadingParent.classList.add("overlay-block"); + loadingChild.classList.add("overlay-layer"); + loadingSpinner.classList.remove("d-none"); +} + +script AfterRequestContentMdDoctor() { + const loadingParent = document.getElementById("loading-parent"); + const loadingChild = document.getElementById("loading-child"); + const loadingSpinner = document.getElementById("loading-spinner"); + + loadingParent.classList.remove("overlay"); + loadingParent.classList.remove("overlay-block"); + loadingChild.classList.remove("overlay-layer"); + loadingSpinner.classList.add("d-none"); +} + +templ ShowMdDoctorScreen(title string, cmp templ.Component, css templ.Component, js templ.Component, + navbarmenu templ.Component, + navbaruser templ.Component, + userprofile templ.Component) { + @layout.CorporateLayout(title, css, js, navbarmenu, navbaruser, userprofile) { + @cmp + } +} diff --git a/views/dev/mddoctor/mddoctor_templ.go b/views/dev/mddoctor/mddoctor_templ.go new file mode 100644 index 0000000..7b1af6f --- /dev/null +++ b/views/dev/mddoctor/mddoctor_templ.go @@ -0,0 +1,433 @@ +// Code generated by templ - DO NOT EDIT. + +// templ: version: v0.2.663 +package dev_mddoctorview + +//lint:file-ignore SA4006 This context is only used if a nested component is present. + +import "github.com/a-h/templ" +import "context" +import "io" +import "bytes" + +import ( + "cpone/component/customtextfield" + "cpone/layout" + "cpone/models" + "strconv" +) + +func MdDoctorScreen( + tableID string, + paginationID string, + searchID string, + dialogAddID string, + dialogAddBodyID string, + dialogEditID string, + dialogEditBodyID string, + dialogDeleteID string, + dialogDeleteBodyID string, + breadcrumb templ.Component, + tablecontent templ.Component, + filterComponent templ.Component, + paginationComponent templ.Component, + modalAddForm templ.Component, + modalEditForm templ.Component, + modalDeleteForm 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_Var1 := templ.GetChildren(ctx) + if templ_7745c5c3_Var1 == nil { + templ_7745c5c3_Var1 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "tableID", + Name: "tableID", + Type: "hidden", + Value: tableID}).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "paginationID", + Name: "paginationID", + Type: "hidden", + Value: paginationID}).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "searchID", + Name: "searchID", + Type: "hidden", + Value: searchID}).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogAddID", + Name: "dialogAddID", + Type: "hidden", + Value: dialogAddID}).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogAddBodyID", + Name: "dialogAddBodyID", + Type: "hidden", + Value: dialogAddBodyID}).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogEditID", + Name: "dialogEditID", + Type: "hidden", + Value: dialogEditID}).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogEditBodyID", + Name: "dialogEditBodyID", + Type: "hidden", + Value: dialogEditBodyID}).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogDeleteID", + Name: "dialogDeleteID", + Type: "hidden", + Value: dialogDeleteID}).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogDeleteBodyID", + Name: "dialogDeleteBodyID", + Type: "hidden", + Value: dialogDeleteBodyID}).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = breadcrumb.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = filterComponent.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = tablecontent.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = paginationComponent.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = modalAddForm.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = modalEditForm.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = modalDeleteForm.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
Loading...
") + 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 + }) +} + +// for item dropdown +func ItemDropdown(dataDropdown []models.GroupResultResumeMcu, selectedId int) 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_Var4 := templ.GetChildren(ctx) + if templ_7745c5c3_Var4 == nil { + templ_7745c5c3_Var4 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + if len(dataDropdown) == 0 { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + } else { + for _, v := range dataDropdown { + if selectedId == v.ID { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + } else { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + 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 + }) +} + +// for empty div +func EmptyDiv1() 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_Var9 := templ.GetChildren(ctx) + if templ_7745c5c3_Var9 == nil { + templ_7745c5c3_Var9 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + 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 + }) +} + +func CssMdDoctor() 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_Var10 := templ.GetChildren(ctx) + if templ_7745c5c3_Var10 == nil { + templ_7745c5c3_Var10 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + 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 + }) +} + +func JsMdDoctor() 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_Var11 := templ.GetChildren(ctx) + if templ_7745c5c3_Var11 == nil { + templ_7745c5c3_Var11 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + 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 + }) +} + +func BeforeRequestContentMdDoctor() templ.ComponentScript { + return templ.ComponentScript{ + Name: `__templ_BeforeRequestContentMdDoctor_911f`, + Function: `function __templ_BeforeRequestContentMdDoctor_911f(){const loadingParent = document.getElementById("loading-parent"); + const loadingChild = document.getElementById("loading-child"); + const loadingSpinner = document.getElementById("loading-spinner"); + + loadingParent.classList.add("overlay"); + loadingParent.classList.add("overlay-block"); + loadingChild.classList.add("overlay-layer"); + loadingSpinner.classList.remove("d-none"); +}`, + Call: templ.SafeScript(`__templ_BeforeRequestContentMdDoctor_911f`), + CallInline: templ.SafeScriptInline(`__templ_BeforeRequestContentMdDoctor_911f`), + } +} + +func AfterRequestContentMdDoctor() templ.ComponentScript { + return templ.ComponentScript{ + Name: `__templ_AfterRequestContentMdDoctor_6cc0`, + Function: `function __templ_AfterRequestContentMdDoctor_6cc0(){const loadingParent = document.getElementById("loading-parent"); + const loadingChild = document.getElementById("loading-child"); + const loadingSpinner = document.getElementById("loading-spinner"); + + loadingParent.classList.remove("overlay"); + loadingParent.classList.remove("overlay-block"); + loadingChild.classList.remove("overlay-layer"); + loadingSpinner.classList.add("d-none"); +}`, + Call: templ.SafeScript(`__templ_AfterRequestContentMdDoctor_6cc0`), + CallInline: templ.SafeScriptInline(`__templ_AfterRequestContentMdDoctor_6cc0`), + } +} + +func ShowMdDoctorScreen(title string, cmp templ.Component, css templ.Component, js templ.Component, + navbarmenu templ.Component, + navbaruser templ.Component, + userprofile 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_Var12 := templ.GetChildren(ctx) + if templ_7745c5c3_Var12 == nil { + templ_7745c5c3_Var12 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + templ_7745c5c3_Var13 := 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) + } + templ_7745c5c3_Err = cmp.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = io.Copy(templ_7745c5c3_W, templ_7745c5c3_Buffer) + } + return templ_7745c5c3_Err + }) + templ_7745c5c3_Err = layout.CorporateLayout(title, css, js, navbarmenu, navbaruser, userprofile).Render(templ.WithChildren(ctx, templ_7745c5c3_Var13), 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 + }) +} diff --git a/views/dev/mddoctor/mddoctortable.templ b/views/dev/mddoctor/mddoctortable.templ new file mode 100644 index 0000000..7ef6960 --- /dev/null +++ b/views/dev/mddoctor/mddoctortable.templ @@ -0,0 +1,136 @@ +package dev_mddoctorview + +import "cpone/component/table" +import "cpone/models" +import "strconv" + +templ TableDoctor(data []models.DoctorV1, + tableID string, + hxGetEdit string, + hxTargetEdit string, + hxSwapEdit string, + hxIncludeEdit string, + hxGetDelete string, + hxTargetDelete string, + hxSwapDelete string, + hxIncludeDelete string, +) { +
+ @tablecomponent.TableV3([]string{"DOCTOR CODE", "NAMA", "ALAMAT", "NO HP", "SPESIALIS", "AKSI"}, + []string{"15%", "20%", "25%", "5%", "15%", "20%"}, + RowDoctor(data, + hxGetEdit, + hxTargetEdit, + hxSwapEdit, + hxIncludeEdit, + hxGetDelete, + hxTargetDelete, + hxSwapDelete, + hxIncludeDelete, + )) +
+} + +templ EmptyDivDoctor() { +
+} + +templ RowDoctor(data []models.DoctorV1, + hxGetEdit string, + hxTargetEdit string, + hxSwapEdit string, + hxIncludeEdit string, + hxGetDelete string, + hxTargetDelete string, + hxSwapDelete string, + hxIncludeDelete string, +) { + if len(data) == 0 { + + Data Tidak Ditemukan + + } + for _, v := range data { + + { v.M_DoctorCode } + { v.M_DoctorName } + { v.M_DoctorAddress } + { v.M_DoctorHp } + { v.M_SpecialistName } + + @TableAction(v.M_DoctorID, + hxGetEdit, + hxTargetEdit, + hxSwapEdit, + hxIncludeEdit, + hxGetDelete, + hxTargetDelete, + hxSwapDelete, + hxIncludeDelete, + ) + + + } +} + +templ TableAction( + id int, + hxGetEdit string, + hxTargetEdit string, + hxSwapEdit string, + hxIncludeEdit string, + hxGetDelete string, + hxTargetDelete string, + hxSwapDelete string, + hxIncludeDelete string, + +) { +
+ + + Edit + + + + Hapus + +
+} + +script HandleBeforeRequestRow(id string) { + var cusid_ele = document.getElementsByClassName('btnactiondc'); + for (var i = 0; i < cusid_ele.length; ++i) { + var item = cusid_ele[i]; + item.classList.add('disabled'); + } + console.log(id) +} + +script HandleAfterRequestRow(id string) { + var cusid_ele = document.getElementsByClassName('btnactiondc'); + for (var i = 0; i < cusid_ele.length; ++i) { + var item = cusid_ele[i]; + item.classList.remove('disabled'); + } + console.log(id) +} diff --git a/views/dev/mddoctor/mddoctortable_templ.go b/views/dev/mddoctor/mddoctortable_templ.go new file mode 100644 index 0000000..8f67ac8 --- /dev/null +++ b/views/dev/mddoctor/mddoctortable_templ.go @@ -0,0 +1,501 @@ +// Code generated by templ - DO NOT EDIT. + +// templ: version: v0.2.663 +package dev_mddoctorview + +//lint:file-ignore SA4006 This context is only used if a nested component is present. + +import "github.com/a-h/templ" +import "context" +import "io" +import "bytes" + +import "cpone/component/table" +import "cpone/models" +import "strconv" + +func TableDoctor(data []models.DoctorV1, + tableID string, + hxGetEdit string, + hxTargetEdit string, + hxSwapEdit string, + hxIncludeEdit string, + hxGetDelete string, + hxTargetDelete string, + hxSwapDelete string, + hxIncludeDelete string, +) 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_Var1 := templ.GetChildren(ctx) + if templ_7745c5c3_Var1 == nil { + templ_7745c5c3_Var1 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = tablecomponent.TableV3([]string{"DOCTOR CODE", "NAMA", "ALAMAT", "NO HP", "SPESIALIS", "AKSI"}, + []string{"15%", "20%", "25%", "5%", "15%", "20%"}, + RowDoctor(data, + hxGetEdit, + hxTargetEdit, + hxSwapEdit, + hxIncludeEdit, + hxGetDelete, + hxTargetDelete, + hxSwapDelete, + hxIncludeDelete, + )).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + 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 + }) +} + +func EmptyDivDoctor() 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_Var3 := templ.GetChildren(ctx) + if templ_7745c5c3_Var3 == nil { + templ_7745c5c3_Var3 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + 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 + }) +} + +func RowDoctor(data []models.DoctorV1, + hxGetEdit string, + hxTargetEdit string, + hxSwapEdit string, + hxIncludeEdit string, + hxGetDelete string, + hxTargetDelete string, + hxSwapDelete string, + hxIncludeDelete string, +) 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_Var4 := templ.GetChildren(ctx) + if templ_7745c5c3_Var4 == nil { + templ_7745c5c3_Var4 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + if len(data) == 0 { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("Data Tidak Ditemukan") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + } + for _, v := range data { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var5 string + templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(v.M_DoctorCode) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctortable.templ`, Line: 55, Col: 23} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var6 string + templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(v.M_DoctorName) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctortable.templ`, Line: 56, Col: 23} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var7 string + templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(v.M_DoctorAddress) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctortable.templ`, Line: 57, Col: 26} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var8 string + templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(v.M_DoctorHp) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctortable.templ`, Line: 58, Col: 21} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var9 string + templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(v.M_SpecialistName) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctortable.templ`, Line: 59, Col: 27} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = TableAction(v.M_DoctorID, + hxGetEdit, + hxTargetEdit, + hxSwapEdit, + hxIncludeEdit, + hxGetDelete, + hxTargetDelete, + hxSwapDelete, + hxIncludeDelete, + ).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + 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 + }) +} + +func TableAction( + id int, + hxGetEdit string, + hxTargetEdit string, + hxSwapEdit string, + hxIncludeEdit string, + hxGetDelete string, + hxTargetDelete string, + hxSwapDelete string, + hxIncludeDelete string, + +) 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_Var10 := templ.GetChildren(ctx) + if templ_7745c5c3_Var10 == nil { + templ_7745c5c3_Var10 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, HandleBeforeRequestRow(strconv.Itoa(id)), HandleAfterRequestRow(strconv.Itoa(id))) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(" Edit\r ") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, HandleBeforeRequestRow(strconv.Itoa(id)), HandleAfterRequestRow(strconv.Itoa(id))) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(" Hapus\r
") + 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 + }) +} + +func HandleBeforeRequestRow(id string) templ.ComponentScript { + return templ.ComponentScript{ + Name: `__templ_HandleBeforeRequestRow_4c34`, + Function: `function __templ_HandleBeforeRequestRow_4c34(id){var cusid_ele = document.getElementsByClassName('btnactiondc'); + for (var i = 0; i < cusid_ele.length; ++i) { + var item = cusid_ele[i]; + item.classList.add('disabled'); + } + console.log(id) +}`, + Call: templ.SafeScript(`__templ_HandleBeforeRequestRow_4c34`, id), + CallInline: templ.SafeScriptInline(`__templ_HandleBeforeRequestRow_4c34`, id), + } +} + +func HandleAfterRequestRow(id string) templ.ComponentScript { + return templ.ComponentScript{ + Name: `__templ_HandleAfterRequestRow_9aec`, + Function: `function __templ_HandleAfterRequestRow_9aec(id){var cusid_ele = document.getElementsByClassName('btnactiondc'); + for (var i = 0; i < cusid_ele.length; ++i) { + var item = cusid_ele[i]; + item.classList.remove('disabled'); + } + console.log(id) +}`, + Call: templ.SafeScript(`__templ_HandleAfterRequestRow_9aec`, id), + CallInline: templ.SafeScriptInline(`__templ_HandleAfterRequestRow_9aec`, id), + } +}