add delete func + dialog

This commit is contained in:
2024-06-04 15:16:57 +07:00
parent c9a6b21aae
commit 466aa0d9cf
9 changed files with 255 additions and 16 deletions

View File

@@ -6,6 +6,7 @@ import (
navbarmenu "cpone/component/navbar"
"cpone/component/pagination"
sidebaruserprofile "cpone/component/sidebar_user_profile"
customtoastv2 "cpone/component/toastbootstrap"
"cpone/models"
"cpone/services"
"cpone/utils"
@@ -21,6 +22,8 @@ import (
type MDNonlabTemplateServices interface {
GetMDNonLabTemplateBreadcrumb() (models.BreadCrumbV1, error)
GetListNonlabTemplate(search string, currentPage int, rowPerPage int) ([]models.MDNonlabTemplate, int, error)
GetMDNonlabTemplateByID(id string) (models.MDNonlabTemplate, error)
DeleteDataNonlabTemplate(id string) (models.MDNonlabTemplate, error)
}
type MDNonlabTemplateHandler struct {
@@ -122,6 +125,59 @@ func (nlt *MDNonlabTemplateHandler) HandleShowNonlabTemplateScreen(c echo.Contex
)
// dialog delete
dialogDeleteCmp := dev_mdnonlabtemplateview.BodyFormMDNonlabTemplate(
dialogDeleteBodyID,
models.CustomTextFieldv2Prm{
Label: "ID Nonlab Template",
Name: "nonlabtemplateid",
Placeholder: "ID Nonlab Template",
Type: "hidden",
ID: "nonlabtemplateinputid",
},
models.CustomTextFieldv2Prm{
Label: "Name Nonlab Template",
Name: "nonlabtemplatename",
Placeholder: "Nama Nonlab Template",
Type: "text",
ID: "nonlabtemplateinputname",
},
models.CustomCheckboxv1Prm{
Name: "nonlabtemplateflag",
ID: "nonlabtemplateinputname",
Text: "Template Fisik",
Value: "N",
},
dev_mdnonlabtemplateview.JSHideModal(""),
)
modalActionDeleteComp := dev_mdnonlabtemplateview.ActionFormNonlabTemplateDelete(
"/dev/md/nonlabtemplate/closedeleteform",
"#"+dialogDeleteBodyID,
"outerHTML",
"#"+dialogDeleteID,
)
btnCloseModalDelete := dev_mdnonlabtemplateview.BtnCloseFormMDNonlabTmplt(
"/dev/md/nonlabtemplate/closedeleteform",
"#"+dialogDeleteBodyID,
"outerHTML",
"#"+dialogDeleteID,
)
modalDeleteFormComponent := dev_mdnonlabtemplateview.MDNonlabTmpltForm(
models.MDNonlabTemplateForm{
IDComponent: "formnonlabtemplate",
Link: "/dev/md/nonlabtemplate/delete",
HxTarget: "#" + dialogDeleteBodyID,
HxSwap: "outerHTML",
HxInclude: "#tableID, #paginationID, #searchID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #" + searchID + ", #currpage" + paginationID,
ModalID: dialogDeleteID,
ModalTitle: "Delete - Non Lab Template",
DialogBody: dialogDeleteCmp,
DialogAction: modalActionDeleteComp,
ButtonClose: btnCloseModalDelete,
},
)
content := dev_mdnonlabtemplateview.MdNonlabTemplateScreen(
tableID,
@@ -137,6 +193,7 @@ func (nlt *MDNonlabTemplateHandler) HandleShowNonlabTemplateScreen(c echo.Contex
tableFilter,
tableComp,
tablePagination,
modalDeleteFormComponent,
)
css := dev_mdnonlabtemplateview.CSSmdnontemplate()
@@ -253,3 +310,131 @@ func (nlt *MDNonlabTemplateHandler) HandleNonlabTempltPagination(c echo.Context)
retval = append(retval, tablePagination)
return utils.ViewMulti(c, retval)
}
func (nlt *MDNonlabTemplateHandler) HandleOpenFormDelete(c echo.Context) error {
id := c.QueryParam("id")
dialogDeleteID := c.QueryParam("dialogDeleteID")
dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID")
dataMDNLT, err := nlt.MDNonlabTemplateServices.GetMDNonlabTemplateByID(id)
if err != nil {
newForm := dev_mdnonlabtemplateview.DeleteKonfirmasiBody(
models.CustomTextFieldv2Prm{Name: "nonlabtemplateid", Type: "hidden", Value: "0"},
dialogDeleteBodyID,
"Apakah anda yakin menghapus non lab template berikut ?",
[]string{"NAME"},
[]string{""},
dev_mdnonlabtemplateview.JSHideModal(""),
)
return utils.ViewMulti(c, []templ.Component{customtoastv2.CustomToastV2Show("Error", err.Error(), "danger"), newForm})
}
newForm := dev_mdnonlabtemplateview.DeleteKonfirmasiBody(
models.CustomTextFieldv2Prm{Name: "nonlabtemplateid", Type: "hidden", Value: strconv.Itoa(dataMDNLT.NonlabTemplateID)},
dialogDeleteBodyID,
"Apakah anda yakin menghapus non lab template berikut ?",
[]string{"NAME"},
[]string{dataMDNLT.NonlabTemplateName},
dev_mdnonlabtemplateview.JSShowModal("#"+dialogDeleteID),
)
return utils.View(c, newForm)
}
func (nlt *MDNonlabTemplateHandler) HandleCloseFormDelete(c echo.Context) error {
dialogDeleteBodyID := c.FormValue("dialogDeleteBodyID")
newForm := dev_mdnonlabtemplateview.DeleteKonfirmasiBody(
models.CustomTextFieldv2Prm{Type: "hidden", Value: "0", Name: "nonlabtemplateid"},
dialogDeleteBodyID,
"Apakah anda yakin menghapus non lab template berikut ?",
[]string{"NAME"},
[]string{""},
dev_mdnonlabtemplateview.JSHideModal(""),
)
return utils.View(c, newForm)
}
func (nlt *MDNonlabTemplateHandler) HandleDelete(c echo.Context) error {
logger, _ := zap.NewProduction()
defer logger.Sync()
id := c.FormValue("nonlabtemplateid")
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 NON LAB TEMPLATE PARAM", zap.Any("tableid", tableID), zap.Any("search", search), zap.Any("currPage", currPage))
// delete data from db
respDel, err := nlt.MDNonlabTemplateServices.DeleteDataNonlabTemplate(id)
if err != nil {
logger.Info("Error", zap.Any("error", err))
newForm := dev_mdnonlabtemplateview.DeleteKonfirmasiBody(
models.CustomTextFieldv2Prm{Name: "nonlabtemplateid", Type: "hidden", Value: ""},
dialogDeleteBodyID,
"Apakah anda yakin menghapus non lab template berikut ?",
[]string{"NAME"},
[]string{""},
dev_mdnonlabtemplateview.JSHideModal(""),
)
return utils.ViewMulti(c, []templ.Component{customtoastv2.CustomToastV2Show("Error", err.Error(), "danger"), newForm})
}
logger.Info("Response Delete", zap.Any("Resp", respDel))
dataNLTList, totalPage, err := nlt.MDNonlabTemplateServices.GetListNonlabTemplate(search, currPage, 5)
if err != nil {
defer logger.Sync()
logger.Info("Error get list data non lab template", zap.Any("error", err))
return err
}
tableComp := dev_mdnonlabtemplateview.TableNonlabTmplt(dataNLTList,
tableID,
"/dev/md/nonlabtemplate/openedit",
"#"+dialogEditBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"/dev/md/nonlabtemplate/opendelete",
"#"+dialogDeleteBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
)
paginationTable := pagination.PaginationV3(
totalPage,
currPage,
"/dev/md/nonlabtemplate/changepage",
paginationID,
"#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"#"+paginationID,
"outerHTML", "", "true",
dev_mdnonlabtemplateview.BeforeRequestContent(),
dev_mdnonlabtemplateview.AfterRequestContent(),
)
var retVal []templ.Component
newForm := dev_mdnonlabtemplateview.DeleteKonfirmasiBody(
models.CustomTextFieldv2Prm{Name: "nonlabtemplateid", Type: "hidden", Value: ""},
dialogDeleteBodyID,
"Apakah anda yakin menghapus non lab template berikut ?",
[]string{"NAME"},
[]string{""},
dev_mdnonlabtemplateview.JSHideModal("#"+dialogDeleteID),
)
toastSuccess := customtoastv2.CustomToastV2Show("Success", "Berhasil delete non lab template ", "success")
retVal = append(retVal, toastSuccess)
retVal = append(retVal, tableComp)
retVal = append(retVal, paginationTable)
retVal = append(retVal, newForm)
return utils.ViewMulti(c, retVal)
}

View File

@@ -284,6 +284,9 @@ func SetupRoutesDev(app *echo.Echo, appStore db.AppStore) {
dev.GET("/md/nonlabtemplate", devMDNonlabTemplateHandlers.HandleShowNonlabTemplateScreen)
dev.GET("/md/nonlabtemplate/filter", devMDNonlabTemplateHandlers.HandleFilterNonlabTemplate)
dev.GET("/md/nonlabtemplate/changepage", devMDNonlabTemplateHandlers.HandleNonlabTempltPagination)
dev.GET("/md/nonlabtemplate/opendelete", devMDNonlabTemplateHandlers.HandleOpenFormDelete)
dev.POST("/md/nonlabtemplate/closedeleteform", devMDNonlabTemplateHandlers.HandleCloseFormDelete)
dev.POST("/md/nonlabtemplate/delete", devMDNonlabTemplateHandlers.HandleDelete)
// masterdata nat unit
devMdNatUnitServices := dev_services.NewMdNatUnitServices(appStore)