diff --git a/handlers/dev/md.usergroup.handlers.go b/handlers/dev/md.usergroup.handlers.go index 5fca14b..d3a98e2 100644 --- a/handlers/dev/md.usergroup.handlers.go +++ b/handlers/dev/md.usergroup.handlers.go @@ -48,6 +48,10 @@ func (lh *MdUserGroupHandler) HandleShowMdUserGroupScreen(c echo.Context) error 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") dataMenu, err := services.GetMenu() fmt.Println(dataMenu) fmt.Println(err) @@ -108,21 +112,28 @@ func (lh *MdUserGroupHandler) HandleShowMdUserGroupScreen(c echo.Context) error fmt.Println(dataUserGroup) return err } - tableComponent := dev_mdusergroupview.TableUserGroup(dataUserGroup, tableID) + + tableComponent := dev_mdusergroupview.TableUserGroup(dataUserGroup, + tableID, + "/dev/md/usergroupv2/openedit", + "#"+dialogEditBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID", + ) //filter user group component usergroupFilterComponent := customtextfieldsearch.MainCustomTextFieldSearchV2(searchID, "search", "Cari Kode/Nama", "text", - "/dev/usergroupv2/filter", + "/dev/md/usergroupv2/filter", "input changed delay:500ms, search", "#"+paginationID, "", "", "outerHTML", "#tableID, #paginationID, #searchID") //Pagination userGroupPaginationComponent := pagination.PaginationV2( totalPage, 1, - "/dev/usergroupv2/changepage", + "/dev/md/usergroupv2/changepage", paginationID, "#tableID, #searchID, #"+searchID+", #paginationID", "#"+paginationID, @@ -148,19 +159,19 @@ func (lh *MdUserGroupHandler) HandleShowMdUserGroupScreen(c echo.Context) error Type: "hidden", ID: "usergroupinputid"}, dialogAddBodyID, dev_mdusergroupview.JsHideModal("")) modalActioAddCmp := dev_mdusergroupview.ActionFormUserGroup( - "/dev/usergroupv2/closeaddform", + "/dev/md/usergroupv2/closeaddform", "#"+dialogAddBodyID, "outerHTML", "#"+dialogAddID) btnCloaseModalAdd := dev_mdusergroupview.BtnCloseFormUserGroup( - "/dev/usergroupv2/closeaddform", + "/dev/md/usergroupv2/closeaddform", "#"+dialogAddBodyID, "outerHTML", "#"+dialogAddID) modalAddFormComponent := dev_mdusergroupview.UserGroupForm( models.UserGroupFormComponent{ IDComponent: "formusergroup", - Link: "/dev/usergroupv2/add", + Link: "/dev/md/usergroupv2/add", HxTarget: "#" + dialogAddBodyID, HxSwap: "outerHTML", HxInclude: "#tableID, #paginationID, #searchID, #dialogAddBodyID, #dialogAddID, #" + searchID + ", #currpage" + paginationID, @@ -172,6 +183,49 @@ func (lh *MdUserGroupHandler) HandleShowMdUserGroupScreen(c echo.Context) error }, ) + //modal edit form + dialogEditBodyCmp := dev_mdusergroupview.BodyFormUserGroup( + models.CustomTextFieldv2Prm{ + Label: "Kode User Group", + Name: "usergroupcode", + Placeholder: "Kode user group", + Type: "text", ID: "usergroupinputname"}, + models.CustomTextFieldv2Prm{ + Label: "Nama User Group", + Name: "usergroupname", + Placeholder: "Nama user group", + Type: "text", ID: "usergroupinputname"}, + models.CustomTextFieldv2Prm{ + Label: "Kode User Group", + Name: "usergroupid", + Placeholder: "Kode user group", + Type: "hidden", ID: "usergroupinputid"}, + dialogEditBodyID, dev_mdusergroupview.JsHideModal("")) + modalActioEditCmp := dev_mdusergroupview.ActionFormUserGroup( + "/dev/md/usergroupv2/closeeditform", + "#"+dialogEditBodyID, + "outerHTML", + "#"+dialogEditID) + btnCloaseModalEdit := dev_mdusergroupview.BtnCloseFormUserGroup( + "/dev/md/usergroupv2/closeeditform", + "#"+dialogEditBodyID, + "outerHTML", + "#"+dialogEditID) + modalEditFormComponent := dev_mdusergroupview.UserGroupForm( + models.UserGroupFormComponent{ + IDComponent: "formusergroup", + Link: "", + HxTarget: "#" + dialogEditBodyID, + HxSwap: "outerHTML", + HxInclude: "#tableID, #paginationID, #searchID, #dialogEditBodyID, #dialogEditID, #" + searchID + ", #currpage" + paginationID, + ModalID: dialogEditID, + ModalTitle: "New-User Group", + DialogBody: dialogEditBodyCmp, + DialogAction: modalActioEditCmp, + ButtonCLose: btnCloaseModalEdit, + }, + ) + //content js & css content := dev_mdusergroupview.MdUserGroupScreen( tableID, @@ -179,15 +233,24 @@ func (lh *MdUserGroupHandler) HandleShowMdUserGroupScreen(c echo.Context) error searchID, dialogAddID, dialogAddBodyID, + dialogEditID, + dialogEditBodyID, breadcrumbComponent, tableComponent, usergroupFilterComponent, userGroupPaginationComponent, - modalAddFormComponent) + modalAddFormComponent, + modalEditFormComponent) css := dev_mdusergroupview.CssMdUserGroup() js := dev_mdusergroupview.JsMdUserGroup() - view := dev_mdusergroupview.ShowMdUserGroupScreen(title, content, css, js, navbarmenuComponent, navbaruserComponent, sidebaruserprofileComponent) + view := dev_mdusergroupview.ShowMdUserGroupScreen(title, + content, + css, + js, + navbarmenuComponent, + navbaruserComponent, + sidebaruserprofileComponent) return utils.View(c, view) } func (lh *MdUserGroupHandler) HandleFilterMdUserGroup(c echo.Context) error { @@ -195,6 +258,7 @@ func (lh *MdUserGroupHandler) HandleFilterMdUserGroup(c echo.Context) error { searchID := c.QueryParam("searchID") tableID := c.QueryParam("tableID") paginationID := c.QueryParam("paginationID") + dialogEditBodyID := c.QueryParam("dialogEditBodyID") var retval []templ.Component logger, _ := zap.NewProduction() @@ -207,11 +271,16 @@ func (lh *MdUserGroupHandler) HandleFilterMdUserGroup(c echo.Context) error { fmt.Println(dataUserGroup) return err } - tableComponent := dev_mdusergroupview.TableUserGroup(dataUserGroup, tableID) + tableComponent := dev_mdusergroupview.TableUserGroup(dataUserGroup, + tableID, + "", + "#"+dialogEditBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID") userGroupPaginationComponent := pagination.PaginationV2( totalpage, 1, - "/dev/usergroupv2/changepage", + "/dev/md/usergroupv2/changepage", paginationID, "#tableID, #searchID, #"+searchID+", #paginationID", "#"+paginationID, @@ -227,6 +296,7 @@ func (lh *MdUserGroupHandler) HandleChangePageMdUserGroup(c echo.Context) error tableID := c.QueryParam("tableID") searchID := c.QueryParam("searchID") paginationID := c.QueryParam("paginationID") + dialogEditBodyID := c.QueryParam("dialogEditBodyID") var retval []templ.Component logger, _ := zap.NewProduction() page, err := strconv.Atoi(pageparam) @@ -247,11 +317,17 @@ func (lh *MdUserGroupHandler) HandleChangePageMdUserGroup(c echo.Context) error fmt.Println(dataUserGroup) return err } - tableComponent := dev_mdusergroupview.TableUserGroup(dataUserGroup, tableID) + tableComponent := dev_mdusergroupview.TableUserGroup(dataUserGroup, + tableID, + "", + "#"+dialogEditBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID", + ) userGroupPaginationComponent := pagination.PaginationV2( totalpage, page, - "/dev/usergroupv2/changepage", + "/dev/md/usergroupv2/changepage", paginationID, "#tableID, #searchID, #"+searchID+", #paginationID", "#"+paginationID, @@ -297,6 +373,7 @@ func (lh *MdUserGroupHandler) HandleAddUserGroup(c echo.Context) error { currPagePrm := c.FormValue("currpage" + paginationID) dialogAddBodyID := c.FormValue("dialogAddBodyID") dialogAddID := c.FormValue("dialogAddID") + dialogEditBodyID := c.FormValue("dialogEditBodyID") currPage, err := strconv.Atoi(currPagePrm) if err != nil { @@ -403,14 +480,19 @@ func (lh *MdUserGroupHandler) HandleAddUserGroup(c echo.Context) error { return err } //table component - tableComponent := dev_mdusergroupview.TableUserGroup(dataUserGroupList, tableID) + tableComponent := dev_mdusergroupview.TableUserGroup(dataUserGroupList, + tableID, + "", + "#"+dialogEditBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID") //pagination component //Pagination userGroupPaginationComponent := pagination.PaginationV2( totalPage, currPage, - "/dev/usergroupv2/changepage", + "/dev/md/usergroupv2/changepage", paginationID, "#tableID, #searchID, #"+searchID+", #paginationID", "#"+paginationID, @@ -444,3 +526,72 @@ func (lh *MdUserGroupHandler) HandleAddUserGroup(c echo.Context) error { userGroupPaginationComponent, newForm}) } +func (lh *MdUserGroupHandler) HandleOpenEditForm(c echo.Context) error { + id := c.QueryParam("id") + dialogEditID := c.QueryParam("dialogEditID") + dialogEditBodyID := c.QueryParam("dialogEditBodyID") + + dataUserGroup, err := lh.MdUserGroupServices.GetMdUserGroupByID(id) + if err != nil { + newForm := dev_mdusergroupview.BodyFormUserGroup( + models.CustomTextFieldv2Prm{ + Label: "Kode User Group", + Name: "usergroupcode", + Placeholder: "Kode user group", + Type: "text", ID: "usergroupinputname"}, + models.CustomTextFieldv2Prm{ + Label: "Nama User Group", + Name: "usergroupname", + Placeholder: "Nama user group", + Type: "text", ID: "usergroupinputname"}, + models.CustomTextFieldv2Prm{ + Label: "Kode User Group", + Name: "usergroupid", + Placeholder: "Kode user group", + Type: "hidden", ID: "usergroupinputid"}, + dialogEditBodyID, dev_mdusergroupview.JsHideModal("")) + return utils.ViewMulti(c, []templ.Component{customtoastv2.CustomToastV2Show("Error", "Get user group error", "danger"), newForm}) + } + newForm := dev_mdusergroupview.BodyFormUserGroup( + models.CustomTextFieldv2Prm{ + Label: "Kode User Group", + Name: "usergroupcode", + Placeholder: "Kode user group", + Value: dataUserGroup.M_UserGroupCode, + Type: "text", ID: "usergroupinputname"}, + models.CustomTextFieldv2Prm{ + Label: "Nama User Group", + Name: "usergroupname", + Placeholder: "Nama user group", + Value: dataUserGroup.M_UserGroupName, + Type: "text", ID: "usergroupinputname"}, + models.CustomTextFieldv2Prm{ + Label: "Kode User Group", + Name: "usergroupid", + Placeholder: "Kode user group", + Value: id, + Type: "hidden", ID: "usergroupinputid"}, + dialogEditBodyID, dev_mdusergroupview.JsShowModal("#"+dialogEditID)) + return utils.View(c, newForm) +} +func (lh *MdUserGroupHandler) HandleCloseFormEdit(c echo.Context) error { + dialogEditBodyID := c.FormValue("dialogEditBodyID") + newForm := dev_mdusergroupview.BodyFormUserGroup( + models.CustomTextFieldv2Prm{ + Label: "Kode User Group", + Name: "usergroupcode", + Placeholder: "Kode user group", + Type: "text", ID: "usergroupinputname"}, + models.CustomTextFieldv2Prm{ + Label: "Nama User Group", + Name: "usergroupname", + Placeholder: "Nama user group", + Type: "text", ID: "usergroupinputname"}, + models.CustomTextFieldv2Prm{ + Label: "Kode User Group", + Name: "usergroupid", + Placeholder: "Kode user group", + Type: "hidden", ID: "usergroupinputid"}, + dialogEditBodyID, dev_mdusergroupview.JsHideModal("")) + return utils.View(c, newForm) +} diff --git a/handlers/routes.go b/handlers/routes.go index d294e5b..5675f99 100644 --- a/handlers/routes.go +++ b/handlers/routes.go @@ -215,10 +215,12 @@ func SetupRoutesDev(app *echo.Echo, appStore db.AppStore) { //New User Group devMdUserGroupServices := dev_services.NewMdUserGroupServices(appStore) devMdUserGroupHandlers := dev_handlers.NewMdUserGroupHandler(devMdUserGroupServices) - dev.GET("/usergroupv2", devMdUserGroupHandlers.HandleShowMdUserGroupScreen) - dev.GET("/usergroupv2/filter", devMdUserGroupHandlers.HandleFilterMdUserGroup) - dev.GET("/usergroupv2/changepage", devMdUserGroupHandlers.HandleChangePageMdUserGroup) - dev.POST("/usergroupv2/closeaddform", devMdUserGroupHandlers.HandleCloseFormAdd) - dev.POST("/usergroupv2/add", devMdUserGroupHandlers.HandleAddUserGroup) + dev.GET("/md/usergroupv2", devMdUserGroupHandlers.HandleShowMdUserGroupScreen) + dev.GET("/md/usergroupv2/filter", devMdUserGroupHandlers.HandleFilterMdUserGroup) + dev.GET("/md/usergroupv2/changepage", devMdUserGroupHandlers.HandleChangePageMdUserGroup) + dev.POST("/md/usergroupv2/closeaddform", devMdUserGroupHandlers.HandleCloseFormAdd) + dev.POST("/md/usergroupv2/closeeditform", devMdUserGroupHandlers.HandleCloseFormEdit) + dev.POST("/md/usergroupv2/add", devMdUserGroupHandlers.HandleAddUserGroup) + dev.GET("/md/usergroupv2/openedit", devMdUserGroupHandlers.HandleOpenEditForm) } diff --git a/views/dev/mdusergroup/mdusergroup.templ b/views/dev/mdusergroup/mdusergroup.templ index c8279b8..b39e4cd 100644 --- a/views/dev/mdusergroup/mdusergroup.templ +++ b/views/dev/mdusergroup/mdusergroup.templ @@ -12,11 +12,14 @@ templ MdUserGroupScreen( searchID string, dialogAddID string, dialogAddBodyID string, + dialogEditID string, + dialogEditBodyID string, breadcrumb templ.Component, tablecontent templ.Component, filterComponent templ.Component, paginationComponent templ.Component, - modalAddForm templ.Component) { + modalAddForm templ.Component, + modalEditForm templ.Component) {