add executive summary

This commit is contained in:
2024-06-20 16:57:14 +07:00
parent 7094dadbdf
commit 664c041acf
17 changed files with 142 additions and 41 deletions

7
auth/middleware.go Normal file
View File

@@ -0,0 +1,7 @@
package auth
import "github.com/labstack/echo/v4/middleware"
var IsLoggedIn = middleware.JWTWithConfig(middleware.JWTConfig{
SigningKey: []byte("secret"),
})

View File

@@ -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")

View File

@@ -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))

View File

@@ -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
}

View File

@@ -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")

View File

@@ -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 + `" });
</script>
`
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)
}

View File

@@ -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)

View File

@@ -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",

View File

@@ -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
}

View File

@@ -7,7 +7,7 @@ templ ListingData(
data []models.DashboardPic,
listID string,
) {
<div id={listID} class="align-items-center pt-8 flex-column" hx-swap-oob="true">
<div id={listID} class="align-items-center py-8 flex-column" hx-swap-oob="true">
<div class="bg-field rounded">
<div class="p-8">
for i, d := range data {

View File

@@ -42,7 +42,7 @@ func ListingData(
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" class=\"align-items-center pt-8 flex-column\" hx-swap-oob=\"true\"><div class=\"bg-field rounded\"><div class=\"p-8\">")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" class=\"align-items-center py-8 flex-column\" hx-swap-oob=\"true\"><div class=\"bg-field rounded\"><div class=\"p-8\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}

View File

@@ -24,7 +24,7 @@ templ TableDaftarPeserta(
) {
<div id={ tableID }>
@tablecomponent.TableV3([]string{"NOLAB", "NAMA", "JENIS KELAMIN", "UMUR", "KESIMPULAN", "AKSI"},
[]string{"10%","20%","10%","10%","30%","20%"},
[]string{"15%","20%","10%","10%","30%","15%"},
ItemRow(data,
hxGet,
hxTarget,
@@ -97,15 +97,15 @@ templ ItemAction(
>
<i class="flaticon-doc"></i>
</a>
<a
class="btn btn-icon"
>
<i class="flaticon2-edit"></i>
</a>
<a
class="btn btn-icon"
>
<i class="la la-shield icon-xl"></i>
</a>
// <a
// class="btn btn-icon"
// >
// <i class="flaticon2-edit"></i>
// </a>
// <a
// class="btn btn-icon"
// >
// <i class="la la-shield icon-xl"></i>
// </a>
</div>
}

View File

@@ -103,7 +103,7 @@ func TableDaftarPeserta(
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = tablecomponent.TableV3([]string{"NOLAB", "NAMA", "JENIS KELAMIN", "UMUR", "KESIMPULAN", "AKSI"},
[]string{"10%", "20%", "10%", "10%", "30%", "20%"},
[]string{"15%", "20%", "10%", "10%", "30%", "15%"},
ItemRow(data,
hxGet,
hxTarget,
@@ -298,7 +298,7 @@ func ItemAction(
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\"><i class=\"flaticon-doc\"></i></a> <a class=\"btn btn-icon\"><i class=\"flaticon2-edit\"></i></a> <a class=\"btn btn-icon\"><i class=\"la la-shield icon-xl\"></i></a></div>")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\"><i class=\"flaticon-doc\"></i></a></div>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}

View File

@@ -26,6 +26,9 @@ templ TabViewMcuDetail(
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_7" hx-get={"/corp/dashboard_pic/detail/" + id +"/tabdaftarpeserta"} hx-target="#tabdaftarpeserta">Daftar Peserta</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_8">Executive Summary</a>
</li>
</ul>
</div>
<div class="tab-content mt-5" id="myTabContent">
@@ -52,5 +55,8 @@ templ TabViewMcuDetail(
<div id="tabdaftarpeserta">
</div>
</div>
<div class="tab-pane fade" id="kt_tab_pane_8" role="tabpanel" aria-labelledby="kt_tab_pane_8" style="height: 800px;">
<object data={"https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/rpt_summary_executive.rptdesign&__format=pdf&PID="+id+"&username=adhi&tm=1717726294764"} type="application/pdf" width="100%" height="100%"></object>
</div>
</div>
}

View File

@@ -51,14 +51,14 @@ func TabViewMcuDetail(
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"#tabdaftarpeserta\">Daftar Peserta</a></li></ul></div><div class=\"tab-content mt-5\" id=\"myTabContent\"><div class=\"tab-pane fade show active\" id=\"kt_tab_pane_1\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_2\" style=\"height: 800px;\"><object data=\"")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"#tabdaftarpeserta\">Daftar Peserta</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_8\">Executive Summary</a></li></ul></div><div class=\"tab-content mt-5\" id=\"myTabContent\"><div class=\"tab-pane fade show active\" id=\"kt_tab_pane_1\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_2\" style=\"height: 800px;\"><object data=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var4 string
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs("https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/rpt_mcu_graph_001.rptdesign&__format=pdf&PID=" + id + "&username=adhi&tm=1717726294764")
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutabview.templ`, Line: 33, Col: 167}
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutabview.templ`, Line: 36, Col: 167}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
if templ_7745c5c3_Err != nil {
@@ -71,7 +71,7 @@ func TabViewMcuDetail(
var templ_7745c5c3_Var5 string
templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs("https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/rpt_mcu_graph_002.rptdesign&__format=pdf&PID=" + id + "&username=adhi&tm=1717726294764")
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutabview.templ`, Line: 36, Col: 167}
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutabview.templ`, Line: 39, Col: 167}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
if templ_7745c5c3_Err != nil {
@@ -84,7 +84,7 @@ func TabViewMcuDetail(
var templ_7745c5c3_Var6 string
templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs("https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/rpt_mcu_graph_003.rptdesign&__format=pdf&PID=" + id + "&username=adhi&tm=1717726294764")
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutabview.templ`, Line: 39, Col: 167}
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutabview.templ`, Line: 42, Col: 167}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
if templ_7745c5c3_Err != nil {
@@ -97,7 +97,7 @@ func TabViewMcuDetail(
var templ_7745c5c3_Var7 string
templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs("https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/rpt_mcu_graph_004.rptdesign&__format=pdf&PID=" + id + "&username=adhi&tm=1717726294764")
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutabview.templ`, Line: 42, Col: 167}
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutabview.templ`, Line: 45, Col: 167}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7))
if templ_7745c5c3_Err != nil {
@@ -110,13 +110,26 @@ func TabViewMcuDetail(
var templ_7745c5c3_Var8 string
templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs("https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/rpt_mcu_graph_005.rptdesign&__format=pdf&PID=" + id + "&username=adhi&tm=1717726294764")
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutabview.templ`, Line: 45, Col: 167}
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutabview.templ`, Line: 48, Col: 167}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" type=\"application/pdf\" width=\"100%\" height=\"100%\"></object></div><div class=\"tab-pane fade\" id=\"kt_tab_pane_6\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_6\"><div id=\"tabkesimpulan\"></div></div><div class=\"tab-pane fade\" id=\"kt_tab_pane_7\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_7\"><div id=\"tabdaftarpeserta\"></div></div></div>")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" type=\"application/pdf\" width=\"100%\" height=\"100%\"></object></div><div class=\"tab-pane fade\" id=\"kt_tab_pane_6\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_6\"><div id=\"tabkesimpulan\"></div></div><div class=\"tab-pane fade\" id=\"kt_tab_pane_7\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_7\"><div id=\"tabdaftarpeserta\"></div></div><div class=\"tab-pane fade\" id=\"kt_tab_pane_8\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_8\" style=\"height: 800px;\"><object data=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var9 string
templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs("https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/rpt_summary_executive.rptdesign&__format=pdf&PID=" + id + "&username=adhi&tm=1717726294764")
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutabview.templ`, Line: 59, Col: 171}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" type=\"application/pdf\" width=\"100%\" height=\"100%\"></object></div></div>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}

View File

@@ -94,6 +94,14 @@ templ CssLogin() {
templ JsLogin() {
<script src="/asset-corporate-portal/js/login-general.js"></script>
<script>
document.body.addEventListener('htmx:configRequest', function(evt) {
const token = localStorage.getItem("token");
if (token) {
evt.detail.headers['Authentication'] = "Bearer " + token;
}
});
</script>
}
templ ShowLogin(title string, cmp templ.Component, css templ.Component, js templ.Component) {

View File

@@ -107,7 +107,7 @@ func JsLogin() templ.Component {
templ_7745c5c3_Var3 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<script src=\"/asset-corporate-portal/js/login-general.js\"></script>")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<script src=\"/asset-corporate-portal/js/login-general.js\"></script><script>\r\n\t\tdocument.body.addEventListener('htmx:configRequest', function(evt) {\r\n\t\t\tconst token = localStorage.getItem(\"token\");\r\n\t\t\tif (token) {\r\n\t\t\t\tevt.detail.headers['Authentication'] = \"Bearer \" + token;\r\n\t\t\t}\r\n\t\t});\t\r\n\t</script>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}