diff --git a/handlers/dev/md.usergroup.handlers.go b/handlers/dev/md.usergroup.handlers.go index f865f52..312decf 100644 --- a/handlers/dev/md.usergroup.handlers.go +++ b/handlers/dev/md.usergroup.handlers.go @@ -50,8 +50,8 @@ func (lh *MdUserGroupHandler) HandleShowMdUserGroupScreen(c echo.Context) error dialogAddBodyID := utils.GenerateRandomID("dialogaddbodyID") dialogEditID := utils.GenerateRandomID("dialogEditID") dialogEditBodyID := utils.GenerateRandomID("dialogEditbodyID") - // dialogDeleteID := utils.GenerateRandomID("dialogDeleteID") - // dialogDeleteBodyID := utils.GenerateRandomID("dialogDeletebodyID") + dialogDeleteID := utils.GenerateRandomID("dialogDeleteID") + dialogDeleteBodyID := utils.GenerateRandomID("dialogDeletebodyID") dataMenu, err := services.GetMenu() fmt.Println(dataMenu) fmt.Println(err) @@ -118,7 +118,11 @@ func (lh *MdUserGroupHandler) HandleShowMdUserGroupScreen(c echo.Context) error "/dev/md/usergroupv2/openedit", "#"+dialogEditBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "/dev/md/usergroupv2/opendelete", + "#"+dialogDeleteBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", ) //filter user group component @@ -128,14 +132,14 @@ func (lh *MdUserGroupHandler) HandleShowMdUserGroupScreen(c echo.Context) error "text", "/dev/md/usergroupv2/filter", "input changed delay:500ms, search", - "#"+paginationID, "", "", "outerHTML", "#tableID, #paginationID, #searchID, #dialogEditBodyID, #dialogEditID") + "#"+paginationID, "", "", "outerHTML", "#tableID, #paginationID, #searchID,#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID") //Pagination userGroupPaginationComponent := pagination.PaginationV2( totalPage, 1, "/dev/md/usergroupv2/changepage", paginationID, - "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID", + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", "#"+paginationID, "outerHTML", "", "", ) @@ -225,6 +229,48 @@ func (lh *MdUserGroupHandler) HandleShowMdUserGroupScreen(c echo.Context) error ButtonCLose: btnCloaseModalEdit, }, ) + //modal delete form + dialogDeleteBodyCmp := 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"}, + dialogDeleteBodyID, dev_mdusergroupview.JsHideModal("")) + modalActioDeleteCmp := dev_mdusergroupview.ActionFormUserGroupDelete( + "/dev/md/usergroupv2/closedeleteform", + "#"+dialogDeleteBodyID, + "outerHTML", + "#"+dialogDeleteID) + btnCloaseModalDelete := dev_mdusergroupview.BtnCloseFormUserGroup( + "/dev/md/usergroupv2/closedeleteform", + "#"+dialogDeleteBodyID, + "outerHTML", + "#"+dialogDeleteID) + modalDeleteFormComponent := dev_mdusergroupview.UserGroupForm( + models.UserGroupFormComponent{ + IDComponent: "formusergroup", + Link: "/dev/md/usergroupv2/delete", + HxTarget: "#" + dialogDeleteBodyID, + HxSwap: "outerHTML", + HxInclude: "#tableID, #paginationID, #searchID, #dialogDeleteBodyID, #dialogDeleteID, #" + searchID + ", #currpage" + paginationID, + ModalID: dialogDeleteID, + ModalTitle: "New-User Group", + DialogBody: dialogDeleteBodyCmp, + DialogAction: modalActioDeleteCmp, + ButtonCLose: btnCloaseModalDelete, + }, + ) //content js & css content := dev_mdusergroupview.MdUserGroupScreen( @@ -235,12 +281,15 @@ func (lh *MdUserGroupHandler) HandleShowMdUserGroupScreen(c echo.Context) error dialogAddBodyID, dialogEditID, dialogEditBodyID, + dialogDeleteID, + dialogDeleteBodyID, breadcrumbComponent, tableComponent, usergroupFilterComponent, userGroupPaginationComponent, modalAddFormComponent, - modalEditFormComponent) + modalEditFormComponent, + modalDeleteFormComponent) css := dev_mdusergroupview.CssMdUserGroup() js := dev_mdusergroupview.JsMdUserGroup() @@ -259,6 +308,7 @@ func (lh *MdUserGroupHandler) HandleFilterMdUserGroup(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() @@ -276,13 +326,17 @@ func (lh *MdUserGroupHandler) HandleFilterMdUserGroup(c echo.Context) error { "/dev/md/usergroupv2/openedit", "#"+dialogEditBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID") + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "/dev/md/usergroupv2/opendelete", + "#"+dialogDeleteBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID") userGroupPaginationComponent := pagination.PaginationV2( totalpage, 1, "/dev/md/usergroupv2/changepage", paginationID, - "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID", + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", "#"+paginationID, "outerHTML", "", "", ) @@ -297,6 +351,7 @@ func (lh *MdUserGroupHandler) HandleChangePageMdUserGroup(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() page, err := strconv.Atoi(pageparam) @@ -322,14 +377,18 @@ func (lh *MdUserGroupHandler) HandleChangePageMdUserGroup(c echo.Context) error "/dev/md/usergroupv2/openedit", "#"+dialogEditBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "/dev/md/usergroupv2/opendelete", + "#"+dialogDeleteBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", ) userGroupPaginationComponent := pagination.PaginationV2( totalpage, page, "/dev/md/usergroupv2/changepage", paginationID, - "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID", + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", "#"+paginationID, "outerHTML", "", "", ) @@ -374,6 +433,7 @@ func (lh *MdUserGroupHandler) HandleAddUserGroup(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 { @@ -482,10 +542,14 @@ func (lh *MdUserGroupHandler) HandleAddUserGroup(c echo.Context) error { //table component tableComponent := dev_mdusergroupview.TableUserGroup(dataUserGroupList, tableID, - "", + "/dev/md/usergroupv2/openedit", "#"+dialogEditBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID") + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "/dev/md/usergroupv2/opendelete", + "#"+dialogDeleteBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID") //pagination component //Pagination @@ -494,7 +558,7 @@ func (lh *MdUserGroupHandler) HandleAddUserGroup(c echo.Context) error { currPage, "/dev/md/usergroupv2/changepage", paginationID, - "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID", + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", "#"+paginationID, "outerHTML", "", "true", ) @@ -571,6 +635,7 @@ func (lh *MdUserGroupHandler) HandleOpenEditForm(c echo.Context) error { Placeholder: "Kode user group", Value: strconv.Itoa(dataUserGroup.M_UserGroupID), Type: "hidden", ID: "usergroupinputid"}, + dialogEditBodyID, dev_mdusergroupview.JsShowModal("#"+dialogEditID)) return utils.View(c, newForm) } @@ -612,6 +677,7 @@ func (lh *MdUserGroupHandler) HandleEditUserGroup(c echo.Context) error { // dialogAddBodyID := c.FormValue("dialogAddBodyID") dialogEditID := c.FormValue("dialogEditID") dialogEditBodyID := c.FormValue("dialogEditBodyID") + dialogDeleteBodyID := c.FormValue("dialogDeleteBodyID") currPage, err := strconv.Atoi(currPagePrm) if err != nil { @@ -720,10 +786,14 @@ func (lh *MdUserGroupHandler) HandleEditUserGroup(c echo.Context) error { //table component tableComponent := dev_mdusergroupview.TableUserGroup(dataUserGroupList, tableID, - "", + "/dev/md/usergroupv2/openedit", "#"+dialogEditBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID") + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "/dev/md/usergroupv2/opendelete", + "#"+dialogDeleteBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID") //pagination component //Pagination @@ -732,7 +802,7 @@ func (lh *MdUserGroupHandler) HandleEditUserGroup(c echo.Context) error { currPage, "/dev/md/usergroupv2/changepage", paginationID, - "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID", + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", "#"+paginationID, "outerHTML", "", "true", ) @@ -763,3 +833,148 @@ func (lh *MdUserGroupHandler) HandleEditUserGroup(c echo.Context) error { retVal = append(retVal, newForm) return utils.ViewMulti(c, retVal) } +func (lh *MdUserGroupHandler) HandleOpenDeleteForm(c echo.Context) error { + id := c.QueryParam("id") + dialogDeleteID := c.QueryParam("dialogDeleteID") + dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID") + + dataUserGroup, err := lh.MdUserGroupServices.GetMdUserGroupByID(id) + if err != nil { + newForm := dev_mdusergroupview.DeleteConfirmationBody( + models.CustomTextFieldv2Prm{Name: "usergroupid", Type: "hidden", Value: strconv.Itoa(dataUserGroup.M_UserGroupID)}, + dialogDeleteBodyID, + "Apakah anda yakin menghapus user group berikut ?", + []string{"Kode", "User Group"}, + []string{"", ""}, + dev_mdusergroupview.JsShowModal("")) + return utils.ViewMulti(c, []templ.Component{customtoastv2.CustomToastV2Show("Error", "Get user group error", "danger"), newForm}) + } + newForm := dev_mdusergroupview.DeleteConfirmationBody( + models.CustomTextFieldv2Prm{Name: "usergroupid", Type: "hidden", Value: strconv.Itoa(dataUserGroup.M_UserGroupID)}, + dialogDeleteBodyID, + "Apakah anda yakin menghapus user group berikut ?", + []string{"Kode", "User Group"}, + []string{dataUserGroup.M_UserGroupCode, dataUserGroup.M_UserGroupName}, + dev_mdusergroupview.JsShowModal("#"+dialogDeleteID)) + return utils.View(c, newForm) +} +func (lh *MdUserGroupHandler) HandleCloseFormDelete(c echo.Context) error { + dialogDeleteBodyID := c.FormValue("dialogDeleteBodyID") + newForm := dev_mdusergroupview.DeleteConfirmationBody( + models.CustomTextFieldv2Prm{Name: "usergroupid", Type: "hidden", Value: ""}, + dialogDeleteBodyID, + "Apakah anda yakin menghapus user group berikut ?", + []string{"Kode", "User Group"}, + []string{"", ""}, + dev_mdusergroupview.JsShowModal("")) + return utils.View(c, newForm) +} +func (lh *MdUserGroupHandler) HandleDeleteUserGroup(c echo.Context) error { + + logger, _ := zap.NewProduction() + defer logger.Sync() + + //prm form addusergroup + + id := c.FormValue("usergroupid") + 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 USER GROUP PARAM", + + zap.Any("tableid", tableID), + zap.Any("search", search), + zap.Any("currpage", currPage), + ) + + //edit user group service + dataUserGroup, err := lh.MdUserGroupServices.DeleteMdUserGroup(id) + if err != nil { + logger.Info("Error", + zap.Any("Error", err), + ) + newForm := dev_mdusergroupview.DeleteConfirmationBody( + models.CustomTextFieldv2Prm{Name: "usergroupid", Type: "hidden", Value: ""}, + dialogDeleteBodyID, + "Apakah anda yakin menghapus user group berikut ?", + []string{"Kode", "User Group"}, + []string{"", ""}, + dev_mdusergroupview.JsShowModal("")) + return utils.ViewMulti(c, []templ.Component{ + customtoastv2.CustomToastV2Show("Error", err.Error(), "danger"), + newForm}) + + } + logger.Info("ADD USER GROUP", + zap.Any("return", dataUserGroup), + ) + //get list user group for table + dataUserGroupList, totalPage, err := lh.MdUserGroupServices.GetListMdUserGroup(search, currPage, 5) + if err != nil { + defer logger.Sync() + logger.Info("ERROR GET USER GROUP", + zap.Any("error", err), + ) + fmt.Println(dataUserGroup) + return err + } + if len(dataUserGroupList) == 0 && totalPage > 1 { + currPage = currPage - 1 + dataUserGroupList, _, err = lh.MdUserGroupServices.GetListMdUserGroup(search, currPage, 5) + if err != nil { + defer logger.Sync() + logger.Info("ERROR GET USER GROUP", + zap.Any("error", err), + ) + return err + } + } + //table component + tableComponent := dev_mdusergroupview.TableUserGroup(dataUserGroupList, + tableID, + "/dev/md/usergroupv2/openedit", + "#"+dialogEditBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "/dev/md/usergroupv2/opendelete", + "#"+dialogDeleteBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID") + + //pagination component + //Pagination + userGroupPaginationComponent := pagination.PaginationV2( + totalPage, + currPage, + "/dev/md/usergroupv2/changepage", + paginationID, + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "#"+paginationID, + "outerHTML", "", "true", + ) + var retVal []templ.Component + newForm := dev_mdusergroupview.DeleteConfirmationBody( + models.CustomTextFieldv2Prm{Name: "usergroupid", Type: "hidden", Value: ""}, + dialogDeleteBodyID, + "Apakah anda yakin menghapus user group berikut ?", + []string{"Kode", "User Group"}, + []string{"", ""}, + dev_mdusergroupview.JsHideModal("#"+dialogDeleteID)) + toastSuccess := customtoastv2.CustomToastV2Show("Success", "Berhasil delete User group ", "success") + retVal = append(retVal, toastSuccess) + retVal = append(retVal, tableComponent) + retVal = append(retVal, userGroupPaginationComponent) + retVal = append(retVal, newForm) + return utils.ViewMulti(c, retVal) +}