diff --git a/component/pagination/paginationv2.templ b/component/pagination/paginationv2.templ index d361d7c..926256b 100644 --- a/component/pagination/paginationv2.templ +++ b/component/pagination/paginationv2.templ @@ -27,6 +27,7 @@ templ PaginationV2(length int, hx-trigger="click" hx-target={ hxTarget } hx-include={ hxInclude } + hx-disabled-elt=".btneditug, .btndeleteug" >{ strconv.Itoa(i+1) } } else { { strconv.Itoa(i+1) } } } diff --git a/component/pagination/paginationv2_templ.go b/component/pagination/paginationv2_templ.go index e79b9da..c7d92ce 100644 --- a/component/pagination/paginationv2_templ.go +++ b/component/pagination/paginationv2_templ.go @@ -132,14 +132,14 @@ func PaginationV2(length int, if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\">") + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-disabled-elt=\".btneditug, .btndeleteug\">") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } var templ_7745c5c3_Var9 string templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(strconv.Itoa(i + 1)) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\pagination\paginationv2.templ`, Line: 30, Col: 25} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\pagination\paginationv2.templ`, Line: 31, Col: 25} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9)) if templ_7745c5c3_Err != nil { @@ -157,7 +157,7 @@ func PaginationV2(length int, var templ_7745c5c3_Var10 string templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(link + "?" + "page=" + strconv.Itoa(i+1)) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\pagination\paginationv2.templ`, Line: 33, Col: 55} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\pagination\paginationv2.templ`, Line: 34, Col: 55} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10)) if templ_7745c5c3_Err != nil { @@ -170,7 +170,7 @@ func PaginationV2(length int, var templ_7745c5c3_Var11 string templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(hxSwap) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\pagination\paginationv2.templ`, Line: 35, Col: 22} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\pagination\paginationv2.templ`, Line: 36, Col: 22} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11)) if templ_7745c5c3_Err != nil { @@ -183,7 +183,7 @@ func PaginationV2(length int, var templ_7745c5c3_Var12 string templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(hxIndicator) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\pagination\paginationv2.templ`, Line: 36, Col: 32} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\pagination\paginationv2.templ`, Line: 37, Col: 32} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12)) if templ_7745c5c3_Err != nil { @@ -196,7 +196,7 @@ func PaginationV2(length int, var templ_7745c5c3_Var13 string templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(hxTarget) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\pagination\paginationv2.templ`, Line: 38, Col: 26} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\pagination\paginationv2.templ`, Line: 39, Col: 26} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13)) if templ_7745c5c3_Err != nil { @@ -209,20 +209,20 @@ func PaginationV2(length int, var templ_7745c5c3_Var14 string templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(hxInclude) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\pagination\paginationv2.templ`, Line: 39, Col: 28} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\pagination\paginationv2.templ`, Line: 40, Col: 28} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14)) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\">") + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-disabled-elt=\".btneditug, .btndeleteug\">") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } var templ_7745c5c3_Var15 string templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(strconv.Itoa(i + 1)) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\pagination\paginationv2.templ`, Line: 40, Col: 25} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\pagination\paginationv2.templ`, Line: 42, Col: 25} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15)) if templ_7745c5c3_Err != nil { diff --git a/handlers/dev/masterkelainan.handlers.go b/handlers/dev/masterkelainan.handlers.go index ef8fa03..74ed6ca 100644 --- a/handlers/dev/masterkelainan.handlers.go +++ b/handlers/dev/masterkelainan.handlers.go @@ -25,6 +25,7 @@ type MasterKelainanService interface { GetListMasterKelainan(search string, currentPage int, rowPerPage int) ([]models.Kelainan, int, error) GetKelainanByID(id string) (models.Kelainan, error) AddKelainan(name string) (models.Kelainan, error) + EditKelainan(id string, name string) (models.Kelainan, error) } func NewMasterKelainanHandler(us MasterKelainanService) *MasterKelainanHandler { @@ -85,8 +86,8 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error searchID := utils.GenerateRandomID("searchid") dialogAddID := utils.GenerateRandomID("dialogaddID") dialogAddBodyID := utils.GenerateRandomID("dialogaddbodyID") - // dialogEditID := utils.GenerateRandomID("dialogEditID") - // dialogEditBodyID := utils.GenerateRandomID("dialogEditBodyID") + dialogEditID := utils.GenerateRandomID("dialogEditID") + dialogEditBodyID := utils.GenerateRandomID("dialogEditBodyID") // dialogdeleteID := utils.GenerateRandomID("dialogdeleteID") // dialogdeleteBodyID := utils.GenerateRandomID("dialogdeleteBodyID") @@ -159,7 +160,11 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error // component table listing kelainan contentKelainanComponent := masterkelainan.TableKelainan( - dataKelainan, tableID) + dataKelainan, tableID, + "/dev/kelainan/openedit", + "#"+dialogEditBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID") // filter kelainan component kelainanFilterComponent := customtextfieldsearch.MainCustomTextFieldSearchV2(searchID, @@ -181,13 +186,55 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error "outerHTML", "", "", ) + // modal edit form + dialogEditBodyComponent := 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"}, + dialogEditBodyID, masterkelainan.JsHideModal("")) + modalActioEditComponent := masterkelainan.ActionFormKelainan( + "/dev/kelainan/closeeditform", + "#"+dialogEditBodyID, + "outerHTML", + "#"+dialogEditID) + btnCloaseModalEdit := masterkelainan.BtnCloseFormKelainan( + "/dev/kelainan/closeeditform", + "#"+dialogEditBodyID, + "outerHTML", + "#"+dialogEditID) + modalEditFormComponent := masterkelainan.KelainanForm( + models.KelainanFormComponent{ + IDComponent: "formkelainan", + Link: "/dev/kelainan/edit", + HxTarget: "#" + dialogEditBodyID, + HxSwap: "outerHTML", + HxInclude: "#tableID, #paginationID, #searchID, #dialogEditBodyID, #dialogEditID, #" + searchID + ", #currpage" + paginationID, + ModalID: dialogEditID, + ModalTitle: "New - Grup Kelainan", + DialogBody: dialogEditBodyComponent, + DialogAction: modalActioEditComponent, + ButtonCLose: btnCloaseModalEdit, + }, + ) + + // content, css, js content := masterkelainan.ContentMasterKelainan( tableID, paginationID, searchID, dialogAddID, dialogAddBodyID, + dialogEditID, + dialogEditBodyID, breadcrumbComponent, contentKelainanComponent, kelainanFilterComponent, kelainanPaginationComponent, - modaladdcomponent) + modaladdcomponent, + modalEditFormComponent) css := masterkelainan.CssKelainan() js := masterkelainan.JsMdKelainan() @@ -209,7 +256,7 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainanSearch(c echo.Context) searchID := c.QueryParam("searchID") tableID := c.QueryParam("tableID") paginationID := c.QueryParam("paginationID") - // dialogEditBodyID := c.QueryParam("dialogEditBodyID") + dialogEditBodyID := c.QueryParam("dialogEditBodyID") // dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID") logger, _ := zap.NewProduction() @@ -224,7 +271,11 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainanSearch(c echo.Context) } contentKelainanComponent := masterkelainan.TableKelainan( - dataKelainan, tableID) + dataKelainan, tableID, + "/dev/kelainan/openedit", + "#"+dialogEditBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID") kelainanPaginationComponent := pagination.PaginationV2(totalpage, 1, @@ -246,7 +297,7 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainanPagination(c echo.Cont tableID := c.QueryParam("tableID") searchID := c.QueryParam("searchID") paginationID := c.QueryParam("paginationID") - // dialogEditBodyID := c.QueryParam("dialogEditBodyID") + dialogEditBodyID := c.QueryParam("dialogEditBodyID") // dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID") page, err := strconv.Atoi(pageparam) if err != nil { @@ -269,7 +320,11 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainanPagination(c echo.Cont } contentKelainanComponent := masterkelainan.TableKelainan( - dataKelainan, tableID) + dataKelainan, tableID, + "/dev/kelainan/openedit", + "#"+dialogEditBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID") kelainanPaginationComponent := pagination.PaginationV2(totalpage, page, @@ -295,7 +350,7 @@ func (lh *MasterKelainanHandler) AddKelainan(c echo.Context) error { currPagePrm := c.FormValue("currpage" + paginationID) dialogAddBodyID := c.FormValue("dialogAddBodyID") dialogAddID := c.FormValue("dialogAddID") - // dialogEditBodyID := c.FormValue("dialogEditBodyID") + dialogEditBodyID := c.FormValue("dialogEditBodyID") // dialogDeleteBodyID := c.FormValue("dialogDeleteBodyID") currPage, err := strconv.Atoi(currPagePrm) @@ -398,7 +453,11 @@ func (lh *MasterKelainanHandler) AddKelainan(c echo.Context) error { // New table listing contentKelainanComponent := masterkelainan.TableKelainan( - dataKelainanList, tableID) + dataKelainanList, tableID, + "", + "#"+dialogEditBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID") // New pagination kelainanPaginationComponent := pagination.PaginationV2(totalpage, @@ -432,3 +491,197 @@ func (lh *MasterKelainanHandler) HandleCloseFormAdd(c echo.Context) error { dialogAddBodyID, masterkelainan.JsHideModal("")) return utils.View(c, newForm) } + +func (lh *MasterKelainanHandler) HandleOpenEditForm(c echo.Context) error { + id := c.QueryParam("id") + dialogEditID := c.QueryParam("dialogEditID") + dialogEditBodyID := c.QueryParam("dialogEditBodyID") + + dataKelainan, err := lh.MasterKelainanService.GetKelainanByID(id) + if err != nil { + 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"}, + dialogEditBodyID, masterkelainan.JsHideModal("")) + return utils.ViewMulti(c, []templ.Component{customtoastv2.CustomToastV2Show("Error", "Get kelainan grup error", "danger"), newForm}) + } + newForm := masterkelainan.BodyFormKelainan( + models.CustomTextFieldv2Prm{ + Label: "Nama Grup Kelainan", + Name: "kelainanname", + Placeholder: "Nama Grup Kelainan", + Value: dataKelainan.Mcu_KelainanGroupName, + Type: "text", + ID: "kelainaninputname"}, + models.CustomTextFieldv2Prm{Label: "Nama Grup Kelainan", + Name: "kelainanid", + Placeholder: "Nama Grup Kelainan", + Value: strconv.Itoa(dataKelainan.Mcu_KelainanGroupID), + Type: "hidden", + ID: "kelainaninputid"}, + dialogEditBodyID, masterkelainan.JsShowModal("#"+dialogEditID)) + return utils.View(c, newForm) +} + +func (lh *MasterKelainanHandler) HandleCloseFormEdit(c echo.Context) error { + dialogEditBodyID := c.FormValue("dialogEditBodyID") + 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"}, + dialogEditBodyID, masterkelainan.JsHideModal("")) + return utils.View(c, newForm) +} + +func (lh *MasterKelainanHandler) HandleEditKelainan(c echo.Context) error { + + logger, _ := zap.NewProduction() + defer logger.Sync() + + //prm form editkelainan + name := c.FormValue("kelainanname") + id := c.FormValue("kelainanid") + tableID := c.FormValue("tableID") + paginationID := c.FormValue("paginationID") + searchID := c.FormValue("searchID") + search := c.FormValue("search") + currPagePrm := c.FormValue("currpage" + paginationID) + dialogEditID := c.FormValue("dialogEditID") + dialogEditBodyID := c.FormValue("dialogEditBodyID") + + currPage, err := strconv.Atoi(currPagePrm) + if err != nil { + return err + } + logger.Info("EDIT 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"}, + dialogEditBodyID, masterkelainan.JsHideModal("")) + + return utils.ViewMulti(c, []templ.Component{ + customtoastv2.CustomToastV2Show("Warning", nameValidation, "warning"), newForm}) + + } + + // edit kelainan service + dataKelainan, err := lh.MasterKelainanService.EditKelainan(id, 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"}, + dialogEditBodyID, masterkelainan.JsHideModal("")) + return utils.ViewMulti(c, []templ.Component{ + customtoastv2.CustomToastV2Show("Error", err.Error(), "danger"), newForm}) + } + logger.Info("EDIT KELAINAN", + zap.Any("reutn", dataKelainan), + zap.Any("name", name), + ) + + // get list kelainan 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 + } + + // Table component + tableComponent := masterkelainan.TableKelainan(dataKelainanList, + tableID, + "/dev/kelainan/openedit", + "#"+dialogEditBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID") + + // pagination component + kelainanPaginationComponent := pagination.PaginationV2( + totalPage, + currPage, + "/dev/kelainanpagination", + paginationID, + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID", + "#"+paginationID, + "outerHTML", "", "true", + ) + + newForm := masterkelainan.BodyFormKelainan( + models.CustomTextFieldv2Prm{ + Label: "Nama Grup Kelainan", + Name: "kelainanname", + Placeholder: "Nama Grup Kelainan", + ErrorMsg: nameValidation, + Type: "text"}, + models.CustomTextFieldv2Prm{ + Label: "Nama Grup Kelainan", + Name: "kelainanid", + Placeholder: "Nama Grup Kelainan", + Type: "hidden", ID: "kelainaninputid"}, + dialogEditBodyID, masterkelainan.JsHideModal("#"+dialogEditID)) + toastSuccess := customtoastv2.CustomToastV2Show("Success", "Berhasil edit Kelainan Grup "+name, "success") + + retval := []templ.Component{toastSuccess, tableComponent, kelainanPaginationComponent, newForm} + + return utils.ViewMulti(c, retval) +} diff --git a/handlers/routes.go b/handlers/routes.go index 103976f..4ad4ff0 100644 --- a/handlers/routes.go +++ b/handlers/routes.go @@ -220,4 +220,7 @@ func SetupRoutesDev(app *echo.Echo, appStore db.AppStore) { dev.GET("/kelainanpagination", devKLhandlers.HandlerShowMasterKelainanPagination) dev.POST("/kelainan/closeaddform", devKLhandlers.HandleCloseFormAdd) dev.POST("/kelainan/add", devKLhandlers.AddKelainan) + dev.GET("/kelainan/openedit", devKLhandlers.HandleOpenEditForm) + dev.POST("/kelainan/closeeditform", devKLhandlers.HandleCloseFormEdit) + dev.POST("/kelainan/edit", devKLhandlers.HandleEditKelainan) } diff --git a/models/kelainan.models.go b/models/kelainan.models.go index 2a01040..e983da5 100644 --- a/models/kelainan.models.go +++ b/models/kelainan.models.go @@ -3,12 +3,16 @@ 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_KelainanGroupIsActive string `db:"Mcu_KelainanGroupIsActive"` - Mcu_KelainanGroupCreated string `db:"Mcu_KelainanGroupCreated"` - Mcu_KelainanGroupLastUpdated string `db:"Mcu_KelainanGroupLastUpdated"` + Nomor string `db:"nomor"` + Mcu_KelainanGroupID int `db:"Mcu_KelainanGroupID"` + Mcu_KelainanGroupName string `db:"Mcu_KelainanGroupName"` + 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 { diff --git a/services/dev/masterkelainan.services.go b/services/dev/masterkelainan.services.go index 3b8567f..3a37d0e 100644 --- a/services/dev/masterkelainan.services.go +++ b/services/dev/masterkelainan.services.go @@ -155,3 +155,53 @@ func (su *ServicesMasterKelainan) AddKelainan(name string) (models.Kelainan, err return data, nil } + +func (su *ServicesMasterKelainan) EditKelainan(id string, 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' + AND Mcu_KelainanGroupID <> ?` + err := dbx.Handlex.Select(&datacek, qryCek, name, id) + + 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 := `UPDATE mcu_kelainangroup + SET Mcu_KelainanGroupName = ?, + Mcu_KelainanGroupLastUpdated = NOW() + WHERE Mcu_KelainanGroupID = ?` + rst := dbx.Handlex.MustExec(qry, name, id) + _, err = rst.RowsAffected() + if err != nil { + defer logger.Sync() + logger.Error("Error Update Kelainan", + zap.String("name", name), + ) + 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("name", name), + ) + return data, fmt.Errorf("QUERY_FAILED") + } + + return data, nil +} diff --git a/views/dev/masterkelainan/masterkelainan.templ b/views/dev/masterkelainan/masterkelainan.templ index f0c0374..b9fe077 100644 --- a/views/dev/masterkelainan/masterkelainan.templ +++ b/views/dev/masterkelainan/masterkelainan.templ @@ -12,11 +12,14 @@ templ ContentMasterKelainan( searchID string, dialogAddID string, dialogAddBodyID string, + dialogEditID string, + dialogEditBodyID string, breadcrumb templ.Component, tablecontent templ.Component, filterComponent templ.Component, paginationComponent templ.Component, modalAddform templ.Component, + modalEditForm templ.Component, ) {
@customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "tableID", @@ -39,6 +42,14 @@ templ ContentMasterKelainan( Name: "dialogAddBodyID", Type: "hidden", Value: dialogAddBodyID}) + @customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogEditID", + Name: "dialogEditID", + Type: "hidden", + Value: dialogEditID}) + @customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogEditBodyID", + Name: "dialogEditBodyID", + Type: "hidden", + Value: dialogEditBodyID})
@breadcrumb @@ -66,6 +77,7 @@ templ ContentMasterKelainan( @tablecontent @paginationComponent @modalAddform + @modalEditForm
} diff --git a/views/dev/masterkelainan/masterkelainan_templ.go b/views/dev/masterkelainan/masterkelainan_templ.go index 277c318..5573b56 100644 --- a/views/dev/masterkelainan/masterkelainan_templ.go +++ b/views/dev/masterkelainan/masterkelainan_templ.go @@ -22,11 +22,14 @@ func ContentMasterKelainan( searchID string, dialogAddID string, dialogAddBodyID string, + dialogEditID string, + dialogEditBodyID string, breadcrumb templ.Component, tablecontent templ.Component, filterComponent templ.Component, paginationComponent templ.Component, modalAddform templ.Component, + modalEditForm 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) @@ -79,6 +82,20 @@ func ContentMasterKelainan( if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } + templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogEditID", + Name: "dialogEditID", + Type: "hidden", + Value: dialogEditID}).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogEditBodyID", + Name: "dialogEditBodyID", + Type: "hidden", + Value: dialogEditBodyID}).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err @@ -94,7 +111,7 @@ func ContentMasterKelainan( 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\masterkelainan\masterkelainan.templ`, Line: 52, Col: 37} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\masterkelainan\masterkelainan.templ`, Line: 63, Col: 37} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2)) if templ_7745c5c3_Err != nil { @@ -107,7 +124,7 @@ func ContentMasterKelainan( 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\masterkelainan\masterkelainan.templ`, Line: 61, Col: 36} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\masterkelainan\masterkelainan.templ`, Line: 72, Col: 36} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3)) if templ_7745c5c3_Err != nil { @@ -133,6 +150,10 @@ func ContentMasterKelainan( if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } + templ_7745c5c3_Err = modalEditForm.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err diff --git a/views/dev/masterkelainan/mdkelainantable.templ b/views/dev/masterkelainan/mdkelainantable.templ index a24cb32..8d9743f 100644 --- a/views/dev/masterkelainan/mdkelainantable.templ +++ b/views/dev/masterkelainan/mdkelainantable.templ @@ -3,17 +3,34 @@ package masterkelainan import ( "cpone/component/table" "cpone/models" + "strconv" ) -templ TableKelainan(data []models.Kelainan, tableID string) { +templ TableKelainan(data []models.Kelainan, + tableID string, + hxGetEdit string, + hxTargetEdit string, + hxSwapEdit string, + hxIncludeEdit string, +) {
@tablecomponent.TableV3([]string{"NO", "GRUP KELAINAN", "AKSI"}, []string{"10%", "70%", "20%"}, - TableRow(data)) + TableRow(data, + hxGetEdit, + hxTargetEdit, + hxSwapEdit, + hxIncludeEdit, + ))
} -templ TableRow(data []models.Kelainan) { +templ TableRow(data []models.Kelainan, + hxGetEdit string, + hxTargetEdit string, + hxSwapEdit string, + hxIncludeEdit string, +) { if len(data) == 0 { Data Tidak Ditemukan @@ -24,8 +41,42 @@ templ TableRow(data []models.Kelainan) { { v.Nomor } { v.Mcu_KelainanGroupName } - action + @TableAction(v.Mcu_KelainanGroupID, + hxGetEdit, + hxTargetEdit, + hxSwapEdit, + hxIncludeEdit, + ) } } + +templ TableAction( + id int, + hxGetEdit string, + hxTargetEdit string, + hxSwapEdit string, + hxIncludeEdit string, +) { + +} diff --git a/views/dev/masterkelainan/mdkelainantable_templ.go b/views/dev/masterkelainan/mdkelainantable_templ.go index ff966df..82083cc 100644 --- a/views/dev/masterkelainan/mdkelainantable_templ.go +++ b/views/dev/masterkelainan/mdkelainantable_templ.go @@ -13,9 +13,16 @@ import "bytes" import ( "cpone/component/table" "cpone/models" + "strconv" ) -func TableKelainan(data []models.Kelainan, tableID string) templ.Component { +func TableKelainan(data []models.Kelainan, + tableID string, + hxGetEdit string, + hxTargetEdit string, + hxSwapEdit string, + hxIncludeEdit 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 { @@ -35,7 +42,7 @@ func TableKelainan(data []models.Kelainan, tableID string) templ.Component { var templ_7745c5c3_Var2 string templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(tableID) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\masterkelainan\mdkelainantable.templ`, Line: 9, Col: 18} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\masterkelainan\mdkelainantable.templ`, Line: 16, Col: 18} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2)) if templ_7745c5c3_Err != nil { @@ -47,7 +54,12 @@ func TableKelainan(data []models.Kelainan, tableID string) templ.Component { } templ_7745c5c3_Err = tablecomponent.TableV3([]string{"NO", "GRUP KELAINAN", "AKSI"}, []string{"10%", "70%", "20%"}, - TableRow(data)).Render(ctx, templ_7745c5c3_Buffer) + TableRow(data, + hxGetEdit, + hxTargetEdit, + hxSwapEdit, + hxIncludeEdit, + )).Render(ctx, templ_7745c5c3_Buffer) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -62,7 +74,12 @@ func TableKelainan(data []models.Kelainan, tableID string) templ.Component { }) } -func TableRow(data []models.Kelainan) templ.Component { +func TableRow(data []models.Kelainan, + hxGetEdit string, + hxTargetEdit string, + hxSwapEdit string, + hxIncludeEdit 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 { @@ -89,7 +106,7 @@ func TableRow(data []models.Kelainan) templ.Component { 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\masterkelainan\mdkelainantable.templ`, Line: 24, Col: 16} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\masterkelainan\mdkelainantable.templ`, Line: 41, Col: 16} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4)) if templ_7745c5c3_Err != nil { @@ -102,13 +119,26 @@ func TableRow(data []models.Kelainan) templ.Component { var templ_7745c5c3_Var5 string templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(v.Mcu_KelainanGroupName) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\masterkelainan\mdkelainantable.templ`, Line: 25, Col: 32} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\masterkelainan\mdkelainantable.templ`, Line: 42, Col: 32} } _, 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("action\r") + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = TableAction(v.Mcu_KelainanGroupID, + hxGetEdit, + hxTargetEdit, + hxSwapEdit, + hxIncludeEdit, + ).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 } @@ -119,3 +149,85 @@ func TableRow(data []models.Kelainan) templ.Component { return templ_7745c5c3_Err }) } + +func TableAction( + id int, + hxGetEdit string, + hxTargetEdit string, + hxSwapEdit string, + hxIncludeEdit 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 !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) + } + return templ_7745c5c3_Err + }) +}