From 7f32ac1c1c249cfd3ce015a773800b169533fc9a Mon Sep 17 00:00:00 2001 From: adibwp Date: Fri, 7 Jun 2024 08:23:31 +0700 Subject: [PATCH] add delete & pilih detail + bug target item row di modal --- handlers/dev/md.nonlabtemplate.handlers.go | 270 +++++++++++-- handlers/routes.go | 1 + services/dev/md.nonlabtemplate.services.go | 88 ++++- .../mdnonlabtemplate/mdnonlabtemplate.templ | 15 + .../mdnonlabtemplate_templ.go | 28 +- .../mdnonlabtemplate/mdnonlabtmptmodal.templ | 11 +- .../mdnonlabtmptmodal_templ.go | 75 ++-- views/dev/mdnonlabtemplate/tabledetail.templ | 43 +- .../dev/mdnonlabtemplate/tabledetail_templ.go | 373 ++++++++++++++++++ 9 files changed, 820 insertions(+), 84 deletions(-) create mode 100644 views/dev/mdnonlabtemplate/tabledetail_templ.go diff --git a/handlers/dev/md.nonlabtemplate.handlers.go b/handlers/dev/md.nonlabtemplate.handlers.go index f978d0e..da9463f 100644 --- a/handlers/dev/md.nonlabtemplate.handlers.go +++ b/handlers/dev/md.nonlabtemplate.handlers.go @@ -28,9 +28,10 @@ type MDNonlabTemplateServices interface { AddNonlabTemplate(nama string, fisik string) (models.MDNonlabTemplate, error) UpdateNonlabTemplate(id string, nama string, fisik string) (models.MDNonlabTemplate, error) GetIDNonlabTemplate(name string) (int, error) - GetDetailByIDNonlabTemplate(id string) (models.NonlabTemplateDetail, error) + GetDetailByID(id string) (models.NonlabTemplateDetail, error) ListDetailByIDNonlabTemplate(id string) ([]models.NonlabTemplateDetail, error) - AddDetailNonlabTemplate(idnonlab string, kode string, name string, flagActive string) (models.NonlabTemplateDetail, error) + AddDetailNonlabTemplate(idnonlab string, kode string, name string, flagActive string) ([]models.NonlabTemplateDetail, error) + DeleteDetailNonlabTemplate(id string) ([]models.NonlabTemplateDetail, error) } type MDNonlabTemplateHandler struct { @@ -56,6 +57,10 @@ func (nlt *MDNonlabTemplateHandler) HandleShowNonlabTemplateScreen(c echo.Contex dialogDeleteID := utils.GenerateRandomID("dialogdeleteid") dialogDeleteBodyID := utils.GenerateRandomID("dialogdeletebodyid") + tableDetailID := utils.GenerateRandomID("tabledetailid") + detailEditID := utils.GenerateRandomID("detaileditid") + detailDeleteID := utils.GenerateRandomID("detaildeleteid") + dataMenu, err := services.GetMenu() if err != nil { fmt.Println(dataMenu) @@ -132,6 +137,19 @@ func (nlt *MDNonlabTemplateHandler) HandleShowNonlabTemplateScreen(c echo.Contex ) // dialog add + var detailData []models.NonlabTemplateDetail + tableDetail := dev_mdnonlabtemplateview.TableDetail(detailData, + tableDetailID, + "/dev/md/nonlabtemplate/pilihdetail", + "#"+detailEditID, + "outerHTML", + "#detailEditID, #detailDeleteID", + "/dev/md/nonlabtemplate/deletedetail", + "#"+detailDeleteID, + "outerHTML", + "#detailEditID, #detailDeleteID", + ) + dialogAddBody := dev_mdnonlabtemplateview.BodyFormMDNonlabTemplate( dialogAddBodyID, models.CustomTextFieldv2Prm{ @@ -167,16 +185,17 @@ func (nlt *MDNonlabTemplateHandler) HandleShowNonlabTemplateScreen(c echo.Contex "/dev/md/nonlabtemplate/simpanama", "#"+dialogAddBodyID, "outerHTML", - "#"+dialogAddID, - "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, + false, + "#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, ), dev_mdnonlabtemplateview.BtnAddDetail( "/dev/md/nonlabtemplate/adddetail", "#"+dialogAddBodyID, "outerHTML", "#"+dialogAddID, - "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, + "#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, ), + tableDetail, dev_mdnonlabtemplateview.JSShowModal(""), ) dialogAddBtn := dev_mdnonlabtemplateview.ActionFormMDNonlabTmplt( @@ -197,7 +216,7 @@ func (nlt *MDNonlabTemplateHandler) HandleShowNonlabTemplateScreen(c echo.Contex Link: "/dev/md/nonlabtemplate/add", HxTarget: "#" + dialogAddBodyID, HxSwap: "outerHTML", - HxInclude: "#tableID, #paginationID, #searchID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #" + searchID + ", #currpage" + paginationID, + HxInclude: "#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #" + searchID + ", #currpage" + paginationID, ModalID: dialogAddID, ModalTitle: "New - Nonlab Template", DialogBody: dialogAddBody, @@ -254,6 +273,9 @@ func (nlt *MDNonlabTemplateHandler) HandleShowNonlabTemplateScreen(c echo.Contex dialogEditBodyID, dialogDeleteID, dialogDeleteBodyID, + tableDetailID, + detailEditID, + detailDeleteID, breadcrumbComp, tableFilter, tableComp, @@ -513,6 +535,22 @@ func (nlt *MDNonlabTemplateHandler) HandleCloseFormAdd(c echo.Context) error { dialogAddID := c.FormValue("dialogAddID") searchID := c.FormValue("searchID") paginationID := c.FormValue("paginationID") + tableDetailID := c.FormValue("tableDetailID") + detailEditID := c.FormValue("detailEditID") + detailDeleteID := c.FormValue("detailDeleteID") + + var detailData []models.NonlabTemplateDetail + tableDetail := dev_mdnonlabtemplateview.TableDetail(detailData, + tableDetailID, + "/dev/md/nonlabtemplate/pilihdetail", + "#"+detailEditID, + "outerHTML", + "#detailEditID, #detailDeleteID", + "/dev/md/nonlabtemplate/deletedetail", + "#"+detailDeleteID, + "outerHTML", + "#detailEditID, #detailDeleteID", + ) dialogAddBody := dev_mdnonlabtemplateview.BodyFormMDNonlabTemplate( dialogAddBodyID, @@ -549,16 +587,17 @@ func (nlt *MDNonlabTemplateHandler) HandleCloseFormAdd(c echo.Context) error { "/dev/md/nonlabtemplate/simpanama", "#"+dialogAddBodyID, "outerHTML", - "#"+dialogAddID, - "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, + false, + "#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, ), dev_mdnonlabtemplateview.BtnAddDetail( "/dev/md/nonlabtemplate/adddetail", "#"+dialogAddBodyID, "outerHTML", "#"+dialogAddID, - "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, + "#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, ), + tableDetail, dev_mdnonlabtemplateview.JSHideModal("#"+dialogAddID), ) return utils.View(c, dialogAddBody) @@ -570,10 +609,21 @@ func (nlt *MDNonlabTemplateHandler) HandleSimpanNama(c echo.Context) error { dialogAddID := c.FormValue("dialogAddID") searchID := c.FormValue("searchID") paginationID := c.FormValue("paginationID") + tableDetailID := c.FormValue("tableDetailID") + detailEditID := c.FormValue("detailEditID") + detailDeleteID := c.FormValue("detailDeleteID") fisik := c.FormValue("nonlabtemplatefisik") name := c.FormValue("nonlabtemplatename") id := c.FormValue("nonlabtemplateid") + var detailData []models.NonlabTemplateDetail + var respAdd models.MDNonlabTemplate + var err error + + if id != "" { + detailData, err = nlt.MDNonlabTemplateServices.ListDetailByIDNonlabTemplate(id) + logger.Info("error get id", zap.Any("err", err)) + } flagFisik := "N" if fisik == "on" { @@ -589,6 +639,17 @@ func (nlt *MDNonlabTemplateHandler) HandleSimpanNama(c echo.Context) error { } if formValidation != "" || namaValidation != "" { + tableDetail := dev_mdnonlabtemplateview.TableDetail(detailData, + tableDetailID, + "/dev/md/nonlabtemplate/pilihdetail", + "#"+detailEditID, + "outerHTML", + "#detailEditID, #detailDeleteID", + "/dev/md/nonlabtemplate/deletedetail", + "#"+detailDeleteID, + "outerHTML", + "#detailEditID, #detailDeleteID", + ) nf := dev_mdnonlabtemplateview.BodyFormMDNonlabTemplate( dialogAddBodyID, models.CustomTextFieldv2Prm{ @@ -627,25 +688,23 @@ func (nlt *MDNonlabTemplateHandler) HandleSimpanNama(c echo.Context) error { "/dev/md/nonlabtemplate/simpanama", "#"+dialogAddBodyID, "outerHTML", - "#"+dialogAddID, - "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, + false, + "#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, ), dev_mdnonlabtemplateview.BtnAddDetail( "/dev/md/nonlabtemplate/adddetail", "#"+dialogAddBodyID, "outerHTML", "#"+dialogAddID, - "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, + "#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, ), + tableDetail, dev_mdnonlabtemplateview.JSShowModal(""), ) toast := customtoastv2.CustomToastV2Show("Warning", formValidation, "warning") return utils.ViewMulti(c, []templ.Component{toast, nf}) } - var respAdd models.MDNonlabTemplate - var err error - if id != "" { respAdd, err = nlt.MDNonlabTemplateServices.UpdateNonlabTemplate(id, name, flagFisik) } else { @@ -692,15 +751,26 @@ func (nlt *MDNonlabTemplateHandler) HandleSimpanNama(c echo.Context) error { "/dev/md/nonlabtemplate/simpanama", "#"+dialogAddBodyID, "outerHTML", - "#"+dialogAddID, - "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, + false, + "#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, ), dev_mdnonlabtemplateview.BtnAddDetail( "/dev/md/nonlabtemplate/adddetail", "#"+dialogAddBodyID, "outerHTML", "#"+dialogAddID, - "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, + "#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, + ), + dev_mdnonlabtemplateview.TableDetail(detailData, + tableDetailID, + "/dev/md/nonlabtemplate/pilihdetail", + "#"+detailEditID, + "outerHTML", + "#detailEditID, #detailDeleteID", + "/dev/md/nonlabtemplate/deletedetail", + "#"+detailDeleteID, + "outerHTML", + "#detailEditID, #detailDeleteID", ), dev_mdnonlabtemplateview.JSShowModal(""), ) @@ -746,15 +816,26 @@ func (nlt *MDNonlabTemplateHandler) HandleSimpanNama(c echo.Context) error { "/dev/md/nonlabtemplate/simpanama", "#"+dialogAddBodyID, "outerHTML", - "#"+dialogAddID, - "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, + true, + "#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, ), dev_mdnonlabtemplateview.BtnAddDetail( "/dev/md/nonlabtemplate/adddetail", "#"+dialogAddBodyID, "outerHTML", "#"+dialogAddID, - "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, + "#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, + ), + dev_mdnonlabtemplateview.TableDetail(detailData, + tableDetailID, + "/dev/md/nonlabtemplate/pilihdetail", + "#"+detailEditID, + "outerHTML", + "#detailEditID, #detailDeleteID", + "/dev/md/nonlabtemplate/deletedetail", + "#"+detailDeleteID, + "outerHTML", + "#detailEditID, #detailDeleteID", ), dev_mdnonlabtemplateview.JSShowModal(""), ) @@ -777,6 +858,9 @@ func (nlt *MDNonlabTemplateHandler) HandleAddDetail(c echo.Context) error { dialogAddID := c.FormValue("dialogAddID") searchID := c.FormValue("searchID") paginationID := c.FormValue("paginationID") + tableDetailID := c.FormValue("tableDetailID") + detailEditID := c.FormValue("detailEditID") + detailDeleteID := c.FormValue("detailDeleteID") id := c.FormValue("nonlabtemplateid") template := c.FormValue("nonlabtemplatename") @@ -785,6 +869,9 @@ func (nlt *MDNonlabTemplateHandler) HandleAddDetail(c echo.Context) error { kode := c.FormValue("nltdetailkode") name := c.FormValue("nltdetailname") + var detailData []models.NonlabTemplateDetail + var err error + if fisik == "Y" { fisik = "on" } else { @@ -855,15 +942,26 @@ func (nlt *MDNonlabTemplateHandler) HandleAddDetail(c echo.Context) error { "/dev/md/nonlabtemplate/simpanama", "#"+dialogAddBodyID, "outerHTML", - "#"+dialogAddID, - "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, + true, + "#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, ), dev_mdnonlabtemplateview.BtnAddDetail( "/dev/md/nonlabtemplate/adddetail", "#"+dialogAddBodyID, "outerHTML", "#"+dialogAddID, - "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, + "#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, + ), + dev_mdnonlabtemplateview.TableDetail(detailData, + tableDetailID, + "/dev/md/nonlabtemplate/pilihdetail", + "#"+detailEditID, + "outerHTML", + "#detailEditID, #detailDeleteID", + "/dev/md/nonlabtemplate/deletedetail", + "#"+detailDeleteID, + "outerHTML", + "#detailEditID, #detailDeleteID", ), dev_mdnonlabtemplateview.JSShowModal(""), ) @@ -914,15 +1012,26 @@ func (nlt *MDNonlabTemplateHandler) HandleAddDetail(c echo.Context) error { "/dev/md/nonlabtemplate/simpanama", "#"+dialogAddBodyID, "outerHTML", - "#"+dialogAddID, - "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, + true, + "#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, ), dev_mdnonlabtemplateview.BtnAddDetail( "/dev/md/nonlabtemplate/adddetail", "#"+dialogAddBodyID, "outerHTML", "#"+dialogAddID, - "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, + "#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, + ), + dev_mdnonlabtemplateview.TableDetail(detailData, + tableDetailID, + "/dev/md/nonlabtemplate/pilihdetail", + "#"+detailEditID, + "outerHTML", + "#detailEditID, #detailDeleteID", + "/dev/md/nonlabtemplate/deletedetail", + "#"+detailDeleteID, + "outerHTML", + "#detailEditID, #detailDeleteID", ), dev_mdnonlabtemplateview.JSShowModal(""), ) @@ -968,18 +1077,119 @@ func (nlt *MDNonlabTemplateHandler) HandleAddDetail(c echo.Context) error { "/dev/md/nonlabtemplate/simpanama", "#"+dialogAddBodyID, "outerHTML", - "#"+dialogAddID, - "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, + true, + "#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, ), dev_mdnonlabtemplateview.BtnAddDetail( "/dev/md/nonlabtemplate/adddetail", "#"+dialogAddBodyID, "outerHTML", "#"+dialogAddID, - "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, + "#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, + ), + dev_mdnonlabtemplateview.TableDetail(resp, + tableDetailID, + "/dev/md/nonlabtemplate/pilihdetail", + "#"+detailEditID, + "outerHTML", + "#detailEditID, #detailDeleteID", + "/dev/md/nonlabtemplate/deletedetail", + "#"+detailDeleteID, + "outerHTML", + "#detailEditID, #detailDeleteID", ), dev_mdnonlabtemplateview.JSShowModal(""), ) toast := customtoastv2.CustomToastV2Show("Success", "success insert detail "+name, "success") return utils.ViewMulti(c, []templ.Component{toast, returnBody}) } + +func (nlt *MDNonlabTemplateHandler) HandleDeleteDetail(c echo.Context) error { + logger, _ := zap.NewProduction() + defer logger.Sync() + + dialogAddBodyID := c.FormValue("dialogAddBodyID") + dialogAddID := c.FormValue("dialogAddID") + searchID := c.FormValue("searchID") + paginationID := c.FormValue("paginationID") + tableDetailID := c.FormValue("tableDetailID") + detailEditID := c.FormValue("detailEditID") + detailDeleteID := c.FormValue("detailDeleteID") + + id := c.QueryParam("id") + logger.Info("ID Selected", zap.Any("ID", id)) + + fisik := c.FormValue("nonlabtemplatefisik") + name := c.FormValue("nonlabtemplatename") + idTemplate := c.FormValue("nonlabtemplateid") + + respDel, err := nlt.MDNonlabTemplateServices.DeleteDetailNonlabTemplate(id) + if err != nil { + logger.Error("Error", zap.Any("error", err)) + } + logger.Info("Resp Delete", zap.Any("resp", respDel)) + + nf := dev_mdnonlabtemplateview.BodyFormMDNonlabTemplate( + dialogAddBodyID, + models.CustomTextFieldv2Prm{ + Name: "nonlabtemplateid", + ID: "nonlabtemplateinputid", + Type: "hidden", + Value: idTemplate, + }, + models.CustomTextFieldv2Prm{ + Placeholder: "Nama Template", + Name: "nonlabtemplatename", + ID: "nonlabtemplateinputname", + Type: "text", + Value: name, + }, + models.CustomCheckboxv1Prm{ + Text: "Template Fisik", + Name: "nonlabtemplatefisik", + ID: "nonlabtemplateinputname", + Value: fisik, + }, + models.CustomTextFieldv2Prm{ + Placeholder: "Kode", + Name: "nltdetailkode", + ID: "nltdetailinputkode", + Type: "text", + }, + models.CustomTextFieldv2Prm{ + Placeholder: "Nama Detail", + Name: "nltdetailname", + ID: "nltdetailinputkode", + Type: "text", + }, + dev_mdnonlabtemplateview.BtnSimpanNama( + "/dev/md/nonlabtemplate/simpanama", + "#"+dialogAddBodyID, + "outerHTML", + true, + "#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, + ), + dev_mdnonlabtemplateview.BtnAddDetail( + "/dev/md/nonlabtemplate/adddetail", + "#"+dialogAddBodyID, + "outerHTML", + "#"+dialogAddID, + "#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID, + ), + dev_mdnonlabtemplateview.TableDetail(respDel, + tableDetailID, + "/dev/md/nonlabtemplate/pilihdetail", + "#"+detailEditID, + "outerHTML", + "#detailEditID, #detailDeleteID", + "/dev/md/nonlabtemplate/deletedetail", + "#"+detailDeleteID, + "outerHTML", + "#detailEditID, #detailDeleteID", + ), + dev_mdnonlabtemplateview.JSShowModal(""), + ) + toast := customtoastv2.CustomToastV2Show("Success", "Success delete detail", "success") + + return utils.ViewMulti(c, []templ.Component{toast, nf}) +} diff --git a/handlers/routes.go b/handlers/routes.go index c7d02ff..7e33a4c 100644 --- a/handlers/routes.go +++ b/handlers/routes.go @@ -290,6 +290,7 @@ func SetupRoutesDev(app *echo.Echo, appStore db.AppStore) { dev.POST("/md/nonlabtemplate/simpanama", devMDNonlabTemplateHandlers.HandleSimpanNama) dev.POST("/md/nonlabtemplate/closeaddform", devMDNonlabTemplateHandlers.HandleCloseFormAdd) dev.POST("/md/nonlabtemplate/adddetail", devMDNonlabTemplateHandlers.HandleAddDetail) + dev.POST("/md/nonlabtemplate/deletedetail", devMDNonlabTemplateHandlers.HandleDeleteDetail) // masterdata nat unit devMdNatUnitServices := dev_services.NewMdNatUnitServices(appStore) diff --git a/services/dev/md.nonlabtemplate.services.go b/services/dev/md.nonlabtemplate.services.go index 4a7cd53..fc765b4 100644 --- a/services/dev/md.nonlabtemplate.services.go +++ b/services/dev/md.nonlabtemplate.services.go @@ -128,7 +128,7 @@ func (nlt *MDNonlabTemplateServices) DeleteDataNonlabTemplate(id string) (models _, err := dlt.RowsAffected() if err != nil { defer logger.Sync() - logger.Error("Error delete sample station", zap.String("id", id)) + logger.Error("Error delete nonlab template", zap.String("id", id)) return ret, fmt.Errorf("query failed delete non lab template") } @@ -247,7 +247,7 @@ func (nlt *MDNonlabTemplateServices) GetIDNonlabTemplate(name string) (int, erro return ret, nil } -func (nlt *MDNonlabTemplateServices) GetDetailByIDNonlabTemplate(id string) (models.NonlabTemplateDetail, error) { +func (nlt *MDNonlabTemplateServices) GetDetailByID(id string) (models.NonlabTemplateDetail, error) { logger, _ := zap.NewProduction() var ret models.NonlabTemplateDetail @@ -262,7 +262,7 @@ func (nlt *MDNonlabTemplateServices) GetDetailByIDNonlabTemplate(id string) (mod NonlabTemplateDetaiM_LangID, NonlabTemplateDetailIsActive FROM nonlab_template_detail - WHERE NonlabTemplateDetailNonlabTemplateID = ? + WHERE NonlabTemplateDetailID = ? AND NonlabTemplateDetailIsActive = 'Y' ` err := dbx.Handlex.Get(&ret, q, id) @@ -309,9 +309,9 @@ func (nlt *MDNonlabTemplateServices) ListDetailByIDNonlabTemplate(id string) ([] return ret, nil } -func (nlt *MDNonlabTemplateServices) AddDetailNonlabTemplate(idnonlab string, kode string, name string, flagActive string) (models.NonlabTemplateDetail, error) { +func (nlt *MDNonlabTemplateServices) AddDetailNonlabTemplate(idnonlab string, kode string, name string, flagActive string) ([]models.NonlabTemplateDetail, error) { logger, _ := zap.NewProduction() - var ret models.NonlabTemplateDetail + var ret []models.NonlabTemplateDetail var count int prmKode := "%" + kode + "%" @@ -351,8 +351,80 @@ func (nlt *MDNonlabTemplateServices) AddDetailNonlabTemplate(idnonlab string, ko logger.Error("error insert data", zap.Any("kode", prmKode), zap.Any("nama", prmName)) return ret, fmt.Errorf("query failed to insert data: %v", err) } + logger.Info("Success Insert data", zap.Any("id", insertedID)) - s := strconv.Itoa(int(insertedID)) - - return nlt.GetDetailByIDNonlabTemplate(s) + return nlt.ListDetailByIDNonlabTemplate(idnonlab) +} + +func (nlt *MDNonlabTemplateServices) DeleteDetailNonlabTemplate(id string) ([]models.NonlabTemplateDetail, error) { + logger, _ := zap.NewProduction() + var temp models.NonlabTemplateDetail + var ret []models.NonlabTemplateDetail + + temp, err := nlt.GetDetailByID(id) + if err != nil { + defer logger.Sync() + logger.Error("Error get current detail nonlab template", zap.Any("id", id)) + return ret, fmt.Errorf("query failed get current detail nonlab template") + } + + q := ` + UPDATE nonlab_template_detail + SET + NonlabTemplateDetailIsActive = 'N', + NonlabTemplateDetailLastUpdated = NOW() + WHERE NonlabTemplateDetailID = ? + AND NonlabTemplateDetailNonlabTemplateID = ? + ` + dlt := dbx.Handlex.MustExec(q, id, temp.NonlabTemplateDetailNonlabTemplateID) + _, err = dlt.RowsAffected() + if err != nil { + defer logger.Sync() + logger.Error("Error delete detail nonlab template", zap.Any("id", id)) + return ret, fmt.Errorf("query failed delete detail nonlab template") + } + + s := strconv.Itoa(int(temp.NonlabTemplateDetailNonlabTemplateID)) + + return nlt.ListDetailByIDNonlabTemplate(s) +} + +func (nlt *MDNonlabTemplateServices) PilihDetailNonlabTemplate(id string) ([]models.NonlabTemplateDetail, error) { + logger, _ := zap.NewProduction() + var cek models.NonlabTemplateDetail + var ret []models.NonlabTemplateDetail + var flag string + + cek, err := nlt.GetDetailByID(id) + if err != nil { + defer logger.Sync() + logger.Error("Error cek current detail nonlab template", zap.Any("ID", id)) + return ret, fmt.Errorf("query failed cek current detail nonlab template") + } + + if cek.NonlabTemplateDetailFlagActive == "Y" { + flag = "N" + } else { + flag = "Y" + } + + q := ` + UPDATE nonlab_template_detail + SET + NonlabTemplateDetailFlagActive = ?, + NonlabTemplateDetailLastUpdated = NOW() + WHERE NonlabTemplateDetailID = ? + AND NonlabTemplateDetailNonlabTemplateID = ? + ` + updt := dbx.Handlex.MustExec(q, flag, id, cek.NonlabTemplateDetailNonlabTemplateID) + _, err = updt.RowsAffected() + if err != nil { + defer logger.Sync() + logger.Error("Error update detail nonlab template", zap.Any("id", id), zap.Any("flag", flag)) + return ret, fmt.Errorf("query failed update detail nonlab template") + } + + s := strconv.Itoa(int(cek.NonlabTemplateDetailNonlabTemplateID)) + + return nlt.ListDetailByIDNonlabTemplate(s) } diff --git a/views/dev/mdnonlabtemplate/mdnonlabtemplate.templ b/views/dev/mdnonlabtemplate/mdnonlabtemplate.templ index f4f6ebb..ae9e381 100644 --- a/views/dev/mdnonlabtemplate/mdnonlabtemplate.templ +++ b/views/dev/mdnonlabtemplate/mdnonlabtemplate.templ @@ -14,6 +14,9 @@ templ MdNonlabTemplateScreen( dialogEditBodyID string, dialogDeleteID string, dialogDeleteBodyID string, + tableDetailID string, + detailEditID string, + detailDeleteID string, breadcrumb templ.Component, filtercomponent templ.Component, tablecontent templ.Component, @@ -59,6 +62,18 @@ templ MdNonlabTemplateScreen( Name: "dialogDeleteBodyID", Type: "hidden", Value: dialogDeleteBodyID}) + @customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "tableDetailID", + Name: "tableDetailID", + Type: "hidden", + Value: tableDetailID}) + @customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "detailEditID", + Name: "detailEditID", + Type: "hidden", + Value: detailEditID}) + @customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "detailDeleteID", + Name: "detailDeleteID", + Type: "hidden", + Value: detailDeleteID})
@breadcrumb diff --git a/views/dev/mdnonlabtemplate/mdnonlabtemplate_templ.go b/views/dev/mdnonlabtemplate/mdnonlabtemplate_templ.go index 23ed9a0..e569bc2 100644 --- a/views/dev/mdnonlabtemplate/mdnonlabtemplate_templ.go +++ b/views/dev/mdnonlabtemplate/mdnonlabtemplate_templ.go @@ -24,6 +24,9 @@ func MdNonlabTemplateScreen( dialogEditBodyID string, dialogDeleteID string, dialogDeleteBodyID string, + tableDetailID string, + detailEditID string, + detailDeleteID string, breadcrumb templ.Component, filtercomponent templ.Component, tablecontent templ.Component, @@ -111,6 +114,27 @@ func MdNonlabTemplateScreen( 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: "detailEditID", + Name: "detailEditID", + Type: "hidden", + Value: detailEditID}).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "detailDeleteID", + Name: "detailDeleteID", + Type: "hidden", + Value: detailDeleteID}).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 @@ -126,7 +150,7 @@ func MdNonlabTemplateScreen( var templ_7745c5c3_Var2 string templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs("#" + dialogAddID) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtemplate.templ`, Line: 72, Col: 55} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtemplate.templ`, Line: 87, Col: 55} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2)) if templ_7745c5c3_Err != nil { @@ -139,7 +163,7 @@ func MdNonlabTemplateScreen( var templ_7745c5c3_Var3 string templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs("#" + dialogAddID) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtemplate.templ`, Line: 83, Col: 51} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtemplate.templ`, Line: 98, Col: 51} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3)) if templ_7745c5c3_Err != nil { diff --git a/views/dev/mdnonlabtemplate/mdnonlabtmptmodal.templ b/views/dev/mdnonlabtemplate/mdnonlabtmptmodal.templ index f98da87..c1c1e46 100644 --- a/views/dev/mdnonlabtemplate/mdnonlabtmptmodal.templ +++ b/views/dev/mdnonlabtemplate/mdnonlabtmptmodal.templ @@ -40,6 +40,7 @@ script HandleFormBeforeRequest() { const btnActCancel = document.querySelectorAll('.btnactcancel'); const btnActSaveData = document.querySelectorAll('.btnactsavedata'); + console.log("here test") for (let i = 0; i < btnActCancel.length; i++) { btnActCancel[i].setAttribute('disabled', 'true'); } @@ -52,6 +53,7 @@ script HandleFormAfterRequest() { const btnActCancel = document.querySelectorAll('.btnactcancel'); const btnActSaveData = document.querySelectorAll('.btnactsavedata'); + console.log("here test#2") for (let i = 0; i < btnActCancel.length; i++) { btnActCancel[i].removeAttribute('disabled'); } @@ -83,7 +85,7 @@ templ BodyFormMDNonlabTemplate( @customcheckbox.MainCustomCheckboxInput(inputFlag)
-
+
@btnSimpan
Detail Hasil
@@ -164,15 +166,18 @@ templ BtnCloseFormMDNonlabTmplt(LinkClose string, targetClose string, hxSwapClos } -templ BtnSimpanNama(Link string, target string, hxSwap string, modalID string, hxInclude string) { +templ BtnSimpanNama(Link string, target string, hxSwap string, disable bool, hxInclude string) { diff --git a/views/dev/mdnonlabtemplate/mdnonlabtmptmodal_templ.go b/views/dev/mdnonlabtemplate/mdnonlabtmptmodal_templ.go index 57d9f39..67f715b 100644 --- a/views/dev/mdnonlabtemplate/mdnonlabtmptmodal_templ.go +++ b/views/dev/mdnonlabtemplate/mdnonlabtmptmodal_templ.go @@ -156,10 +156,11 @@ func MDNonlabTmpltForm(data models.MDNonlabTemplateForm) templ.Component { func HandleFormBeforeRequest() templ.ComponentScript { return templ.ComponentScript{ - Name: `__templ_HandleFormBeforeRequest_7bdf`, - Function: `function __templ_HandleFormBeforeRequest_7bdf(){const btnActCancel = document.querySelectorAll('.btnactcancel'); + Name: `__templ_HandleFormBeforeRequest_8f9d`, + Function: `function __templ_HandleFormBeforeRequest_8f9d(){const btnActCancel = document.querySelectorAll('.btnactcancel'); const btnActSaveData = document.querySelectorAll('.btnactsavedata'); + console.log("here test") for (let i = 0; i < btnActCancel.length; i++) { btnActCancel[i].setAttribute('disabled', 'true'); } @@ -167,17 +168,18 @@ func HandleFormBeforeRequest() templ.ComponentScript { btnActSaveData[i].setAttribute('disabled', 'true'); } }`, - Call: templ.SafeScript(`__templ_HandleFormBeforeRequest_7bdf`), - CallInline: templ.SafeScriptInline(`__templ_HandleFormBeforeRequest_7bdf`), + Call: templ.SafeScript(`__templ_HandleFormBeforeRequest_8f9d`), + CallInline: templ.SafeScriptInline(`__templ_HandleFormBeforeRequest_8f9d`), } } func HandleFormAfterRequest() templ.ComponentScript { return templ.ComponentScript{ - Name: `__templ_HandleFormAfterRequest_cc6f`, - Function: `function __templ_HandleFormAfterRequest_cc6f(){const btnActCancel = document.querySelectorAll('.btnactcancel'); + Name: `__templ_HandleFormAfterRequest_7066`, + Function: `function __templ_HandleFormAfterRequest_7066(){const btnActCancel = document.querySelectorAll('.btnactcancel'); const btnActSaveData = document.querySelectorAll('.btnactsavedata'); + console.log("here test#2") for (let i = 0; i < btnActCancel.length; i++) { btnActCancel[i].removeAttribute('disabled'); } @@ -185,8 +187,8 @@ func HandleFormAfterRequest() templ.ComponentScript { btnActSaveData[i].removeAttribute('disabled'); } }`, - Call: templ.SafeScript(`__templ_HandleFormAfterRequest_cc6f`), - CallInline: templ.SafeScriptInline(`__templ_HandleFormAfterRequest_cc6f`), + Call: templ.SafeScript(`__templ_HandleFormAfterRequest_7066`), + CallInline: templ.SafeScriptInline(`__templ_HandleFormAfterRequest_7066`), } } @@ -199,6 +201,7 @@ func BodyFormMDNonlabTemplate( detailNama models.CustomTextFieldv2Prm, btnSimpan templ.Component, btnAddDetail templ.Component, + tableDetail templ.Component, hxOnLoad templ.ComponentScript, ) templ.Component { return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { @@ -224,7 +227,7 @@ func BodyFormMDNonlabTemplate( var templ_7745c5c3_Var10 string templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(componentID) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 74, Col: 25} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 77, Col: 25} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10)) if templ_7745c5c3_Err != nil { @@ -263,7 +266,7 @@ func BodyFormMDNonlabTemplate( if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -295,7 +298,15 @@ func BodyFormMDNonlabTemplate( if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = tableDetail.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 } @@ -372,7 +383,7 @@ func ActionFormMDNonlabTmplt(LinkClose string, targetClose string, hxSwapClose s var templ_7745c5c3_Var14 string templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(LinkClose) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 129, Col: 31} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 133, Col: 31} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14)) if templ_7745c5c3_Err != nil { @@ -385,7 +396,7 @@ func ActionFormMDNonlabTmplt(LinkClose string, targetClose string, hxSwapClose s var templ_7745c5c3_Var15 string templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(targetClose) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 130, Col: 35} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 134, Col: 35} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15)) if templ_7745c5c3_Err != nil { @@ -398,7 +409,7 @@ func ActionFormMDNonlabTmplt(LinkClose string, targetClose string, hxSwapClose s var templ_7745c5c3_Var16 string templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.JoinStringErrs(hxSwapClose) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 131, Col: 33} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 135, Col: 33} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var16)) if templ_7745c5c3_Err != nil { @@ -439,7 +450,7 @@ func BtnCloseFormMDNonlabTmplt(LinkClose string, targetClose string, hxSwapClose var templ_7745c5c3_Var18 string templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.JoinStringErrs(LinkClose) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 152, Col: 27} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 156, Col: 27} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var18)) if templ_7745c5c3_Err != nil { @@ -452,7 +463,7 @@ func BtnCloseFormMDNonlabTmplt(LinkClose string, targetClose string, hxSwapClose var templ_7745c5c3_Var19 string templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs(targetClose) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 153, Col: 31} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 157, Col: 31} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19)) if templ_7745c5c3_Err != nil { @@ -465,7 +476,7 @@ func BtnCloseFormMDNonlabTmplt(LinkClose string, targetClose string, hxSwapClose var templ_7745c5c3_Var20 string templ_7745c5c3_Var20, templ_7745c5c3_Err = templ.JoinStringErrs(hxSwapClose) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 154, Col: 29} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 158, Col: 29} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var20)) if templ_7745c5c3_Err != nil { @@ -491,7 +502,7 @@ func BtnCloseFormMDNonlabTmplt(LinkClose string, targetClose string, hxSwapClose }) } -func BtnSimpanNama(Link string, target string, hxSwap string, modalID string, hxInclude string) templ.Component { +func BtnSimpanNama(Link string, target string, hxSwap string, disable bool, hxInclude 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 { @@ -511,7 +522,7 @@ func BtnSimpanNama(Link string, target string, hxSwap string, modalID string, hx var templ_7745c5c3_Var23 string templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.JoinStringErrs(Link) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 167, Col: 22} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 171, Col: 22} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var23)) if templ_7745c5c3_Err != nil { @@ -524,7 +535,7 @@ func BtnSimpanNama(Link string, target string, hxSwap string, modalID string, hx var templ_7745c5c3_Var24 string templ_7745c5c3_Var24, templ_7745c5c3_Err = templ.JoinStringErrs(target) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 168, Col: 26} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 172, Col: 26} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var24)) if templ_7745c5c3_Err != nil { @@ -537,7 +548,7 @@ func BtnSimpanNama(Link string, target string, hxSwap string, modalID string, hx var templ_7745c5c3_Var25 string templ_7745c5c3_Var25, templ_7745c5c3_Err = templ.JoinStringErrs(hxSwap) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 169, Col: 24} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 173, Col: 24} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var25)) if templ_7745c5c3_Err != nil { @@ -550,13 +561,23 @@ func BtnSimpanNama(Link string, target string, hxSwap string, modalID string, hx var templ_7745c5c3_Var26 string templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.JoinStringErrs(hxInclude) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 170, Col: 30} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 174, Col: 30} } _, 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("\" type=\"button\" class=\"btn btn-outline-secondary font-weight-bolder rounded-lg\" aria-label=\"Simpan Nama\">Simpan\r") + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" type=\"button\" class=\"btn btntmplt btn-outline-secondary font-weight-bolder rounded-lg\" aria-label=\"Simpan Nama\"") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + if disable { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(" disabled") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(">Simpan\r") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -587,7 +608,7 @@ func BtnAddDetail(Link string, target string, hxSwap string, modalID string, hxI var templ_7745c5c3_Var28 string templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.JoinStringErrs(Link) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 181, Col: 22} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 188, Col: 22} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var28)) if templ_7745c5c3_Err != nil { @@ -600,7 +621,7 @@ func BtnAddDetail(Link string, target string, hxSwap string, modalID string, hxI var templ_7745c5c3_Var29 string templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinStringErrs(target) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 182, Col: 26} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 189, Col: 26} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var29)) if templ_7745c5c3_Err != nil { @@ -613,7 +634,7 @@ func BtnAddDetail(Link string, target string, hxSwap string, modalID string, hxI var templ_7745c5c3_Var30 string templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.JoinStringErrs(hxSwap) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 183, Col: 24} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 190, Col: 24} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var30)) if templ_7745c5c3_Err != nil { @@ -626,7 +647,7 @@ func BtnAddDetail(Link string, target string, hxSwap string, modalID string, hxI var templ_7745c5c3_Var31 string templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinStringErrs(hxInclude) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 184, Col: 30} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 191, Col: 30} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31)) if templ_7745c5c3_Err != nil { diff --git a/views/dev/mdnonlabtemplate/tabledetail.templ b/views/dev/mdnonlabtemplate/tabledetail.templ index 8c2dcd2..fef8a7d 100644 --- a/views/dev/mdnonlabtemplate/tabledetail.templ +++ b/views/dev/mdnonlabtemplate/tabledetail.templ @@ -15,9 +15,9 @@ templ TableDetail(data []models.NonlabTemplateDetail, hxSwapDelete string, hxIncludeDelete string, ) { -
+
@tablecomponent.TableV3([]string{"KODE", "TEST", "AKSI"}, - []string{"20%","60%","20%"}, + []string{"20%","50%","30%"}, RowDetail(data, hxGetEdit, hxTargetEdit, @@ -44,7 +44,7 @@ templ RowDetail( ) { if len(data) == 0 { - Data Tidak Ditemukan + Data Tidak Ditemukan } for _, v := range data { @@ -53,6 +53,7 @@ templ RowDetail( { v.NonlabTemplateDetailName } @ActionRow(v.NonlabTemplateDetailID, + v.NonlabTemplateDetailFlagActive, hxGetEdit, hxTargetEdit, hxSwapEdit, @@ -70,6 +71,7 @@ templ RowDetail( templ ActionRow( id int, + flagActive string, hxGetEdit string, hxTargetEdit string, hxSwapEdit string, @@ -88,17 +90,30 @@ templ ActionRow( hx-swap={ hxSwapDelete } hx-include={ hxIncludeDelete } > - - - + if flagActive == "Y" { + ") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = tablecomponent.TableV3([]string{"KODE", "TEST", "AKSI"}, + []string{"20%", "50%", "30%"}, + RowDetail(data, + hxGetEdit, + hxTargetEdit, + hxSwapEdit, + hxIncludeEdit, + hxGetDelete, + hxTargetDelete, + hxSwapDelete, + hxIncludeDelete, + )).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) + } + return templ_7745c5c3_Err + }) +} + +func RowDetail( + data []models.NonlabTemplateDetail, + hxGetEdit string, + hxTargetEdit string, + hxSwapEdit string, + hxIncludeEdit string, + hxGetDelete string, + hxTargetDelete string, + hxSwapDelete string, + hxIncludeDelete string, +) templ.Component { + return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) + if !templ_7745c5c3_IsBuffer { + templ_7745c5c3_Buffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) + } + ctx = templ.InitializeContext(ctx) + templ_7745c5c3_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.NonlabTemplateDetailCode) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\tabledetail.templ`, Line: 52, Col: 45} + } + _, 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.NonlabTemplateDetailName) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\tabledetail.templ`, Line: 53, Col: 45} + } + _, 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 + } + templ_7745c5c3_Err = ActionRow(v.NonlabTemplateDetailID, + v.NonlabTemplateDetailFlagActive, + hxGetEdit, + hxTargetEdit, + hxSwapEdit, + hxIncludeEdit, + hxGetDelete, + hxTargetDelete, + hxSwapDelete, + hxIncludeDelete, + ).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + } + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) + } + return templ_7745c5c3_Err + }) +} + +func ActionRow( + id int, + flagActive string, + hxGetEdit string, + hxTargetEdit string, + hxSwapEdit string, + hxIncludeEdit string, + hxGetDelete string, + hxTargetDelete string, + hxSwapDelete string, + hxIncludeDelete string, +) templ.Component { + return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) + if !templ_7745c5c3_IsBuffer { + templ_7745c5c3_Buffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) + } + ctx = templ.InitializeContext(ctx) + templ_7745c5c3_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 flagActive == "Y" { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("Tidak\r") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + } else { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("Pilih\r") + 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 + }) +}