diff --git a/auth/middleware.go b/auth/middleware.go new file mode 100644 index 0000000..1c9ad35 --- /dev/null +++ b/auth/middleware.go @@ -0,0 +1,7 @@ +package auth + +import "github.com/labstack/echo/v4/middleware" + +var IsLoggedIn = middleware.JWTWithConfig(middleware.JWTConfig{ + SigningKey: []byte("secret"), +}) diff --git a/handlers/corporate/dashboardpic.handlers.go b/handlers/corporate/dashboardpic.handlers.go index fb89c1b..af23f4b 100644 --- a/handlers/corporate/dashboardpic.handlers.go +++ b/handlers/corporate/dashboardpic.handlers.go @@ -35,11 +35,16 @@ func NewDashboardPicHandler(ea DashboardPicServices) *DashboardPicHandler { func (ea *DashboardPicHandler) HandleShowEmployeeAnalyticScreen(c echo.Context) error { logger, _ := zap.NewProduction() - title := "PT. Sadhana Abiyasa Sampoerna" + title := "PT. ABC" listID := utils.GenerateRandomID("listid") paginationID := utils.GenerateRandomID("paginationid") + // usertoken := c.Get("user").(*jwt.Token) + // claims := usertoken.Claims.(jwt.MapClaims) + // name := claims["M_UserEmail"].(string) + // logger.Info("fromtoken", zap.Any("name", name)) + user, err := services.GetUserLogin() if err != nil { defer logger.Sync() @@ -59,7 +64,7 @@ func (ea *DashboardPicHandler) HandleShowEmployeeAnalyticScreen(c echo.Context) sidbaruser := sidebaruserprofile.Navbaruserprofile(user) breadcrumb := breadcrumadmin.MainBreadcrumbAdminV1(dataBreadcrumb) - listingData, totalPage, err := ea.DashboardPicServices.ListingDashboardPic("", "", "", 1, 5) + listingData, totalPage, err := ea.DashboardPicServices.ListingDashboardPic("", "", "", 1, 10) if err != nil { defer logger.Sync() logger.Info("Error get listing data", zap.Any("error", err), zap.Any("total", totalPage)) @@ -122,7 +127,7 @@ func (ea *DashboardPicHandler) HandlePagination(c echo.Context) error { return err } - listdata, totalPage, err := ea.DashboardPicServices.ListingDashboardPic(search, startdate, enddate, page, 5) + listdata, totalPage, err := ea.DashboardPicServices.ListingDashboardPic(search, startdate, enddate, page, 10) if err != nil { defer logger.Sync() logger.Info("Error convert page param") diff --git a/handlers/corporate/mcudetail.handlers.go b/handlers/corporate/mcudetail.handlers.go index e517822..56d2d2f 100644 --- a/handlers/corporate/mcudetail.handlers.go +++ b/handlers/corporate/mcudetail.handlers.go @@ -15,7 +15,7 @@ import ( ) type McuDetailServices interface { - GetBreadcrumb(title string) (models.BreadCrumbV1, error) + GetBreadcrumb(id string) (models.BreadCrumbV1, error) } type McuDetailHandler struct { @@ -30,7 +30,7 @@ func NewMcuDetailHandler(mcud McuDetailServices) *McuDetailHandler { func (mcud *McuDetailHandler) HandlerShowMcuDetailScreen(c echo.Context) error { logger, _ := zap.NewProduction() - title := "PT. Sadhana Abiyasa Sampoerna" + title := "PT. ABC" id := c.Param("id") logger.Info("params", zap.Any("id", id)) @@ -42,7 +42,7 @@ func (mcud *McuDetailHandler) HandlerShowMcuDetailScreen(c echo.Context) error { return err } - dataBreadcrumb, err := mcud.McuDetailServices.GetBreadcrumb(title) + dataBreadcrumb, err := mcud.McuDetailServices.GetBreadcrumb(id) if err != nil { defer logger.Sync() logger.Info("Error breadcrumb corp", zap.Any("error", err)) diff --git a/handlers/corporate/mcudetail/tabdaftarpeserta.handlers.go b/handlers/corporate/mcudetail/tabdaftarpeserta.handlers.go index 74b6cb1..7421eab 100644 --- a/handlers/corporate/mcudetail/tabdaftarpeserta.handlers.go +++ b/handlers/corporate/mcudetail/tabdaftarpeserta.handlers.go @@ -37,7 +37,7 @@ func (tdp *TabDaftarPesertaHandlers) HandleShowTabDaftarPeserta(c echo.Context) id := c.Param("id") logger.Info("Params", zap.Any("id", id)) - dataTable, totalPage, err := tdp.TabDaftarPesertaServices.GetListMcuDaftarPeserta(id, 1, 5) + dataTable, totalPage, err := tdp.TabDaftarPesertaServices.GetListMcuDaftarPeserta(id, 1, 10) if err != nil { return err } @@ -133,7 +133,7 @@ func (tdp *TabDaftarPesertaHandlers) HandlePagination(c echo.Context) error { return err } - tableData, totalPage, err := tdp.TabDaftarPesertaServices.GetListMcuDaftarPeserta(id, page, 5) + tableData, totalPage, err := tdp.TabDaftarPesertaServices.GetListMcuDaftarPeserta(id, page, 10) if err != nil { return err } diff --git a/handlers/corporate/patient.handlers.go b/handlers/corporate/patient.handlers.go index 9da660b..b479979 100644 --- a/handlers/corporate/patient.handlers.go +++ b/handlers/corporate/patient.handlers.go @@ -58,7 +58,7 @@ func (ph *PatientHandler) LoadLocalData(c echo.Context) error { defer logger.Sync() breadcrumb := breadcrumadmin.MainBreadcrumbAdminV1(dataBreadcrumb) - listingdata, totalPage, err := ph.PatientService.GetListtingData(userEmail, 1, 5) + listingdata, totalPage, err := ph.PatientService.GetListtingData(userEmail, 1, 10) if err != nil { defer logger.Sync() logger.Info("error get listing data", zap.Any("error", err), zap.Any("total", totalPage)) @@ -174,7 +174,7 @@ func (ph *PatientHandler) HandleChangePage(c echo.Context) error { return err } - listData, totalPage, err := ph.PatientService.GetListtingData(userEmail, page, 5) + listData, totalPage, err := ph.PatientService.GetListtingData(userEmail, page, 10) if err != nil { defer logger.Sync() logger.Info("error get data listing") diff --git a/handlers/public/login.handlers.go b/handlers/public/login.handlers.go index aef8f8e..fadab93 100644 --- a/handlers/public/login.handlers.go +++ b/handlers/public/login.handlers.go @@ -87,12 +87,45 @@ func (lh *LoginHandler) HandleSignIn(c echo.Context) error { const user = JSON.stringify(` + userString + `); localStorage.setItem("token", token); localStorage.setItem("user", user); - + + htmx.on("htmx:configRequest", (e)=> { + e.detail.headers["Authentication"] = "Bearer ` + resp.Data.Token + `" + }) + setTimeout(() => { - window.location.href = "` + url + `"; - }, 100); + htmx.ajax('GET', '/login/redirect?url=` + url + `') + }, 500) + + // document.body.addEventListener('htmx:configRequest', function(evt) { + // evt.detail.headers['Authentication'] = "Bearer: " + getJWT(); + // console.log("running"); + // }); + + // setTimeout(() => { + // window.location.href = "` + url + `"; + // }, 100); + + // document.body.addEventListener('htmx:configRequest', function(evt) { + // const token = localStorage.getItem("token"); + // if (token) { + // evt.detail.headers['Authorization'] = "Bearer " + token; + // } + // }); + + // document.body.hxTrigger({ "hx-redirect": "` + url + `" }); ` c.Response().Header().Set("HX-Trigger", "script") return c.String(http.StatusOK, store) } + +func (lh *LoginHandler) HandleRedirect(c echo.Context) error { + logger, _ := zap.NewProduction() + url := c.QueryParam("url") + token := c.Request().Header.Get("Authentication") + logger.Info("params", zap.Any("url", url), zap.Any("token", token)) + + c.Response().Header().Set("Authentication", token) + c.Response().Header().Set("HX-Redirect", url) + return c.String(http.StatusOK, url) +} diff --git a/handlers/routes.go b/handlers/routes.go index 17aea1f..cab47b6 100644 --- a/handlers/routes.go +++ b/handlers/routes.go @@ -77,6 +77,7 @@ func SetupRoutesPublic(app *echo.Echo, appStore db.AppStore) { loginHadlr := public_handlers.NewLoginHandler(loginServ) public.GET("login", loginHadlr.HandlerShowLogin) public.POST("login/signin", loginHadlr.HandleSignIn) + public.GET("login/redirect", loginHadlr.HandleRedirect) // kartu kontrol publicKartuKontrolServices := public_services.NewServicesKartuKontrol(appStore) diff --git a/services/corporate/dashboardpic.services.go b/services/corporate/dashboardpic.services.go index 5327809..e879a58 100644 --- a/services/corporate/dashboardpic.services.go +++ b/services/corporate/dashboardpic.services.go @@ -26,7 +26,7 @@ func (ea *DashboardPicServices) GetEmployeeAnalyticBreadcrumb(title string) (mod Item: []models.ItemBreadCrumbV1{ { Item: "Dashboard", - Url: "/dev/dashboard", + Url: "/corp/dashboard_pic", }, { Item: "Employee Health Medical Analytic", diff --git a/services/corporate/mcudetail.services.go b/services/corporate/mcudetail.services.go index 2d452e3..db4ac27 100644 --- a/services/corporate/mcudetail.services.go +++ b/services/corporate/mcudetail.services.go @@ -3,6 +3,7 @@ package corporate_services import ( "cpone/db" "cpone/models" + dbx "cpone/package/database" ) type McuDetailServices struct { @@ -15,9 +16,11 @@ func NewMcuDetailServices(uStore db.AppStore) *McuDetailServices { } } -func (mcud *McuDetailServices) GetBreadcrumb(title string) (models.BreadCrumbV1, error) { +func (mcud *McuDetailServices) GetBreadcrumb(id string) (models.BreadCrumbV1, error) { + var mcu models.DashboardPic + breadcrumb := models.BreadCrumbV1{ - Title: title, + Title: "", Item: []models.ItemBreadCrumbV1{ { Item: "Dashboard", @@ -25,13 +28,38 @@ func (mcud *McuDetailServices) GetBreadcrumb(title string) (models.BreadCrumbV1, }, { Item: "Employee Health Medical Analytic", - Url: "/dev/employeeanalytic/", + Url: "/corp/dashboard_pic", }, { - Item: title, + Item: "", Url: "", }, }, } + + q := ` + SELECT + Mgm_McuID, + Mgm_McuLabel, + Mgm_McuFlagRelasiBayarSendiri, + Mgm_McuBisaTambahPemeriksaan, + Mgm_McuCorporateID, + Mgm_McuNumber, + Mgm_McuNumberNational, + Mgm_McuNote, + DATE_FORMAT(Mgm_McuStartDate, '%d-%m-%Y') AS Mgm_McuStartDate, + DATE_FORMAT(Mgm_McuEndDate, '%d-%m-%Y') AS Mgm_McuEndDate, + Mgm_McuIsActive + FROM mgm_mcu + WHERE Mgm_McuIsActive = 'Y' + AND Mgm_McuID = ? + ` + if err := dbx.Handlex.Get(&mcu, q, id); err != nil { + return breadcrumb, err + } + + breadcrumb.Title = mcu.Mgm_McuLabel + breadcrumb.Item[2].Item = mcu.Mgm_McuLabel + return breadcrumb, nil } diff --git a/views/corporate/dashboardpic/listingdashboardpic.templ b/views/corporate/dashboardpic/listingdashboardpic.templ index 75763c0..a99fa64 100644 --- a/views/corporate/dashboardpic/listingdashboardpic.templ +++ b/views/corporate/dashboardpic/listingdashboardpic.templ @@ -7,7 +7,7 @@ templ ListingData( data []models.DashboardPic, listID string, ) { -