add feature delete

This commit is contained in:
Hanan Askarim
2024-05-27 16:44:06 +07:00
parent a3005c3b6a
commit b68a2ed2ec
9 changed files with 710 additions and 30 deletions

View File

@@ -26,6 +26,7 @@ type MdNatUnitServices interface {
AddMdNatUnit(code string, name string) (models.NatUnit, error)
GetMdNatUnitByID(id string) (models.NatUnit, error)
EditMdNatUnit(id string, code string, name string) (models.NatUnit, error)
DeleteMdNatUnit(id string) (models.NatUnit, error)
}
func NeWMdNatUnitHandler(nu MdNatUnitServices) *MdNatUnitHandler {
@@ -48,6 +49,8 @@ func (nh *MdNatUnitHandler) HandleShowMdNatUnitScreen(c echo.Context) error {
dialogAddBodyID := utils.GenerateRandomID("dialogaddbodyID")
dialogEditID := utils.GenerateRandomID("dialogEditID")
dialogEditBodyID := utils.GenerateRandomID("dialogEditbodyID")
dialogDeleteID := utils.GenerateRandomID("dialogDeleteID")
dialogDeleteBodyID := utils.GenerateRandomID("dialogDeletebodyID")
dataMenu, err := services.GetMenu()
fmt.Println(dataMenu)
fmt.Println(err)
@@ -114,7 +117,11 @@ func (nh *MdNatUnitHandler) HandleShowMdNatUnitScreen(c echo.Context) error {
"/dev/md/natunit/openedit",
"#"+dialogEditBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID",
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"/dev/md/natunit/opendelete",
"#"+dialogDeleteBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
)
//filter nat unit component
@@ -124,7 +131,7 @@ func (nh *MdNatUnitHandler) HandleShowMdNatUnitScreen(c echo.Context) error {
"text",
"/dev/md/natunit/filter",
"input changed delay:500ms, search",
"#"+paginationID, "#loadingcontent", "", "outerHTML", "#tableID, #paginationID, #searchID",
"#"+paginationID, "#loadingcontent", "", "outerHTML", "#tableID, #paginationID, #searchID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
dev_mdnatunitview.BeforeRequestContent(),
dev_mdnatunitview.AfterRequestContent())
@@ -134,7 +141,7 @@ func (nh *MdNatUnitHandler) HandleShowMdNatUnitScreen(c echo.Context) error {
1,
"/dev/md/natunit/changepage",
paginationID,
"#tableID, #searchID, #"+searchID+", #paginationID",
"#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"#"+paginationID,
"outerHTML", "", "",
dev_mdnatunitview.BeforeRequestContent(),
@@ -181,7 +188,7 @@ func (nh *MdNatUnitHandler) HandleShowMdNatUnitScreen(c echo.Context) error {
Link: "/dev/md/natunit/add",
HxTarget: "#" + dialogAddBodyID,
HxSwap: "outerHTML",
HxInclude: "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #" + searchID + ", #currpage" + paginationID,
HxInclude: "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogEditBodyID, #" + searchID + ", #currpage" + paginationID,
ModalID: dialogAddID,
ModalTitle: "New - Unit",
DialogBody: dialogAddBodyCmp,
@@ -230,7 +237,7 @@ func (nh *MdNatUnitHandler) HandleShowMdNatUnitScreen(c echo.Context) error {
Link: "dev/md/natunit/edit",
HxTarget: "#" + dialogEditBodyID,
HxSwap: "outerHTML",
HxInclude: "#tableID, #paginationID, #searchID, #dialogEditBodyID, #dialogEditID, #" + searchID + ", #currpage" + paginationID,
HxInclude: "#tableID, #paginationID, #searchID, #dialogDeleteBodyID, #dialogEditBodyID, #dialogEditID, #" + searchID + ", #currpage" + paginationID,
ModalID: dialogEditID,
ModalTitle: "New - Unit",
DialogBody: dialogEditBodyCmp,
@@ -239,6 +246,49 @@ func (nh *MdNatUnitHandler) HandleShowMdNatUnitScreen(c echo.Context) error {
},
)
// modal delete form
dialogDeleteBodyCmp := dev_mdnatunitview.BodyFormNatUnit(
models.CustomTextFieldv2Prm{
Label: "Kode Unit",
Name: "natunitcode",
Placeholder: "Kode Unit",
Type: "text", ID: "natunitinputname"},
models.CustomTextFieldv2Prm{
Label: "Nama Unit",
Name: "natunitname",
Placeholder: "Nama Unit",
Type: "text", ID: "natunitinputname"},
models.CustomTextFieldv2Prm{
Label: "Kode Unit",
Name: "natunitid",
Placeholder: "Kode Unit",
Type: "hidden", ID: "natunitinputid"},
dialogDeleteBodyID, dev_mdnatunitview.JsHideModal(""))
modalActionDeleteCmp := dev_mdnatunitview.ActionFormNatUnit(
"/dev/md/natunit/closedeleteform",
"#"+dialogDeleteBodyID,
"outerHTML",
"#"+dialogDeleteID)
btnCloaseModalDelete := dev_mdnatunitview.BtnCloseFormNatUnit(
"/dev/md/natunit/closedeleteform",
"#"+dialogDeleteBodyID,
"outerHTML",
"#"+dialogDeleteID)
modalDeleteFormComponent := dev_mdnatunitview.NatUnitForm(
models.NatUnitFormComponent{
IDComponent: "formnatunit",
Link: "/dev/md/natunit/delete",
HxTarget: "#" + dialogDeleteBodyID,
HxSwap: "outerHTML",
HxInclude: "#tableID, #paginationID, #searchID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #" + searchID + ", #currpage" + paginationID,
ModalID: dialogDeleteID,
ModalTitle: "New - Unit",
DialogBody: dialogDeleteBodyCmp,
DialogAction: modalActionDeleteCmp,
ButtonCLose: btnCloaseModalDelete,
},
)
// content, css, js
content := dev_mdnatunitview.MdNatUnitScreen(
tableID,
@@ -248,12 +298,15 @@ func (nh *MdNatUnitHandler) HandleShowMdNatUnitScreen(c echo.Context) error {
dialogAddBodyID,
dialogEditID,
dialogEditBodyID,
dialogDeleteID,
dialogDeleteBodyID,
breadcrumbComponent,
tableComponent,
natUnitFilterComponent,
natUnitPaginationComponent,
modalAddFormComponent,
modalEditFormComponent,
modalDeleteFormComponent,
)
css := dev_mdnatunitview.CssMdNatUnit()
js := dev_mdnatunitview.JsMdNatUnit()
@@ -277,6 +330,7 @@ func (nh *MdNatUnitHandler) HandleFilterMdNatUnit(c echo.Context) error {
tableID := c.QueryParam("tableID")
paginationID := c.QueryParam("paginationID")
dialogEditBodyID := c.QueryParam("dialogEditBodyID")
dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID")
var retval []templ.Component
logger, _ := zap.NewProduction()
@@ -294,13 +348,17 @@ func (nh *MdNatUnitHandler) HandleFilterMdNatUnit(c echo.Context) error {
"/dev/md/natunit/openedit",
"#"+dialogEditBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID")
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"/dev/md/natunit/opendelete",
"#"+dialogDeleteBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID")
natUnitPaginationComponent := pagination.PaginationV3(
totalpage,
1,
"/dev/md/natunit/changepage",
paginationID,
"#tableID, #searchID, #"+searchID+", #paginationID",
"#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"#"+paginationID,
"outerHTML", "", "",
dev_mdnatunitview.BeforeRequestContent(),
@@ -318,6 +376,7 @@ func (nh *MdNatUnitHandler) HandlerChangePageMdNatUnit(c echo.Context) error {
searchID := c.QueryParam("searchID")
paginationID := c.QueryParam("paginationID")
dialogEditBodyID := c.QueryParam("dialogEditBodyID")
dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID")
var retval []templ.Component
logger, _ := zap.NewProduction()
@@ -345,14 +404,18 @@ func (nh *MdNatUnitHandler) HandlerChangePageMdNatUnit(c echo.Context) error {
"/dev/md/natunit/openedit",
"#"+dialogEditBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID",
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"/dev/md/natunit/opendelete",
"#"+dialogDeleteBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
)
natUnitPaginationComponent := pagination.PaginationV3(
totalpage,
page,
"/dev/md/natunit/changepage",
paginationID,
"#tableID, #searchID, #"+searchID+", #paginationID",
"#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"#"+paginationID,
"outerHTML", "", "",
dev_mdnatunitview.BeforeRequestContent(),
@@ -400,6 +463,7 @@ func (nh *MdNatUnitHandler) HandlerAddNatUnit(c echo.Context) error {
dialogAddBodyID := c.FormValue("dialogAddBodyID")
dialogAddID := c.FormValue("dialogAddID")
dialogEditBodyID := c.FormValue("dialogEditBodyID")
dialogDeleteBodyID := c.FormValue("dialogDeleteBodyID")
currPage, err := strconv.Atoi(currPagePrm)
if err != nil {
@@ -515,7 +579,11 @@ func (nh *MdNatUnitHandler) HandlerAddNatUnit(c echo.Context) error {
"/dev/md/natunit/openedit",
"#"+dialogEditBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID",
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"/dev/md/natunit/opendelete",
"#"+dialogDeleteBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
)
// pagination component
@@ -524,7 +592,7 @@ func (nh *MdNatUnitHandler) HandlerAddNatUnit(c echo.Context) error {
currPage,
"/dev/md/natunit/changepage",
paginationID,
"#tableID, #searchID, #"+searchID+", #paginationID",
"#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"#"+paginationID,
"outerHTML", "", "true",
dev_mdnatunitview.BeforeRequestContent(),
@@ -652,7 +720,7 @@ func (nh *MdNatUnitHandler) HandlerEditNatUnit(c echo.Context) error {
// dialogAddBodyID := c.FormValue("dialogAddBodyID")
dialogEditID := c.FormValue("dialogEditID")
dialogEditBodyID := c.FormValue("dialogEditBodyID")
// dialogDeleteBodyID := c.FormValue("dialogDeleteBodyID")
dialogDeleteBodyID := c.FormValue("dialogDeleteBodyID")
currPage, err := strconv.Atoi(currPagePrm)
if err != nil {
@@ -768,7 +836,11 @@ func (nh *MdNatUnitHandler) HandlerEditNatUnit(c echo.Context) error {
"/dev/md/natunit/openedit",
"#"+dialogEditBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID",
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"/dev/md/natunit/opendelete",
"#"+dialogDeleteBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
)
// pagination component
@@ -777,7 +849,7 @@ func (nh *MdNatUnitHandler) HandlerEditNatUnit(c echo.Context) error {
currPage,
"/dev/md/natunit/changepage",
paginationID,
"#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID",
"#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"#"+paginationID,
"outerHTML", "", "true",
dev_mdnatunitview.BeforeRequestContent(),
@@ -811,3 +883,154 @@ func (nh *MdNatUnitHandler) HandlerEditNatUnit(c echo.Context) error {
retVal = append(retVal, newForm)
return utils.ViewMulti(c, retVal)
}
func (nh *MdNatUnitHandler) HandlerOpenDeleteForm(c echo.Context) error {
id := c.QueryParam("id")
dialogDeleteID := c.QueryParam("dialogDeleteID")
dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID")
dataNatUnit, err := nh.MdNatUnitServices.GetMdNatUnitByID(id)
if err != nil {
newForm := dev_mdnatunitview.DeleteConfirmationBody(
models.CustomTextFieldv2Prm{Name: "natunitid", Type: "hidden", Value: strconv.Itoa(dataNatUnit.Nat_UnitID)},
dialogDeleteBodyID,
"Apakah anda yakin menghapus unit berikut ?",
[]string{"Kode", "Unit"},
[]string{"", ""},
dev_mdnatunitview.JsShowModal(""))
return utils.ViewMulti(c, []templ.Component{customtoastv2.CustomToastV2Show("Error", "Get unit error", "danger"), newForm})
}
newForm := dev_mdnatunitview.DeleteConfirmationBody(
models.CustomTextFieldv2Prm{Name: "natunitid", Type: "hidden", Value: strconv.Itoa(dataNatUnit.Nat_UnitID)},
dialogDeleteBodyID,
"Apakah anda yakin menghapus unit berikut ?",
[]string{"Kode", "Unit"},
[]string{dataNatUnit.Nat_UnitCode, dataNatUnit.Nat_UnitName},
dev_mdnatunitview.JsShowModal("#"+dialogDeleteID))
return utils.View(c, newForm)
}
func (nh *MdNatUnitHandler) HandlerCloseFormDelete(c echo.Context) error {
dialogDeleteBodyID := c.FormValue("dialogDeleteBodyID")
newForm := dev_mdnatunitview.DeleteConfirmationBody(
models.CustomTextFieldv2Prm{Name: "natunitid", Type: "hidden", Value: ""},
dialogDeleteBodyID,
"Apakah anda yakin menghapus unit berikut ?",
[]string{"Kode", "Unit"},
[]string{"", ""},
dev_mdnatunitview.JsShowModal(""))
return utils.View(c, newForm)
}
func (nh *MdNatUnitHandler) HandlerDeleteNatUnit(c echo.Context) error {
logger, _ := zap.NewProduction()
defer logger.Sync()
// prm form addnatunit
id := c.FormValue("natunitid")
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 NAT UNIT PARAM",
zap.Any("tableid", tableID),
zap.Any("search", search),
zap.Any("currpage", currPage),
)
// edit nat unit service
dataNatUnit, err := nh.MdNatUnitServices.DeleteMdNatUnit(id)
if err != nil {
logger.Info("Error",
zap.Any("Error", err),
)
newForm := dev_mdnatunitview.DeleteConfirmationBody(
models.CustomTextFieldv2Prm{Name: "natunitid", Type: "hidden", Value: ""},
dialogDeleteBodyID,
"Apakah anda yakin menghapus unit berikut ?",
[]string{"Kode", "Unit"},
[]string{"", ""},
dev_mdnatunitview.JsShowModal(""))
return utils.ViewMulti(c, []templ.Component{
customtoastv2.CustomToastV2Show("Error", err.Error(), "danger"),
newForm})
}
logger.Info("ADD Unit",
zap.Any("return", dataNatUnit),
)
// get list nat unit fo table
dataNatUnitList, totalPage, err := nh.MdNatUnitServices.GetListMdNatUnit(search, currPage, 5)
if err != nil {
defer logger.Sync()
logger.Info("ERROR GET Unit",
zap.Any("error", err),
)
fmt.Println(dataNatUnit)
return err
}
if len(dataNatUnitList) == 0 && totalPage > 1 {
currPage = currPage - 1
dataNatUnitList, _, err = nh.MdNatUnitServices.GetListMdNatUnit(search, currPage, 5)
if err != nil {
defer logger.Sync()
logger.Info("ERROR GET UNIT",
zap.Any("error", err),
)
return err
}
}
// table component
tableComponent := dev_mdnatunitview.TableNatUnit(
dataNatUnitList,
tableID,
"/dev/md/natunit/openedit",
"#"+dialogEditBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"/dev/md/natunit/opendelete",
"#"+dialogDeleteBodyID,
"outerHTML",
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
)
// pagination component
natUnitPaginationComponent := pagination.PaginationV3(
totalPage,
currPage,
"/dev/md/natunit/changepage",
paginationID,
"#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"#"+paginationID,
"outerHTML", "", "true",
dev_mdnatunitview.BeforeRequestContent(),
dev_mdnatunitview.AfterRequestContent(),
)
var retVal []templ.Component
newForm := dev_mdnatunitview.DeleteConfirmationBody(
models.CustomTextFieldv2Prm{Name: "natunitid", Type: "hidden", Value: ""},
dialogDeleteBodyID,
"Apakah anda yakin menghapus unit berikut ?",
[]string{"Kode", "Unit"},
[]string{"", ""},
dev_mdnatunitview.JsHideModal("#"+dialogDeleteID))
toastSuccess := customtoastv2.CustomToastV2Show("Success", "Berhasil delete Unit ", "success")
retVal = append(retVal, toastSuccess)
retVal = append(retVal, tableComponent)
retVal = append(retVal, natUnitPaginationComponent)
retVal = append(retVal, newForm)
return utils.ViewMulti(c, retVal)
}

View File

@@ -258,4 +258,7 @@ func SetupRoutesDev(app *echo.Echo, appStore db.AppStore) {
dev.GET("/md/natunit/openedit", devMdNatUnitHandlers.HandlerOpenEditForm)
dev.POST("/md/natunit/closeeditform", devMdNatUnitHandlers.HandlerCloseFormEdit)
dev.POST("/md/natunit/edit", devMdNatUnitHandlers.HandlerEditNatUnit)
dev.GET("/md/natunit/opendelete", devMdNatUnitHandlers.HandlerOpenDeleteForm)
dev.POST("/md/natunit/closedeleteform", devMdNatUnitHandlers.HandlerCloseFormDelete)
dev.POST("/md/natunit/delete", devMdNatUnitHandlers.HandlerDeleteNatUnit)
}