step 2 : search with pagination
This commit is contained in:
@@ -13,7 +13,9 @@ import (
|
||||
mastermenuuser "cpone/views/dev/mastermenuuser"
|
||||
mastermenuusergroup "cpone/views/dev/mastermenuusergroup"
|
||||
"fmt"
|
||||
"strconv"
|
||||
|
||||
"github.com/a-h/templ"
|
||||
"github.com/labstack/echo/v4"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
@@ -27,8 +29,9 @@ type MasterMenuUserService interface {
|
||||
// AddUserGroup(code string, name string) (models.UserGroupV1, error)
|
||||
// EditUserGroup(id string, code string, name string) (models.UserGroupV1, error)
|
||||
// DeleteUserGroup(id string) (models.UserGroupV1, error)
|
||||
GetListMasterUserV2(search string, currentPage int, rowPerPage int) ([]models.MasterUser, int, error)
|
||||
GetListMasterUserV2(search string, usergroup string, currentPage int, rowPerPage int) ([]models.MasterUser, int, error)
|
||||
// GetUserGroupByIDV1(id string) (models.UserGroupV1, error)
|
||||
GetUserGroupData() ([]models.UserGroupV1, error)
|
||||
}
|
||||
|
||||
func NewMasterMenuUserHandler(us MasterMenuUserService) *MasterMenuUserHandler {
|
||||
@@ -41,6 +44,65 @@ type MasterMenuUserHandler struct {
|
||||
MasterMenuUserService MasterMenuUserService
|
||||
}
|
||||
|
||||
// PAGINATION
|
||||
func (lh *MasterMenuUserHandler) HandlerShowMasterMenuUserPaginationV1(c echo.Context) error {
|
||||
logger, _ := zap.NewProduction()
|
||||
|
||||
search := c.QueryParam("search")
|
||||
usergroup := c.QueryParam("usergroup")
|
||||
pageparam := c.QueryParam("page")
|
||||
tableID := c.QueryParam("tableID")
|
||||
searchID := c.QueryParam("searchID")
|
||||
|
||||
dropdownID := c.QueryParam("dropdownID")
|
||||
paginationID := c.QueryParam("paginationID")
|
||||
dialogEditBodyID := c.QueryParam("dialogEditBodyID")
|
||||
// dialogEditID := c.QueryParam("dialogEditID")
|
||||
dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID")
|
||||
// dialogDeleteID := c.QueryParam("dialogDeleteID")
|
||||
page, err := strconv.Atoi(pageparam)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Info("ERROR CONVERT PAGE PARAM",
|
||||
zap.Any("page", page),
|
||||
zap.Any("error ", err),
|
||||
)
|
||||
return err
|
||||
}
|
||||
|
||||
dataUserGroup, totalpage, err := lh.MasterMenuUserService.GetListMasterUserV2(search, usergroup, page, 5)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Info("ERROR GET USER GROUP",
|
||||
zap.Any("error", err),
|
||||
)
|
||||
fmt.Println(dataUserGroup)
|
||||
return err
|
||||
}
|
||||
|
||||
contentUserGroupComponent := mastermenuuser.TableUser(
|
||||
dataUserGroup, tableID, "/dev/usergroupshoweditform",
|
||||
"#"+dialogEditBodyID,
|
||||
"outerHTML",
|
||||
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
|
||||
"/dev/usergroupshowdeleteform",
|
||||
"#"+dialogDeleteBodyID,
|
||||
"outerHTML",
|
||||
"#dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #dialogEditID")
|
||||
|
||||
userGroupPaginationComponent := pagination.PaginationV2(totalpage,
|
||||
page,
|
||||
"/dev/userv1pagination",
|
||||
paginationID,
|
||||
// "#tableID, #searchID, #"+searchID+", #dropdownID, #"+dropdownID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, [name='search'], [name='usergroup']",
|
||||
"#tableID, #searchID, #"+searchID+", #dropdownID, #"+dropdownID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, [name='search'], [name='usergroup']",
|
||||
"#"+paginationID, "outerHTML", "", "")
|
||||
|
||||
retval := []templ.Component{contentUserGroupComponent, userGroupPaginationComponent}
|
||||
|
||||
return utils.ViewMulti(c, retval)
|
||||
}
|
||||
|
||||
// LISTING FUNCTION INITIAL
|
||||
func (lh *MasterMenuUserHandler) HandlerShowMasterMenuUserV1(c echo.Context) error {
|
||||
|
||||
@@ -64,7 +126,26 @@ func (lh *MasterMenuUserHandler) HandlerShowMasterMenuUserV1(c echo.Context) err
|
||||
return err
|
||||
}
|
||||
|
||||
dataUserGroup, totalpage, err := lh.MasterMenuUserService.GetListMasterUserV2("", 1, 5)
|
||||
// dropdownUserGroupInitial :=
|
||||
|
||||
dataUserMasterInitialSelected, err := lh.MasterMenuUserService.GetUserGroupData()
|
||||
fmt.Println(dataUserMasterInitialSelected)
|
||||
fmt.Println(err)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Info("ERROR LIST USER MASTER Selected DEV",
|
||||
zap.Any("error", err),
|
||||
)
|
||||
fmt.Println(dataUserMasterInitialSelected)
|
||||
return err
|
||||
}
|
||||
|
||||
var initialSelectedUserGroup string = "0"
|
||||
if len(dataUserMasterInitialSelected) > 0 {
|
||||
initialSelectedUserGroup = strconv.Itoa(dataUserMasterInitialSelected[0].M_UserGroupID)
|
||||
}
|
||||
|
||||
dataUserGroup, totalpage, err := lh.MasterMenuUserService.GetListMasterUserV2("", initialSelectedUserGroup, 1, 5)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Info("ERROR GET USER GROUP",
|
||||
@@ -157,14 +238,15 @@ func (lh *MasterMenuUserHandler) HandlerShowMasterMenuUserV1(c echo.Context) err
|
||||
//filter user search component
|
||||
// customtextfieldsearch.MainCustomTextFieldSearchV1("#"+contentIDSearch, "q", "Cari Nama Staff / Email", "text", "/dev/searchuserv1?"+link, "input changed delay:500ms, search", "#"+contentID, "#indicator", "", contentIDHtmxExtension, "[name='usergroup']")
|
||||
|
||||
userFilterComp := customtextfieldsearch.MainCustomTextFieldSearchV2(searchID,
|
||||
userFilterComp := customtextfieldsearch.MainCustomTextFieldSearchV2(
|
||||
searchID,
|
||||
"search",
|
||||
"Cari Nama Staff / Email",
|
||||
"text",
|
||||
"/dev/searchusergroupv1",
|
||||
"/dev/searchuserv1",
|
||||
"input changed delay:500ms, search",
|
||||
"#"+paginationID, "", "", "outerHTML",
|
||||
"#tableID, #paginationID, #searchID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, [name='usergroup']")
|
||||
"#tableID, #paginationID, #searchID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, #dropdownID, [name='usergroup']")
|
||||
|
||||
// filter user group dropdown
|
||||
listItemComponent := mastermenuuser.ItemDropdown(dataUserGroupAll)
|
||||
@@ -174,8 +256,8 @@ func (lh *MasterMenuUserHandler) HandlerShowMasterMenuUserV1(c echo.Context) err
|
||||
"#"+paginationID,
|
||||
"/dev/searchuserv1",
|
||||
"",
|
||||
"change from:select[name='usergroup']",
|
||||
"[name='search']",
|
||||
"change from:select[name='usergroup'], input changed from:input[name='search']",
|
||||
"#tableID, #paginationID, #searchID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, #dropdownID, [name='search']",
|
||||
listItemComponent,
|
||||
)
|
||||
|
||||
@@ -183,9 +265,9 @@ func (lh *MasterMenuUserHandler) HandlerShowMasterMenuUserV1(c echo.Context) err
|
||||
userGroupPaginationComponent := pagination.PaginationV2(
|
||||
totalpage,
|
||||
1,
|
||||
"/dev/usergroupv1pagination",
|
||||
"/dev/userv1pagination",
|
||||
paginationID,
|
||||
"#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
|
||||
"#tableID, #searchID, #"+searchID+", #dropdownID, #"+dropdownID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, [name='search'], [name='usergroup']",
|
||||
"#"+paginationID,
|
||||
"outerHTML", "", "",
|
||||
)
|
||||
@@ -223,3 +305,59 @@ func (lh *MasterMenuUserHandler) HandlerShowMasterMenuUserV1(c echo.Context) err
|
||||
|
||||
return utils.View(c, si)
|
||||
}
|
||||
|
||||
// SEARCH PROSES
|
||||
func (lh *MasterMenuUserHandler) HandlerShowMasterMenuUserSearchV1(c echo.Context) error {
|
||||
search := c.QueryParam("search")
|
||||
usergroup := c.QueryParam("usergroup")
|
||||
searchID := c.QueryParam("searchID")
|
||||
dropdownID := c.QueryParam("dropdownID")
|
||||
tableID := c.QueryParam("tableID")
|
||||
paginationID := c.QueryParam("paginationID")
|
||||
dialogEditBodyID := c.QueryParam("dialogEditBodyID")
|
||||
// dialogEditID := c.QueryParam("dialogEditID")
|
||||
dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID")
|
||||
// dialogDeleteID := c.QueryParam("dialogDeleteID")
|
||||
|
||||
logger, _ := zap.NewProduction()
|
||||
|
||||
dataUserGroup, totalpage, err := lh.MasterMenuUserService.GetListMasterUserV2(search, usergroup, 1, 5)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Info("ERROR GET USER GROUP",
|
||||
zap.Any("error", err),
|
||||
)
|
||||
fmt.Println(dataUserGroup)
|
||||
return err
|
||||
}
|
||||
|
||||
// totalPages := int(math.Ceil(float64(len(dataUserGroupFiltered)) / float64(rowPerPage)))
|
||||
|
||||
contentUserGroupComponent := mastermenuuser.TableUser(
|
||||
dataUserGroup, tableID, "/dev/usergroupshoweditform",
|
||||
"#"+dialogEditBodyID,
|
||||
"outerHTML",
|
||||
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
|
||||
"/dev/usergroupshowdeleteform",
|
||||
"#"+dialogDeleteBodyID,
|
||||
"outerHTML",
|
||||
"#dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #dialogEditID")
|
||||
|
||||
userGroupPaginationComponent := pagination.PaginationV2(totalpage,
|
||||
1,
|
||||
"/dev/userv1pagination",
|
||||
paginationID,
|
||||
"#tableID, #searchID, #"+searchID+", #dropdownID, #"+dropdownID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID, [name='search'], [name='usergroup']",
|
||||
"#"+paginationID,
|
||||
"outerHTML",
|
||||
"",
|
||||
"",
|
||||
)
|
||||
|
||||
// swapTable :=
|
||||
// mastermenuusergroup.SwapTableUserGroup(userGroupPaginationComponent, contentUserGroupComponent)
|
||||
retval := []templ.Component{contentUserGroupComponent, userGroupPaginationComponent}
|
||||
|
||||
return utils.ViewMulti(c, retval)
|
||||
// return utils.View(c, si)
|
||||
}
|
||||
|
||||
@@ -236,5 +236,7 @@ func SetupRoutesDev(app *echo.Echo, appStore db.AppStore) {
|
||||
devUSServices := dev_services.NewServicesMasterMenuUser(appStore)
|
||||
devUShandlers := dev_handlers.NewMasterMenuUserHandler(devUSServices)
|
||||
dev.GET("/userv1", devUShandlers.HandlerShowMasterMenuUserV1)
|
||||
dev.GET("/searchuserv1", devUShandlers.HandlerShowMasterMenuUserSearchV1)
|
||||
dev.GET("/userv1pagination", devUShandlers.HandlerShowMasterMenuUserPaginationV1)
|
||||
// dev.GET("/breadcrumbv1", devUShandlers)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user