add autologon, + generate password btn peserta dashboard pic
This commit is contained in:
@@ -2,11 +2,13 @@ package mcu_corporate_handlers
|
||||
|
||||
import (
|
||||
"cpone/component/pagination"
|
||||
customtoastv2 "cpone/component/toastbootstrap"
|
||||
"cpone/models"
|
||||
"cpone/utils"
|
||||
corporate_mcudetail "cpone/views/corporate/mcu/mcutab"
|
||||
"strconv"
|
||||
|
||||
"github.com/a-h/templ"
|
||||
"github.com/labstack/echo/v4"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
@@ -15,6 +17,8 @@ type TabDaftarPesertaServices interface {
|
||||
GetListMcuDaftarPeserta(id string, currentpage int, rowperpage int) ([]models.ModelMcuDaftarPeserta, int, error)
|
||||
GetReportMcu(orderheaderID string) ([]models.TabViewReportMcu, error)
|
||||
GetListReportPeserta(orderheaderID string, host string) ([]models.TabViewReportMcu, error)
|
||||
GenerataPasswordMCU(mgmMCUID string, host string) (models.GeneratePasswordResponse, error)
|
||||
GetAkunPeserta(patientID string) (models.AuthPatient, error)
|
||||
}
|
||||
|
||||
type TabDaftarPesertaHandlers struct {
|
||||
@@ -32,9 +36,16 @@ func (tdp *TabDaftarPesertaHandlers) HandleShowTabDaftarPeserta(c echo.Context)
|
||||
title := "Daftar Report"
|
||||
tableID := utils.GenerateRandomID("tableid")
|
||||
paginationID := utils.GenerateRandomID("paginationID")
|
||||
|
||||
dialogReportID := utils.GenerateRandomID("dialogreportid")
|
||||
dialogReportBodyID := utils.GenerateRandomID("dialogreportbodyid")
|
||||
|
||||
dialogGeneratePassID := utils.GenerateRandomID("generatepasswordID")
|
||||
dialogGeneratePassBodyID := utils.GenerateRandomID("generatepasswordBodyID")
|
||||
|
||||
dialogAkunID := utils.GenerateRandomID("dialogakunID")
|
||||
dialogAkunBodyID := utils.GenerateRandomID("dialogakunbodyID")
|
||||
|
||||
id := c.Param("id")
|
||||
logger.Info("Params", zap.Any("id", id))
|
||||
|
||||
@@ -42,14 +53,17 @@ func (tdp *TabDaftarPesertaHandlers) HandleShowTabDaftarPeserta(c echo.Context)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
logger.Info("totalPage", zap.Any("total", totalPage))
|
||||
|
||||
table := corporate_mcudetail.TableDaftarPeserta(
|
||||
dataTable,
|
||||
tableID,
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/openreport",
|
||||
"#"+dialogReportBodyID,
|
||||
"#tableID, #paginationID, #dialogReportID, #dialogReportBodyID",
|
||||
"#tableID, #paginationID, #dialogReportID, #dialogReportBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID",
|
||||
"outerHTML",
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/openviewakun",
|
||||
"#"+dialogAkunBodyID,
|
||||
"#tableID, #paginationID, #dialogReportID, #dialogReportBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID",
|
||||
"outerHTML",
|
||||
)
|
||||
|
||||
@@ -58,7 +72,7 @@ func (tdp *TabDaftarPesertaHandlers) HandleShowTabDaftarPeserta(c echo.Context)
|
||||
1,
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/changepage",
|
||||
paginationID,
|
||||
"#tableID, #paginationID, #loading-parent, #loading-child, #loading-spinner, #loadingcontent, #dialogReportID, #dialogReportBodyID",
|
||||
"#tableID, #paginationID, #loading-parent, #loading-child, #loading-spinner, #loadingcontent, #dialogReportID, #dialogReportBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID",
|
||||
"#contentlayout",
|
||||
"outerHTML", "", "",
|
||||
corporate_mcudetail.BeforeRequestContent(),
|
||||
@@ -70,10 +84,11 @@ func (tdp *TabDaftarPesertaHandlers) HandleShowTabDaftarPeserta(c echo.Context)
|
||||
pagination,
|
||||
)
|
||||
|
||||
// modal dialog tab rpt
|
||||
tabData := []models.TabViewReportMcu{}
|
||||
tabview := corporate_mcudetail.TabReportView(tabData)
|
||||
|
||||
bodymodal := corporate_mcudetail.ModalBody(
|
||||
bodymodal := corporate_mcudetail.ModalRptBody(
|
||||
dialogReportBodyID,
|
||||
tabview,
|
||||
corporate_mcudetail.JsShowModal(""),
|
||||
@@ -87,34 +102,123 @@ func (tdp *TabDaftarPesertaHandlers) HandleShowTabDaftarPeserta(c echo.Context)
|
||||
)
|
||||
|
||||
modaldialog := corporate_mcudetail.DialogReport(
|
||||
"",
|
||||
"generatepasswordform",
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/dialogreport",
|
||||
"#"+dialogReportBodyID,
|
||||
"outerHTML",
|
||||
"#tableID, #paginationID, #dialogReportID, #dialogReportBodyID"+paginationID,
|
||||
"#tableID, #paginationID, #dialogAkunID, #dialogAkunBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogReportID, #dialogReportBodyID"+paginationID,
|
||||
dialogReportID,
|
||||
title,
|
||||
bodymodal,
|
||||
closemodal,
|
||||
)
|
||||
|
||||
// dialog generate password
|
||||
modalGenPassBody := corporate_mcudetail.ModalGenPassBody(
|
||||
dialogGeneratePassBodyID,
|
||||
"Apakah anda yakin untuk men-generate password untuk seluruh karyawan",
|
||||
corporate_mcudetail.JsShowModal(""),
|
||||
)
|
||||
|
||||
closeGenPass := corporate_mcudetail.ModalClose(
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/closegenpass",
|
||||
"#"+dialogGeneratePassBodyID,
|
||||
"outerHTML",
|
||||
"#"+dialogGeneratePassID,
|
||||
)
|
||||
|
||||
actionGenPass := corporate_mcudetail.ModalGenPassAction(
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/closegenpass",
|
||||
"#"+dialogGeneratePassBodyID,
|
||||
"outerHTML",
|
||||
"#"+dialogGeneratePassID,
|
||||
)
|
||||
|
||||
modalGenPass := corporate_mcudetail.DialogGeneratePass(
|
||||
"",
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/dialoggenpass",
|
||||
"#"+dialogGeneratePassBodyID,
|
||||
"outerHTML",
|
||||
"#tableID, #paginationID, #contentlayout, #dialogAkunID, #dialogAkunBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogReportID, #dialogReportBodyID, #currpage"+paginationID,
|
||||
dialogGeneratePassID,
|
||||
"Generate Password MCU",
|
||||
modalGenPassBody,
|
||||
closeGenPass,
|
||||
actionGenPass,
|
||||
)
|
||||
|
||||
// dialog view akun
|
||||
dialogAkunBody := corporate_mcudetail.ModalViewAkunBody(
|
||||
dialogAkunBodyID,
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "ID Akun Peserta",
|
||||
Name: "akunpesertaid",
|
||||
Placeholder: "ID Akun Peserta",
|
||||
Type: "hidden",
|
||||
ID: "akunpesertaidid",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Email",
|
||||
Name: "akunpesertaemail",
|
||||
Type: "text",
|
||||
ID: "akunpesertaemailid",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Password",
|
||||
Name: "akunpesertapass",
|
||||
Type: "password",
|
||||
ID: "akunpesertapassid",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Ketik ulang password",
|
||||
Name: "akunpesertapasscek",
|
||||
Type: "password",
|
||||
ID: "akunpesertapasscekid",
|
||||
},
|
||||
corporate_mcudetail.JsShowModal(""),
|
||||
)
|
||||
|
||||
dialogAkunClose := corporate_mcudetail.ModalClose(
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/closeviewakun",
|
||||
"#"+dialogAkunBodyID,
|
||||
"outerHTML",
|
||||
"#"+dialogAkunID,
|
||||
)
|
||||
|
||||
dialogAkunAction := corporate_mcudetail.ModalGenPassAction(
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/closeviewakun",
|
||||
"#"+dialogAkunBodyID,
|
||||
"outerHTML",
|
||||
"#"+dialogAkunID,
|
||||
)
|
||||
|
||||
dialogAkunView := corporate_mcudetail.DialogGeneratePass(
|
||||
"viewakunform",
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/viewakun",
|
||||
"#"+dialogAkunBodyID,
|
||||
"outerHTML",
|
||||
"#tableID, #paginationID, #dialogAkunID, #contentlayout, #dialogAkunBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogReportID, #dialogReportBodyID, #currpage"+paginationID,
|
||||
dialogAkunID,
|
||||
"Ubah Password Akun Peserta",
|
||||
dialogAkunBody,
|
||||
dialogAkunClose,
|
||||
dialogAkunAction,
|
||||
)
|
||||
|
||||
content := corporate_mcudetail.TabDaftarPesertaScreen(
|
||||
tableID,
|
||||
paginationID,
|
||||
dialogReportID,
|
||||
dialogReportBodyID,
|
||||
dialogGeneratePassID,
|
||||
dialogGeneratePassBodyID,
|
||||
dialogAkunID,
|
||||
dialogAkunBodyID,
|
||||
clayout,
|
||||
modaldialog,
|
||||
modalGenPass,
|
||||
dialogAkunView,
|
||||
)
|
||||
// css := corporate_mcudetail.CSSTabDaftarPeserta()
|
||||
// js := corporate_mcudetail.JsTabDaftarPeserta()
|
||||
|
||||
// view := corporate_mcudetail.ShowTabDafterPeserta(
|
||||
// title,
|
||||
// content,
|
||||
// css,
|
||||
// js,
|
||||
// )
|
||||
|
||||
return utils.View(c, content)
|
||||
}
|
||||
@@ -123,8 +227,9 @@ func (tdp *TabDaftarPesertaHandlers) HandlePagination(c echo.Context) error {
|
||||
pageparam := c.QueryParam("page")
|
||||
tableID := c.QueryParam("tableID")
|
||||
paginationID := c.QueryParam("paginationID")
|
||||
// dialogReportID := c.QueryParam("dialogReportID")
|
||||
|
||||
dialogReportBodyID := c.QueryParam("dialogReportBodyID")
|
||||
dialogAkunBodyID := c.QueryParam("dialogAkunBodyID")
|
||||
|
||||
id := c.Param("id")
|
||||
|
||||
@@ -143,7 +248,11 @@ func (tdp *TabDaftarPesertaHandlers) HandlePagination(c echo.Context) error {
|
||||
tableID,
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/openreport",
|
||||
"#"+dialogReportBodyID,
|
||||
"#tableID, #paginationID, #dialogReportID, #dialogReportBodyID",
|
||||
"#tableID, #paginationID, #dialogReportID, #dialogReportBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID",
|
||||
"outerHTML",
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/openviewakun",
|
||||
"#"+dialogAkunBodyID,
|
||||
"#tableID, #paginationID, #dialogReportID, #dialogReportBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID",
|
||||
"outerHTML",
|
||||
)
|
||||
|
||||
@@ -152,19 +261,13 @@ func (tdp *TabDaftarPesertaHandlers) HandlePagination(c echo.Context) error {
|
||||
page,
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/changepage",
|
||||
paginationID,
|
||||
"#tableID, #paginationID, #loading-parent, #loading-child, #loading-spinner, #loadingcontent, #dialogReportID, #dialogReportBodyID, #currPage"+paginationID,
|
||||
"#tableID, #paginationID, #loading-parent, #loading-child, #loading-spinner, #loadingcontent, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID, #dialogReportID, #dialogReportBodyID, #currPage"+paginationID,
|
||||
"#contentlayout",
|
||||
"outerHTML", "", "",
|
||||
corporate_mcudetail.BeforeRequestContent(),
|
||||
corporate_mcudetail.AfterRequestContent(),
|
||||
)
|
||||
|
||||
// content := corporate_mcudetail.TabDaftarPesertaScreen(tableID, paginationID, table, pagination)
|
||||
// retval = append(retval, table)
|
||||
// retval = append(retval, pagination)
|
||||
// return utils.ViewMulti(c, retval)
|
||||
|
||||
// return utils.View(c, content)
|
||||
clayout := corporate_mcudetail.ContentLayout(table, pagination)
|
||||
return utils.View(c, clayout)
|
||||
}
|
||||
@@ -178,21 +281,10 @@ func (tdp *TabDaftarPesertaHandlers) HandleOpenReportDialog(c echo.Context) erro
|
||||
dialogReportBodyID := c.QueryParam("dialogReportBodyID")
|
||||
logger.Info("params", zap.Any("idx", idx))
|
||||
|
||||
// tabData, err := tdp.TabDaftarPesertaServices.GetReportMcu(idx)
|
||||
// if err != nil {
|
||||
// tab := corporate_mcudetail.TabReportView([]models.TabViewReportMcu{})
|
||||
// mod := corporate_mcudetail.ModalBody(
|
||||
// dialogReportBodyID,
|
||||
// tab,
|
||||
// corporate_mcudetail.JsShowModal(""),
|
||||
// )
|
||||
// return utils.View(c, mod)
|
||||
// }
|
||||
|
||||
newtabdata, err := tdp.TabDaftarPesertaServices.GetListReportPeserta(idx, host)
|
||||
if err != nil {
|
||||
tab := corporate_mcudetail.TabReportView([]models.TabViewReportMcu{})
|
||||
mod := corporate_mcudetail.ModalBody(
|
||||
mod := corporate_mcudetail.ModalRptBody(
|
||||
dialogReportBodyID,
|
||||
tab,
|
||||
corporate_mcudetail.JsShowModal(""),
|
||||
@@ -204,7 +296,7 @@ func (tdp *TabDaftarPesertaHandlers) HandleOpenReportDialog(c echo.Context) erro
|
||||
|
||||
tabcomponent := corporate_mcudetail.TabReportView(newtabdata)
|
||||
|
||||
modalbody := corporate_mcudetail.ModalBody(
|
||||
modalbody := corporate_mcudetail.ModalRptBody(
|
||||
dialogReportBodyID,
|
||||
tabcomponent,
|
||||
corporate_mcudetail.JsShowModal("#"+dialogReportID),
|
||||
@@ -212,3 +304,239 @@ func (tdp *TabDaftarPesertaHandlers) HandleOpenReportDialog(c echo.Context) erro
|
||||
|
||||
return utils.View(c, modalbody)
|
||||
}
|
||||
|
||||
func (tdp *TabDaftarPesertaHandlers) HandleCloseDialogGenPass(c echo.Context) error {
|
||||
logger, _ := zap.NewProduction()
|
||||
|
||||
id := c.Param("id")
|
||||
dialogGenPassID := c.FormValue("dialogGenPassID")
|
||||
dialogGenPassBodyID := c.FormValue("dialogGenPassBodyID")
|
||||
logger.Info("param", zap.Any("id", id))
|
||||
|
||||
modalDialogGenPass := corporate_mcudetail.ModalGenPassBody(
|
||||
dialogGenPassBodyID,
|
||||
"Apakah anda yakin untuk men-generate password untuk seluruh karyawan",
|
||||
corporate_mcudetail.JsHideModal("#"+dialogGenPassID),
|
||||
)
|
||||
|
||||
return utils.View(c, modalDialogGenPass)
|
||||
}
|
||||
|
||||
func (tdp *TabDaftarPesertaHandlers) HandleDialogGenPass(c echo.Context) error {
|
||||
logger, _ := zap.NewProduction()
|
||||
host := c.Request().Host
|
||||
id := c.Param("id")
|
||||
|
||||
// tableID := c.FormValue("tableID")
|
||||
// paginationID := c.FormValue("paginationID")
|
||||
// pageparam := c.FormValue("currpage" + paginationID)
|
||||
|
||||
dialogGenPassID := c.FormValue("dialogGenPassID")
|
||||
dialogGenPassBodyID := c.FormValue("dialogGenPassBodyID")
|
||||
|
||||
// dialogReportBodyID := c.FormValue("dialogReportBodyID")
|
||||
// dialogAkunBodyID := c.FormValue("dialogAkunBodyID")
|
||||
|
||||
// logger.Info("param", zap.Any("id", id), zap.Any("page", pageparam))
|
||||
|
||||
// generate pasword
|
||||
resp, err := tdp.TabDaftarPesertaServices.GenerataPasswordMCU(id, host)
|
||||
if err != nil {
|
||||
logger.Info("error", zap.Any("err", err))
|
||||
|
||||
modalDialogGenPass := corporate_mcudetail.ModalGenPassBody(
|
||||
dialogGenPassBodyID,
|
||||
"Apakah anda yakin untuk men-generate password untuk seluruh karyawan",
|
||||
corporate_mcudetail.JsShowModal(""),
|
||||
)
|
||||
toastwarning := customtoastv2.CustomToastV2Show("Warning", "Gagal generate password", "warning")
|
||||
retVal := []templ.Component{toastwarning, modalDialogGenPass}
|
||||
return utils.ViewMulti(c, retVal)
|
||||
}
|
||||
defer logger.Sync()
|
||||
|
||||
if resp.Status != "OK" {
|
||||
modalDialogGenPass := corporate_mcudetail.ModalGenPassBody(
|
||||
dialogGenPassBodyID,
|
||||
"Apakah anda yakin untuk men-generate password untuk seluruh karyawan",
|
||||
corporate_mcudetail.JsShowModal(""),
|
||||
)
|
||||
toastwarning := customtoastv2.CustomToastV2Show("Warning", "Gagal generate password MCU", "warning")
|
||||
retVal := []templ.Component{toastwarning, modalDialogGenPass}
|
||||
return utils.ViewMulti(c, retVal)
|
||||
}
|
||||
|
||||
modalDialogGenPass := corporate_mcudetail.ModalGenPassBody(
|
||||
dialogGenPassBodyID,
|
||||
"Apakah anda yakin untuk men-generate password untuk seluruh karyawan",
|
||||
corporate_mcudetail.JsHideModal("#"+dialogGenPassID),
|
||||
)
|
||||
|
||||
message := "Success generate password.\n" + resp.Message + " password, telah dikirim melalui email peserta"
|
||||
toastSuccess := customtoastv2.CustomToastV2Show("Success", message, "success")
|
||||
retVal := []templ.Component{toastSuccess, modalDialogGenPass}
|
||||
return utils.ViewMulti(c, retVal)
|
||||
}
|
||||
|
||||
func (tdp *TabDaftarPesertaHandlers) HandleOpenViewAkun(c echo.Context) error {
|
||||
logger, _ := zap.NewProduction()
|
||||
|
||||
patientID := c.QueryParam("patid")
|
||||
dialogAkunID := c.QueryParam("dialogAkunID")
|
||||
dialogAkunBodyID := c.QueryParam("dialogAkunBodyID")
|
||||
logger.Info("params", zap.Any("patid", patientID))
|
||||
|
||||
akun, err := tdp.TabDaftarPesertaServices.GetAkunPeserta(patientID)
|
||||
if err != nil {
|
||||
dialogAkunBody := corporate_mcudetail.ModalViewAkunBody(
|
||||
dialogAkunBodyID,
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "ID Akun Peserta",
|
||||
Name: "akunpesertaid",
|
||||
Placeholder: "ID Akun Peserta",
|
||||
Type: "hidden",
|
||||
ID: "akunpesertaidid",
|
||||
Value: patientID,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Email Akun",
|
||||
Name: "akunpesertaemail",
|
||||
Type: "text",
|
||||
ID: "akunpesertaemailid",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Password Akun",
|
||||
Name: "akunpesertapass",
|
||||
Type: "password",
|
||||
ID: "akunpesertapassid",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Ketik ulang password",
|
||||
Name: "akunpesertapasscek",
|
||||
Type: "password",
|
||||
ID: "akunpesertapasscekid",
|
||||
},
|
||||
corporate_mcudetail.JsShowModal("#"+dialogAkunID),
|
||||
)
|
||||
toastwarning := customtoastv2.CustomToastV2Show("Warning", "Gagal generate password MCU", "warning")
|
||||
retval := []templ.Component{toastwarning, dialogAkunBody}
|
||||
return utils.ViewMulti(c, retval)
|
||||
}
|
||||
|
||||
dialogAkunBody := corporate_mcudetail.ModalViewAkunBody(
|
||||
dialogAkunBodyID,
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "ID Akun Peserta",
|
||||
Name: "akunpesertaid",
|
||||
Placeholder: "ID Akun Peserta",
|
||||
Type: "hidden",
|
||||
ID: "akunpesertaidid",
|
||||
Value: strconv.Itoa(akun.AuthPatientID),
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Email Akun",
|
||||
Name: "akunpesertaemail",
|
||||
Type: "text",
|
||||
ID: "akunpesertaemailid",
|
||||
Value: akun.AuthPatientEmail,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Password Akun",
|
||||
Name: "akunpesertapass",
|
||||
Type: "password",
|
||||
ID: "akunpesertapassid",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Ketik ulang password",
|
||||
Name: "akunpesertapasscek",
|
||||
Type: "password",
|
||||
ID: "akunpesertapasscekid",
|
||||
},
|
||||
corporate_mcudetail.JsShowModal("#"+dialogAkunID),
|
||||
)
|
||||
return utils.View(c, dialogAkunBody)
|
||||
}
|
||||
|
||||
func (tdp *TabDaftarPesertaHandlers) HandleCloseViewAkun(c echo.Context) error {
|
||||
logger, _ := zap.NewProduction()
|
||||
|
||||
patientID := c.FormValue("akunpesertaid")
|
||||
dialogAkunID := c.FormValue("dialogAkunID")
|
||||
dialogAkunBodyID := c.FormValue("dialogAkunBodyID")
|
||||
logger.Info("params", zap.Any("patid", patientID))
|
||||
|
||||
dialogAkunBody := corporate_mcudetail.ModalViewAkunBody(
|
||||
dialogAkunBodyID,
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "ID Akun Peserta",
|
||||
Name: "akunpesertaid",
|
||||
Placeholder: "ID Akun Peserta",
|
||||
Type: "hidden",
|
||||
ID: "akunpesertaidid",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Email Akun",
|
||||
Name: "akunpesertaemail",
|
||||
Type: "text",
|
||||
ID: "akunpesertaemailid",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Password Akun",
|
||||
Name: "akunpesertapass",
|
||||
Type: "password",
|
||||
ID: "akunpesertapassid",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Ketik ulang password",
|
||||
Name: "akunpesertapasscek",
|
||||
Type: "password",
|
||||
ID: "akunpesertapasscekid",
|
||||
},
|
||||
corporate_mcudetail.JsHideModal("#"+dialogAkunID),
|
||||
)
|
||||
return utils.View(c, dialogAkunBody)
|
||||
}
|
||||
|
||||
func (tdp *TabDaftarPesertaHandlers) HandleAkun(c echo.Context) error {
|
||||
logger, _ := zap.NewProduction()
|
||||
|
||||
patientID := c.FormValue("akunpesertaid")
|
||||
dialogAkunID := c.FormValue("dialogAkunID")
|
||||
dialogAkunBodyID := c.FormValue("dialogAkunBodyID")
|
||||
logger.Info("params", zap.Any("patid", patientID))
|
||||
|
||||
// akunEmail := c.FormValue("akunpesertaemail")
|
||||
// akunPass := c.FormValue("akunpesertapass")
|
||||
// akunPasscel := c.FormValue("akunpesertapasscek")
|
||||
|
||||
dialogAkunBody := corporate_mcudetail.ModalViewAkunBody(
|
||||
dialogAkunBodyID,
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "ID Akun Peserta",
|
||||
Name: "akunpesertaid",
|
||||
Placeholder: "ID Akun Peserta",
|
||||
Type: "hidden",
|
||||
ID: "akunpesertaidid",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Email Akun",
|
||||
Name: "akunpesertaemail",
|
||||
Type: "text",
|
||||
ID: "akunpesertaemailid",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Password Akun",
|
||||
Name: "akunpesertapass",
|
||||
Type: "password",
|
||||
ID: "akunpesertapassid",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Ketik ulang password",
|
||||
Name: "akunpesertapasscek",
|
||||
Type: "password",
|
||||
ID: "akunpesertapasscekid",
|
||||
},
|
||||
corporate_mcudetail.JsHideModal("#"+dialogAkunID),
|
||||
)
|
||||
return utils.View(c, dialogAkunBody)
|
||||
}
|
||||
|
||||
@@ -8,13 +8,14 @@ import (
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"github.com/golang-jwt/jwt/v5"
|
||||
"github.com/labstack/echo/v4"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
type LoginService interface {
|
||||
Login(username string, password string) (models.ResponseApi, error)
|
||||
MultiSignIn(username string, password string) (models.Response, error)
|
||||
MultiSignIn(username string, password string, host string) (models.Response, error)
|
||||
}
|
||||
|
||||
func NewLoginHandler(us LoginService) *LoginHandler {
|
||||
@@ -36,13 +37,13 @@ func (lh *LoginHandler) HandlerShowLogin(c echo.Context) error {
|
||||
|
||||
func (lh *LoginHandler) HandleSignIn(c echo.Context) error {
|
||||
logger, _ := zap.NewProduction()
|
||||
|
||||
host := c.Request().Host
|
||||
username := c.FormValue("username")
|
||||
password := c.FormValue("password")
|
||||
defer logger.Sync()
|
||||
logger.Info("Params", zap.Any("username", username), zap.Any("pass", password))
|
||||
|
||||
resp, err := lh.LoginService.MultiSignIn(username, password)
|
||||
resp, err := lh.LoginService.MultiSignIn(username, password, host)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Info("Error", zap.Any("error multi signin", err))
|
||||
@@ -108,7 +109,7 @@ func (lh *LoginHandler) HandleSignIn(c echo.Context) error {
|
||||
localStorage.setItem("user", user);
|
||||
|
||||
htmx.on("htmx:configRequest", (e)=> {
|
||||
e.detail.headers["Authentication"] = "Bearer ` + resp.Data.Token + `"
|
||||
e.detail.headers["Authorization"] = "Bearer ` + resp.Data.Token + `"
|
||||
})
|
||||
|
||||
setTimeout(() => {
|
||||
@@ -123,7 +124,7 @@ func (lh *LoginHandler) HandleSignIn(c echo.Context) error {
|
||||
func (lh *LoginHandler) HandleRedirect(c echo.Context) error {
|
||||
logger, _ := zap.NewProduction()
|
||||
url := c.QueryParam("url")
|
||||
token := c.Request().Header.Get("Authentication")
|
||||
token := c.Request().Header.Get("Authorization")
|
||||
logger.Info("params", zap.Any("url", url), zap.Any("token", token))
|
||||
|
||||
c.Response().Header().Set("HX-Redirect", url)
|
||||
@@ -157,3 +158,43 @@ func (lh *LoginHandler) HandleSignOut(c echo.Context) error {
|
||||
c.Response().Header().Set("HX-Trigger", "script")
|
||||
return c.String(http.StatusOK, ret)
|
||||
}
|
||||
|
||||
func (lh *LoginHandler) HandleAutoLoginPage(c echo.Context) error {
|
||||
userToken := c.Get("user").(*jwt.Token)
|
||||
token := userToken.Raw
|
||||
claims := userToken.Claims.(jwt.MapClaims)
|
||||
userGroup := claims["M_UserGroupDashboard"].(string)
|
||||
|
||||
cookie := new(http.Cookie)
|
||||
cookie.Name = "token"
|
||||
cookie.Value = token
|
||||
cookie.Path = "/"
|
||||
cookie.HttpOnly = true
|
||||
c.SetCookie(cookie)
|
||||
|
||||
var url string
|
||||
switch userGroup {
|
||||
case "cpone":
|
||||
url = "/one-ui"
|
||||
case "pic":
|
||||
url = "/corp/dashboard_pic"
|
||||
case "patient":
|
||||
url = "/corp/dashboard_pat"
|
||||
default:
|
||||
url = "/one-ui"
|
||||
}
|
||||
|
||||
redirect := `
|
||||
<script>
|
||||
setTimeout(() => {
|
||||
htmx.ajax('GET', '/login/redirect?url=` + url + `', {
|
||||
headers: {
|
||||
Authorization: 'Bearer ` + token + `'
|
||||
}
|
||||
})
|
||||
}, 200)
|
||||
</script>
|
||||
`
|
||||
c.Response().Header().Set("HX-Trigger", "script")
|
||||
return c.String(http.StatusOK, redirect)
|
||||
}
|
||||
|
||||
@@ -80,6 +80,7 @@ func SetupRoutesPublic(app *echo.Echo, appStore db.AppStore) {
|
||||
public.POST("login/signin", loginHadlr.HandleSignIn)
|
||||
public.GET("login/redirect", loginHadlr.HandleRedirect)
|
||||
public.GET("login/signout", loginHadlr.HandleSignOut)
|
||||
public.POST("login/autologin", loginHadlr.HandleAutoLoginPage, auth.IsAlreadyLogin)
|
||||
|
||||
// kartu kontrol
|
||||
publicKartuKontrolServices := public_services.NewServicesKartuKontrol(appStore)
|
||||
@@ -157,6 +158,11 @@ func SetupRoutesCorporate(app *echo.Echo, appStore db.AppStore) {
|
||||
corp.GET("/dashboard_pic/detail/:id/tabdaftarpeserta", daftarpesertaHandl.HandleShowTabDaftarPeserta)
|
||||
corp.GET("/dashboard_pic/detail/:id/tabdaftarpeserta/changepage", daftarpesertaHandl.HandlePagination)
|
||||
corp.GET("/dashboard_pic/detail/:id/tabdaftarpeserta/openreport", daftarpesertaHandl.HandleOpenReportDialog)
|
||||
corp.POST("/dashboard_pic/detail/:id/tabdaftarpeserta/dialoggenpass", daftarpesertaHandl.HandleDialogGenPass)
|
||||
corp.POST("/dashboard_pic/detail/:id/tabdaftarpeserta/closegenpass", daftarpesertaHandl.HandleCloseDialogGenPass)
|
||||
corp.GET("/dashboard_pic/detail/:id/tabdaftarpeserta/openviewakun", daftarpesertaHandl.HandleOpenViewAkun)
|
||||
corp.POST("/dashboard_pic/detail/:id/tabdaftarpeserta/closeviewakun", daftarpesertaHandl.HandleCloseViewAkun)
|
||||
corp.POST("/dashboard_pic/detail/:id/tabdaftarpeserta/viewakun", daftarpesertaHandl.HandleAkun)
|
||||
|
||||
// tab keuangan
|
||||
keuanganService := mcu_corporate_services.NewTabKeuanganServices(appStore)
|
||||
|
||||
Reference in New Issue
Block a user