feature add master kelainan

This commit is contained in:
Hanan Askarim
2024-05-24 08:31:10 +07:00
parent 53ad743616
commit 904279a048
16 changed files with 1023 additions and 856 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"
globalservices "cpone/services"
"cpone/utils"
@@ -82,10 +83,16 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error
tableID := utils.GenerateRandomID("tablebody")
paginationID := utils.GenerateRandomID("paginationid")
searchID := utils.GenerateRandomID("searchid")
dialogAddID := utils.GenerateRandomID("dialogaddID")
dialogAddBodyID := utils.GenerateRandomID("dialogaddbodyID")
// dialogEditID := utils.GenerateRandomID("dialogEditID")
// dialogEditBodyID := utils.GenerateRandomID("dialogEditBodyID")
// dialogdeleteID := utils.GenerateRandomID("dialogdeleteID")
// dialogdeleteBodyID := utils.GenerateRandomID("dialogdeleteBodyID")
paramTitleBreadcrumbConvert := "Master Kelainan"
title := "Master Kelainan"
dataBreadCrumb, err := lh.MasterKelainanService.GetListBreadCrumb(paramTitleBreadcrumbConvert)
dataBreadCrumb, err := lh.MasterKelainanService.GetListBreadCrumb(title)
fmt.Println(dataBreadCrumb)
fmt.Println(err)
if err != nil {
@@ -102,6 +109,9 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error
zap.Any("data", dataBreadCrumb),
)
// breadcrumadmin
breadcrumbComponent := breadcrumadmin.MainBreadcrumbAdminV1(dataBreadCrumb)
// navbar menu
navbarmenuComponent := navbarmenu.NavbarMenu(dataMenu)
@@ -111,49 +121,96 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error
// sidebar
sidebaruserprofileComponent := sidebaruserprofile.Navbaruserprofile(dataUser)
// component modal add kelainan
dialogAddBodyCmp := 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"},
dialogAddBodyID, masterkelainan.JsHideModal(""))
dialogAddActionCmp := masterkelainan.ActionFormKelainan(
"/dev/kelainan/closeaddform",
"#"+dialogAddBodyID,
"outerHTML",
"#"+dialogAddID)
dialogAddCloseCmp := masterkelainan.BtnCloseFormKelainan(
"/dev/kelainan/closeaddform",
"#"+dialogAddBodyID,
"outerHTML",
"#"+dialogAddID)
modaladdcomponent := masterkelainan.KelainanForm(models.KelainanFormComponent{
IDComponent: "formkelainan",
Link: "/dev/kelainan/add",
HxTarget: "#" + dialogAddBodyID,
HxSwap: "outerHTML",
HxInclude: "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #dialogEditID, #" + searchID + ", #currpage" + paginationID,
ModalID: dialogAddID,
ModalTitle: "New - Grup Kelainan",
DialogBody: dialogAddBodyCmp,
DialogAction: dialogAddActionCmp,
ButtonCLose: dialogAddCloseCmp,
})
// component table listing kelainan
contentKelainanComponent := masterkelainan.TableKelainan(
dataKelainan, tableID)
// filter kelainan component
kelainanFilterComponent := customtextfieldsearch.MainCustomTextFieldSearchV2(searchID,
"search",
"Cari Grup Kelainan",
"text",
"/dev/searchkelainan",
"input changed delay:500ms, search",
"#"+paginationID, "", "", "outerHTML", "#tableID, #paginationID")
"#"+paginationID, "", "", "outerHTML", "#tableID, #paginationID, #searchID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID")
// pagination kelainan component
kelainanPaginationComponent := pagination.PaginationV2(
totalpage,
1,
"/dev/kelainanpagination",
paginationID,
"#tableID, #searchID, #paginationID", "#"+paginationID, "outerHTML", "",
"#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"#"+paginationID,
"outerHTML", "", "",
)
si := masterkelainan.ShowKelainan(
"Master Kelainan",
masterkelainan.ContentMasterKelainan(
tableID, paginationID, searchID,
breadcrumadmin.MainBreadcrumbAdminV1(dataBreadCrumb),
contentKelainanComponent,
kelainanFilterComponent,
kelainanPaginationComponent,
),
content := masterkelainan.ContentMasterKelainan(
tableID, paginationID, searchID, dialogAddID, dialogAddBodyID,
breadcrumbComponent,
contentKelainanComponent,
kelainanFilterComponent,
kelainanPaginationComponent,
modaladdcomponent)
css := masterkelainan.CssKelainan()
js := masterkelainan.JsMdKelainan()
masterkelainan.CssKelainan(),
masterkelainan.JSku(),
// show kelainan screen
view := masterkelainan.ShowKelainan(
title,
content,
css,
js,
navbarmenuComponent,
navbaruserComponent,
sidebaruserprofileComponent,
)
sidebaruserprofileComponent)
return utils.View(c, si)
return utils.View(c, view)
}
func (lh *MasterKelainanHandler) HandlerShowMasterKelainanSearch(c echo.Context) error {
search := c.QueryParam("search")
searchID := c.QueryParam("searchID")
tableID := c.QueryParam("tableID")
paginationID := c.QueryParam("paginationID")
// dialogEditBodyID := c.QueryParam("dialogEditBodyID")
// dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID")
logger, _ := zap.NewProduction()
dataKelainan, totalpage, err := lh.MasterKelainanService.GetListMasterKelainan(search, 1, 5)
@@ -173,13 +230,12 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainanSearch(c echo.Context)
1,
"/dev/kelainanpagination",
paginationID,
"#tableID, #searchID, #paginationID", "#"+paginationID, "outerHTML", "")
"#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"#"+paginationID, "outerHTML", "", "")
swapTable := masterkelainan.SwapTableKelainan(kelainanPaginationComponent, contentKelainanComponent)
retval := []templ.Component{contentKelainanComponent, kelainanPaginationComponent}
si := swapTable
return utils.View(c, si)
return utils.ViewMulti(c, retval)
}
func (lh *MasterKelainanHandler) HandlerShowMasterKelainanPagination(c echo.Context) error {
@@ -188,7 +244,10 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainanPagination(c echo.Cont
search := c.QueryParam("search")
pageparam := c.QueryParam("page")
tableID := c.QueryParam("tableID")
searchID := c.QueryParam("searchID")
paginationID := c.QueryParam("paginationID")
// dialogEditBodyID := c.QueryParam("dialogEditBodyID")
// dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID")
page, err := strconv.Atoi(pageparam)
if err != nil {
defer logger.Sync()
@@ -216,13 +275,12 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainanPagination(c echo.Cont
page,
"/dev/kelainanpagination",
paginationID,
"#tableID, #searchID, #paginationID", "#"+paginationID, "outerHTML", "")
"#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"#"+paginationID, "outerHTML", "", "")
swapTable := masterkelainan.SwapTableKelainan(kelainanPaginationComponent, contentKelainanComponent)
retval := []templ.Component{contentKelainanComponent, kelainanPaginationComponent}
si := swapTable
return utils.View(c, si)
return utils.ViewMulti(c, retval)
}
func (lh *MasterKelainanHandler) AddKelainan(c echo.Context) error {
@@ -230,15 +288,56 @@ func (lh *MasterKelainanHandler) AddKelainan(c echo.Context) error {
defer logger.Sync()
name := c.FormValue("kelainanname")
// if strings.TrimSpace(name) == "" {
// test := masterkelainan.KelainanSwapOOB(name, "Name cannot empty")
// return lh.View(c, test)
// }
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")
dialogAddID := c.FormValue("dialogAddID")
// dialogEditBodyID := c.FormValue("dialogEditBodyID")
// dialogDeleteBodyID := c.FormValue("dialogDeleteBodyID")
currPage, err := strconv.Atoi(currPagePrm)
if err != nil {
return err
}
logger.Info("ADD KELAINAN",
zap.Any("nama", name),
zap.Any("tableid", tableID),
zap.Any("search", search),
zap.Any("currpage", currPage),
)
// form validation
nameValidation := ""
if strings.TrimSpace(name) == "" {
test := masterkelainan.DialogNewBody(name, "", "Name cannot empty")
return lh.View(c, test)
nameValidation = "Nama grup kelainan tidak boleh kosong"
}
if nameValidation != "" {
newForm := masterkelainan.BodyFormKelainan(
models.CustomTextFieldv2Prm{
Label: "Nama Grup Kelainan",
Name: "kelainanname",
Placeholder: "Nama Grup Kelainan",
Type: "text",
Value: name,
ID: "kelainaninputname",
ErrorMsg: nameValidation},
models.CustomTextFieldv2Prm{Label: "Nama Grup Kelainan",
Name: "kelainanid",
Placeholder: "Nama Grup Kelainan",
Type: "hidden",
ID: "kelainaninputid"},
dialogAddBodyID, masterkelainan.JsHideModal(""))
return utils.ViewMulti(c, []templ.Component{
customtoastv2.CustomToastV2Show("Warning", nameValidation, "warning"), newForm})
}
// Add kelainan service
dataKelainan, err := lh.MasterKelainanService.AddKelainan(name)
if err != nil {
@@ -247,23 +346,89 @@ func (lh *MasterKelainanHandler) AddKelainan(c echo.Context) error {
zap.Any("name", name),
)
// test := masterkelainan.KelainanSwapOOB(name, err.Error())
// return lh.View(c, test)
newForm := masterkelainan.BodyFormKelainan(
models.CustomTextFieldv2Prm{
Label: "Nama Grup Kelainan",
Name: "kelainanname",
Placeholder: "Nama Grup Kelainan",
Type: "text",
Value: name,
ID: "kelainaninputname",
},
models.CustomTextFieldv2Prm{Label: "Nama Grup Kelainan",
Name: "kelainanid",
Placeholder: "Nama Grup Kelainan",
Type: "hidden",
ID: "kelainaninputid"},
dialogAddBodyID, masterkelainan.JsHideModal(""))
return utils.ViewMulti(c, []templ.Component{
customtoastv2.CustomToastV2Show("Error", err.Error(), "danger"), newForm})
}
logger.Info("ADD KELAINAN",
zap.Any("reutn", dataKelainan),
zap.Any("name", name),
)
dataKelainanGet, err := lh.MasterKelainanService.GetKelainanByID("1")
fmt.Println(dataKelainan)
fmt.Println(err)
// Get data table current page
dataKelainanList, totalpage, err := lh.MasterKelainanService.GetListMasterKelainan(search, currPage, 5)
if err != nil {
fmt.Println(dataKelainan)
defer logger.Sync()
logger.Info("ERROR GET KELAINAN",
zap.Any("error", err),
)
return err
}
v := masterkelainan.DialogEditForm(dataKelainanGet.Mcu_KelainanGroupName)
// New add form
newForm := masterkelainan.BodyFormKelainan(
models.CustomTextFieldv2Prm{
Label: "Nama Grup Kelainan",
Name: "kelainanname",
Placeholder: "Nama Grup Kelainan",
Type: "text",
Value: "",
ID: "kelainaninputname",
},
models.CustomTextFieldv2Prm{Label: "Nama Grup Kelainan",
Name: "kelainanid",
Placeholder: "Nama Grup Kelainan",
Type: "hidden",
ID: "kelainaninputid"},
dialogAddBodyID, masterkelainan.JsHideModal("#"+dialogAddID))
return lh.View(c, v)
// New table listing
contentKelainanComponent := masterkelainan.TableKelainan(
dataKelainanList, tableID)
// New pagination
kelainanPaginationComponent := pagination.PaginationV2(totalpage,
currPage,
"/dev/kelainanpagination",
paginationID,
"#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
"#"+paginationID, "outerHTML", "", "true")
toastSuccess := customtoastv2.CustomToastV2Show("Success", "Success add kelainan "+name, "success")
retval := []templ.Component{toastSuccess, contentKelainanComponent, kelainanPaginationComponent, newForm}
return utils.ViewMulti(c, retval)
}
func (lh *MasterKelainanHandler) HandleCloseFormAdd(c echo.Context) error {
dialogAddBodyID := c.FormValue("dialogAddBodyID")
newForm := 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"},
dialogAddBodyID, masterkelainan.JsHideModal(""))
return utils.View(c, newForm)
}

View File

@@ -218,5 +218,6 @@ func SetupRoutesDev(app *echo.Echo, appStore db.AppStore) {
dev.GET("/kelainan", devKLhandlers.HandlerShowMasterKelainan)
dev.GET("/searchkelainan", devKLhandlers.HandlerShowMasterKelainanSearch)
dev.GET("/kelainanpagination", devKLhandlers.HandlerShowMasterKelainanPagination)
dev.POST("/kelainan/closeaddform", devKLhandlers.HandleCloseFormAdd)
dev.POST("/kelainan/add", devKLhandlers.AddKelainan)
}