add delete func + dialog
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -7,6 +7,8 @@ import (
|
||||
"fmt"
|
||||
"math"
|
||||
"strings"
|
||||
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
type MDNonlabTemplateServices struct {
|
||||
@@ -82,3 +84,52 @@ func (nlt *MDNonlabTemplateServices) GetListNonlabTemplate(search string, currPa
|
||||
|
||||
return ret, totalPage, nil
|
||||
}
|
||||
|
||||
func (nlt *MDNonlabTemplateServices) GetMDNonlabTemplateByID(id string) (models.MDNonlabTemplate, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
var ret models.MDNonlabTemplate
|
||||
|
||||
q := `
|
||||
SELECT
|
||||
NonlabTemplateID,
|
||||
NonlabTemplateName,
|
||||
NonlabTemplateFlagFisik,
|
||||
NonlabTemplateIsActive,
|
||||
NonlabTemplateCreated,
|
||||
NonlabTemplateLastUpdated
|
||||
FROM nonlab_template
|
||||
WHERE NonlabTemplateID = ?
|
||||
`
|
||||
err := dbx.Handlex.Get(&ret, q, id)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("Error get data non lab template by id vs",
|
||||
zap.String("ID", id),
|
||||
zap.Error(err),
|
||||
)
|
||||
return ret, fmt.Errorf("QUERY FAILED GET DATA BY ID")
|
||||
}
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
func (nlt *MDNonlabTemplateServices) DeleteDataNonlabTemplate(id string) (models.MDNonlabTemplate, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
var ret models.MDNonlabTemplate
|
||||
|
||||
q := `
|
||||
UPDATE nonlab_template
|
||||
SET
|
||||
NonlabTemplateIsActive = 'N',
|
||||
NonlabTemplateLastUpdated = NOW()
|
||||
WHERE NonlabTemplateID = ?
|
||||
`
|
||||
dlt := dbx.Handlex.MustExec(q, id)
|
||||
_, err := dlt.RowsAffected()
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("Error delete sample station", zap.String("id", id))
|
||||
return ret, fmt.Errorf("query failed delete non lab template")
|
||||
}
|
||||
|
||||
return nlt.GetMDNonlabTemplateByID(id)
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ templ MDNonlabTmpltForm(data models.MDNonlabTemplateForm) {
|
||||
hx-on::before-request={ HandleFormBeforeRequest() }
|
||||
hx-on::after-request={ HandleFormAfterRequest() }
|
||||
>
|
||||
@modalcomponent.ModalXL(data.ModalID,
|
||||
@modalcomponent.Modal(data.ModalID,
|
||||
data.ModalTitle,
|
||||
data.DialogBody,
|
||||
data.DialogAction,
|
||||
|
||||
@@ -123,7 +123,7 @@ func MDNonlabTmpltForm(data models.MDNonlabTemplateForm) templ.Component {
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = modalcomponent.ModalXL(data.ModalID,
|
||||
templ_7745c5c3_Err = modalcomponent.Modal(data.ModalID,
|
||||
data.ModalTitle,
|
||||
data.DialogBody,
|
||||
data.DialogAction,
|
||||
|
||||
@@ -31,7 +31,7 @@ templ DeleteKonfirmasiBody(
|
||||
</div>
|
||||
}
|
||||
|
||||
templ ActionFormMDSampleStationDelete(LinkClose string, targetClose string, hxSwapClose string, modalID string) {
|
||||
templ ActionFormNonlabTemplateDelete(LinkClose string, targetClose string, hxSwapClose string, modalID string) {
|
||||
<div>
|
||||
<button
|
||||
hx-on::after-request={ JSHideModal(modalID) }
|
||||
|
||||
@@ -137,7 +137,7 @@ func DeleteKonfirmasiBody(
|
||||
})
|
||||
}
|
||||
|
||||
func ActionFormMDSampleStationDelete(LinkClose string, targetClose string, hxSwapClose string, modalID string) templ.Component {
|
||||
func ActionFormNonlabTemplateDelete(LinkClose string, targetClose string, hxSwapClose string, modalID 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 {
|
||||
|
||||
@@ -98,10 +98,10 @@ templ RowAction(
|
||||
<a
|
||||
type="button"
|
||||
class="btnactnlt col-12 col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 btn btn-light-danger mb-2 btn-sm"
|
||||
hx-get={ hxGetEdit + "?id=" + strconv.Itoa(id) }
|
||||
hx-target={ hxTargetEdit }
|
||||
hx-swap={ hxSwapEdit }
|
||||
hx-include={ hxIncludeEdit }
|
||||
hx-get={ hxGetDelete + "?id=" + strconv.Itoa(id) }
|
||||
hx-target={ hxTargetDelete }
|
||||
hx-swap={ hxSwapDelete }
|
||||
hx-include={ hxIncludeDelete }
|
||||
hx-indicator={ "#spnrdel" + strconv.Itoa(id) }
|
||||
hx-on::before-request={ HandleBeforeRequestRow(strconv.Itoa(id)) }
|
||||
hx-on::after-request={ HandleAfterRequestRow(strconv.Itoa(id)) }
|
||||
|
||||
@@ -295,9 +295,9 @@ func RowAction(
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var14 string
|
||||
templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(hxGetEdit + "?id=" + strconv.Itoa(id))
|
||||
templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(hxGetDelete + "?id=" + strconv.Itoa(id))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\nonlabtemplatetable.templ`, Line: 101, Col: 49}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\nonlabtemplatetable.templ`, Line: 101, Col: 51}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -308,9 +308,9 @@ func RowAction(
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var15 string
|
||||
templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(hxTargetEdit)
|
||||
templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(hxTargetDelete)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\nonlabtemplatetable.templ`, Line: 102, Col: 27}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\nonlabtemplatetable.templ`, Line: 102, Col: 29}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -321,9 +321,9 @@ func RowAction(
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var16 string
|
||||
templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.JoinStringErrs(hxSwapEdit)
|
||||
templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.JoinStringErrs(hxSwapDelete)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\nonlabtemplatetable.templ`, Line: 103, Col: 23}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\nonlabtemplatetable.templ`, Line: 103, Col: 25}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var16))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -334,9 +334,9 @@ func RowAction(
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var17 string
|
||||
templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.JoinStringErrs(hxIncludeEdit)
|
||||
templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.JoinStringErrs(hxIncludeDelete)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\nonlabtemplatetable.templ`, Line: 104, Col: 29}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\nonlabtemplatetable.templ`, Line: 104, Col: 31}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var17))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
|
||||
Reference in New Issue
Block a user