feature delete kelainan

This commit is contained in:
Hanan Askarim
2024-05-24 17:43:25 +07:00
parent 2c62f8fbf7
commit 87c73d64a1
9 changed files with 654 additions and 30 deletions

View File

@@ -26,6 +26,7 @@ type MasterKelainanService interface {
GetKelainanByID(id string) (models.Kelainan, error)
AddKelainan(name string) (models.Kelainan, error)
EditKelainan(id string, name string) (models.Kelainan, error)
DeleteKelainan(id string) (models.Kelainan, error)
}
func NewMasterKelainanHandler(us MasterKelainanService) *MasterKelainanHandler {
@@ -88,8 +89,8 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error
dialogAddBodyID := utils.GenerateRandomID("dialogaddbodyID")
dialogEditID := utils.GenerateRandomID("dialogEditID")
dialogEditBodyID := utils.GenerateRandomID("dialogEditBodyID")
// dialogdeleteID := utils.GenerateRandomID("dialogdeleteID")
// dialogdeleteBodyID := utils.GenerateRandomID("dialogdeleteBodyID")
dialogDeleteID := utils.GenerateRandomID("dialogDeleteID")
dialogDeleteBodyID := utils.GenerateRandomID("dialogDeletebodyID")
title := "Master Kelainan"
@@ -150,7 +151,7 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error
Link: "/dev/kelainan/add",
HxTarget: "#" + dialogAddBodyID,
HxSwap: "outerHTML",
HxInclude: "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #dialogEditID, #" + searchID + ", #currpage" + paginationID,
HxInclude: "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #" + searchID + ", #currpage" + paginationID,
ModalID: dialogAddID,
ModalTitle: "New - Grup Kelainan",
DialogBody: dialogAddBodyCmp,
@@ -164,7 +165,11 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error
"/dev/kelainan/openedit",
"#"+dialogEditBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID")
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"/dev/kelainan/opendelete",
"#"+dialogDeleteBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID")
// filter kelainan component
kelainanFilterComponent := customtextfieldsearch.MainCustomTextFieldSearchV2(searchID,
@@ -224,17 +229,58 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error
},
)
// modal delete form
dialogDeleteBodyComponent := masterkelainan.BodyFormKelainan(
models.CustomTextFieldv2Prm{
Label: "Nama Grup Kelainan",
Name: "kelainanname",
Placeholder: "Nama Grup Kelainan",
Type: "text", ID: "kelainaninputname"},
models.CustomTextFieldv2Prm{
Label: "Nama Grup Kelainan",
Name: "kelainanid",
Placeholder: "Nama Grup Kelainan",
Type: "hidden", ID: "kelainaninputid"},
dialogDeleteBodyID, masterkelainan.JsHideModal(""))
modalActioDeleteComponent := masterkelainan.ActionFormKelainanDelete(
"/dev/kelainan/closedeleteform",
"#"+dialogDeleteBodyID,
"outerHTML",
"#"+dialogDeleteID)
btnCloaseModalDelete := masterkelainan.BtnCloseFormKelainan(
"/dev/kelainan/closedeleteform",
"#"+dialogDeleteBodyID,
"outerHTML",
"#"+dialogDeleteID)
modalDeleteFormComponent := masterkelainan.KelainanForm(
models.KelainanFormComponent{
IDComponent: "formkelainan",
Link: "/dev/kelainan/delete",
HxTarget: "#" + dialogDeleteBodyID,
HxSwap: "outerHTML",
HxInclude: "#tableID, #paginationID, #searchID, #dialogDeleteBodyID, #dialogDeleteID, #" + searchID + ", #currpage" + paginationID,
ModalID: dialogDeleteID,
ModalTitle: "Konfirmasi",
DialogBody: dialogDeleteBodyComponent,
DialogAction: modalActioDeleteComponent,
ButtonCLose: btnCloaseModalDelete,
},
)
// content, css, js
content := masterkelainan.ContentMasterKelainan(
tableID, paginationID, searchID, dialogAddID, dialogAddBodyID,
dialogEditID,
dialogEditBodyID,
dialogDeleteID,
dialogDeleteBodyID,
breadcrumbComponent,
contentKelainanComponent,
kelainanFilterComponent,
kelainanPaginationComponent,
modaladdcomponent,
modalEditFormComponent)
modalEditFormComponent,
modalDeleteFormComponent)
css := masterkelainan.CssKelainan()
js := masterkelainan.JsMdKelainan()
@@ -257,7 +303,7 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainanSearch(c echo.Context)
tableID := c.QueryParam("tableID")
paginationID := c.QueryParam("paginationID")
dialogEditBodyID := c.QueryParam("dialogEditBodyID")
// dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID")
dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID")
logger, _ := zap.NewProduction()
dataKelainan, totalpage, err := lh.MasterKelainanService.GetListMasterKelainan(search, 1, 5)
@@ -275,7 +321,11 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainanSearch(c echo.Context)
"/dev/kelainan/openedit",
"#"+dialogEditBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID")
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"/dev/kelainan/opendelete",
"#"+dialogDeleteBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID")
kelainanPaginationComponent := pagination.PaginationV2(totalpage,
1,
@@ -298,7 +348,7 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainanPagination(c echo.Cont
searchID := c.QueryParam("searchID")
paginationID := c.QueryParam("paginationID")
dialogEditBodyID := c.QueryParam("dialogEditBodyID")
// dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID")
dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID")
page, err := strconv.Atoi(pageparam)
if err != nil {
defer logger.Sync()
@@ -324,7 +374,12 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainanPagination(c echo.Cont
"/dev/kelainan/openedit",
"#"+dialogEditBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID")
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"/dev/kelainan/opendelete",
"#"+dialogDeleteBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
)
kelainanPaginationComponent := pagination.PaginationV2(totalpage,
page,
@@ -351,7 +406,7 @@ func (lh *MasterKelainanHandler) AddKelainan(c echo.Context) error {
dialogAddBodyID := c.FormValue("dialogAddBodyID")
dialogAddID := c.FormValue("dialogAddID")
dialogEditBodyID := c.FormValue("dialogEditBodyID")
// dialogDeleteBodyID := c.FormValue("dialogDeleteBodyID")
dialogDeleteBodyID := c.FormValue("dialogDeleteBodyID")
currPage, err := strconv.Atoi(currPagePrm)
@@ -454,10 +509,14 @@ func (lh *MasterKelainanHandler) AddKelainan(c echo.Context) error {
// New table listing
contentKelainanComponent := masterkelainan.TableKelainan(
dataKelainanList, tableID,
"",
"/dev/kelainan/openedit",
"#"+dialogEditBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID")
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"/dev/kelainan/opendelete",
"#"+dialogDeleteBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID")
// New pagination
kelainanPaginationComponent := pagination.PaginationV2(totalpage,
@@ -565,6 +624,7 @@ func (lh *MasterKelainanHandler) HandleEditKelainan(c echo.Context) error {
currPagePrm := c.FormValue("currpage" + paginationID)
dialogEditID := c.FormValue("dialogEditID")
dialogEditBodyID := c.FormValue("dialogEditBodyID")
dialogDeleteBodyID := c.FormValue("dialogDeleteBodyID")
currPage, err := strconv.Atoi(currPagePrm)
if err != nil {
@@ -648,12 +708,17 @@ func (lh *MasterKelainanHandler) HandleEditKelainan(c echo.Context) error {
}
// Table component
tableComponent := masterkelainan.TableKelainan(dataKelainanList,
tableComponent := masterkelainan.TableKelainan(
dataKelainanList,
tableID,
"/dev/kelainan/openedit",
"#"+dialogEditBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID")
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"/dev/kelainan/opendelete",
"#"+dialogDeleteBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID")
// pagination component
kelainanPaginationComponent := pagination.PaginationV2(
@@ -661,7 +726,7 @@ func (lh *MasterKelainanHandler) HandleEditKelainan(c echo.Context) error {
currPage,
"/dev/kelainanpagination",
paginationID,
"#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID",
"#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"#"+paginationID,
"outerHTML", "", "true",
)
@@ -685,3 +750,147 @@ func (lh *MasterKelainanHandler) HandleEditKelainan(c echo.Context) error {
return utils.ViewMulti(c, retval)
}
func (lh *MasterKelainanHandler) HandleOpenDeleteForm(c echo.Context) error {
id := c.QueryParam("id")
dialogDeleteID := c.QueryParam("dialogDeleteID")
dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID")
dataKelainan, err := lh.MasterKelainanService.GetKelainanByID(id)
if err != nil {
newForm := masterkelainan.DeleteConfirmationBody(
models.CustomTextFieldv2Prm{Name: "kelainanid", Type: "hidden", Value: strconv.Itoa(dataKelainan.Mcu_KelainanGroupID)},
dialogDeleteBodyID,
"Apakah anda yakin menghapus grup kelainan berikut ?",
[]string{"Kelainan Grup"},
[]string{""},
masterkelainan.JsShowModal(""))
return utils.ViewMulti(c, []templ.Component{customtoastv2.CustomToastV2Show("Error", "Get kelainan grup error", "danger"), newForm})
}
newForm := masterkelainan.DeleteConfirmationBody(
models.CustomTextFieldv2Prm{Name: "kelainanid", Type: "hidden", Value: strconv.Itoa(dataKelainan.Mcu_KelainanGroupID)},
dialogDeleteBodyID,
"Apakah anda yakin menghapus grup kelainan berikut ?",
[]string{"Nama Grup"},
[]string{dataKelainan.Mcu_KelainanGroupName},
masterkelainan.JsShowModal("#"+dialogDeleteID))
return utils.View(c, newForm)
}
func (lh *MasterKelainanHandler) HandleCloseFormDelete(c echo.Context) error {
dialogDeleteBodyID := c.FormValue("dialogDeleteBodyID")
newForm := masterkelainan.DeleteConfirmationBody(
models.CustomTextFieldv2Prm{Name: "kelainanid", Type: "hidden", Value: ""},
dialogDeleteBodyID,
"Apakah anda yakin menghapus grup kelainan berikut ?",
[]string{"Grup Kelainan"},
[]string{""},
masterkelainan.JsShowModal(""))
return utils.View(c, newForm)
}
func (lh *MasterKelainanHandler) HandleDeleteKelainan(c echo.Context) error {
logger, _ := zap.NewProduction()
defer logger.Sync()
//prm form kelainan
id := c.FormValue("kelainanid")
tableID := c.FormValue("tableID")
paginationID := c.FormValue("paginationID")
searchID := c.FormValue("searchID")
search := c.FormValue("search")
currPagePrm := c.FormValue("currpage" + paginationID)
// dialogAddBodyID := c.FormValue("dialogAddBodyID")
dialogDeleteID := c.FormValue("dialogDeleteID")
dialogEditBodyID := c.FormValue("dialogEditBodyID")
dialogDeleteBodyID := c.FormValue("dialogDeleteBodyID")
currPage, err := strconv.Atoi(currPagePrm)
if err != nil {
return err
}
logger.Info("ADD KELAINAN PARAM",
zap.Any("tableid", tableID),
zap.Any("search", search),
zap.Any("currpage", currPage),
)
//edit user group service
dataKelainan, err := lh.MasterKelainanService.DeleteKelainan(id)
if err != nil {
logger.Info("Error",
zap.Any("Error", err),
)
newForm := masterkelainan.DeleteConfirmationBody(
models.CustomTextFieldv2Prm{Name: "kelainanid", Type: "hidden", Value: ""},
dialogDeleteBodyID,
"Apakah anda yakin menghapus grup kelaian berikut ?",
[]string{"Nama Grup"},
[]string{""},
masterkelainan.JsShowModal(""))
return utils.ViewMulti(c, []templ.Component{
customtoastv2.CustomToastV2Show("Error", err.Error(), "danger"),
newForm})
}
logger.Info("ADD KELAINAN",
zap.Any("return", dataKelainan),
)
//get list user group for table
dataKelainanList, totalPage, err := lh.MasterKelainanService.GetListMasterKelainan(search, currPage, 5)
if err != nil {
defer logger.Sync()
logger.Info("ERROR GET KELAINAN",
zap.Any("error", err),
)
fmt.Println(dataKelainan)
return err
}
if len(dataKelainanList) == 0 && totalPage > 1 {
currPage = currPage - 1
dataKelainanList, _, err = lh.MasterKelainanService.GetListMasterKelainan(search, currPage, 5)
if err != nil {
defer logger.Sync()
logger.Info("ERROR GET KELAINAN",
zap.Any("error", err),
)
return err
}
}
//table component
tableComponent := masterkelainan.TableKelainan(dataKelainanList,
tableID,
"/dev/kelainan/openedit",
"#"+dialogEditBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"/dev/kelainan/opendelete",
"#"+dialogDeleteBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID")
//pagination component
kelainanPaginationComponent := pagination.PaginationV2(
totalPage,
currPage,
"/dev/kelainanpagination",
paginationID,
"#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"#"+paginationID,
"outerHTML", "", "true",
)
newForm := masterkelainan.DeleteConfirmationBody(
models.CustomTextFieldv2Prm{Name: "kelainanid", Type: "hidden", Value: ""},
dialogDeleteBodyID,
"Apakah anda yakin menghapus grup kelainan berikut ?",
[]string{"Grup Kelainan"},
[]string{""},
masterkelainan.JsHideModal("#"+dialogDeleteID))
toastSuccess := customtoastv2.CustomToastV2Show("Success", "Berhasil delete Grup Kelainan ", "success")
retVal := []templ.Component{toastSuccess, tableComponent, kelainanPaginationComponent, newForm}
return utils.ViewMulti(c, retVal)
}

View File

@@ -223,4 +223,7 @@ func SetupRoutesDev(app *echo.Echo, appStore db.AppStore) {
dev.GET("/kelainan/openedit", devKLhandlers.HandleOpenEditForm)
dev.POST("/kelainan/closeeditform", devKLhandlers.HandleCloseFormEdit)
dev.POST("/kelainan/edit", devKLhandlers.HandleEditKelainan)
dev.GET("/kelainan/opendelete", devKLhandlers.HandleOpenDeleteForm)
dev.POST("/kelainan/closedeleteform", devKLhandlers.HandleCloseFormDelete)
dev.POST("/kelainan/delete", devKLhandlers.HandleDeleteKelainan)
}