delete kelainan detail

This commit is contained in:
Hanan Askarim
2024-06-03 15:20:10 +07:00
parent ae7c836987
commit aea6e5e60b
11 changed files with 748 additions and 29 deletions

View File

@@ -29,6 +29,8 @@ type MasterKelainanService interface {
DeleteKelainan(id string) (models.Kelainan, error)
GetListMasterKelainanDetail(id string, searchdetail string, currentPage int, rowPerPage int) ([]models.KelainanDetail, int, error)
AddKelainanDetail(name string, nameclassification string, selectedid string) (models.KelainanDetail, error)
GetKelainanDetailByID(id string) (models.KelainanDetail, error)
DeleteKelainanDetail(id string) (models.KelainanDetail, error)
}
func NewMasterKelainanHandler(us MasterKelainanService) *MasterKelainanHandler {
@@ -57,6 +59,8 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error
searchDetailID := utils.GenerateRandomID("searchdetailid")
dialogDetailAddID := utils.GenerateRandomID("dialogdetailaddid")
dialogDetailAddBodyID := utils.GenerateRandomID("dialogdetailaddbodyid")
dialogDetailDeleteID := utils.GenerateRandomID("dialogDetailDeleteID")
dialogDetailDeleteBodyID := utils.GenerateRandomID("dialogDetailDeletebodyID")
// println("cek id param", id)
@@ -294,9 +298,18 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error
},
)
defer logger.Sync()
logger.Info("CEK HandlerShowMdKelainanDetailPagination",
zap.Any("dialogDetailDeleteBodyID", dialogDetailDeleteBodyID),
)
// component listing table listing kelainan detail
contentKelainanDetailCmp := masterkelainan.TableKelainanDetail(
dataKelainanDetail, tableDetailID,
"/dev/kelainandetail/opendelete",
"#"+dialogDetailDeleteBodyID,
"outerHTML",
"#dialogDetailDeleteBodyID, #dialogDetailDeleteID, #tableDetailID",
)
// filter kelainan detail component
@@ -306,7 +319,7 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error
"text",
"/dev/searchkelainandetail",
"input changed delay:500ms, searchdetail",
"#"+paginationDetailID, "", "", "none", "#tableDetailID, #paginationDetailID, #searchDetailID, #selectedID")
"#"+paginationDetailID, "", "", "none", "#tableDetailID, #paginationDetailID, #searchDetailID, #selectedID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID")
// pagination kelainan detail component
kelainanDetailPaginationCmp := pagination.PaginationV2(
@@ -314,7 +327,7 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error
1,
"/dev/kelainandetailpagination",
paginationDetailID,
"#tableDetailID, #searchDetailID, #"+searchDetailID+", #paginationDetailID",
"#tableDetailID, #searchDetailID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID, #"+searchDetailID+", #paginationDetailID",
"#"+paginationDetailID,
"outerHTML", "", "",
)
@@ -359,7 +372,7 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error
Link: "/dev/kelainandetail/add",
HxTarget: "#" + dialogDetailAddBodyID,
HxSwap: "outerHTML",
HxInclude: "#selectedID, #tableDetailID, #paginationDetailID, #searchDetailID, #dialogDetailAddBodyID, #dialogDetailAddID, #selectedID #" + searchDetailID + ", #currpage" + paginationDetailID,
HxInclude: "#selectedID, #tableDetailID, #paginationDetailID, #searchDetailID, #dialogDetailAddBodyID, #dialogDetailAddID, #selectedID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID, #" + searchDetailID + ", #currpage" + paginationDetailID,
ModalID: dialogDetailAddID,
ModalTitle: "New - Kelainan",
DialogBody: dialogDetailAddBodyCmp,
@@ -367,6 +380,55 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error
ButtonCLose: dialogDetailAddCloseCmp,
})
// modal delete kelainan detail form
dialogDetailDeleteCmp := masterkelainan.BodyFormKelainanDetail(
models.CustomTextFieldv2Prm{
Label: "Nama Kelainan",
Name: "kelainandetailid",
Placeholder: "Nama Kelainan",
Type: "hidden", ID: "kelainandetailid"},
models.CustomTextFieldv2Prm{
Label: "Nama Kelainan",
Name: "kelainandetailname",
Placeholder: "Nama Kelainan",
Type: "text", ID: "kelainandetailinputname"},
models.SwitchclassPrm{
Label: "Dengan Klasifikasi",
Type: "checkbox",
Checked: "true ",
Name: "select",
ID: "switchname"},
models.CustomTextFieldv2Prm{
Label: "Nama Klasifikasi",
Name: "classificationname",
Placeholder: "Nama Klasifikasi",
Type: "text", ID: "classificationinputname"},
dialogDetailDeleteBodyID, masterkelainan.JsHideModalDetail(""))
modalActionDetailDeleteCmp := masterkelainan.ActionFormKelainanDelete(
"/dev/kelainandetail/closedeleteform",
"#"+dialogDetailDeleteBodyID,
"outerHTML",
"#"+dialogDetailDeleteID)
btnCloseModalDeleteDetail := masterkelainan.BtnCloseFormKelainanDetail(
"/dev/kelainandetail/closedeleteform",
"#"+dialogDetailDeleteBodyID,
"outerHTML",
"#"+dialogDetailDeleteID)
modalDetailDeleteFormCmp := masterkelainan.KelainanDetailForm(
models.KelainanDetailFormComponent{
IDComponent: "formkelainandetail",
Link: "/dev/kelainandetail/delete",
HxTarget: "#" + dialogDetailDeleteBodyID,
HxSwap: "outerHTML",
HxInclude: "#tableDetailID, #paginationDetailID, #searchDetail, #dialogDetailDeleteBodyID, #dialogDetailDeleteID, #" + searchDetailID + ", #currpage" + paginationDetailID,
ModalID: dialogDetailDeleteID,
ModalTitle: "Konfirmasi",
DialogBody: dialogDetailDeleteCmp,
DialogAction: modalActionDetailDeleteCmp,
ButtonCLose: btnCloseModalDeleteDetail,
},
)
// content, css, js
content := masterkelainan.ContentMasterKelainan(
tableID, paginationID, searchID, dialogAddID, dialogAddBodyID,
@@ -379,6 +441,8 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error
searchDetailID,
dialogDetailAddID,
dialogDetailAddBodyID,
dialogDetailDeleteID,
dialogDetailDeleteBodyID,
breadcrumbComponent,
contentKelainanComponent,
kelainanFilterComponent,
@@ -389,7 +453,8 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error
contentKelainanDetailCmp,
kelainanDetailFilterCmp,
kelainanDetailPaginationCmp,
modaldetailaddcomponent)
modaldetailaddcomponent,
modalDetailDeleteFormCmp)
css := masterkelainan.CssKelainan()
js := masterkelainan.JsMdKelainan()
@@ -1045,6 +1110,8 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainanDetail(c echo.Context)
tableDetailID := c.QueryParam("tableDetailID")
paginationDetailID := c.QueryParam("paginationDetailID")
searchDetailID := c.QueryParam("searchDetailID")
// dialogDetailDeleteID := c.QueryParam("dialogDetailDeleteID")
dialogDetailDeleteBodyID := c.QueryParam("dialogDetailDeleteBodyID")
logger.Info("tabel paginationDetailID",
zap.Any("tabel paginationDetailID", paginationDetailID))
@@ -1062,6 +1129,10 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainanDetail(c echo.Context)
// component listing table listing kelainan detail
contentKelainanDetailCmp := masterkelainan.TableKelainanDetail(
dataKelainanDetail, tableDetailID,
"/dev/kelainandetail/opendelete",
"#"+dialogDetailDeleteBodyID,
"outerHTML",
"#dialogDetailDeleteBodyID, #dialogDetailDeleteID, #tableDetailID",
)
// pagination kelainan detail component
@@ -1070,7 +1141,7 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainanDetail(c echo.Context)
1,
"/dev/kelainandetailpagination",
paginationDetailID,
"#selectedID, #tableDetailID, #searchDetailID, #"+searchDetailID+", #paginationDetailID",
"#selectedID, #tableDetailID, #searchDetailID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID, #"+searchDetailID+", #paginationDetailID",
"#"+paginationDetailID,
"outerHTML", "", "true",
)
@@ -1086,6 +1157,7 @@ func (lh *MasterKelainanHandler) HandlerShowMdKelainanDetailSearch(c echo.Contex
searchDetailID := c.QueryParam("searchDetailID")
tableDetailID := c.QueryParam("tableDetailID")
paginationDetailID := c.QueryParam("paginationDetailID")
dialogDetailDeleteBodyID := c.QueryParam("dialogDetailDeleteBodyID")
dataKelainanDetail, totalpagedetail, err := lh.MasterKelainanService.GetListMasterKelainanDetail(selectedID, searchdetail, 1, 5)
if err != nil {
@@ -1103,6 +1175,10 @@ func (lh *MasterKelainanHandler) HandlerShowMdKelainanDetailSearch(c echo.Contex
contentKelainanDetailCmp := masterkelainan.TableKelainanDetail(
dataKelainanDetail,
tableDetailID,
"/dev/kelainandetail/opendelete",
"#"+dialogDetailDeleteBodyID,
"outerHTML",
"#dialogDetailDeleteBodyID, #dialogDetailDeleteID, #tableDetailID",
)
kelainanDetailPaginationCmp := pagination.PaginationV2(
@@ -1110,7 +1186,7 @@ func (lh *MasterKelainanHandler) HandlerShowMdKelainanDetailSearch(c echo.Contex
1,
"/dev/kelainandetailpagination",
paginationDetailID,
"#selectedID, #tableDetailID, #searchDetailID, #"+searchDetailID+", #paginationDetailID",
"#selectedID, #tableDetailID, #searchDetailID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID, #"+searchDetailID+", #paginationDetailID",
"#"+paginationDetailID, "outerHTML", "", "true",
)
@@ -1128,6 +1204,13 @@ func (lh *MasterKelainanHandler) HandlerShowMdKelainanDetailPagination(c echo.Co
searchDetailID := c.QueryParam("searchDetailID")
tableDetailID := c.QueryParam("tableDetailID")
paginationDetailID := c.QueryParam("paginationDetailID")
dialogDetailDeleteBodyID := c.QueryParam("dialogDetailDeleteBodyID")
// dialogDetailDeleteID := c.QueryParam("dialogDetailDeleteID")
// defer logger.Sync()
// logger.Info("CEK HandlerShowMdKelainanDetailPagination",
// zap.Any("dialogDetailDeleteBodyID", dialogDetailDeleteBodyID),
// )
page, err := strconv.Atoi(pageparamdetail)
if err != nil {
@@ -1151,13 +1234,17 @@ func (lh *MasterKelainanHandler) HandlerShowMdKelainanDetailPagination(c echo.Co
contentKelainanDetailCmp := masterkelainan.TableKelainanDetail(
dataKelainanDetail,
tableDetailID,
"/dev/kelainandetail/opendelete",
"#"+dialogDetailDeleteBodyID,
"outerHTML",
"#dialogDetailDeleteBodyID, #dialogDetailDeleteID, #tableDetailID",
)
kelainanPaginationCmp := pagination.PaginationV2(totalpgaedetail,
page,
"/dev/kelainandetailpagination",
paginationDetailID,
"#selectedID, #tableDetailID, #searchDetailID, #"+searchDetailID+", #paginationDetailID",
"#selectedID, #tableDetailID, #searchDetailID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID, #"+searchDetailID+", #paginationDetailID",
"#"+paginationDetailID, "outerHTML", "", "",
)
@@ -1181,6 +1268,7 @@ func (lh *MasterKelainanHandler) HandlerAddKelainanDetail(c echo.Context) error
currPagePrmDetail := c.FormValue("currpage" + paginationDetailID)
dialogDetailAddBodyID := c.FormValue("dialogDetailAddBodyID")
dialogDetailAddID := c.FormValue("dialogDetailAddID")
dialogDetailDeleteBodyID := c.FormValue("dialogDetailDeleteBodyID")
currPage, err := strconv.Atoi(currPagePrmDetail)
@@ -1285,11 +1373,11 @@ func (lh *MasterKelainanHandler) HandlerAddKelainanDetail(c echo.Context) error
return utils.ViewMulti(c, []templ.Component{
customtoastv2.CustomToastV2Show("Error", err.Error(), "danger"), newForm})
}
logger.Info("ADD KELAINAN DETAIL",
zap.Any("return", dataKelainanDetail),
zap.Any("name", nameKelainanDetail),
zap.Any("name klasifikasi", nameClassification),
logger.Info("PARAMETER LIST",
zap.Any("selectedid", selectedID),
zap.Any("searchdetail", searchdetail),
zap.Any("currPage", currPage),
zap.Any("dataKelainanDetail", dataKelainanDetail),
)
// get data table current page
@@ -1301,6 +1389,10 @@ func (lh *MasterKelainanHandler) HandlerAddKelainanDetail(c echo.Context) error
)
}
logger.Info("list kelainan detail add",
zap.Any("return", dataKelainanDetailList),
)
// new add form
newForm := masterkelainan.BodyFormKelainanDetail(
models.CustomTextFieldv2Prm{
@@ -1333,6 +1425,10 @@ func (lh *MasterKelainanHandler) HandlerAddKelainanDetail(c echo.Context) error
// new table listing
contentKelainanDetailComponent := masterkelainan.TableKelainanDetail(
dataKelainanDetailList, tableDetailID,
"/dev/kelainandetail/opendelete",
"#"+dialogDetailDeleteBodyID,
"outerHTML",
"#dialogDetailDeleteBodyID, #dialogDetailDeleteID, #tableDetailID",
)
// new pagination
@@ -1340,7 +1436,7 @@ func (lh *MasterKelainanHandler) HandlerAddKelainanDetail(c echo.Context) error
currPage,
"/dev/kelainandetailpagination",
paginationDetailID,
"#tableDetailID, #searchDetailID, #"+searchDetailID+", #paginationDetailID",
"#tableDetailID, #searchDetailID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID, #"+searchDetailID+", #paginationDetailID",
"#"+paginationDetailID, "outerHTML", "", "true")
toastSuccess := customtoastv2.CustomToastV2Show("Success", "Success add kelainan "+nameKelainanDetail, "success")
@@ -1384,3 +1480,150 @@ func (lh *MasterKelainanHandler) HandlerCloseFormAddDetail(c echo.Context) error
dialogDetailAddBodyID, masterkelainan.JsHideModalDetail(""))
return utils.View(c, newForm)
}
func (lh *MasterKelainanHandler) HandlerOpenDeleteFormDetail(c echo.Context) error {
id := c.QueryParam("id")
dialogDetailDeleteID := c.QueryParam("dialogDetailDeleteID")
dialogDetailDeleteBodyID := c.QueryParam("dialogDetailDeleteBodyID")
logger, _ := zap.NewProduction()
defer logger.Sync()
logger.Info("CEK dialogDetailDeleteBodyID",
zap.Any("dialogDetailDeleteBodyID", dialogDetailDeleteBodyID),
)
dataKelainanDetail, err := lh.MasterKelainanService.GetKelainanDetailByID(id)
if err != nil {
newForm := masterkelainan.DeleteConfirmationBodyDetail(
models.CustomTextFieldv2Prm{Name: "kelainandetailid", Type: "hidden", Value: strconv.Itoa(dataKelainanDetail.Mcu_KelainanID)},
dialogDetailDeleteBodyID,
"Apakah anda yakin menghapus kelainan berikut ?",
[]string{"Nama Kelainan", "Nama Klasifikasi"},
[]string{"", ""},
masterkelainan.JsShowModalDetail(""))
return utils.ViewMulti(c, []templ.Component{customtoastv2.CustomToastV2Show("Error", "Get kelainan error", "danger"), newForm})
}
newForm := masterkelainan.DeleteConfirmationBodyDetail(
models.CustomTextFieldv2Prm{Name: "kelainandetailid", Type: "hidden", Value: strconv.Itoa(dataKelainanDetail.Mcu_KelainanID)},
dialogDetailDeleteBodyID,
"Apakah anda yakin menghapus kelainan berikut ?",
[]string{"Nama Kelainan", "Nama Klasifikasi"},
[]string{dataKelainanDetail.Mcu_KelainanName, dataKelainanDetail.Mcu_KelainanClasification},
masterkelainan.JsShowModalDetail("#"+dialogDetailDeleteID))
return utils.View(c, newForm)
}
func (lh *MasterKelainanHandler) HandlerCloseDeleteFormDetail(c echo.Context) error {
dialogDetailDeleteBodyID := c.FormValue("dialogDetailDeleteBodyID")
newForm := masterkelainan.DeleteConfirmationBodyDetail(
models.CustomTextFieldv2Prm{Name: "kelainandetailid", Type: "hidden", Value: ""},
dialogDetailDeleteBodyID,
"Apakah anda yakin menghapus kelainan berikut ?",
[]string{"Nama Kelainan", "Nama Klasifikasi"},
[]string{"", ""},
masterkelainan.JsShowModalDetail(""))
return utils.View(c, newForm)
}
func (lh *MasterKelainanHandler) HandlerDeleteKelainanDetail(c echo.Context) error {
logger, _ := zap.NewProduction()
defer logger.Sync()
// prm form kelainan
id := c.FormValue("kelainandetailid")
tableDetailID := c.FormValue("tableDetailID")
paginationDetailID := c.FormValue("paginationDetailID")
searchDetailID := c.FormValue("searchDetailID")
searchdetail := c.FormValue("searchdetail")
currPagePrm := c.FormValue("currpage" + paginationDetailID)
dialogDetailDeleteID := c.FormValue("dialogDetailDeleteID")
dialogDetailDeleteBodyID := c.FormValue("dialogDetailDeleteBodyID")
currPage, err := strconv.Atoi(currPagePrm)
if err != nil {
return err
}
logger.Info("PARAMETER LIST",
zap.Any("selectedid", id),
zap.Any("searchdetail", searchdetail),
zap.Any("currPage", currPage),
)
dataKelainanDetail, err := lh.MasterKelainanService.DeleteKelainanDetail(id)
if err != nil {
logger.Info("Error",
zap.Any("Error", err),
)
newForm := masterkelainan.DeleteConfirmationBodyDetail(
models.CustomTextFieldv2Prm{Name: "kelainandetailid", Type: "hidden", Value: ""},
dialogDetailDeleteBodyID,
"Apakah anda yakin menghapus kelainan berikut ?",
[]string{"Nama Kelainan", "Nama Klasifikasi"},
[]string{"", ""},
masterkelainan.JsShowModalDetail(""))
return utils.ViewMulti(c, []templ.Component{customtoastv2.CustomToastV2Show("Error", err.Error(), "danger"), newForm})
}
logger.Info("Kelainan",
zap.Any("return", dataKelainanDetail),
)
//get list kelainan for table
// kelainanDetailList, totalpage, err := lh.MasterKelainanService.GetListMasterKelainanDetail(id, searchdetail, currPage, 5)
kelainanDetailList, totalpage, err := lh.MasterKelainanService.GetListMasterKelainanDetail(id, searchdetail, currPage, 5)
logger.Info("list kelainan detail delete",
zap.Any("return", kelainanDetailList),
)
if err != nil {
defer logger.Sync()
logger.Info("ERROR GET KELAINAN",
zap.Any("error", err),
)
fmt.Println(dataKelainanDetail)
return err
}
if len(kelainanDetailList) == 0 && totalpage > 1 {
currPage = currPage - 1
kelainanDetailList, _, err = lh.MasterKelainanService.GetListMasterKelainanDetail(id, searchdetail, currPage, 5)
if err != nil {
defer logger.Sync()
logger.Info("ERROR GET KELAINAN",
zap.Any("error", err),
)
return err
}
}
tablecomponent := masterkelainan.TableKelainanDetail(kelainanDetailList,
tableDetailID,
"/dev/kelainandetail/opendelete",
"#"+dialogDetailDeleteBodyID,
"outerHTML",
"#dialogDetailDeleteBodyID, #dialogDetailDeleteID, #tableDetailID",
)
kelainanDetailPaginationCmp := pagination.PaginationV2(
totalpage,
currPage,
"/dev/kelainandetailpagination",
paginationDetailID,
"#tableDetailID, #searchDetailID, #"+searchDetailID+", #paginationDetailID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID",
"#"+paginationDetailID,
"outerHTML", "", "true",
)
newForm := masterkelainan.DeleteConfirmationBodyDetail(
models.CustomTextFieldv2Prm{Name: "kelainandetailid", Type: "hidden", Value: ""},
dialogDetailDeleteBodyID,
"Apakah anda yakin menghapus kelainan berikut ?",
[]string{"Nama Kelainan", "Nama Klasifikasi"},
[]string{""},
masterkelainan.JsHideModalDetail("#"+dialogDetailDeleteID))
toastSuccess := customtoastv2.CustomToastV2Show("Success", "Berhasil delete Kelainan ", "success")
retVal := []templ.Component{toastSuccess, tablecomponent, kelainanDetailPaginationCmp, newForm}
return utils.ViewMulti(c, retVal)
}

View File

@@ -231,4 +231,7 @@ func SetupRoutesDev(app *echo.Echo, appStore db.AppStore) {
dev.GET("/kelainandetailpagination", devKLhandlers.HandlerShowMdKelainanDetailPagination)
dev.POST("/kelainandetail/closeaddform", devKLhandlers.HandlerCloseFormAddDetail)
dev.POST("/kelainandetail/add", devKLhandlers.HandlerAddKelainanDetail)
dev.GET("/kelainandetail/opendelete", devKLhandlers.HandlerOpenDeleteFormDetail)
dev.POST("/kelainandetail/closedeleteform", devKLhandlers.HandlerCloseDeleteFormDetail)
dev.POST("/kelainandetail/delete", devKLhandlers.HandlerDeleteKelainanDetail)
}