diff --git a/component/customdropdown/customdropdown_templ.go b/component/customdropdown/customdropdown_templ.go index d6cdc73..c1be02e 100644 --- a/component/customdropdown/customdropdown_templ.go +++ b/component/customdropdown/customdropdown_templ.go @@ -376,7 +376,7 @@ func CustomDropdownFilter( var templ_7745c5c3_Var23 string templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.JoinStringErrs(idCmp) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\customdropdown\customdropdown.templ`, Line: 80, Col: 12} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\customdropdown\customdropdown.templ`, Line: 81, Col: 12} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var23)) if templ_7745c5c3_Err != nil { @@ -389,7 +389,7 @@ func CustomDropdownFilter( var templ_7745c5c3_Var24 string templ_7745c5c3_Var24, templ_7745c5c3_Err = templ.JoinStringErrs(hxName) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\customdropdown\customdropdown.templ`, Line: 81, Col: 15} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\customdropdown\customdropdown.templ`, Line: 82, Col: 15} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var24)) if templ_7745c5c3_Err != nil { @@ -402,7 +402,7 @@ func CustomDropdownFilter( var templ_7745c5c3_Var25 string templ_7745c5c3_Var25, templ_7745c5c3_Err = templ.JoinStringErrs(hxInclude) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\customdropdown\customdropdown.templ`, Line: 82, Col: 24} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\customdropdown\customdropdown.templ`, Line: 83, Col: 24} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var25)) if templ_7745c5c3_Err != nil { @@ -415,7 +415,7 @@ func CustomDropdownFilter( var templ_7745c5c3_Var26 string templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.JoinStringErrs(hxGet) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\customdropdown\customdropdown.templ`, Line: 83, Col: 16} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\customdropdown\customdropdown.templ`, Line: 84, Col: 16} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var26)) if templ_7745c5c3_Err != nil { @@ -428,7 +428,7 @@ func CustomDropdownFilter( var templ_7745c5c3_Var27 string templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.JoinStringErrs(hxSwap) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\customdropdown\customdropdown.templ`, Line: 84, Col: 18} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\customdropdown\customdropdown.templ`, Line: 85, Col: 18} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var27)) if templ_7745c5c3_Err != nil { @@ -441,7 +441,7 @@ func CustomDropdownFilter( var templ_7745c5c3_Var28 string templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.JoinStringErrs(hxTarget) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\customdropdown\customdropdown.templ`, Line: 85, Col: 22} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\customdropdown\customdropdown.templ`, Line: 86, Col: 22} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var28)) if templ_7745c5c3_Err != nil { @@ -454,7 +454,7 @@ func CustomDropdownFilter( var templ_7745c5c3_Var29 string templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinStringErrs(hxTrigger) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\customdropdown\customdropdown.templ`, Line: 86, Col: 24} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\customdropdown\customdropdown.templ`, Line: 87, Col: 24} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var29)) if templ_7745c5c3_Err != nil { @@ -518,7 +518,7 @@ func CustomDropdownForm( var templ_7745c5c3_Var33 string templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.JoinStringErrs(inp.Label) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\customdropdown\customdropdown.templ`, Line: 97, Col: 87} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\customdropdown\customdropdown.templ`, Line: 98, Col: 87} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var33)) if templ_7745c5c3_Err != nil { @@ -546,7 +546,7 @@ func CustomDropdownForm( var templ_7745c5c3_Var34 string templ_7745c5c3_Var34, templ_7745c5c3_Err = templ.JoinStringErrs(inp.Placeholder) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\customdropdown\customdropdown.templ`, Line: 106, Col: 26} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\customdropdown\customdropdown.templ`, Line: 107, Col: 26} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var34)) if templ_7745c5c3_Err != nil { @@ -559,7 +559,7 @@ func CustomDropdownForm( var templ_7745c5c3_Var35 string templ_7745c5c3_Var35, templ_7745c5c3_Err = templ.JoinStringErrs(inp.Name) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\customdropdown\customdropdown.templ`, Line: 109, Col: 18} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\customdropdown\customdropdown.templ`, Line: 110, Col: 18} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var35)) if templ_7745c5c3_Err != nil { @@ -572,7 +572,7 @@ func CustomDropdownForm( var templ_7745c5c3_Var36 string templ_7745c5c3_Var36, templ_7745c5c3_Err = templ.JoinStringErrs(inp.ID) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\customdropdown\customdropdown.templ`, Line: 110, Col: 14} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\customdropdown\customdropdown.templ`, Line: 111, Col: 14} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var36)) if templ_7745c5c3_Err != nil { @@ -593,7 +593,7 @@ func CustomDropdownForm( var templ_7745c5c3_Var37 string templ_7745c5c3_Var37, templ_7745c5c3_Err = templ.JoinStringErrs(inp.ErrorMsg) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\customdropdown\customdropdown.templ`, Line: 115, Col: 17} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\customdropdown\customdropdown.templ`, Line: 116, Col: 17} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var37)) if templ_7745c5c3_Err != nil { diff --git a/config.yml b/config.yml new file mode 100644 index 0000000..10e0fa0 --- /dev/null +++ b/config.yml @@ -0,0 +1,14 @@ +# MYSQL + +dbuser: cpuser +dbpass: sasone102938 +dbhost: devone.aplikasi.web.id +dbport: 3306 +dbname: cpone +tokenExpiration: 4049000 +# dbuser: +# dbpass: +# dbhost: +# dbport: +# dbname: cpone.db +# tokenExpiration: 4049000 diff --git a/handlers/dev/md.polakelainan.handlers.go b/handlers/dev/md.polakelainan.handlers.go new file mode 100644 index 0000000..094231a --- /dev/null +++ b/handlers/dev/md.polakelainan.handlers.go @@ -0,0 +1,1492 @@ +package dev_handlers + +import ( + breadcrumadmin "cpone/component/breadcrumbadmin" + "cpone/component/customtextfieldsearch" + navbarmenu "cpone/component/navbar" + "cpone/component/pagination" + sidebaruserprofile "cpone/component/sidebar_user_profile" + customtoastv2 "cpone/component/toastbootstrap" + "cpone/models" + globalservices "cpone/services" + "cpone/utils" + masterkelainan "cpone/views/dev/mdpolakelainan" + "fmt" + "strconv" + "strings" + + "github.com/a-h/templ" + "github.com/labstack/echo/v4" + "go.uber.org/zap" +) + +type MasterKelainanService interface { + GetListBreadCrumb(title string) (models.BreadCrumbV1, error) + GetListMasterKelainan(search string, currentPage int, rowPerPage int) ([]models.Kelainan, int, error) + GetKelainanByID(id string) (models.Kelainan, error) + AddKelainan(name string) (models.Kelainan, error) + DeleteKelainan(id string) (models.Kelainan, error) + UpdateFlagStatusKelainan(id string, status 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 { + return &MasterKelainanHandler{ + MasterKelainanService: us, + } +} + +type MasterKelainanHandler struct { + MasterKelainanService MasterKelainanService +} + +func (uh *MasterKelainanHandler) View(c echo.Context, cmp templ.Component) error { + c.Response().Header().Set(echo.HeaderContentType, echo.MIMETextHTML) + + return cmp.Render(c.Request().Context(), c.Response().Writer) +} + +func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error { + + logger, _ := zap.NewProduction() + //get sidebarmenu + id := c.QueryParam("id") + tableDetailID := utils.GenerateRandomID("tablebodydetail") + paginationDetailID := utils.GenerateRandomID("paginationdetailid") + 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) + + dataMenu, err := globalservices.GetMenu() + fmt.Println(dataMenu) + fmt.Println(err) + if err != nil { + fmt.Println(dataMenu) + return err + } + + //get user login + dataUser, err := globalservices.GetUserLogin() + fmt.Println(dataUser) + fmt.Println(err) + if err != nil { + fmt.Println(dataUser) + return err + } + + dataKelainan, totalpage, err := lh.MasterKelainanService.GetListMasterKelainan("", 1, 5) + if err != nil { + defer logger.Sync() + logger.Info("ERROR GET KELAINAN", + zap.Any("error", err), + ) + fmt.Println(dataKelainan) + return err + } + + defer logger.Sync() + logger.Info("LOAD KELAINAN", + zap.Any("data", dataKelainan), + ) + + dataKelainanDetail, totalPageDetail, err := lh.MasterKelainanService.GetListMasterKelainanDetail(id, "", 1, 5) + if err != nil { + defer logger.Sync() + logger.Info("ERROR GET KELAINAN DETAIL", + zap.Any("error", err), + ) + return err + } + + defer logger.Sync() + logger.Info("LOAD KELAINAN DETAIL", + zap.Any("data detail", dataKelainanDetail), + ) + + tableID := utils.GenerateRandomID("tablebody") + paginationID := utils.GenerateRandomID("paginationid") + searchID := utils.GenerateRandomID("searchid") + dialogAddID := utils.GenerateRandomID("dialogaddID") + dialogAddBodyID := utils.GenerateRandomID("dialogaddbodyID") + dialogDeleteID := utils.GenerateRandomID("dialogDeleteID") + dialogDeleteBodyID := utils.GenerateRandomID("dialogDeletebodyID") + + title := "Master Pola Kelainan" + + dataBreadCrumb, err := lh.MasterKelainanService.GetListBreadCrumb(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), + ) + + // breadcrumadmin + breadcrumbComponent := breadcrumadmin.MainBreadcrumbAdminV1(dataBreadCrumb) + + // navbar menu + navbarmenuComponent := navbarmenu.NavbarMenu(dataMenu) + + // navbar user + navbaruserComponent := navbarmenu.Navbar(dataUser) + + // sidebar + sidebaruserprofileComponent := sidebaruserprofile.Navbaruserprofile(dataUser) + + // component modal add kelainan + dialogAddBodyCmp := masterkelainan.BodyFormKelainan( + models.CustomTextFieldv2Prm{ + Label: "Nama Grup Kelainan", + Name: "kelainanname", + Placeholder: "Nama Grup Kelainan", + Type: "text", ID: "kelainaninputname"}, + models.CustomTextFieldv2Prm{ + Label: "Nama Grup Kelainan", + Name: "kelainanid", + Placeholder: "Nama Grup Kelainan", + Type: "hidden", ID: "kelainaninputid"}, + dialogAddBodyID, masterkelainan.JsHideModal("")) + dialogAddActionCmp := masterkelainan.ActionFormKelainan( + "/dev/kelainan/closeaddform", + "#"+dialogAddBodyID, + "outerHTML", + "#"+dialogAddID) + dialogAddCloseCmp := masterkelainan.BtnCloseFormKelainan( + "/dev/kelainan/closeaddform", + "#"+dialogAddBodyID, + "outerHTML", + "#"+dialogAddID) + modaladdcomponent := masterkelainan.KelainanForm(models.KelainanFormComponent{ + IDComponent: "formkelainan", + Link: "/dev/kelainan/add", + HxTarget: "#" + dialogAddBodyID, + HxSwap: "outerHTML", + HxInclude: "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #" + searchID + ", #currpage" + paginationID + ",#dialogDeleteBodyID, #dialogDeleteID, #dialogEditID", + ModalID: dialogAddID, + ModalTitle: "New - Grup Kelainan", + DialogBody: dialogAddBodyCmp, + DialogAction: dialogAddActionCmp, + ButtonCLose: dialogAddCloseCmp, + }) + + // component table listing kelainan + contentKelainanComponent := masterkelainan.TableKelainan( + dataKelainan, tableID, + "/dev/kelainan/flagaktif", + "outerHTML", + "/dev/kelainan/flagnonaktif", + "outerHTML", + "/dev/kelainan/opendelete", + "#"+dialogDeleteBodyID, + "outerHTML", + "#dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", + "/dev/kelainan/selected", + "#"+tableDetailID, + ) + + // filter kelainan component + kelainanFilterComponent := customtextfieldsearch.MainCustomTextFieldSearchV2(searchID, + "search", + "Cari Grup Kelainan", + "text", + "/dev/searchkelainan", + "input changed delay:500ms, search", + "#"+paginationID, "", "", "outerHTML", "#tableID, #paginationID, #searchID, #dialogDeleteBodyID, #dialogDeleteID") + + // pagination kelainan component + kelainanPaginationComponent := pagination.PaginationV2( + totalpage, + 1, + "/dev/kelainanpagination", + paginationID, + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", + "#"+paginationID, + "outerHTML", "", "", + ) + + // modal delete form + dialogDeleteBodyComponent := masterkelainan.BodyFormKelainan( + models.CustomTextFieldv2Prm{ + Label: "Nama Grup Kelainan", + Name: "kelainanname", + Placeholder: "Nama Grup Kelainan", + Type: "text", ID: "kelainaninputname"}, + models.CustomTextFieldv2Prm{ + Label: "Nama Grup Kelainan", + Name: "kelainanid", + Placeholder: "Nama Grup Kelainan", + Type: "hidden", ID: "kelainaninputid"}, + dialogDeleteBodyID, masterkelainan.JsHideModal("")) + modalActioDeleteComponent := masterkelainan.ActionFormKelainanDelete( + "/dev/kelainan/closedeleteform", + "#"+dialogDeleteBodyID, + "outerHTML", + "#"+dialogDeleteID) + btnCloaseModalDelete := masterkelainan.BtnCloseFormKelainan( + "/dev/kelainan/closedeleteform", + "#"+dialogDeleteBodyID, + "outerHTML", + "#"+dialogDeleteID) + modalDeleteFormComponent := masterkelainan.KelainanForm( + models.KelainanFormComponent{ + IDComponent: "formkelainan", + Link: "/dev/kelainan/delete", + HxTarget: "#" + dialogDeleteBodyID, + HxSwap: "outerHTML", + HxInclude: "#tableID, #paginationID, #searchID, #dialogDeleteBodyID, #dialogDeleteID, #" + searchID + ", #currpage" + paginationID, + ModalID: dialogDeleteID, + ModalTitle: "Konfirmasi", + DialogBody: dialogDeleteBodyComponent, + DialogAction: modalActioDeleteComponent, + ButtonCLose: btnCloaseModalDelete, + }, + ) + + 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 + kelainanDetailFilterCmp := customtextfieldsearch.MainCustomTextFieldSearchV2(searchDetailID, + "searchdetail", + "Cari Kelainan/Klasifikasi", + "text", + "/dev/searchkelainandetail", + "input changed delay:500ms, searchdetail", + "#"+paginationDetailID, "", "", "none", "#tableDetailID, #paginationDetailID, #searchDetailID, #selectedID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID") + + // pagination kelainan detail component + kelainanDetailPaginationCmp := pagination.PaginationV2( + totalPageDetail, + 1, + "/dev/kelainandetailpagination", + paginationDetailID, + "#tableDetailID, #searchDetailID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID, #"+searchDetailID+", #paginationDetailID", + "#"+paginationDetailID, + "outerHTML", "", "", + ) + + // component modal add kelainan detail + dialogDetailAddBodyCmp := 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"}, + + dialogDetailAddBodyID, masterkelainan.JsHideModalDetail("")) + dialogDetailAddActionCmp := masterkelainan.ActionFormKelainanDetail( + "/dev/kelainandetail/closeaddform", + "#"+dialogDetailAddBodyID, + "outerHTML", + "#"+dialogDetailAddID) + dialogDetailAddCloseCmp := masterkelainan.BtnCloseFormKelainanDetail( + "/dev/kelainandetail/closeaddform", + "#"+dialogDetailAddBodyID, + "outerHTML", + "#"+dialogDetailAddID) + modaldetailaddcomponent := masterkelainan.KelainanDetailForm(models.KelainanDetailFormComponent{ + IDComponent: "formkelainandetail", + Link: "/dev/kelainandetail/add", + HxTarget: "#" + dialogDetailAddBodyID, + HxSwap: "outerHTML", + HxInclude: "#selectedID, #tableDetailID, #paginationDetailID, #searchDetailID, #dialogDetailAddBodyID, #dialogDetailAddID, #selectedID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID, #" + searchDetailID + ", #currpage" + paginationDetailID, + ModalID: dialogDetailAddID, + ModalTitle: "New - Kelainan", + DialogBody: dialogDetailAddBodyCmp, + DialogAction: dialogDetailAddActionCmp, + 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, + dialogDeleteID, + dialogDeleteBodyID, + tableDetailID, + paginationDetailID, + searchDetailID, + dialogDetailAddID, + dialogDetailAddBodyID, + dialogDetailDeleteID, + dialogDetailDeleteBodyID, + breadcrumbComponent, + contentKelainanComponent, + kelainanFilterComponent, + kelainanPaginationComponent, + modaladdcomponent, + modalDeleteFormComponent, + contentKelainanDetailCmp, + kelainanDetailFilterCmp, + kelainanDetailPaginationCmp, + modaldetailaddcomponent, + modalDetailDeleteFormCmp) + css := masterkelainan.CssKelainan() + js := masterkelainan.JsMdKelainan() + + // show kelainan screen + view := masterkelainan.ShowKelainan( + title, + content, + css, + js, + navbarmenuComponent, + navbaruserComponent, + sidebaruserprofileComponent) + + return utils.View(c, view) +} + +func (lh *MasterKelainanHandler) HandlerShowMasterKelainanSearch(c echo.Context) error { + search := c.QueryParam("search") + searchID := c.QueryParam("searchID") + tableID := c.QueryParam("tableID") + tableDetailID := c.QueryParam("tableDetailID") + paginationID := c.QueryParam("paginationID") + dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID") + logger, _ := zap.NewProduction() + + dataKelainan, totalpage, err := lh.MasterKelainanService.GetListMasterKelainan(search, 1, 5) + if err != nil { + defer logger.Sync() + logger.Info("ERROR GET KELAINAN", + zap.Any("error", err), + ) + fmt.Println(dataKelainan) + return err + } + + contentKelainanComponent := masterkelainan.TableKelainan( + dataKelainan, tableID, + "/dev/kelainan/flagaktif", + "outerHTML", + "/dev/kelainan/flagnonaktif", + "outerHTML", + "/dev/kelainan/opendelete", + "#"+dialogDeleteBodyID, + "outerHTML", + "#dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", + "/dev/kelainan/selected", + "#"+tableDetailID, + ) + + kelainanPaginationComponent := pagination.PaginationV2(totalpage, + 1, + "/dev/kelainanpagination", + paginationID, + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", + "#"+paginationID, "outerHTML", "", "") + + retval := []templ.Component{contentKelainanComponent, kelainanPaginationComponent} + + return utils.ViewMulti(c, retval) +} + +func (lh *MasterKelainanHandler) HandlerShowMasterKelainanPagination(c echo.Context) error { + logger, _ := zap.NewProduction() + + search := c.QueryParam("search") + pageparam := c.QueryParam("page") + tableID := c.QueryParam("tableID") + tableDetailID := c.QueryParam("tableDetailID") + searchID := c.QueryParam("searchID") + paginationID := c.QueryParam("paginationID") + dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID") + page, err := strconv.Atoi(pageparam) + if err != nil { + defer logger.Sync() + logger.Info("ERROR CONVERT PAGE PARAM", + zap.Any("page", page), + zap.Any("error ", err), + ) + return err + } + + dataKelainan, totalpage, err := lh.MasterKelainanService.GetListMasterKelainan(search, page, 5) + if err != nil { + defer logger.Sync() + logger.Info("ERROR GET KELAINAN", + zap.Any("error", err), + ) + fmt.Println(dataKelainan) + return err + } + + contentKelainanComponent := masterkelainan.TableKelainan( + dataKelainan, tableID, + "/dev/kelainan/flagaktif", + "outerHTML", + "/dev/kelainan/flagnonaktif", + "outerHTML", + "/dev/kelainan/opendelete", + "#"+dialogDeleteBodyID, + "outerHTML", + "#dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", + "/dev/kelainan/selected", + "#"+tableDetailID, + ) + + kelainanPaginationComponent := pagination.PaginationV2(totalpage, + page, + "/dev/kelainanpagination", + paginationID, + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", + "#"+paginationID, "outerHTML", "", "") + + retval := []templ.Component{contentKelainanComponent, kelainanPaginationComponent} + + return utils.ViewMulti(c, retval) +} + +func (lh *MasterKelainanHandler) AddKelainan(c echo.Context) error { + logger, _ := zap.NewProduction() + defer logger.Sync() + + name := c.FormValue("kelainanname") + tableID := c.FormValue("tableID") + tableDetailID := c.FormValue("tableDetailID") + paginationID := c.FormValue("paginationID") + searchID := c.FormValue("searchID") + search := c.FormValue("search") + currPagePrm := c.FormValue("currpage" + paginationID) + dialogAddBodyID := c.FormValue("dialogAddBodyID") + dialogAddID := c.FormValue("dialogAddID") + dialogDeleteBodyID := c.FormValue("dialogDeleteBodyID") + + currPage, err := strconv.Atoi(currPagePrm) + + if err != nil { + return err + } + logger.Info("ADD KELAINAN", + zap.Any("nama", name), + zap.Any("tableid", tableID), + zap.Any("search", search), + zap.Any("currpage", currPage), + ) + + // form validation + nameValidation := "" + if strings.TrimSpace(name) == "" { + nameValidation = "Nama grup kelainan tidak boleh kosong" + } + if nameValidation != "" { + newForm := masterkelainan.BodyFormKelainan( + models.CustomTextFieldv2Prm{ + Label: "Nama Grup Kelainan", + Name: "kelainanname", + Placeholder: "Nama Grup Kelainan", + Type: "text", + Value: name, + ID: "kelainaninputname", + ErrorMsg: nameValidation}, + models.CustomTextFieldv2Prm{Label: "Nama Grup Kelainan", + Name: "kelainanid", + Placeholder: "Nama Grup Kelainan", + Type: "hidden", + ID: "kelainaninputid"}, + dialogAddBodyID, masterkelainan.JsHideModal("")) + + return utils.ViewMulti(c, []templ.Component{ + customtoastv2.CustomToastV2Show("Warning", nameValidation, "warning"), newForm}) + + } + + // Add kelainan service + dataKelainan, err := lh.MasterKelainanService.AddKelainan(name) + + if err != nil { + logger.Info("Error", + zap.Any("Error", err), + zap.Any("name", name), + ) + + newForm := masterkelainan.BodyFormKelainan( + models.CustomTextFieldv2Prm{ + Label: "Nama Grup Kelainan", + Name: "kelainanname", + Placeholder: "Nama Grup Kelainan", + Type: "text", + Value: name, + ID: "kelainaninputname", + }, + models.CustomTextFieldv2Prm{Label: "Nama Grup Kelainan", + Name: "kelainanid", + Placeholder: "Nama Grup Kelainan", + Type: "hidden", + ID: "kelainaninputid"}, + dialogAddBodyID, masterkelainan.JsHideModal("")) + return utils.ViewMulti(c, []templ.Component{ + customtoastv2.CustomToastV2Show("Error", err.Error(), "danger"), newForm}) + } + logger.Info("ADD KELAINAN", + zap.Any("reutn", dataKelainan), + zap.Any("name", name), + ) + + // Get data table current page + dataKelainanList, totalpage, err := lh.MasterKelainanService.GetListMasterKelainan(search, currPage, 5) + if err != nil { + defer logger.Sync() + logger.Info("ERROR GET KELAINAN", + zap.Any("error", err), + ) + return err + } + + // New add form + newForm := masterkelainan.BodyFormKelainan( + models.CustomTextFieldv2Prm{ + Label: "Nama Grup Kelainan", + Name: "kelainanname", + Placeholder: "Nama Grup Kelainan", + Type: "text", + Value: "", + ID: "kelainaninputname", + }, + models.CustomTextFieldv2Prm{Label: "Nama Grup Kelainan", + Name: "kelainanid", + Placeholder: "Nama Grup Kelainan", + Type: "hidden", + ID: "kelainaninputid"}, + dialogAddBodyID, masterkelainan.JsHideModal("#"+dialogAddID)) + + // New table listing + contentKelainanComponent := masterkelainan.TableKelainan( + dataKelainanList, tableID, + "/dev/kelainan/flagaktif", + "outerHTML", + "/dev/kelainan/flagnonaktif", + "outerHTML", + "/dev/kelainan/opendelete", + "#"+dialogDeleteBodyID, + "outerHTML", + "#dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", + "/dev/kelainan/selected", + "#"+tableDetailID, + ) + + // New pagination + kelainanPaginationComponent := pagination.PaginationV2(totalpage, + currPage, + "/dev/kelainanpagination", + paginationID, + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", + "#"+paginationID, "outerHTML", "", "true") + + toastSuccess := customtoastv2.CustomToastV2Show("Success", "Success add kelainan "+name, "success") + + retval := []templ.Component{toastSuccess, contentKelainanComponent, kelainanPaginationComponent, newForm} + + return utils.ViewMulti(c, retval) +} + +func (lh *MasterKelainanHandler) HandleCloseFormAdd(c echo.Context) error { + dialogAddBodyID := c.FormValue("dialogAddBodyID") + newForm := masterkelainan.BodyFormKelainan( + models.CustomTextFieldv2Prm{ + Label: "Nama Grup Kelainan", + Name: "kelainanname", + Placeholder: "Nama Grup Kelainan", + Type: "text", + ID: "kelainaninputname"}, + models.CustomTextFieldv2Prm{Label: "Nama Grup Kelainan", + Name: "kelainanid", + Placeholder: "Nama Grup Kelainan", + Type: "hidden", + ID: "kelainaninputid"}, + dialogAddBodyID, masterkelainan.JsHideModal("")) + return utils.View(c, newForm) +} + +func (lh *MasterKelainanHandler) HandleOpenDeleteForm(c echo.Context) error { + id := c.QueryParam("id") + dialogDeleteID := c.QueryParam("dialogDeleteID") + dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID") + + dataKelainan, err := lh.MasterKelainanService.GetKelainanByID(id) + if err != nil { + newForm := masterkelainan.DeleteConfirmationBody( + models.CustomTextFieldv2Prm{Name: "kelainanid", Type: "hidden", Value: strconv.Itoa(dataKelainan.Mcu_KelainanGroupID)}, + dialogDeleteBodyID, + "Apakah anda yakin menghapus grup kelainan berikut ?", + []string{"Kelainan Grup"}, + []string{""}, + masterkelainan.JsShowModal("")) + return utils.ViewMulti(c, []templ.Component{customtoastv2.CustomToastV2Show("Error", "Get kelainan grup error", "danger"), newForm}) + } + newForm := masterkelainan.DeleteConfirmationBody( + models.CustomTextFieldv2Prm{Name: "kelainanid", Type: "hidden", Value: strconv.Itoa(dataKelainan.Mcu_KelainanGroupID)}, + dialogDeleteBodyID, + "Apakah anda yakin menghapus grup kelainan berikut ?", + []string{"Nama Grup"}, + []string{dataKelainan.Mcu_KelainanGroupName}, + masterkelainan.JsShowModal("#"+dialogDeleteID)) + return utils.View(c, newForm) +} + +func (lh *MasterKelainanHandler) HandleCloseFormDelete(c echo.Context) error { + dialogDeleteBodyID := c.FormValue("dialogDeleteBodyID") + newForm := masterkelainan.DeleteConfirmationBody( + models.CustomTextFieldv2Prm{Name: "kelainanid", Type: "hidden", Value: ""}, + dialogDeleteBodyID, + "Apakah anda yakin menghapus grup kelainan berikut ?", + []string{"Grup Kelainan"}, + []string{""}, + masterkelainan.JsShowModal("")) + return utils.View(c, newForm) +} + +func (lh *MasterKelainanHandler) HandleDeleteKelainan(c echo.Context) error { + + logger, _ := zap.NewProduction() + defer logger.Sync() + + //prm form kelainan + id := c.FormValue("kelainanid") + tableID := c.FormValue("tableID") + tableDetailID := c.FormValue("tableDetailID") + paginationID := c.FormValue("paginationID") + searchID := c.FormValue("searchID") + search := c.FormValue("search") + currPagePrm := c.FormValue("currpage" + paginationID) + // dialogAddBodyID := c.FormValue("dialogAddBodyID") + dialogDeleteID := c.FormValue("dialogDeleteID") + dialogDeleteBodyID := c.FormValue("dialogDeleteBodyID") + + currPage, err := strconv.Atoi(currPagePrm) + if err != nil { + return err + } + logger.Info("ADD KELAINAN PARAM", + zap.Any("tableid", tableID), + zap.Any("search", search), + zap.Any("currpage", currPage), + ) + + //edit user group service + dataKelainan, err := lh.MasterKelainanService.DeleteKelainan(id) + if err != nil { + logger.Info("Error", + zap.Any("Error", err), + ) + newForm := masterkelainan.DeleteConfirmationBody( + models.CustomTextFieldv2Prm{Name: "kelainanid", Type: "hidden", Value: ""}, + dialogDeleteBodyID, + "Apakah anda yakin menghapus grup kelaian berikut ?", + []string{"Nama Grup"}, + []string{""}, + masterkelainan.JsShowModal("")) + return utils.ViewMulti(c, []templ.Component{ + customtoastv2.CustomToastV2Show("Error", err.Error(), "danger"), + newForm}) + + } + logger.Info("ADD KELAINAN", + zap.Any("return", dataKelainan), + ) + //get list user group for table + dataKelainanList, totalPage, err := lh.MasterKelainanService.GetListMasterKelainan(search, currPage, 5) + if err != nil { + defer logger.Sync() + logger.Info("ERROR GET KELAINAN", + zap.Any("error", err), + ) + fmt.Println(dataKelainan) + return err + } + if len(dataKelainanList) == 0 && totalPage > 1 { + currPage = currPage - 1 + dataKelainanList, _, err = lh.MasterKelainanService.GetListMasterKelainan(search, currPage, 5) + if err != nil { + defer logger.Sync() + logger.Info("ERROR GET KELAINAN", + zap.Any("error", err), + ) + return err + } + } + //table component + tableComponent := masterkelainan.TableKelainan(dataKelainanList, + tableID, + "/dev/kelainan/flagaktif", + "outerHTML", + "/dev/kelainan/flagnonaktif", + "outerHTML", + "/dev/kelainan/opendelete", + "#"+dialogDeleteBodyID, + "outerHTML", + "#dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", + "/dev/kelainan/selected", + "#"+tableDetailID, + ) + + //pagination component + kelainanPaginationComponent := pagination.PaginationV2( + totalPage, + currPage, + "/dev/kelainanpagination", + paginationID, + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogDeleteBodyID, #dialogDeleteID, #tableDetailID", + "#"+paginationID, + "outerHTML", "", "true", + ) + + newForm := masterkelainan.DeleteConfirmationBody( + models.CustomTextFieldv2Prm{Name: "kelainanid", Type: "hidden", Value: ""}, + dialogDeleteBodyID, + "Apakah anda yakin menghapus grup kelainan berikut ?", + []string{"Grup Kelainan"}, + []string{""}, + masterkelainan.JsHideModal("#"+dialogDeleteID)) + toastSuccess := customtoastv2.CustomToastV2Show("Success", "Berhasil delete Grup Kelainan ", "success") + + retVal := []templ.Component{toastSuccess, tableComponent, kelainanPaginationComponent, newForm} + + return utils.ViewMulti(c, retVal) +} + +func (lh *MasterKelainanHandler) HandlerUpdateStatusKelainanAktif(c echo.Context) error { + logger, _ := zap.NewProduction() + defer logger.Sync() + + id := c.QueryParam("id") + selectedStatus := c.QueryParam("selectedStatus") + + logger.Info("CEK kelainan id", + zap.Any("kelainan id", id), + zap.Any("selectedStatus", selectedStatus)) + + dataKelainan, err := lh.MasterKelainanService.UpdateFlagStatusKelainan(id, selectedStatus) + if err != nil { + defer logger.Sync() + logger.Info("ERROR UPDATE STATUS KELAINAN", + zap.Any("error", err), + ) + fmt.Println(dataKelainan) + return utils.ViewMulti(c, []templ.Component{ + customtoastv2.CustomToastV2Show("Error", err.Error(), "danger")}) + } + + if selectedStatus == "Y" { + buttonCmp := masterkelainan.CustomButtonTidak( + models.ButtonPrm{ + ID: "non" + id, + HxGet: "/dev/kelainan/flagaktif?id=" + id + "&selectedStatus=N", + HxTarget: "#non" + id, + HxSwap: "outerHTML", + HxInclude: "#paginationID, #dialogDeleteBodyID, #dialogDeleteID, #tableID, #non" + id, + Label: "Tidak", + Class: "col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 btn btn-light-danger mb-2", + }, + ) + + toastSuccess := customtoastv2.CustomToastV2Show("Success", "Berhasil update status Grup Kelainan", "success") + + return utils.ViewMulti(c, []templ.Component{toastSuccess, buttonCmp}) + } else { + buttonCmp := masterkelainan.CustomButtonTidak( + models.ButtonPrm{ + ID: "active" + id, + HxGet: "/dev/kelainan/flagaktif?id=" + id + "&selectedStatus=Y", + HxTarget: "#active" + id, + HxSwap: "outerHTML", + HxInclude: "#paginationID, #dialogDeleteBodyID, #dialogDeleteID, #tableID, #active" + id, + Label: "Aktif", + Class: "col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 btn btn-light-tosca mb-2", + }, + ) + + toastSuccess := customtoastv2.CustomToastV2Show("Success", "Berhasil update status Grup Kelainan", "success") + + return utils.ViewMulti(c, []templ.Component{toastSuccess, buttonCmp}) + } +} + +func (lh *MasterKelainanHandler) HandlerUpdateStatusKelainanNonAktif(c echo.Context) error { + logger, _ := zap.NewProduction() + defer logger.Sync() + + id := c.QueryParam("id") + selectedStatus := c.QueryParam("selectedStatus") + + logger.Info("CEK kelainan id", + zap.Any("kelainan id", id), + zap.Any("selectedStatus", selectedStatus)) + + dataKelainan, err := lh.MasterKelainanService.UpdateFlagStatusKelainan(id, selectedStatus) + if err != nil { + defer logger.Sync() + logger.Info("ERROR UPDATE STATUS KELAINAN", + zap.Any("error", err), + ) + fmt.Println(dataKelainan) + return utils.ViewMulti(c, []templ.Component{ + customtoastv2.CustomToastV2Show("Error", err.Error(), "danger")}) + } + + if selectedStatus == "N" { + buttonCmp := masterkelainan.CustomButtonTidak( + models.ButtonPrm{ + ID: "active" + id, + HxGet: "/dev/kelainan/flagnonaktif?id=" + id + "&selectedStatus=Y", + HxTarget: "#active" + id, + HxSwap: "outerHTML", + HxInclude: "#paginationID, #dialogDeleteBodyID, #dialogDeleteID, #tableID, #active" + id, + Label: "Aktif", + Class: "col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 btn btn-light-tosca mb-2", + }, + ) + + toastSuccess := customtoastv2.CustomToastV2Show("Success", "Berhasil update status Grup Kelainan", "success") + + return utils.ViewMulti(c, []templ.Component{toastSuccess, buttonCmp}) + } else { + buttonCmp := masterkelainan.CustomButtonTidak( + models.ButtonPrm{ + ID: "non" + id, + HxGet: "/dev/kelainan/flagnonaktif?id=" + id + "&selectedStatus=N", + HxTarget: "#non" + id, + HxSwap: "outerHTML", + HxInclude: "#paginationID, #dialogDeleteBodyID, #dialogDeleteID, #tableID, #non" + id, + Label: "Tidak", + Class: "col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 btn btn-light-danger mb-2", + }, + ) + + toastSuccess := customtoastv2.CustomToastV2Show("Success", "Berhasil update status Grup Kelainan", "success") + + return utils.ViewMulti(c, []templ.Component{toastSuccess, buttonCmp}) + } +} + +// master kelainan detail +func (lh *MasterKelainanHandler) HandlerShowMasterKelainanDetail(c echo.Context) error { + logger, _ := zap.NewProduction() + id := c.QueryParam("id") + + dataKelainanDetail, totalPageDetail, err := lh.MasterKelainanService.GetListMasterKelainanDetail(id, "", 1, 5) + if err != nil { + defer logger.Sync() + logger.Info("ERROR GET KELAINAN DETAIL", + zap.Any("error", err), + ) + return err + } + + defer logger.Sync() + logger.Info("LOAD KELAINAN DETAIL", + zap.Any("data detail", dataKelainanDetail), + ) + + 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)) + + // component selected id + selectid := masterkelainan.CustomTextFieldSelected( + models.CustomTextFieldSelected{ + Name: "selectedID", + Type: "hidden", + Value: id, + ID: "selectedID", + }, + ) + + // component listing table listing kelainan detail + contentKelainanDetailCmp := masterkelainan.TableKelainanDetail( + dataKelainanDetail, tableDetailID, + "/dev/kelainandetail/opendelete", + "#"+dialogDetailDeleteBodyID, + "outerHTML", + "#dialogDetailDeleteBodyID, #dialogDetailDeleteID, #tableDetailID", + ) + + // pagination kelainan detail component + kelainanDetailPaginationCmp := pagination.PaginationV2( + totalPageDetail, + 1, + "/dev/kelainandetailpagination", + paginationDetailID, + "#selectedID, #tableDetailID, #searchDetailID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID, #"+searchDetailID+", #paginationDetailID", + "#"+paginationDetailID, + "outerHTML", "", "true", + ) + + return utils.ViewMulti(c, []templ.Component{selectid, contentKelainanDetailCmp, kelainanDetailPaginationCmp}) +} + +func (lh *MasterKelainanHandler) HandlerShowMdKelainanDetailSearch(c echo.Context) error { + logger, _ := zap.NewProduction() + + selectedID := c.QueryParam("selectedID") + searchdetail := c.QueryParam("searchdetail") + 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 { + defer logger.Sync() + logger.Info("ERROR GET KELAINAN DETAIL", + zap.Any("error", err), + ) + return err + } + + logger.Info("dataKelainanDetail", + zap.Any("cek id", selectedID), + zap.Any("dataKelainanDetail", dataKelainanDetail)) + + contentKelainanDetailCmp := masterkelainan.TableKelainanDetail( + dataKelainanDetail, + tableDetailID, + "/dev/kelainandetail/opendelete", + "#"+dialogDetailDeleteBodyID, + "outerHTML", + "#dialogDetailDeleteBodyID, #dialogDetailDeleteID, #tableDetailID", + ) + + kelainanDetailPaginationCmp := pagination.PaginationV2( + totalpagedetail, + 1, + "/dev/kelainandetailpagination", + paginationDetailID, + "#selectedID, #tableDetailID, #searchDetailID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID, #"+searchDetailID+", #paginationDetailID", + "#"+paginationDetailID, "outerHTML", "", "true", + ) + + retVal := []templ.Component{contentKelainanDetailCmp, kelainanDetailPaginationCmp} + + return utils.ViewMulti(c, retVal) +} + +func (lh *MasterKelainanHandler) HandlerShowMdKelainanDetailPagination(c echo.Context) error { + logger, _ := zap.NewProduction() + + selectedID := c.QueryParam("selectedID") + searchdetail := c.QueryParam("searchdetail") + pageparamdetail := c.QueryParam("page") + 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 { + defer logger.Sync() + logger.Info("ERROR CONVERT PAGE PARAM DETAIL", + zap.Any("page", page), + zap.Any("error", err), + ) + return err + } + + dataKelainanDetail, totalpgaedetail, err := lh.MasterKelainanService.GetListMasterKelainanDetail(selectedID, searchdetail, page, 5) + if err != nil { + defer logger.Sync() + logger.Info("ERROR GET KELAINAN DETAIL", + zap.Any("error", err), + ) + return err + } + + contentKelainanDetailCmp := masterkelainan.TableKelainanDetail( + dataKelainanDetail, + tableDetailID, + "/dev/kelainandetail/opendelete", + "#"+dialogDetailDeleteBodyID, + "outerHTML", + "#dialogDetailDeleteBodyID, #dialogDetailDeleteID, #tableDetailID", + ) + + kelainanPaginationCmp := pagination.PaginationV2(totalpgaedetail, + page, + "/dev/kelainandetailpagination", + paginationDetailID, + "#selectedID, #tableDetailID, #searchDetailID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID, #"+searchDetailID+", #paginationDetailID", + "#"+paginationDetailID, "outerHTML", "", "", + ) + + retval := []templ.Component{contentKelainanDetailCmp, kelainanPaginationCmp} + + return utils.ViewMulti(c, retval) +} + +func (lh *MasterKelainanHandler) HandlerAddKelainanDetail(c echo.Context) error { + logger, _ := zap.NewProduction() + defer logger.Sync() + + selectedID := c.FormValue("selectedID") + nameKelainanDetail := c.FormValue("kelainandetailname") + nameClassification := c.FormValue("classificationname") + // tableID := c.FormValue("tableID") + tableDetailID := c.FormValue("tableDetailID") + paginationDetailID := c.FormValue("paginationDetailID") + searchDetailID := c.FormValue("searchDetailID") + searchdetail := c.FormValue("searchdetail") + currPagePrmDetail := c.FormValue("currpage" + paginationDetailID) + dialogDetailAddBodyID := c.FormValue("dialogDetailAddBodyID") + dialogDetailAddID := c.FormValue("dialogDetailAddID") + dialogDetailDeleteBodyID := c.FormValue("dialogDetailDeleteBodyID") + + currPage, err := strconv.Atoi(currPagePrmDetail) + + if err != nil { + return err + } + logger.Info("ADD KELAINAN DETAIL", + zap.Any("nama", nameKelainanDetail), + zap.Any("nama klasifikasi", nameClassification), + zap.Any("tabelid", tableDetailID), + zap.Any("search", searchdetail), + zap.Any("currpage", currPage), + ) + + kelainanGrupID, _ := strconv.Atoi(selectedID) + // form validation + formValidation := "" + nameValidation := "" + kelainanGrupValidation := "" + if strings.TrimSpace(nameKelainanDetail) == "" { + formValidation = "Nama kelainan tidak boleh kosong" + nameValidation = "Nama kelainan tidak boleh kosong" + kelainanGrupValidation = "" + } + if strings.TrimSpace(selectedID) == "" || kelainanGrupID == 0 { + formValidation = "Pilih kelainan grup dulu" + nameValidation = "" + kelainanGrupValidation = "Pilih kelainan grup dulu" + } + if strings.TrimSpace(nameKelainanDetail) == "" && (strings.TrimSpace(selectedID) == "" || kelainanGrupID == 0) { + formValidation = "Nama kelainan dan Kelainan Grup tidak boleh kosong" + nameValidation = "Nama kelainan tidak boleh kosong" + kelainanGrupValidation = "Pilih kelainan grup dulu" + } + if formValidation != "" || nameValidation != "" || kelainanGrupValidation != "" { + newForm := 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", + Value: nameKelainanDetail, + ID: "kelainandetailinputname", + ErrorMsg: nameValidation}, + 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", + Value: nameClassification, ID: "classificationinputname"}, + dialogDetailAddBodyID, masterkelainan.JsHideModalDetail("")) + + return utils.ViewMulti(c, []templ.Component{ + customtoastv2.CustomToastV2Show("Warning", formValidation, "warning"), newForm}) + } + + // add kelainan detail service + dataKelainanDetail, err := lh.MasterKelainanService.AddKelainanDetail(nameKelainanDetail, nameClassification, selectedID) + + if err != nil { + logger.Info("Error", + zap.Any("Error", err), + zap.Any("nama", nameKelainanDetail), + zap.Any("nama klasifikasi", nameClassification), + zap.Any("selectedid", selectedID), + ) + + newForm := 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"}, + dialogDetailAddBodyID, masterkelainan.JsHideModalDetail("")) + return utils.ViewMulti(c, []templ.Component{ + customtoastv2.CustomToastV2Show("Error", err.Error(), "danger"), newForm}) + } + 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 + dataKelainanDetailList, totalpage, err := lh.MasterKelainanService.GetListMasterKelainanDetail(selectedID, searchdetail, currPage, 5) + if err != nil { + defer logger.Sync() + logger.Info("ERROR GET KELAINAN DETAIL", + zap.Any("error", err), + ) + } + + logger.Info("list kelainan detail add", + zap.Any("return", dataKelainanDetailList), + ) + + // new add form + newForm := 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", + Value: "", + 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", + Value: "", + ID: "classificationinputname"}, + dialogDetailAddBodyID, masterkelainan.JsHideModalDetail("#"+dialogDetailAddID)) + + // new table listing + contentKelainanDetailComponent := masterkelainan.TableKelainanDetail( + dataKelainanDetailList, tableDetailID, + "/dev/kelainandetail/opendelete", + "#"+dialogDetailDeleteBodyID, + "outerHTML", + "#dialogDetailDeleteBodyID, #dialogDetailDeleteID, #tableDetailID", + ) + + // new pagination + kelainanDetailPaginationCmp := pagination.PaginationV2(totalpage, + currPage, + "/dev/kelainandetailpagination", + paginationDetailID, + "#tableDetailID, #searchDetailID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID, #"+searchDetailID+", #paginationDetailID", + "#"+paginationDetailID, "outerHTML", "", "true") + + toastSuccess := customtoastv2.CustomToastV2Show("Success", "Success add kelainan "+nameKelainanDetail, "success") + + retVal := []templ.Component{toastSuccess, contentKelainanDetailComponent, kelainanDetailPaginationCmp, newForm} + + return utils.ViewMulti(c, retVal) +} + +func (lh *MasterKelainanHandler) HandlerCloseFormAddDetail(c echo.Context) error { + dialogDetailAddBodyID := c.FormValue("dialogDetailAddBodyID") + + logger, _ := zap.NewProduction() + defer logger.Sync() + logger.Info("CEK dialogDetailAddBodyID CLOSE", + zap.Any("dialogDetailAddBodyID", dialogDetailAddBodyID), + ) + + newForm := 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"}, + 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 56018e8..85c8d87 100644 --- a/handlers/routes.go +++ b/handlers/routes.go @@ -321,4 +321,26 @@ func SetupRoutesDev(app *echo.Echo, appStore db.AppStore) { dev.GET("/md/bahan/opendelete", devMdBahanHandlers.HandleOpenDeleteMdBahan) dev.POST("/md/bahan/closedeleteform", devMdBahanHandlers.HandleCloseDeleteMdBahan) dev.POST("/md/bahan/delete", devMdBahanHandlers.HandleDeleteMdBahan) + + // md pola kelainan + devKLServices := dev_services.NewServicesMasterKelainan(appStore) + devKLhandlers := dev_handlers.NewMasterKelainanHandler(devKLServices) + dev.GET("/kelainan", devKLhandlers.HandlerShowMasterKelainan) + dev.GET("/searchkelainan", devKLhandlers.HandlerShowMasterKelainanSearch) + dev.GET("/kelainanpagination", devKLhandlers.HandlerShowMasterKelainanPagination) + dev.POST("/kelainan/closeaddform", devKLhandlers.HandleCloseFormAdd) + dev.POST("/kelainan/add", devKLhandlers.AddKelainan) + dev.GET("/kelainan/opendelete", devKLhandlers.HandleOpenDeleteForm) + dev.POST("/kelainan/closedeleteform", devKLhandlers.HandleCloseFormDelete) + dev.POST("/kelainan/delete", devKLhandlers.HandleDeleteKelainan) + dev.GET("/kelainan/flagaktif", devKLhandlers.HandlerUpdateStatusKelainanAktif) + dev.GET("/kelainan/flagnonaktif", devKLhandlers.HandlerUpdateStatusKelainanNonAktif) + dev.GET("/kelainan/selected", devKLhandlers.HandlerShowMasterKelainanDetail) + dev.GET("/searchkelainandetail", devKLhandlers.HandlerShowMdKelainanDetailSearch) + 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/models/polakelainan.models.go b/models/polakelainan.models.go new file mode 100644 index 0000000..70d104e --- /dev/null +++ b/models/polakelainan.models.go @@ -0,0 +1,97 @@ +package models + +import "github.com/a-h/templ" + +type Kelainan struct { + Nomor string `db:"nomor"` + Mcu_KelainanGroupID int `db:"Mcu_KelainanGroupID"` + Mcu_KelainanGroupName string `db:"Mcu_KelainanGroupName"` + Mcu_KelainanGroupFlagActive string `db:"Mcu_KelainanGroupFlagActive"` + Mcu_KelainanGroupIsActive string `db:"Mcu_KelainanGroupIsActive"` + Mcu_KelainanGroupCreated string `db:"Mcu_KelainanGroupCreated"` + Mcu_KelainanGroupCreatedUserID string `db:"Mcu_KelainanGroupCreatedUserID"` + Mcu_KelainanGroupLastUpdated string `db:"Mcu_KelainanGroupLastUpdated"` + Mcu_KelainanGroupLastUpdatedUserID string `db:"Mcu_KelainanGroupLastUpdatedUserID"` + Mcu_KelainanGroupDeleted string `db:"Mcu_KelainanGroupDeleted"` + Mcu_KelainanGroupDeletedUserID string `db:"Mcu_KelainanGroupDeletedUserID"` +} + +type KelainanFormComponent struct { + IDComponent string + Link string + HxTarget string + HxSwap string + HxInclude string + ModalID string + ModalTitle string + InputName CustomTextFieldv2Prm + InputCode CustomTextFieldv2Prm + InputID CustomTextFieldv2Prm + DialogBody templ.Component + DialogAction templ.Component + ButtonCLose templ.Component +} + +type KelainanDetail struct { + Nomor string `db:"nomor"` + Mcu_KelainanID int `db:"Mcu_KelainanID"` + Mcu_KelainanName string `db:"Mcu_KelainanName"` + Mcu_KelainanClasification string `db:"Mcu_KelainanClasification"` + Mcu_KelainanMcu_KelainanGroupID string `db:"Mcu_KelainanMcu_KelainanGroupID"` + Mcu_KelainanFlagActive string `db:"Mcu_KelainanFlagActive"` + Mcu_KelainanIsActive string `db:"Mcu_KelainanIsActive"` + Mcu_KelainanUserID string `db:"Mcu_KelainanUserID"` + Mcu_KelainanCreated string `db:"Mcu_KelainanCreated"` + Mcu_KelainanCreatedUserID string `db:"Mcu_KelainanCreatedUserID"` + Mcu_KelainanLastUpdated string `db:"Mcu_KelainanLastUpdated"` + Mcu_KelainanLastUpdatedUserID string `db:"Mcu_KelainanLastUpdatedUserID"` + Mcu_KelainanDeleted string `db:"Mcu_KelainanDeleted"` + Mcu_KelainanDeletedUserID string `db:"Mcu_KelainanDeletedUserID"` +} + +type CustomTextFieldSelected struct { + SwapOob string `default:"swapOob"` + Label string `default:"Label"` + Name string `default:"name"` + Placeholder string `default:"Placeholder"` + Type string `default:"text"` + Value string `default:""` + ErrorMsg string `default:""` + ID string +} + +type KelainanDetailFormComponent struct { + IDComponent string + Link string + HxTarget string + HxSwap string + HxInclude string + ModalID string + ModalTitle string + InputName CustomTextFieldv2Prm + InputClassification CustomTextFieldv2Prm + InputID CustomTextFieldv2Prm + DialogBody templ.Component + DialogAction templ.Component + ButtonCLose templ.Component +} + +type SwitchclassPrm struct { + Label string `default:"label"` + Type string `default:"type"` + Checked string `default:"Checked"` + Name string `default:"name"` + ID string +} + +type ButtonPrm struct { + ID string + Label string `default:"default"` + Type string `default:"type"` + Class string `default:"class"` + Color string `default:"color"` + HxGet string + HxTarget string + HxSwap string + HxInclude string +} diff --git a/services/dev/md.polakelainan.services.go b/services/dev/md.polakelainan.services.go new file mode 100644 index 0000000..8249a29 --- /dev/null +++ b/services/dev/md.polakelainan.services.go @@ -0,0 +1,384 @@ +package dev_services + +import ( + "cpone/db" + "cpone/models" + dbx "cpone/package/database" + "fmt" + "math" + "strconv" + "strings" + + "go.uber.org/zap" +) + +func NewServicesMasterKelainan(uStore db.AppStore) *ServicesMasterKelainan { + + return &ServicesMasterKelainan{ + + MasterKelainanStore: uStore, + } +} + +type ServicesMasterKelainan struct { + MasterKelainanStore db.AppStore +} + +func (su *ServicesMasterKelainan) GetListBreadCrumb(title string) (models.BreadCrumbV1, error) { + var ret models.BreadCrumbV1 + + dummyBreadcrumb := []models.BreadCrumbV1{ + { + Title: "Master Pola Kelainan", + Item: []models.ItemBreadCrumbV1{ + { + Item: "Dashboard", + Url: "/dev/dashboard", + }, + { + Item: "Master", + Url: "/dev/master", + }, + { + Item: "Pola Kelainan", + Url: "", + }, + }, + }, + + { + Title: "Master User", + Item: []models.ItemBreadCrumbV1{ + { + Item: "Dashboard", + Url: "/dev/dashboard", + }, + { + Item: "Master", + Url: "/dev/master", + }, + { + Item: "User", + 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 +} + +// master group kelainan +func (su *ServicesMasterKelainan) GetListMasterKelainan(search string, currentPage int, rowPerPage int) ([]models.Kelainan, int, error) { + var kelainanList []models.Kelainan + var totalData int + offset := (currentPage - 1) * rowPerPage + prm := "%" + strings.TrimSpace(search) + "%" + + querytotal := ` + SELECT COUNT(*) + FROM mcu_kelainangroup + WHERE Mcu_KelainanGroupIsActive = 'Y' + AND (Mcu_KelainanGroupName LIKE ?) + ` + if err := dbx.Handlex.Get(&totalData, querytotal, prm); err != nil { + return nil, 0, fmt.Errorf("error query database: %v", err) + } + + query := ` + SELECT + ROW_NUMBER() OVER (ORDER BY Mcu_KelainanGroupID DESC) AS nomor, + Mcu_KelainanGroupID, + Mcu_KelainanGroupName, + Mcu_KelainanGroupFlagActive, + Mcu_KelainanGroupIsActive, + Mcu_KelainanGroupCreated, + Mcu_KelainanGroupLastUpdated + FROM mcu_kelainangroup + WHERE Mcu_KelainanGroupIsActive = 'Y' + AND (Mcu_KelainanGroupName LIKE ?) + order by Mcu_KelainanGroupID DESC + LIMIT ? OFFSET ? + ` + + if err := dbx.Handlex.Select(&kelainanList, query, prm, rowPerPage, offset); err != nil { + return nil, 0, fmt.Errorf("error query database: %v", err) + } + totalPage := int(math.Ceil(float64(totalData) / float64(rowPerPage))) + + return kelainanList, totalPage, nil +} + +func (su *ServicesMasterKelainan) GetKelainanByID(id string) (models.Kelainan, error) { + logger, _ := zap.NewProduction() + + var data models.Kelainan + err := dbx.Handlex.Get(&data, `SELECT * FROM mcu_kelainangroup + WHERE Mcu_KelainanGroupID = ?`, id) + + if err != nil { + defer logger.Sync() + logger.Error("Error get data by id", + zap.String("ID", id), + ) + return data, fmt.Errorf("QUERY_FAILED") + } + return data, nil +} + +func (su *ServicesMasterKelainan) AddKelainan(name string) (models.Kelainan, error) { + logger, _ := zap.NewProduction() + var data models.Kelainan + + var datacek []models.Kelainan + + qryCek := `SELECT Mcu_KelainanGroupName FROM mcu_kelainangroup + WHERE Mcu_KelainanGroupName = ? AND Mcu_KelainanGroupIsActive = 'Y'` + err := dbx.Handlex.Select(&datacek, qryCek, name) + + if err != nil { + defer logger.Sync() + logger.Error("Error cek data by name", + zap.Any("datacek", datacek), + ) + return data, fmt.Errorf("QUERY_FAILED") + } + if len(datacek) > 0 { + defer logger.Sync() + logger.Error("Name already taken by another data", + zap.String("name", name), + ) + return data, fmt.Errorf("name sudah dipakai") + } + + qry := `INSERT INTO mcu_kelainangroup( + Mcu_KelainanGroupName, + Mcu_KelainanGroupCreated, + Mcu_KelainanGroupLastUpdated) VALUES(?,NOW(),NOW())` + rst := dbx.Handlex.MustExec(qry, name) + insertedID, err := rst.LastInsertId() + + if err != nil { + defer logger.Sync() + logger.Error("Error Insert kelainan", + zap.String("name", name), + ) + return data, fmt.Errorf("QUERY_FAILED") + } + + s := strconv.Itoa(int(insertedID)) + data, err = su.GetKelainanByID(s) + if err != nil { + defer logger.Sync() + logger.Error("Error get kelainan by id", + zap.String("name", name), + ) + return data, fmt.Errorf("QUERY_FAILED") + } + + return data, nil +} + +func (su *ServicesMasterKelainan) DeleteKelainan(id string) (models.Kelainan, error) { + logger, _ := zap.NewProduction() + var data models.Kelainan + qry := `UPDATE mcu_kelainangroup + SET Mcu_KelainanGroupIsActive = 'N', + Mcu_KelainanGroupLastUpdated = NOW() + WHERE Mcu_KelainanGroupID = ?` + + rst := dbx.Handlex.MustExec(qry, id) + _, err := rst.RowsAffected() + + if err != nil { + defer logger.Sync() + logger.Error("Error delete kelainan grup", + zap.String("id", id), + ) + return data, fmt.Errorf("QUERY_FAILED") + } + + data, err = su.GetKelainanByID(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 +} + +func (su *ServicesMasterKelainan) UpdateFlagStatusKelainan(id string, status string) (models.Kelainan, error) { + logger, _ := zap.NewProduction() + var data models.Kelainan + + if status == "N" { + qry := `UPDATE mcu_kelainangroup + SET Mcu_KelainanGroupFlagActive = 'Y', + Mcu_KelainanGroupLastUpdated = NOW() + WHERE Mcu_KelainanGroupID = ?` + + rst := dbx.Handlex.MustExec(qry, id) + _, err := rst.RowsAffected() + + if err != nil { + defer logger.Sync() + logger.Error("Error update status", + zap.String("id", id), + zap.String("status", status), + ) + return data, fmt.Errorf("QUERY_FAILED") + } + } else { + qry := `UPDATE mcu_kelainangroup + SET Mcu_KelainanGroupFlagActive = 'N', + Mcu_KelainanGroupLastUpdated = NOW() + WHERE Mcu_KelainanGroupID = ?` + + rst := dbx.Handlex.MustExec(qry, id) + _, err := rst.RowsAffected() + + if err != nil { + defer logger.Sync() + logger.Error("Error update status", + zap.String("id", id), + zap.String("status", status), + ) + return data, fmt.Errorf("QUERY_FAILED") + } + } + + return data, nil +} + +// end master group kelainan + +// master kelainan detail +func (su *ServicesMasterKelainan) GetListMasterKelainanDetail(id string, searchdetail string, currentPage int, rowPerPage int) ([]models.KelainanDetail, int, error) { + var KelainanDetailList []models.KelainanDetail + var totalData int + offset := (currentPage - 1) * rowPerPage + prm := "%" + strings.TrimSpace(searchdetail) + "%" + + querytotal := `SELECT COUNT(*) + FROM mcu_kelainan + WHERE Mcu_KelainanIsActive = 'Y' + AND Mcu_KelainanMcu_KelainanGroupID = ? + AND (Mcu_KelainanName LIKE ? OR Mcu_KelainanClasification LIKE ?)` + + if err := dbx.Handlex.Get(&totalData, querytotal, id, prm, prm); err != nil { + return nil, 0, fmt.Errorf("error query database: %v", err) + } + + query := `SELECT + ROW_NUMBER() OVER (ORDER BY Mcu_KelainanID DESC) AS nomor, + Mcu_KelainanID, + Mcu_KelainanName, + Mcu_KelainanClasification, + Mcu_KelainanMcu_KelainanGroupID, + Mcu_KelainanFlagActive, + Mcu_KelainanUserID, + Mcu_KelainanCreated, + Mcu_KelainanLastUpdated + FROM mcu_kelainan + WHERE Mcu_KelainanIsActive = 'Y' + AND Mcu_KelainanMcu_KelainanGroupID = ? + AND (Mcu_KelainanName LIKE ? OR Mcu_KelainanClasification LIKE ?) + ORDER BY Mcu_KelainanID DESC + LIMIT ? OFFSET ?` + + if err := dbx.Handlex.Select(&KelainanDetailList, query, id, prm, prm, rowPerPage, offset); err != nil { + return nil, 0, fmt.Errorf("error query database: %v", err) + } + totalPage := int(math.Ceil(float64(totalData) / float64(rowPerPage))) + + return KelainanDetailList, totalPage, nil +} + +func (su *ServicesMasterKelainan) GetKelainanDetailByID(id string) (models.KelainanDetail, error) { + logger, _ := zap.NewProduction() + + var data models.KelainanDetail + err := dbx.Handlex.Get(&data, `SELECT * FROM mcu_kelainan + WHERE Mcu_KelainanID = ?`, id) + + if err != nil { + defer logger.Sync() + logger.Error("Error get data by id", + zap.String("ID", id), + ) + return data, fmt.Errorf("QUERY_FAILED") + } + return data, nil +} + +func (su *ServicesMasterKelainan) AddKelainanDetail(name string, nameclassification string, selectedid string) (models.KelainanDetail, error) { + logger, _ := zap.NewProduction() + var data models.KelainanDetail + + qry := `INSERT INTO mcu_kelainan( + Mcu_KelainanName, + Mcu_KelainanClasification, + Mcu_KelainanMcu_KelainanGroupID, + Mcu_KelainanCreated, + Mcu_KelainanLastUpdated) VALUES(?,?,?,NOW(),NOW())` + rst := dbx.Handlex.MustExec(qry, name, nameclassification, selectedid) + _, err := rst.LastInsertId() + + if err != nil { + defer logger.Sync() + logger.Error("Error Insert Kelainan Detail", + zap.String("name", name), + zap.String("nameclasification", nameclassification), + zap.Any("selectedid", selectedid), + ) + return data, fmt.Errorf("QUERY_FAILED") + } + + 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/mdpolakelainan/custometextfieldselected.templ b/views/dev/mdpolakelainan/custometextfieldselected.templ new file mode 100644 index 0000000..9668eec --- /dev/null +++ b/views/dev/mdpolakelainan/custometextfieldselected.templ @@ -0,0 +1,32 @@ +package masterkelainan + +import "cpone/models" + +templ CustomTextFieldSelected(inp models.CustomTextFieldSelected) { +
+ + +
+ { inp.ErrorMsg } +
+
+} diff --git a/views/dev/mdpolakelainan/custometextfieldselected_templ.go b/views/dev/mdpolakelainan/custometextfieldselected_templ.go new file mode 100644 index 0000000..2754a59 --- /dev/null +++ b/views/dev/mdpolakelainan/custometextfieldselected_templ.go @@ -0,0 +1,158 @@ +// Code generated by templ - DO NOT EDIT. + +// templ: version: v0.2.663 +package masterkelainan + +//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/models" + +func CustomTextFieldSelected(inp models.CustomTextFieldSelected) 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 + } + var templ_7745c5c3_Var2 string + templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(inp.Label) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdpolakelainan\custometextfieldselected.templ`, Line: 14, Col: 14} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2)) + 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(inp.ErrorMsg) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdpolakelainan\custometextfieldselected.templ`, Line: 29, Col: 17} + } + _, 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 + } + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) + } + return templ_7745c5c3_Err + }) +} diff --git a/views/dev/mdpolakelainan/masterkelainan.templ b/views/dev/mdpolakelainan/masterkelainan.templ new file mode 100644 index 0000000..46b05ff --- /dev/null +++ b/views/dev/mdpolakelainan/masterkelainan.templ @@ -0,0 +1,228 @@ +package masterkelainan + +import ( + "cpone/layout" + "cpone/models" + "cpone/component/customtextfield" +) + +templ ContentMasterKelainan( + tableID string, + paginationID string, + searchID string, + dialogAddID string, + dialogAddBodyID string, + dialogDeleteID string, + dialogDeleteBodyID string, + tableDetailID string, + paginationDetailID string, + searchDetailID string, + dialogDetailAddID string, + dialogDetailAddBodyID string, + dialogDetailDeleteID string, + dialogDetailDeleteBodyID string, + breadcrumb templ.Component, + tablecontent templ.Component, + filterComponent templ.Component, + paginationComponent templ.Component, + modalAddform templ.Component, + modalDeleteForm templ.Component, + tabledetailcontent templ.Component, + filterDetailComponent templ.Component, + paginationDetailComponent templ.Component, + modalDetailAddForm templ.Component, + modalDetailForm 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: "dialogDeleteID", + Name: "dialogDeleteID", + Type: "hidden", + Value: dialogDeleteID}) + @customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogDeleteBodyID", + Name: "dialogDeleteBodyID", + Type: "hidden", + Value: dialogDeleteBodyID}) + @customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "tableDetailID", + Name: "tableDetailID", + Type: "hidden", + Value: tableDetailID}) + @customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "paginationDetailID", + Name: "paginationDetailID", + Type: "hidden", + Value: paginationDetailID}) + @customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "searchDetailID", + Name: "searchDetailID", + Type: "hidden", + Value: searchDetailID}) + @CustomTextFieldSelected(models.CustomTextFieldSelected{ + ID: "selectedID", + Name: "selectedID", + Type: "hidden", + Value: "0"}) + @customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogDetailAddID", + Name: "dialogDetailAddID", + Type: "hidden", + Value: dialogDetailAddID}) + @customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogDetailAddBodyID", + Name: "dialogDetailAddBodyID", + Type: "hidden", + Value: dialogDetailAddBodyID}) + @customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogDetailDeleteID", + Name: "dialogDetailDeleteID", + Type: "hidden", + Value: dialogDetailDeleteID}) + @customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogDetailDeleteBodyID", + Name: "dialogDetailDeleteBodyID", + Type: "hidden", + Value: dialogDetailDeleteBodyID}) +
+
+ @breadcrumb +
+
+
+
+
+
+ @filterComponent +
+
+
+ +
+
+
+ +
+
+ @tablecontent + @paginationComponent + @modalAddform + @modalDeleteForm +
+
+
+
+ @filterDetailComponent +
+
+
+ +
+
+
+ +
+
+ @tabledetailcontent + @paginationDetailComponent + @modalDetailAddForm + @modalDetailForm +
+
+
+} + +templ CssKelainan() { + + + + +} + +templ JsMdKelainan() { +} + +templ ShowKelainan( + 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/mdpolakelainan/masterkelainan_templ.go b/views/dev/mdpolakelainan/masterkelainan_templ.go new file mode 100644 index 0000000..cbe47b6 --- /dev/null +++ b/views/dev/mdpolakelainan/masterkelainan_templ.go @@ -0,0 +1,383 @@ +// Code generated by templ - DO NOT EDIT. + +// templ: version: v0.2.663 +package masterkelainan + +//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" +) + +func ContentMasterKelainan( + tableID string, + paginationID string, + searchID string, + dialogAddID string, + dialogAddBodyID string, + dialogDeleteID string, + dialogDeleteBodyID string, + tableDetailID string, + paginationDetailID string, + searchDetailID string, + dialogDetailAddID string, + dialogDetailAddBodyID string, + dialogDetailDeleteID string, + dialogDetailDeleteBodyID string, + breadcrumb templ.Component, + tablecontent templ.Component, + filterComponent templ.Component, + paginationComponent templ.Component, + modalAddform templ.Component, + modalDeleteForm templ.Component, + tabledetailcontent templ.Component, + filterDetailComponent templ.Component, + paginationDetailComponent templ.Component, + modalDetailAddForm templ.Component, + modalDetailForm 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: "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 = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "tableDetailID", + Name: "tableDetailID", + Type: "hidden", + Value: tableDetailID}).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "paginationDetailID", + Name: "paginationDetailID", + Type: "hidden", + Value: paginationDetailID}).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "searchDetailID", + Name: "searchDetailID", + Type: "hidden", + Value: searchDetailID}).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = CustomTextFieldSelected(models.CustomTextFieldSelected{ + ID: "selectedID", + Name: "selectedID", + Type: "hidden", + Value: "0"}).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogDetailAddID", + Name: "dialogDetailAddID", + Type: "hidden", + Value: dialogDetailAddID}).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogDetailAddBodyID", + Name: "dialogDetailAddBodyID", + Type: "hidden", + Value: dialogDetailAddBodyID}).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogDetailDeleteID", + Name: "dialogDetailDeleteID", + Type: "hidden", + Value: dialogDetailDeleteID}).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogDetailDeleteBodyID", + Name: "dialogDetailDeleteBodyID", + Type: "hidden", + Value: dialogDetailDeleteBodyID}).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 = modalDeleteForm.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 = filterDetailComponent.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 = tabledetailcontent.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = paginationDetailComponent.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = modalDetailAddForm.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = modalDetailForm.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 CssKelainan() 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_Var6 := templ.GetChildren(ctx) + if templ_7745c5c3_Var6 == nil { + templ_7745c5c3_Var6 = 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 JsMdKelainan() 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_Var7 := templ.GetChildren(ctx) + if templ_7745c5c3_Var7 == nil { + templ_7745c5c3_Var7 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) + } + return templ_7745c5c3_Err + }) +} + +func ShowKelainan( + 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_Var8 := templ.GetChildren(ctx) + if templ_7745c5c3_Var8 == nil { + templ_7745c5c3_Var8 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + templ_7745c5c3_Var9 := 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_Var9), 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/mdpolakelainan/mdkelainandetailformmodal.templ b/views/dev/mdpolakelainan/mdkelainandetailformmodal.templ new file mode 100644 index 0000000..e5235c0 --- /dev/null +++ b/views/dev/mdpolakelainan/mdkelainandetailformmodal.templ @@ -0,0 +1,195 @@ +package masterkelainan + +import ( + "cpone/models" + "cpone/component/modal" + "cpone/component/customtextfield" +) + +templ KelainanDetailForm(data models.KelainanDetailFormComponent) { +
+
+ @modalcomponent.Modal(data.ModalID, + data.ModalTitle, + data.DialogBody, + data.DialogAction, + data.ButtonCLose) +
+
+} + +script HandleFormDetailBeforeRequest() { + // console.log("handle disable btn add"); + const boxes = document.querySelectorAll('.btnaddact'); + + for (let i = 0; i < boxes.length; i++) { + boxes[i].setAttribute('disabled', 'true'); + + } +} + +script HandleFormDetailAfterRequest() { + // console.log("handle enable btn add"); + + const boxes = document.querySelectorAll('.btnaddact'); + + for (let i = 0; i < boxes.length; i++) { + boxes[i].removeAttribute('disabled'); + + } +} + +templ BodyFormKelainanDetail(inputId models.CustomTextFieldv2Prm, + inputName models.CustomTextFieldv2Prm, + inputSwitch models.SwitchclassPrm, + inputClassification models.CustomTextFieldv2Prm, + componentID string, + hxOnLoad templ.ComponentScript) { +
+ @customtextfield.CustomTextFieldv2( + inputId) + @customtextfield.CustomTextFieldv2( + inputName) + @MainSwitch(inputSwitch) +
+ @customtextfield.CustomTextFieldv2( + inputClassification) +
+
+} + +templ MainSwitch(inp models.SwitchclassPrm) { +
+ + + + +
+} + +script toggleClassification(idswitch string) { + var checkbox = document.getElementById(idswitch); + // console.log(checkbox) + var classificationField = document.getElementById("classificationField"); + var classificationInput = document.getElementById("classificationname"); + // console.log(classificationField) + if (checkbox.checked) { + classificationField.style.display = "block"; + } else { + classificationField.style.display = "none"; + classificationInput.value = ""; + } +} + +script JsHideModalDetail(modalID string) { + $(modalID).modal('hide') +} + +script JsShowModalDetail(modalID string) { + $(modalID).modal('show') +} + +templ ActionFormKelainanDetail(LinkClose string, targetClose string, hxSwapClose string, modalID string) { +
+ + +
+} + +templ BtnCloseFormKelainanDetail(LinkClose string, targetClose string, hxSwapClose string, modalID string) { + +} + +templ DeleteConfirmationBodyDetail(inputId models.CustomTextFieldv2Prm, + componentID string, + message string, + datHeader []string, + dataText []string, + hxOnLoad templ.ComponentScript) { +
+

{ message }

+
+
+
+ for _, v := range datHeader { +
{ v }
+ } +
+
+ for _, v := range dataText { +
+ { v } +
+ } +
+
+
+ @customtextfield.CustomTextFieldv2(inputId) +
+} + +templ ActionFormKelainanDetailDelete(LinkClose string, targetClose string, hxSwapClose string, modalID string) { +
+ + +
+} diff --git a/views/dev/mdpolakelainan/mdkelainandetailformmodal_templ.go b/views/dev/mdpolakelainan/mdkelainandetailformmodal_templ.go new file mode 100644 index 0000000..bf39a18 --- /dev/null +++ b/views/dev/mdpolakelainan/mdkelainandetailformmodal_templ.go @@ -0,0 +1,763 @@ +// Code generated by templ - DO NOT EDIT. + +// templ: version: v0.2.663 +package masterkelainan + +//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/component/modal" + "cpone/models" +) + +func KelainanDetailForm(data models.KelainanDetailFormComponent) 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 = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, HandleFormDetailBeforeRequest(), HandleFormDetailAfterRequest()) + 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 = modalcomponent.Modal(data.ModalID, + data.ModalTitle, + data.DialogBody, + data.DialogAction, + data.ButtonCLose).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 HandleFormDetailBeforeRequest() templ.ComponentScript { + return templ.ComponentScript{ + Name: `__templ_HandleFormDetailBeforeRequest_6266`, + Function: `function __templ_HandleFormDetailBeforeRequest_6266(){// console.log("handle disable btn add"); + const boxes = document.querySelectorAll('.btnaddact'); + + for (let i = 0; i < boxes.length; i++) { + boxes[i].setAttribute('disabled', 'true'); + + } +}`, + Call: templ.SafeScript(`__templ_HandleFormDetailBeforeRequest_6266`), + CallInline: templ.SafeScriptInline(`__templ_HandleFormDetailBeforeRequest_6266`), + } +} + +func HandleFormDetailAfterRequest() templ.ComponentScript { + return templ.ComponentScript{ + Name: `__templ_HandleFormDetailAfterRequest_4cc7`, + Function: `function __templ_HandleFormDetailAfterRequest_4cc7(){// console.log("handle enable btn add"); + + const boxes = document.querySelectorAll('.btnaddact'); + + for (let i = 0; i < boxes.length; i++) { + boxes[i].removeAttribute('disabled'); + + } +}`, + Call: templ.SafeScript(`__templ_HandleFormDetailAfterRequest_4cc7`), + CallInline: templ.SafeScriptInline(`__templ_HandleFormDetailAfterRequest_4cc7`), + } +} + +func BodyFormKelainanDetail(inputId models.CustomTextFieldv2Prm, + inputName models.CustomTextFieldv2Prm, + inputSwitch models.SwitchclassPrm, + inputClassification models.CustomTextFieldv2Prm, + componentID string, + hxOnLoad templ.ComponentScript) 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.RenderScriptItems(ctx, templ_7745c5c3_Buffer, hxOnLoad) + 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 = customtextfield.CustomTextFieldv2( + inputId).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = customtextfield.CustomTextFieldv2( + inputName).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = MainSwitch(inputSwitch).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 = customtextfield.CustomTextFieldv2( + inputClassification).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 MainSwitch(inp models.SwitchclassPrm) 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_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 toggleClassification(idswitch string) templ.ComponentScript { + return templ.ComponentScript{ + Name: `__templ_toggleClassification_069f`, + Function: `function __templ_toggleClassification_069f(idswitch){var checkbox = document.getElementById(idswitch); + // console.log(checkbox) + var classificationField = document.getElementById("classificationField"); + var classificationInput = document.getElementById("classificationname"); + // console.log(classificationField) + if (checkbox.checked) { + classificationField.style.display = "block"; + } else { + classificationField.style.display = "none"; + classificationInput.value = ""; + } +}`, + Call: templ.SafeScript(`__templ_toggleClassification_069f`, idswitch), + CallInline: templ.SafeScriptInline(`__templ_toggleClassification_069f`, idswitch), + } +} + +func JsHideModalDetail(modalID string) templ.ComponentScript { + return templ.ComponentScript{ + Name: `__templ_JsHideModalDetail_da6c`, + Function: `function __templ_JsHideModalDetail_da6c(modalID){$(modalID).modal('hide') +}`, + Call: templ.SafeScript(`__templ_JsHideModalDetail_da6c`, modalID), + CallInline: templ.SafeScriptInline(`__templ_JsHideModalDetail_da6c`, modalID), + } +} + +func JsShowModalDetail(modalID string) templ.ComponentScript { + return templ.ComponentScript{ + Name: `__templ_JsShowModalDetail_3147`, + Function: `function __templ_JsShowModalDetail_3147(modalID){$(modalID).modal('show') +}`, + Call: templ.SafeScript(`__templ_JsShowModalDetail_3147`, modalID), + CallInline: templ.SafeScriptInline(`__templ_JsShowModalDetail_3147`, modalID), + } +} + +func ActionFormKelainanDetail(LinkClose string, targetClose string, hxSwapClose string, modalID 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_Var19 := templ.GetChildren(ctx) + if templ_7745c5c3_Var19 == nil { + templ_7745c5c3_Var19 = 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, JsHideModalDetail(modalID)) + 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 BtnCloseFormKelainanDetail(LinkClose string, targetClose string, hxSwapClose string, modalID 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_Var24 := templ.GetChildren(ctx) + if templ_7745c5c3_Var24 == nil { + templ_7745c5c3_Var24 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, JsHideModalDetail(modalID)) + 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 DeleteConfirmationBodyDetail(inputId models.CustomTextFieldv2Prm, + componentID string, + message string, + datHeader []string, + dataText []string, + hxOnLoad templ.ComponentScript) 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_Var29 := templ.GetChildren(ctx) + if templ_7745c5c3_Var29 == nil { + templ_7745c5c3_Var29 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, hxOnLoad) + 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_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\mdpolakelainan\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("

") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + for _, v := range datHeader { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var33 string + templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.JoinStringErrs(v) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdpolakelainan\mdkelainandetailformmodal.templ`, Line: 159, Col: 68} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var33)) + 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 = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + for _, v := range dataText { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var34 string + templ_7745c5c3_Var34, templ_7745c5c3_Err = templ.JoinStringErrs(v) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdpolakelainan\mdkelainandetailformmodal.templ`, Line: 165, Col: 10} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var34)) + 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 = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(inputId).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 ActionFormKelainanDetailDelete(LinkClose string, targetClose string, hxSwapClose string, modalID 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_Var35 := templ.GetChildren(ctx) + if templ_7745c5c3_Var35 == nil { + templ_7745c5c3_Var35 = 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, JsHideModalDetail(modalID)) + 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 + }) +} diff --git a/views/dev/mdpolakelainan/mdkelainandetailtable.templ b/views/dev/mdpolakelainan/mdkelainandetailtable.templ new file mode 100644 index 0000000..a155325 --- /dev/null +++ b/views/dev/mdpolakelainan/mdkelainandetailtable.templ @@ -0,0 +1,82 @@ +package masterkelainan + +import "cpone/models" +import "cpone/component/table" +import "strconv" + +templ TableKelainanDetail(data []models.KelainanDetail, + tableDetailID string, + hxGetDelete string, + hxTargetDelete string, + hxSwapDelete string, + hxIncludeDelete string, +) { +
+ @tablecomponent.TableV3([]string{"NO", "KELAINAN", "AKSI"}, + []string{"10%", "60%", "30%"}, + TableDetailRow(data, + hxGetDelete, + hxTargetDelete, + hxSwapDelete, + hxIncludeDelete, + )) +
+} + +templ TableDetailRow(data []models.KelainanDetail, + hxGetDelete string, + hxTargetDelete string, + hxSwapDelete string, + hxIncludeDelete string, +) { + if len(data) == 0 { + + Data Tidak Ditemukan + + } + for _, v := range data { + + { v.Nomor } + + { v.Mcu_KelainanName } + if v.Mcu_KelainanClasification != "" { +

{ v.Mcu_KelainanClasification }

+ } + + + @TableDetailAction(v.Mcu_KelainanID, + hxGetDelete, + hxTargetDelete, + hxSwapDelete, + hxIncludeDelete, + ) + + + } +} + +templ TableDetailAction( + id int, + hxGetDelete string, + hxTargetDelete string, + hxSwapDelete string, + hxIncludeDelete string, +) { +
+ + ") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = tablecomponent.TableV3([]string{"NO", "KELAINAN", "AKSI"}, + []string{"10%", "60%", "30%"}, + TableDetailRow(data, + 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 TableDetailRow(data []models.KelainanDetail, + 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_Var3 := templ.GetChildren(ctx) + if templ_7745c5c3_Var3 == nil { + templ_7745c5c3_Var3 = 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_Var4 string + templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(v.Nomor) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdpolakelainan\mdkelainandetailtable.templ`, Line: 39, Col: 16} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4)) + 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_Var5 string + templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(v.Mcu_KelainanName) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdpolakelainan\mdkelainandetailtable.templ`, Line: 41, Col: 24} + } + _, 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 + } + if v.Mcu_KelainanClasification != "" { + _, 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.Mcu_KelainanClasification) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdpolakelainan\mdkelainandetailtable.templ`, Line: 43, Col: 54} + } + _, 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 + } + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = TableDetailAction(v.Mcu_KelainanID, + 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 TableDetailAction( + id int, + 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_Var7 := templ.GetChildren(ctx) + if templ_7745c5c3_Var7 == nil { + templ_7745c5c3_Var7 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + _, 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 + }) +} diff --git a/views/dev/mdpolakelainan/mdkelainanformmodal.templ b/views/dev/mdpolakelainan/mdkelainanformmodal.templ new file mode 100644 index 0000000..a28b240 --- /dev/null +++ b/views/dev/mdpolakelainan/mdkelainanformmodal.templ @@ -0,0 +1,156 @@ +package masterkelainan + +import ( + "cpone/models" + "cpone/component/modal" + "cpone/component/customtextfield" +) + +templ KelainanForm(data models.KelainanFormComponent) { +
+
+ @modalcomponent.Modal(data.ModalID, + data.ModalTitle, + data.DialogBody, + data.DialogAction, + data.ButtonCLose) +
+
+} + +script HandleFormBeforeRequest() { + // console.log("handle disable btn add"); + const boxes = document.querySelectorAll('.btnaddact'); + + for (let i = 0; i < boxes.length; i++) { + boxes[i].setAttribute('disabled', 'true'); + + } +} + +script HandleFormAfterRequest() { + // console.log("handle enable btn add"); + + const boxes = document.querySelectorAll('.btnaddact'); + + for (let i = 0; i < boxes.length; i++) { + boxes[i].removeAttribute('disabled'); + + } +} + +templ BodyFormKelainan(inputId models.CustomTextFieldv2Prm, + inputName models.CustomTextFieldv2Prm, + componentID string, + hxOnLoad templ.ComponentScript) { +
+ @customtextfield.CustomTextFieldv2( + inputId) + @customtextfield.CustomTextFieldv2( + inputName) +
+} + +script JsHideModal(modalID string) { + $(modalID).modal('hide') +} + +script JsShowModal(modalID string) { + $(modalID).modal('show') +} + +templ ActionFormKelainan(LinkClose string, targetClose string, hxSwapClose string, modalID string) { +
+ + +
+} + +templ BtnCloseFormKelainan(LinkClose string, targetClose string, hxSwapClose string, modalID string) { + +} + +templ DeleteConfirmationBody(inputId models.CustomTextFieldv2Prm, + componentID string, + message string, + datHeader []string, + dataText []string, + hxOnLoad templ.ComponentScript) { +
+

{ message }

+
+
+
+ for _, v := range datHeader { +
{ v }
+ } +
+
+ for _, v := range dataText { +
+ { v } +
+ } +
+
+
+ @customtextfield.CustomTextFieldv2(inputId) +
+} + +templ ActionFormKelainanDelete(LinkClose string, targetClose string, hxSwapClose string, modalID string) { +
+ + +
+} diff --git a/views/dev/mdpolakelainan/mdkelainanformmodal_templ.go b/views/dev/mdpolakelainan/mdkelainanformmodal_templ.go new file mode 100644 index 0000000..d6afed9 --- /dev/null +++ b/views/dev/mdpolakelainan/mdkelainanformmodal_templ.go @@ -0,0 +1,622 @@ +// Code generated by templ - DO NOT EDIT. + +// templ: version: v0.2.663 +package masterkelainan + +//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/component/modal" + "cpone/models" +) + +func KelainanForm(data models.KelainanFormComponent) 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 = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, HandleFormBeforeRequest(), HandleFormAfterRequest()) + 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 = modalcomponent.Modal(data.ModalID, + data.ModalTitle, + data.DialogBody, + data.DialogAction, + data.ButtonCLose).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 HandleFormBeforeRequest() templ.ComponentScript { + return templ.ComponentScript{ + Name: `__templ_HandleFormBeforeRequest_6266`, + Function: `function __templ_HandleFormBeforeRequest_6266(){// console.log("handle disable btn add"); + const boxes = document.querySelectorAll('.btnaddact'); + + for (let i = 0; i < boxes.length; i++) { + boxes[i].setAttribute('disabled', 'true'); + + } +}`, + Call: templ.SafeScript(`__templ_HandleFormBeforeRequest_6266`), + CallInline: templ.SafeScriptInline(`__templ_HandleFormBeforeRequest_6266`), + } +} + +func HandleFormAfterRequest() templ.ComponentScript { + return templ.ComponentScript{ + Name: `__templ_HandleFormAfterRequest_4cc7`, + Function: `function __templ_HandleFormAfterRequest_4cc7(){// console.log("handle enable btn add"); + + const boxes = document.querySelectorAll('.btnaddact'); + + for (let i = 0; i < boxes.length; i++) { + boxes[i].removeAttribute('disabled'); + + } +}`, + Call: templ.SafeScript(`__templ_HandleFormAfterRequest_4cc7`), + CallInline: templ.SafeScriptInline(`__templ_HandleFormAfterRequest_4cc7`), + } +} + +func BodyFormKelainan(inputId models.CustomTextFieldv2Prm, + inputName models.CustomTextFieldv2Prm, + componentID string, + hxOnLoad templ.ComponentScript) 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.RenderScriptItems(ctx, templ_7745c5c3_Buffer, hxOnLoad) + 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 = customtextfield.CustomTextFieldv2( + inputId).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = customtextfield.CustomTextFieldv2( + inputName).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 JsHideModal(modalID string) templ.ComponentScript { + return templ.ComponentScript{ + Name: `__templ_JsHideModal_da6c`, + Function: `function __templ_JsHideModal_da6c(modalID){$(modalID).modal('hide') +}`, + Call: templ.SafeScript(`__templ_JsHideModal_da6c`, modalID), + CallInline: templ.SafeScriptInline(`__templ_JsHideModal_da6c`, modalID), + } +} + +func JsShowModal(modalID string) templ.ComponentScript { + return templ.ComponentScript{ + Name: `__templ_JsShowModal_3147`, + Function: `function __templ_JsShowModal_3147(modalID){$(modalID).modal('show') +}`, + Call: templ.SafeScript(`__templ_JsShowModal_3147`, modalID), + CallInline: templ.SafeScriptInline(`__templ_JsShowModal_3147`, modalID), + } +} + +func ActionFormKelainan(LinkClose string, targetClose string, hxSwapClose string, modalID 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_Var12 := templ.GetChildren(ctx) + if templ_7745c5c3_Var12 == nil { + templ_7745c5c3_Var12 = 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, JsHideModal(modalID)) + 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 BtnCloseFormKelainan(LinkClose string, targetClose string, hxSwapClose string, modalID 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_Var17 := templ.GetChildren(ctx) + if templ_7745c5c3_Var17 == nil { + templ_7745c5c3_Var17 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, JsHideModal(modalID)) + 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 DeleteConfirmationBody(inputId models.CustomTextFieldv2Prm, + componentID string, + message string, + datHeader []string, + dataText []string, + hxOnLoad templ.ComponentScript) 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_Var22 := templ.GetChildren(ctx) + if templ_7745c5c3_Var22 == nil { + templ_7745c5c3_Var22 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, hxOnLoad) + 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_Var25 string + templ_7745c5c3_Var25, templ_7745c5c3_Err = templ.JoinStringErrs(message) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdpolakelainan\mdkelainanformmodal.templ`, Line: 115, Col: 14} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var25)) + 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 + } + for _, v := range datHeader { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var26 string + templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.JoinStringErrs(v) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdpolakelainan\mdkelainanformmodal.templ`, Line: 120, Col: 68} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var26)) + 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 = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + for _, v := range dataText { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var27 string + templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.JoinStringErrs(v) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdpolakelainan\mdkelainanformmodal.templ`, Line: 126, Col: 10} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var27)) + 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 = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(inputId).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 ActionFormKelainanDelete(LinkClose string, targetClose string, hxSwapClose string, modalID 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_Var28 := templ.GetChildren(ctx) + if templ_7745c5c3_Var28 == nil { + templ_7745c5c3_Var28 = 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, JsHideModal(modalID)) + 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 + }) +} diff --git a/views/dev/mdpolakelainan/mdkelainantable.templ b/views/dev/mdpolakelainan/mdkelainantable.templ new file mode 100644 index 0000000..c1f965d --- /dev/null +++ b/views/dev/mdpolakelainan/mdkelainantable.templ @@ -0,0 +1,171 @@ +package masterkelainan + +import ( + "cpone/component/table" + "cpone/models" + "strconv" +) + +templ TableKelainan(data []models.Kelainan, + tableID string, + hxGetActive string, + hxSwapActive string, + hxGetNonActive string, + hxSwapNonActive string, + hxGetDelete string, + hxTargetDelete string, + hxSwapDelete string, + hxIncludeDelete string, + hxGetSelected string, + hxTargetSelected string, +) { +
+ @tablecomponent.TableV3([]string{"NO", "GRUP KELAINAN", "AKSI"}, + []string{"10%", "60%", "30%"}, + TableRow(data, + hxGetActive, + hxSwapActive, + hxGetNonActive, + hxSwapNonActive, + hxGetDelete, + hxTargetDelete, + hxSwapDelete, + hxIncludeDelete, + hxGetSelected, + hxTargetSelected, + )) +
+} + +script clickHandler(id string) { + document.getElementById("sas"+id).classList.add("selected"); + console.log(id); +} + +script HandleAfterRequesX(idx string) { + document.querySelectorAll("tr.selected").forEach(function(row) { + row.classList.remove("selected"); + }); + document.getElementById("sas"+idx).classList.add("selected"); + console.log('handle after',idx); +} + +templ TableRow(data []models.Kelainan, + hxGetActive string, + hxSwapActive string, + hxGetNonActive string, + hxSwapNonActive string, + hxGetDelete string, + hxTargetDelete string, + hxSwapDelete string, + hxIncludeDelete string, + hxGetSelected string, + hxTargetSelected string, +) { + if len(data) == 0 { + + Data Tidak Ditemukan + + } + for _, v := range data { + + { v.Nomor } + { v.Mcu_KelainanGroupName } + + @TableAction("#active"+strconv.Itoa(v.Mcu_KelainanGroupID), + v.Mcu_KelainanGroupID, + v.Mcu_KelainanGroupFlagActive, + hxGetActive, + hxSwapActive, + hxGetNonActive, + "#non"+strconv.Itoa(v.Mcu_KelainanGroupID), + hxSwapNonActive, + hxGetDelete, + hxTargetDelete, + hxSwapDelete, + hxIncludeDelete, + ) + + + } +} + +templ TableAction( + idrowactive string, + id int, + flag string, + hxGetActive string, + hxSwapActive string, + hxGetNonActive string, + idrownonactive string, + hxSwapNonActive string, + hxGetDelete string, + hxTargetDelete string, + hxSwapDelete string, + hxIncludeDelete string, +) { +
+ switch flag { + case "Y": + + Aktif + + case "N": + + Tidak + + default: + { "Unknown Flag" } + } + + { inp.Label } + +} diff --git a/views/dev/mdpolakelainan/mdkelainantable_templ.go b/views/dev/mdpolakelainan/mdkelainantable_templ.go new file mode 100644 index 0000000..a5c8515 --- /dev/null +++ b/views/dev/mdpolakelainan/mdkelainantable_templ.go @@ -0,0 +1,648 @@ +// Code generated by templ - DO NOT EDIT. + +// templ: version: v0.2.663 +package masterkelainan + +//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" + "cpone/models" + "strconv" +) + +func TableKelainan(data []models.Kelainan, + tableID string, + hxGetActive string, + hxSwapActive string, + hxGetNonActive string, + hxSwapNonActive string, + hxGetDelete string, + hxTargetDelete string, + hxSwapDelete string, + hxIncludeDelete string, + hxGetSelected string, + hxTargetSelected 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{"NO", "GRUP KELAINAN", "AKSI"}, + []string{"10%", "60%", "30%"}, + TableRow(data, + hxGetActive, + hxSwapActive, + hxGetNonActive, + hxSwapNonActive, + hxGetDelete, + hxTargetDelete, + hxSwapDelete, + hxIncludeDelete, + hxGetSelected, + hxTargetSelected, + )).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 clickHandler(id string) templ.ComponentScript { + return templ.ComponentScript{ + Name: `__templ_clickHandler_9b32`, + Function: `function __templ_clickHandler_9b32(id){document.getElementById("sas"+id).classList.add("selected"); + console.log(id); +}`, + Call: templ.SafeScript(`__templ_clickHandler_9b32`, id), + CallInline: templ.SafeScriptInline(`__templ_clickHandler_9b32`, id), + } +} + +func HandleAfterRequesX(idx string) templ.ComponentScript { + return templ.ComponentScript{ + Name: `__templ_HandleAfterRequesX_ef3a`, + Function: `function __templ_HandleAfterRequesX_ef3a(idx){document.querySelectorAll("tr.selected").forEach(function(row) { + row.classList.remove("selected"); + }); + document.getElementById("sas"+idx).classList.add("selected"); + console.log('handle after',idx); +}`, + Call: templ.SafeScript(`__templ_HandleAfterRequesX_ef3a`, idx), + CallInline: templ.SafeScriptInline(`__templ_HandleAfterRequesX_ef3a`, idx), + } +} + +func TableRow(data []models.Kelainan, + hxGetActive string, + hxSwapActive string, + hxGetNonActive string, + hxSwapNonActive string, + hxGetDelete string, + hxTargetDelete string, + hxSwapDelete string, + hxIncludeDelete string, + hxGetSelected string, + hxTargetSelected 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_Var3 := templ.GetChildren(ctx) + if templ_7745c5c3_Var3 == nil { + templ_7745c5c3_Var3 = 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.RenderScriptItems(ctx, templ_7745c5c3_Buffer, clickHandler(strconv.Itoa(v.Mcu_KelainanGroupID)), HandleAfterRequesX(strconv.Itoa(v.Mcu_KelainanGroupID))) + 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_Var10 string + templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(v.Nomor) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdpolakelainan\mdkelainantable.templ`, Line: 81, Col: 16} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10)) + 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_Var11 string + templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(v.Mcu_KelainanGroupName) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdpolakelainan\mdkelainantable.templ`, Line: 82, Col: 32} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11)) + 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("#active"+strconv.Itoa(v.Mcu_KelainanGroupID), + v.Mcu_KelainanGroupID, + v.Mcu_KelainanGroupFlagActive, + hxGetActive, + hxSwapActive, + hxGetNonActive, + "#non"+strconv.Itoa(v.Mcu_KelainanGroupID), + hxSwapNonActive, + 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( + idrowactive string, + id int, + flag string, + hxGetActive string, + hxSwapActive string, + hxGetNonActive string, + idrownonactive string, + hxSwapNonActive 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_Var12 := templ.GetChildren(ctx) + if templ_7745c5c3_Var12 == nil { + templ_7745c5c3_Var12 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + switch flag { + case "Y": + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("Aktif\r ") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + case "N": + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("Tidak\r ") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + default: + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var23 string + templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.JoinStringErrs("Unknown Flag") + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdpolakelainan\mdkelainantable.templ`, Line: 143, Col: 26} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var23)) + 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 = 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 CustomButtonTidak(inp models.ButtonPrm) 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_Var28 := templ.GetChildren(ctx) + if templ_7745c5c3_Var28 == nil { + templ_7745c5c3_Var28 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + var templ_7745c5c3_Var29 = []any{inp.Class} + templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var29...) + 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_Var36 string + templ_7745c5c3_Var36, templ_7745c5c3_Err = templ.JoinStringErrs(inp.Label) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdpolakelainan\mdkelainantable.templ`, Line: 169, Col: 13} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var36)) + 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 + }) +}