diff --git a/handlers/dev/masterkelainan.handlers.go b/handlers/dev/masterkelainan.handlers.go index 84574c5..8b04470 100644 --- a/handlers/dev/masterkelainan.handlers.go +++ b/handlers/dev/masterkelainan.handlers.go @@ -29,6 +29,8 @@ type MasterKelainanService interface { DeleteKelainan(id string) (models.Kelainan, error) GetListMasterKelainanDetail(id string, searchdetail string, currentPage int, rowPerPage int) ([]models.KelainanDetail, int, error) AddKelainanDetail(name string, nameclassification string, selectedid string) (models.KelainanDetail, error) + GetKelainanDetailByID(id string) (models.KelainanDetail, error) + DeleteKelainanDetail(id string) (models.KelainanDetail, error) } func NewMasterKelainanHandler(us MasterKelainanService) *MasterKelainanHandler { @@ -57,6 +59,8 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error searchDetailID := utils.GenerateRandomID("searchdetailid") dialogDetailAddID := utils.GenerateRandomID("dialogdetailaddid") dialogDetailAddBodyID := utils.GenerateRandomID("dialogdetailaddbodyid") + dialogDetailDeleteID := utils.GenerateRandomID("dialogDetailDeleteID") + dialogDetailDeleteBodyID := utils.GenerateRandomID("dialogDetailDeletebodyID") // println("cek id param", id) @@ -294,9 +298,18 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error }, ) + defer logger.Sync() + logger.Info("CEK HandlerShowMdKelainanDetailPagination", + zap.Any("dialogDetailDeleteBodyID", dialogDetailDeleteBodyID), + ) + // component listing table listing kelainan detail contentKelainanDetailCmp := masterkelainan.TableKelainanDetail( dataKelainanDetail, tableDetailID, + "/dev/kelainandetail/opendelete", + "#"+dialogDetailDeleteBodyID, + "outerHTML", + "#dialogDetailDeleteBodyID, #dialogDetailDeleteID, #tableDetailID", ) // filter kelainan detail component @@ -306,7 +319,7 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error "text", "/dev/searchkelainandetail", "input changed delay:500ms, searchdetail", - "#"+paginationDetailID, "", "", "none", "#tableDetailID, #paginationDetailID, #searchDetailID, #selectedID") + "#"+paginationDetailID, "", "", "none", "#tableDetailID, #paginationDetailID, #searchDetailID, #selectedID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID") // pagination kelainan detail component kelainanDetailPaginationCmp := pagination.PaginationV2( @@ -314,7 +327,7 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error 1, "/dev/kelainandetailpagination", paginationDetailID, - "#tableDetailID, #searchDetailID, #"+searchDetailID+", #paginationDetailID", + "#tableDetailID, #searchDetailID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID, #"+searchDetailID+", #paginationDetailID", "#"+paginationDetailID, "outerHTML", "", "", ) @@ -359,7 +372,7 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error Link: "/dev/kelainandetail/add", HxTarget: "#" + dialogDetailAddBodyID, HxSwap: "outerHTML", - HxInclude: "#selectedID, #tableDetailID, #paginationDetailID, #searchDetailID, #dialogDetailAddBodyID, #dialogDetailAddID, #selectedID #" + searchDetailID + ", #currpage" + paginationDetailID, + HxInclude: "#selectedID, #tableDetailID, #paginationDetailID, #searchDetailID, #dialogDetailAddBodyID, #dialogDetailAddID, #selectedID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID, #" + searchDetailID + ", #currpage" + paginationDetailID, ModalID: dialogDetailAddID, ModalTitle: "New - Kelainan", DialogBody: dialogDetailAddBodyCmp, @@ -367,6 +380,55 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error ButtonCLose: dialogDetailAddCloseCmp, }) + // modal delete kelainan detail form + dialogDetailDeleteCmp := masterkelainan.BodyFormKelainanDetail( + models.CustomTextFieldv2Prm{ + Label: "Nama Kelainan", + Name: "kelainandetailid", + Placeholder: "Nama Kelainan", + Type: "hidden", ID: "kelainandetailid"}, + models.CustomTextFieldv2Prm{ + Label: "Nama Kelainan", + Name: "kelainandetailname", + Placeholder: "Nama Kelainan", + Type: "text", ID: "kelainandetailinputname"}, + models.SwitchclassPrm{ + Label: "Dengan Klasifikasi", + Type: "checkbox", + Checked: "true ", + Name: "select", + ID: "switchname"}, + models.CustomTextFieldv2Prm{ + Label: "Nama Klasifikasi", + Name: "classificationname", + Placeholder: "Nama Klasifikasi", + Type: "text", ID: "classificationinputname"}, + dialogDetailDeleteBodyID, masterkelainan.JsHideModalDetail("")) + modalActionDetailDeleteCmp := masterkelainan.ActionFormKelainanDelete( + "/dev/kelainandetail/closedeleteform", + "#"+dialogDetailDeleteBodyID, + "outerHTML", + "#"+dialogDetailDeleteID) + btnCloseModalDeleteDetail := masterkelainan.BtnCloseFormKelainanDetail( + "/dev/kelainandetail/closedeleteform", + "#"+dialogDetailDeleteBodyID, + "outerHTML", + "#"+dialogDetailDeleteID) + modalDetailDeleteFormCmp := masterkelainan.KelainanDetailForm( + models.KelainanDetailFormComponent{ + IDComponent: "formkelainandetail", + Link: "/dev/kelainandetail/delete", + HxTarget: "#" + dialogDetailDeleteBodyID, + HxSwap: "outerHTML", + HxInclude: "#tableDetailID, #paginationDetailID, #searchDetail, #dialogDetailDeleteBodyID, #dialogDetailDeleteID, #" + searchDetailID + ", #currpage" + paginationDetailID, + ModalID: dialogDetailDeleteID, + ModalTitle: "Konfirmasi", + DialogBody: dialogDetailDeleteCmp, + DialogAction: modalActionDetailDeleteCmp, + ButtonCLose: btnCloseModalDeleteDetail, + }, + ) + // content, css, js content := masterkelainan.ContentMasterKelainan( tableID, paginationID, searchID, dialogAddID, dialogAddBodyID, @@ -379,6 +441,8 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error searchDetailID, dialogDetailAddID, dialogDetailAddBodyID, + dialogDetailDeleteID, + dialogDetailDeleteBodyID, breadcrumbComponent, contentKelainanComponent, kelainanFilterComponent, @@ -389,7 +453,8 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error contentKelainanDetailCmp, kelainanDetailFilterCmp, kelainanDetailPaginationCmp, - modaldetailaddcomponent) + modaldetailaddcomponent, + modalDetailDeleteFormCmp) css := masterkelainan.CssKelainan() js := masterkelainan.JsMdKelainan() @@ -1045,6 +1110,8 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainanDetail(c echo.Context) tableDetailID := c.QueryParam("tableDetailID") paginationDetailID := c.QueryParam("paginationDetailID") searchDetailID := c.QueryParam("searchDetailID") + // dialogDetailDeleteID := c.QueryParam("dialogDetailDeleteID") + dialogDetailDeleteBodyID := c.QueryParam("dialogDetailDeleteBodyID") logger.Info("tabel paginationDetailID", zap.Any("tabel paginationDetailID", paginationDetailID)) @@ -1062,6 +1129,10 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainanDetail(c echo.Context) // component listing table listing kelainan detail contentKelainanDetailCmp := masterkelainan.TableKelainanDetail( dataKelainanDetail, tableDetailID, + "/dev/kelainandetail/opendelete", + "#"+dialogDetailDeleteBodyID, + "outerHTML", + "#dialogDetailDeleteBodyID, #dialogDetailDeleteID, #tableDetailID", ) // pagination kelainan detail component @@ -1070,7 +1141,7 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainanDetail(c echo.Context) 1, "/dev/kelainandetailpagination", paginationDetailID, - "#selectedID, #tableDetailID, #searchDetailID, #"+searchDetailID+", #paginationDetailID", + "#selectedID, #tableDetailID, #searchDetailID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID, #"+searchDetailID+", #paginationDetailID", "#"+paginationDetailID, "outerHTML", "", "true", ) @@ -1086,6 +1157,7 @@ func (lh *MasterKelainanHandler) HandlerShowMdKelainanDetailSearch(c echo.Contex searchDetailID := c.QueryParam("searchDetailID") tableDetailID := c.QueryParam("tableDetailID") paginationDetailID := c.QueryParam("paginationDetailID") + dialogDetailDeleteBodyID := c.QueryParam("dialogDetailDeleteBodyID") dataKelainanDetail, totalpagedetail, err := lh.MasterKelainanService.GetListMasterKelainanDetail(selectedID, searchdetail, 1, 5) if err != nil { @@ -1103,6 +1175,10 @@ func (lh *MasterKelainanHandler) HandlerShowMdKelainanDetailSearch(c echo.Contex contentKelainanDetailCmp := masterkelainan.TableKelainanDetail( dataKelainanDetail, tableDetailID, + "/dev/kelainandetail/opendelete", + "#"+dialogDetailDeleteBodyID, + "outerHTML", + "#dialogDetailDeleteBodyID, #dialogDetailDeleteID, #tableDetailID", ) kelainanDetailPaginationCmp := pagination.PaginationV2( @@ -1110,7 +1186,7 @@ func (lh *MasterKelainanHandler) HandlerShowMdKelainanDetailSearch(c echo.Contex 1, "/dev/kelainandetailpagination", paginationDetailID, - "#selectedID, #tableDetailID, #searchDetailID, #"+searchDetailID+", #paginationDetailID", + "#selectedID, #tableDetailID, #searchDetailID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID, #"+searchDetailID+", #paginationDetailID", "#"+paginationDetailID, "outerHTML", "", "true", ) @@ -1128,6 +1204,13 @@ func (lh *MasterKelainanHandler) HandlerShowMdKelainanDetailPagination(c echo.Co searchDetailID := c.QueryParam("searchDetailID") tableDetailID := c.QueryParam("tableDetailID") paginationDetailID := c.QueryParam("paginationDetailID") + dialogDetailDeleteBodyID := c.QueryParam("dialogDetailDeleteBodyID") + // dialogDetailDeleteID := c.QueryParam("dialogDetailDeleteID") + + // defer logger.Sync() + // logger.Info("CEK HandlerShowMdKelainanDetailPagination", + // zap.Any("dialogDetailDeleteBodyID", dialogDetailDeleteBodyID), + // ) page, err := strconv.Atoi(pageparamdetail) if err != nil { @@ -1151,13 +1234,17 @@ func (lh *MasterKelainanHandler) HandlerShowMdKelainanDetailPagination(c echo.Co contentKelainanDetailCmp := masterkelainan.TableKelainanDetail( dataKelainanDetail, tableDetailID, + "/dev/kelainandetail/opendelete", + "#"+dialogDetailDeleteBodyID, + "outerHTML", + "#dialogDetailDeleteBodyID, #dialogDetailDeleteID, #tableDetailID", ) kelainanPaginationCmp := pagination.PaginationV2(totalpgaedetail, page, "/dev/kelainandetailpagination", paginationDetailID, - "#selectedID, #tableDetailID, #searchDetailID, #"+searchDetailID+", #paginationDetailID", + "#selectedID, #tableDetailID, #searchDetailID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID, #"+searchDetailID+", #paginationDetailID", "#"+paginationDetailID, "outerHTML", "", "", ) @@ -1181,6 +1268,7 @@ func (lh *MasterKelainanHandler) HandlerAddKelainanDetail(c echo.Context) error currPagePrmDetail := c.FormValue("currpage" + paginationDetailID) dialogDetailAddBodyID := c.FormValue("dialogDetailAddBodyID") dialogDetailAddID := c.FormValue("dialogDetailAddID") + dialogDetailDeleteBodyID := c.FormValue("dialogDetailDeleteBodyID") currPage, err := strconv.Atoi(currPagePrmDetail) @@ -1285,11 +1373,11 @@ func (lh *MasterKelainanHandler) HandlerAddKelainanDetail(c echo.Context) error return utils.ViewMulti(c, []templ.Component{ customtoastv2.CustomToastV2Show("Error", err.Error(), "danger"), newForm}) } - logger.Info("ADD KELAINAN DETAIL", - zap.Any("return", dataKelainanDetail), - zap.Any("name", nameKelainanDetail), - zap.Any("name klasifikasi", nameClassification), + logger.Info("PARAMETER LIST", zap.Any("selectedid", selectedID), + zap.Any("searchdetail", searchdetail), + zap.Any("currPage", currPage), + zap.Any("dataKelainanDetail", dataKelainanDetail), ) // get data table current page @@ -1301,6 +1389,10 @@ func (lh *MasterKelainanHandler) HandlerAddKelainanDetail(c echo.Context) error ) } + logger.Info("list kelainan detail add", + zap.Any("return", dataKelainanDetailList), + ) + // new add form newForm := masterkelainan.BodyFormKelainanDetail( models.CustomTextFieldv2Prm{ @@ -1333,6 +1425,10 @@ func (lh *MasterKelainanHandler) HandlerAddKelainanDetail(c echo.Context) error // new table listing contentKelainanDetailComponent := masterkelainan.TableKelainanDetail( dataKelainanDetailList, tableDetailID, + "/dev/kelainandetail/opendelete", + "#"+dialogDetailDeleteBodyID, + "outerHTML", + "#dialogDetailDeleteBodyID, #dialogDetailDeleteID, #tableDetailID", ) // new pagination @@ -1340,7 +1436,7 @@ func (lh *MasterKelainanHandler) HandlerAddKelainanDetail(c echo.Context) error currPage, "/dev/kelainandetailpagination", paginationDetailID, - "#tableDetailID, #searchDetailID, #"+searchDetailID+", #paginationDetailID", + "#tableDetailID, #searchDetailID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID, #"+searchDetailID+", #paginationDetailID", "#"+paginationDetailID, "outerHTML", "", "true") toastSuccess := customtoastv2.CustomToastV2Show("Success", "Success add kelainan "+nameKelainanDetail, "success") @@ -1384,3 +1480,150 @@ func (lh *MasterKelainanHandler) HandlerCloseFormAddDetail(c echo.Context) error dialogDetailAddBodyID, masterkelainan.JsHideModalDetail("")) return utils.View(c, newForm) } + +func (lh *MasterKelainanHandler) HandlerOpenDeleteFormDetail(c echo.Context) error { + id := c.QueryParam("id") + dialogDetailDeleteID := c.QueryParam("dialogDetailDeleteID") + dialogDetailDeleteBodyID := c.QueryParam("dialogDetailDeleteBodyID") + + logger, _ := zap.NewProduction() + defer logger.Sync() + logger.Info("CEK dialogDetailDeleteBodyID", + zap.Any("dialogDetailDeleteBodyID", dialogDetailDeleteBodyID), + ) + + dataKelainanDetail, err := lh.MasterKelainanService.GetKelainanDetailByID(id) + + if err != nil { + newForm := masterkelainan.DeleteConfirmationBodyDetail( + models.CustomTextFieldv2Prm{Name: "kelainandetailid", Type: "hidden", Value: strconv.Itoa(dataKelainanDetail.Mcu_KelainanID)}, + dialogDetailDeleteBodyID, + "Apakah anda yakin menghapus kelainan berikut ?", + []string{"Nama Kelainan", "Nama Klasifikasi"}, + []string{"", ""}, + masterkelainan.JsShowModalDetail("")) + return utils.ViewMulti(c, []templ.Component{customtoastv2.CustomToastV2Show("Error", "Get kelainan error", "danger"), newForm}) + } + newForm := masterkelainan.DeleteConfirmationBodyDetail( + models.CustomTextFieldv2Prm{Name: "kelainandetailid", Type: "hidden", Value: strconv.Itoa(dataKelainanDetail.Mcu_KelainanID)}, + dialogDetailDeleteBodyID, + "Apakah anda yakin menghapus kelainan berikut ?", + []string{"Nama Kelainan", "Nama Klasifikasi"}, + []string{dataKelainanDetail.Mcu_KelainanName, dataKelainanDetail.Mcu_KelainanClasification}, + masterkelainan.JsShowModalDetail("#"+dialogDetailDeleteID)) + + return utils.View(c, newForm) +} + +func (lh *MasterKelainanHandler) HandlerCloseDeleteFormDetail(c echo.Context) error { + dialogDetailDeleteBodyID := c.FormValue("dialogDetailDeleteBodyID") + newForm := masterkelainan.DeleteConfirmationBodyDetail( + models.CustomTextFieldv2Prm{Name: "kelainandetailid", Type: "hidden", Value: ""}, + dialogDetailDeleteBodyID, + "Apakah anda yakin menghapus kelainan berikut ?", + []string{"Nama Kelainan", "Nama Klasifikasi"}, + []string{"", ""}, + masterkelainan.JsShowModalDetail("")) + return utils.View(c, newForm) +} + +func (lh *MasterKelainanHandler) HandlerDeleteKelainanDetail(c echo.Context) error { + logger, _ := zap.NewProduction() + defer logger.Sync() + + // prm form kelainan + id := c.FormValue("kelainandetailid") + tableDetailID := c.FormValue("tableDetailID") + paginationDetailID := c.FormValue("paginationDetailID") + searchDetailID := c.FormValue("searchDetailID") + searchdetail := c.FormValue("searchdetail") + currPagePrm := c.FormValue("currpage" + paginationDetailID) + dialogDetailDeleteID := c.FormValue("dialogDetailDeleteID") + dialogDetailDeleteBodyID := c.FormValue("dialogDetailDeleteBodyID") + + currPage, err := strconv.Atoi(currPagePrm) + if err != nil { + return err + } + + logger.Info("PARAMETER LIST", + zap.Any("selectedid", id), + zap.Any("searchdetail", searchdetail), + zap.Any("currPage", currPage), + ) + + dataKelainanDetail, err := lh.MasterKelainanService.DeleteKelainanDetail(id) + if err != nil { + logger.Info("Error", + zap.Any("Error", err), + ) + newForm := masterkelainan.DeleteConfirmationBodyDetail( + models.CustomTextFieldv2Prm{Name: "kelainandetailid", Type: "hidden", Value: ""}, + dialogDetailDeleteBodyID, + "Apakah anda yakin menghapus kelainan berikut ?", + []string{"Nama Kelainan", "Nama Klasifikasi"}, + []string{"", ""}, + masterkelainan.JsShowModalDetail("")) + return utils.ViewMulti(c, []templ.Component{customtoastv2.CustomToastV2Show("Error", err.Error(), "danger"), newForm}) + } + logger.Info("Kelainan", + zap.Any("return", dataKelainanDetail), + ) + + //get list kelainan for table + // kelainanDetailList, totalpage, err := lh.MasterKelainanService.GetListMasterKelainanDetail(id, searchdetail, currPage, 5) + kelainanDetailList, totalpage, err := lh.MasterKelainanService.GetListMasterKelainanDetail(id, searchdetail, currPage, 5) + logger.Info("list kelainan detail delete", + zap.Any("return", kelainanDetailList), + ) + if err != nil { + defer logger.Sync() + logger.Info("ERROR GET KELAINAN", + zap.Any("error", err), + ) + fmt.Println(dataKelainanDetail) + return err + } + if len(kelainanDetailList) == 0 && totalpage > 1 { + currPage = currPage - 1 + kelainanDetailList, _, err = lh.MasterKelainanService.GetListMasterKelainanDetail(id, searchdetail, currPage, 5) + if err != nil { + defer logger.Sync() + logger.Info("ERROR GET KELAINAN", + zap.Any("error", err), + ) + return err + } + } + + tablecomponent := masterkelainan.TableKelainanDetail(kelainanDetailList, + tableDetailID, + "/dev/kelainandetail/opendelete", + "#"+dialogDetailDeleteBodyID, + "outerHTML", + "#dialogDetailDeleteBodyID, #dialogDetailDeleteID, #tableDetailID", + ) + + kelainanDetailPaginationCmp := pagination.PaginationV2( + totalpage, + currPage, + "/dev/kelainandetailpagination", + paginationDetailID, + "#tableDetailID, #searchDetailID, #"+searchDetailID+", #paginationDetailID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID", + "#"+paginationDetailID, + "outerHTML", "", "true", + ) + + newForm := masterkelainan.DeleteConfirmationBodyDetail( + models.CustomTextFieldv2Prm{Name: "kelainandetailid", Type: "hidden", Value: ""}, + dialogDetailDeleteBodyID, + "Apakah anda yakin menghapus kelainan berikut ?", + []string{"Nama Kelainan", "Nama Klasifikasi"}, + []string{""}, + masterkelainan.JsHideModalDetail("#"+dialogDetailDeleteID)) + toastSuccess := customtoastv2.CustomToastV2Show("Success", "Berhasil delete Kelainan ", "success") + + retVal := []templ.Component{toastSuccess, tablecomponent, kelainanDetailPaginationCmp, newForm} + + return utils.ViewMulti(c, retVal) +} diff --git a/handlers/routes.go b/handlers/routes.go index 20d17eb..b67db8d 100644 --- a/handlers/routes.go +++ b/handlers/routes.go @@ -231,4 +231,7 @@ func SetupRoutesDev(app *echo.Echo, appStore db.AppStore) { dev.GET("/kelainandetailpagination", devKLhandlers.HandlerShowMdKelainanDetailPagination) dev.POST("/kelainandetail/closeaddform", devKLhandlers.HandlerCloseFormAddDetail) dev.POST("/kelainandetail/add", devKLhandlers.HandlerAddKelainanDetail) + dev.GET("/kelainandetail/opendelete", devKLhandlers.HandlerOpenDeleteFormDetail) + dev.POST("/kelainandetail/closedeleteform", devKLhandlers.HandlerCloseDeleteFormDetail) + dev.POST("/kelainandetail/delete", devKLhandlers.HandlerDeleteKelainanDetail) } diff --git a/services/dev/masterkelainan.services.go b/services/dev/masterkelainan.services.go index dc2bb34..5e97a3b 100644 --- a/services/dev/masterkelainan.services.go +++ b/services/dev/masterkelainan.services.go @@ -357,3 +357,35 @@ func (su *ServicesMasterKelainan) AddKelainanDetail(name string, nameclassificat return data, nil } + +func (su *ServicesMasterKelainan) DeleteKelainanDetail(id string) (models.KelainanDetail, error) { + logger, _ := zap.NewProduction() + var data models.KelainanDetail + + qry := `UPDATE mcu_kelainan + SET Mcu_KelainanIsActive = 'N', + Mcu_KelainanLastUpdated = NOW() + WHERE Mcu_KelainanID = ?` + + rst := dbx.Handlex.MustExec(qry, id) + _, err := rst.RowsAffected() + + if err != nil { + defer logger.Sync() + logger.Error("Error delete kelainan", + zap.String("id", id), + ) + return data, fmt.Errorf("QUERY_FAILED") + } + + data, err = su.GetKelainanDetailByID(id) + if err != nil { + defer logger.Sync() + logger.Error("Error get kelainan by id", + zap.String("id", id), + ) + return data, fmt.Errorf("QUERY_FAILED") + } + + return data, nil +} diff --git a/views/dev/masterkelainan/masterkelainan.templ b/views/dev/masterkelainan/masterkelainan.templ index a8c5eb0..fb088d0 100644 --- a/views/dev/masterkelainan/masterkelainan.templ +++ b/views/dev/masterkelainan/masterkelainan.templ @@ -21,6 +21,8 @@ templ ContentMasterKelainan( searchDetailID string, dialogDetailAddID string, dialogDetailAddBodyID string, + dialogDetailDeleteID string, + dialogDetailDeleteBodyID string, breadcrumb templ.Component, tablecontent templ.Component, filterComponent templ.Component, @@ -32,6 +34,7 @@ templ ContentMasterKelainan( filterDetailComponent templ.Component, paginationDetailComponent templ.Component, modalDetailAddForm templ.Component, + modalDetailForm templ.Component, ) {
{ message }
+") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var32 string + templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.JoinStringErrs(message) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\masterkelainan\mdkelainandetailformmodal.templ`, Line: 154, Col: 14} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var32)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("