This commit is contained in:
2024-06-03 08:45:50 +07:00
parent aff369b6fe
commit 08ba796c41
12 changed files with 1208 additions and 87 deletions

View File

@@ -24,6 +24,8 @@ type MDNonLabTemplateServices interface {
GetMDNonLabTemplateData(search string, currentPage int, rowPerPage int) ([]models.MDNonLabTemplate, int, error)
DeleteDataMDNLT(id string) (models.MDNonLabTemplate, error)
GetMDNonLabTemplateByID(id string) (models.MDNonLabTemplate, error)
SaveInMemoryDetail(kode string, name string) (models.MDNonLabTemplateDetail, error)
ListMemoryDetail() ([]models.MDNonLabTemplateDetail, error)
}
type MDNonLabTemplateHandler struct {
@@ -123,6 +125,101 @@ func (mdnlt *MDNonLabTemplateHandler) HandleShowMDNonLabTemplateScreen(c echo.Co
dev_mdnonlabtemplateview.AfterRequestContent(),
)
// modal add detail
// detailAddID := utils.GenerateRandomID("detailaddID")
tableDetailID := utils.GenerateRandomID("tabledetailID")
btnAddNamaID := utils.GenerateRandomID("btnaddnamaID")
btnAddDetailID := utils.GenerateRandomID("btnaddDetailID")
tableDetailPaginationID := utils.GenerateRandomID("tabledetailpaginationID")
// dialogDetailEditID := utils.GenerateRandomID("dialogeditid")
dialogDetailEditBodyID := utils.GenerateRandomID("dialogeditbodyid")
// dialogDetailDeleteID := utils.GenerateRandomID("dialogdeleteid")
dialogDetailDeleteBodyID := utils.GenerateRandomID("dialogdeletebodyid")
btnSimpanDetail := dev_mdnonlabtemplateview.BtnAddDetail()
var listDetaill []models.MDNonLabTemplateDetail
tableDetail := dev_mdnonlabtemplateview.TableDetail(listDetaill,
tableDetailID,
"/dev/md/nonlabtemplate/detailedit",
"#"+dialogDetailEditBodyID,
"outerHTML",
"#dialogDetailEditBodyID, #dialogDetailEditID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID",
"/dev/md/nonlabtemplate/detaildelete",
"#"+dialogDetailDeleteBodyID,
"outerHTML",
"#dialogDetailEditBodyID, #dialogDetailEditID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID",
)
dialogAddBodyComp := dev_mdnonlabtemplateview.BodyFormMDNonlabTemplate(
dialogAddBodyID,
models.CustomTextFieldv2Prm{
Label: "Non Lab Template Name",
Name: "nonlabtemplateid",
Placeholder: "Non Lab Template Name",
Type: "hidden",
ID: "nonlabtemplateid",
},
models.CustomTextFieldv2Prm{
Label: "Template Name",
Name: "nonlabtemplatename",
Placeholder: "Template Name",
Type: "text",
ID: "nonlabtemplatename",
},
models.CustomCheckboxv1Prm{
Name: "nonlabtemplateflag",
ID: "nonlabtemplateflag",
Text: "Template Fisik",
Value: "N",
},
models.CustomTextFieldv2Prm{
// Label: "Template Name",
Name: "nonlabtemplatedetailkode",
Placeholder: "Kode",
Type: "text",
ID: "nonlabtemplatedetailkode",
},
models.CustomTextFieldv2Prm{
// Label: "Template Name",
Name: "nonlabtemplatedetailname",
Placeholder: "Detail Name",
Type: "text",
ID: "nonlabtemplatedetailname",
},
btnSimpanDetail,
tableDetail,
dev_mdnonlabtemplateview.JSHideModal(""),
)
modalActioAddComp := dev_mdnonlabtemplateview.ActionFormMDNLT(
"/dev/md/nonlabtemplate/closeaddform",
"#"+dialogAddBodyID,
"outerHTML",
"#"+dialogAddID,
)
btnCloseModalAdd := dev_mdnonlabtemplateview.BtnCloseFormMDNLT(
"/dev/md/nonlabtemplate/closeaddform",
"#"+dialogAddBodyID,
"outerHTML",
"#"+dialogAddID,
)
modalAddFormComponent := dev_mdnonlabtemplateview.NonLabTemplateModalForm(
models.MDNonLabTemplateForm{
IDComponent: "formnonlabtemplate",
Link: "/dev/md/nonlabtemplate/add",
HxTarget: "#" + dialogAddBodyID,
HxSwap: "outerHTML",
HxInclude: "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogEditBodyID, #" + searchID + ", #currpage" + paginationID,
ModalID: dialogAddID,
ModalTitle: "New - Nonlab Template",
DialogBody: dialogAddBodyComp,
DialogAction: modalActioAddComp,
ButtonCLose: btnCloseModalAdd,
},
)
// modal delete form
dialogDeleteComp := dev_mdnonlabtemplateview.BodyFormMDNonlabTemplate(
dialogDeleteBodyID,
@@ -141,11 +238,27 @@ func (mdnlt *MDNonLabTemplateHandler) HandleShowMDNonLabTemplateScreen(c echo.Co
ID: "nonlabtemplatename",
},
models.CustomCheckboxv1Prm{
Label: "Non Lab Template Flag Fisik",
Name: "nonlabtemplateflag",
ID: "nonlabtemplateflag",
Text: "Template Fisik",
Value: "N",
},
models.CustomTextFieldv2Prm{
// Label: "Template Name",
Name: "nonlabtemplatedetailkode",
Placeholder: "Kode",
Type: "text",
ID: "nonlabtemplatedetailkode",
},
models.CustomTextFieldv2Prm{
// Label: "Template Name",
Name: "nonlabtemplatedetailname",
Placeholder: "Detail Name",
Type: "text",
ID: "nonlabtemplatedetailname",
},
btnSimpanDetail,
tableDetail,
dev_mdnonlabtemplateview.JSHideModal(""),
)
@@ -188,10 +301,15 @@ func (mdnlt *MDNonLabTemplateHandler) HandleShowMDNonLabTemplateScreen(c echo.Co
dialogEditBodyID,
dialogDeleteID,
dialogDeleteBodyID,
btnAddNamaID,
btnAddDetailID,
tableDetailID,
tableDetailPaginationID,
breadcrumbComp,
tableFilter,
tableComp,
tablePagination,
modalAddFormComponent,
modalDeleteFormComponent,
)
css := dev_mdnonlabtemplateview.CSSMDNonLabTemplate()
@@ -310,6 +428,76 @@ func (mdnlt *MDNonLabTemplateHandler) HandleChangePageMDNonLabTemplate(c echo.Co
return utils.ViewMulti(c, retval)
}
// handle add
func (mdnlt *MDNonLabTemplateHandler) HandleCloseFormAdd(c echo.Context) error {
// logger, _ := zap.NewProduction()
dialogAddBodyID := c.FormValue("dialogAddBodyID")
// detailAddID := c.FormValue("detailAddID")
tableDetailID := utils.GenerateRandomID("tabledetailID")
// dialogDetailEditID := utils.GenerateRandomID("dialogeditid")
dialogDetailEditBodyID := utils.GenerateRandomID("dialogeditbodyid")
// dialogDetailDeleteID := utils.GenerateRandomID("dialogdeleteid")
dialogDetailDeleteBodyID := utils.GenerateRandomID("dialogdeletebodyid")
btnSimpanDetail := dev_mdnonlabtemplateview.BtnAddDetail()
var listDetaill []models.MDNonLabTemplateDetail
tableDetail := dev_mdnonlabtemplateview.TableDetail(listDetaill,
tableDetailID,
"/dev/md/nonlabtemplate/detailedit",
"#"+dialogDetailEditBodyID,
"outerHTML",
"#dialogDetailEditBodyID, #dialogDetailEditID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID",
"/dev/md/nonlabtemplate/detaildelete",
"#"+dialogDetailDeleteBodyID,
"outerHTML",
"#dialogDetailEditBodyID, #dialogDetailEditID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID",
)
newForm := dev_mdnonlabtemplateview.BodyFormMDNonlabTemplate(
dialogAddBodyID,
models.CustomTextFieldv2Prm{
Label: "Non Lab Template Name",
Name: "nonlabtemplateid",
Placeholder: "Non Lab Template Name",
Type: "hidden",
ID: "nonlabtemplateid",
},
models.CustomTextFieldv2Prm{
Label: "Non Lab Template Name",
Name: "nonlabtemplatename",
Placeholder: "Non Lab Template Name",
Type: "text",
ID: "nonlabtemplatename",
},
models.CustomCheckboxv1Prm{
Name: "nonlabtemplateflag",
ID: "nonlabtemplateflag",
Text: "Template Fisik",
Value: "N",
},
models.CustomTextFieldv2Prm{
// Label: "Template Name",
Name: "nonlabtemplatedetailkode",
Placeholder: "Kode",
Type: "text",
ID: "nonlabtemplatedetailkode",
},
models.CustomTextFieldv2Prm{
// Label: "Template Name",
Name: "nonlabtemplatedetailname",
Placeholder: "Detail Name",
Type: "text",
ID: "nonlabtemplatedetailname",
},
btnSimpanDetail,
tableDetail,
dev_mdnonlabtemplateview.JSHideModal(""),
)
return utils.View(c, newForm)
}
// handle delete
func (mdnlt *MDNonLabTemplateHandler) HandleOpenFormDelete(c echo.Context) error {
id := c.QueryParam("id")
@@ -438,3 +626,57 @@ func (mdnlt *MDNonLabTemplateHandler) HandleDeleteMDNLT(c echo.Context) error {
return utils.ViewMulti(c, retVal)
}
func (mdnlt *MDNonLabTemplateHandler) HandleAddDetail(c echo.Context) error {
logger, _ := zap.NewProduction()
defer logger.Sync()
nonlabtemplatedetailkode := c.FormValue("nonlabtemplatedetailkode")
nonlabtemplatedetailname := c.FormValue("nonlabtemplatedetailname")
tableDetailID := c.FormValue("tableDetailID")
// dialogDetailEditID := utils.GenerateRandomID("dialogeditid")
dialogDetailEditBodyID := utils.GenerateRandomID("dialogeditbodyid")
// dialogDetailDeleteID := utils.GenerateRandomID("dialogdeleteid")
dialogDetailDeleteBodyID := utils.GenerateRandomID("dialogdeletebodyid")
respAdd, err := mdnlt.MDNonLabTemplateServices.SaveInMemoryDetail(nonlabtemplatedetailkode, nonlabtemplatedetailname)
if err != nil {
return err
}
logger.Info("response save memory", zap.Any("return", respAdd))
updatedTable, err := mdnlt.MDNonLabTemplateServices.ListMemoryDetail()
if err != nil {
return err
}
tableComponent := dev_mdnonlabtemplateview.TableDetail(updatedTable,
tableDetailID,
"/dev/md/nonlabtemplate/detailedit",
"#"+dialogDetailEditBodyID,
"outerHTML",
"#dialogDetailEditBodyID, #dialogDetailEditID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID",
"/dev/md/nonlabtemplate/detaildelete",
"#"+dialogDetailDeleteBodyID,
"outerHTML",
"#dialogDetailEditBodyID, #dialogDetailEditID, #dialogDetailDeleteBodyID, #dialogDetailDeleteID",
)
return utils.View(c, tableComponent)
}
func (mdnlt *MDNonLabTemplateHandler) HandleAddNama(c echo.Context) error {
logger, _ := zap.NewProduction()
nama := c.FormValue("nonlabtemplatename")
fisik := c.FormValue("nonlabtemplateflag")
logger.Info("Test Button Add nama",
zap.Any("nama", nama),
zap.Any("flag", fisik),
)
return nil
}

View File

@@ -287,6 +287,8 @@ func SetupRoutesDev(app *echo.Echo, appStore db.AppStore) {
dev.GET("/md/nonlabtemplate/opendelete", devMDMRNonLabTemplateHandler.HandleOpenFormDelete)
dev.POST("/md/nonlabtemplate/closedeleteform", devMDMRNonLabTemplateHandler.HandleCloseFormDelete)
dev.POST("/md/nonlabtemplate/delete", devMDMRNonLabTemplateHandler.HandleDeleteMDNLT)
dev.POST("/md/nonlabtemplate/closeaddform", devMDMRNonLabTemplateHandler.HandleCloseFormAdd)
dev.POST("/md/nonlabtemplate/addnama", devMDMRNonLabTemplateHandler.HandleAddNama)
// masterdata nat unit
devMdNatUnitServices := dev_services.NewMdNatUnitServices(appStore)