From 2d67b7b723453d5cd416628a1048faeca909edaf Mon Sep 17 00:00:00 2001 From: adibwp Date: Tue, 11 Jun 2024 10:39:07 +0700 Subject: [PATCH] add html tab --- handlers/dev/detailmcu.handlers.go | 68 +++++++++++++ handlers/routes.go | 4 + services/dev/detailmcu.services.go | 37 +++++++ views/dev/mcu/mcudetail.templ | 141 +++++++++++++++++++++++++++ views/dev/mcu/mcudetail_templ.go | 141 +++++++++++++++++++++++++++ views/dev/mcu/tabviewdetailmcu.templ | 37 +++++++ 6 files changed, 428 insertions(+) create mode 100644 handlers/dev/detailmcu.handlers.go create mode 100644 services/dev/detailmcu.services.go create mode 100644 views/dev/mcu/mcudetail.templ create mode 100644 views/dev/mcu/mcudetail_templ.go create mode 100644 views/dev/mcu/tabviewdetailmcu.templ diff --git a/handlers/dev/detailmcu.handlers.go b/handlers/dev/detailmcu.handlers.go new file mode 100644 index 0000000..384dbb9 --- /dev/null +++ b/handlers/dev/detailmcu.handlers.go @@ -0,0 +1,68 @@ +package dev_handlers + +import ( + breadcrumadmin "cpone/component/breadcrumbadmin" + navbarmenu "cpone/component/navbar" + sidebaruserprofile "cpone/component/sidebar_user_profile" + "cpone/models" + "cpone/services" + "cpone/utils" + dev_detailmcu "cpone/views/dev/mcu" + + "github.com/labstack/echo/v4" + "go.uber.org/zap" +) + +type DetailMcuServices interface { + GetBreadcrumb(title string) (models.BreadCrumbV1, error) +} + +type DetailMcuHandler struct { + DetailMcuServices DetailMcuServices +} + +func NewDetailMcuHandler(dmcu DetailMcuServices) *DetailMcuHandler { + return &DetailMcuHandler{ + DetailMcuServices: dmcu, + } +} + +func (dmcu *DetailMcuHandler) HandleShowDetailMcuScreen(c echo.Context) error { + logger, _ := zap.NewProduction() + title := "PT. Sadhana Abiyasa Sampoerna" + + user, err := services.GetUserLogin() + if err != nil { + defer logger.Sync() + logger.Info("Error get user dev", zap.Any("error", err)) + return err + } + + dataBreadcrumb, err := dmcu.DetailMcuServices.GetBreadcrumb(title) + if err != nil { + defer logger.Sync() + logger.Info("Error breadcrumb dev", zap.Any("error", err)) + return err + } + + breadcrumb := breadcrumadmin.MainBreadcrumbAdminV1(dataBreadcrumb) + navbaruser := navbarmenu.NavbarWithLogo(user) + sidbaruser := sidebaruserprofile.Navbaruserprofile(user) + + content := dev_detailmcu.DetailMcuScreen( + breadcrumb, + ) + css := dev_detailmcu.CSSDetailMcu() + js := dev_detailmcu.JSDetailMcu() + + view := dev_detailmcu.ShowDetailMcu( + title, + content, + css, + js, + navbaruser, + sidbaruser, + ) + + return utils.View(c, view) +} diff --git a/handlers/routes.go b/handlers/routes.go index 9327160..454ea45 100644 --- a/handlers/routes.go +++ b/handlers/routes.go @@ -240,6 +240,10 @@ func SetupRoutesDev(app *echo.Echo, appStore db.AppStore) { dev.GET("/employeeanalytic/changepage", devEmplAnaHandler.HandlePagination) dev.GET("/employeeanalytic/filter", devEmplAnaHandler.HandleFilter) + devDetailMcuService := dev_services.NewDetailMcuServices(appStore) + devDetailMcuHandler := dev_handlers.NewDetailMcuHandler(devDetailMcuService) + dev.GET("/detailmcu", devDetailMcuHandler.HandleShowDetailMcuScreen) + // group result devGRServices := dev_services.NewServicesGroupResult(appStore) devGRhandlers := dev_handlers.NewGroupResultHandler(devGRServices) diff --git a/services/dev/detailmcu.services.go b/services/dev/detailmcu.services.go new file mode 100644 index 0000000..f28684c --- /dev/null +++ b/services/dev/detailmcu.services.go @@ -0,0 +1,37 @@ +package dev_services + +import ( + "cpone/db" + "cpone/models" +) + +type DetailMcuServices struct { + DetailMcuStore db.AppStore +} + +func NewDetailMcuServices(uStore db.AppStore) *DetailMcuServices { + return &DetailMcuServices{ + DetailMcuStore: uStore, + } +} + +func (dmcu *DetailMcuServices) GetBreadcrumb(title string) (models.BreadCrumbV1, error) { + breadcrumb := models.BreadCrumbV1{ + Title: title, + Item: []models.ItemBreadCrumbV1{ + { + Item: "Dashboard", + Url: "/dev/dashboard", + }, + { + Item: "Employee Health Medical Analytic", + Url: "/dev/employeeanalytic/", + }, + { + Item: title, + Url: "", + }, + }, + } + return breadcrumb, nil +} diff --git a/views/dev/mcu/mcudetail.templ b/views/dev/mcu/mcudetail.templ new file mode 100644 index 0000000..f1652a0 --- /dev/null +++ b/views/dev/mcu/mcudetail.templ @@ -0,0 +1,141 @@ +package dev_detailmcu + +import "cpone/layout" + +templ DetailMcuScreen( + breadcrumb templ.Component, +) { +
+
+
+ @breadcrumb +
+
+
+
+
+ Loading.... +
+
+
+
+
+} + +templ CSSDetailMcu() { + + + + +} + +templ JSDetailMcu() { + +} + +templ ShowDetailMcu( + title string, + cmp templ.Component, + css templ.Component, + js templ.Component, + navbaruser templ.Component, + userprofile templ.Component, +) { + @layout.EmployeeAnalyticLayout(title, css, js, navbaruser, userprofile) { + @cmp + } +} \ No newline at end of file diff --git a/views/dev/mcu/mcudetail_templ.go b/views/dev/mcu/mcudetail_templ.go new file mode 100644 index 0000000..c6ffeec --- /dev/null +++ b/views/dev/mcu/mcudetail_templ.go @@ -0,0 +1,141 @@ +// Code generated by templ - DO NOT EDIT. + +// templ: version: v0.2.663 +package dev_detailmcu + +//lint:file-ignore SA4006 This context is only used if a nested component is present. + +import "github.com/a-h/templ" +import "context" +import "io" +import "bytes" + +import "cpone/layout" + +func DetailMcuScreen( + breadcrumb templ.Component, +) templ.Component { + return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) + if !templ_7745c5c3_IsBuffer { + templ_7745c5c3_Buffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) + } + ctx = templ.InitializeContext(ctx) + templ_7745c5c3_Var1 := templ.GetChildren(ctx) + if templ_7745c5c3_Var1 == nil { + templ_7745c5c3_Var1 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = breadcrumb.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) + } + return templ_7745c5c3_Err + }) +} + +func CSSDetailMcu() templ.Component { + return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) + if !templ_7745c5c3_IsBuffer { + templ_7745c5c3_Buffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) + } + ctx = templ.InitializeContext(ctx) + templ_7745c5c3_Var2 := templ.GetChildren(ctx) + if templ_7745c5c3_Var2 == nil { + templ_7745c5c3_Var2 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) + } + return templ_7745c5c3_Err + }) +} + +func JSDetailMcu() templ.Component { + return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) + if !templ_7745c5c3_IsBuffer { + templ_7745c5c3_Buffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) + } + ctx = templ.InitializeContext(ctx) + templ_7745c5c3_Var3 := templ.GetChildren(ctx) + if templ_7745c5c3_Var3 == nil { + templ_7745c5c3_Var3 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) + } + return templ_7745c5c3_Err + }) +} + +func ShowDetailMcu( + title string, + cmp templ.Component, + css templ.Component, + js templ.Component, + navbaruser templ.Component, + userprofile templ.Component, +) templ.Component { + return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) + if !templ_7745c5c3_IsBuffer { + templ_7745c5c3_Buffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) + } + ctx = templ.InitializeContext(ctx) + templ_7745c5c3_Var4 := templ.GetChildren(ctx) + if templ_7745c5c3_Var4 == nil { + templ_7745c5c3_Var4 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + templ_7745c5c3_Var5 := templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) + if !templ_7745c5c3_IsBuffer { + templ_7745c5c3_Buffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) + } + templ_7745c5c3_Err = cmp.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = io.Copy(templ_7745c5c3_W, templ_7745c5c3_Buffer) + } + return templ_7745c5c3_Err + }) + templ_7745c5c3_Err = layout.EmployeeAnalyticLayout(title, css, js, navbaruser, userprofile).Render(templ.WithChildren(ctx, templ_7745c5c3_Var5), templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) + } + return templ_7745c5c3_Err + }) +} diff --git a/views/dev/mcu/tabviewdetailmcu.templ b/views/dev/mcu/tabviewdetailmcu.templ new file mode 100644 index 0000000..435e83e --- /dev/null +++ b/views/dev/mcu/tabviewdetailmcu.templ @@ -0,0 +1,37 @@ +package dev_detailmcu + +templ TabViewDetailMcu( + +) { +
+ +
+
+
Tab content 1
+
Tab content 2
+
Tab content 4
+
Tab content 5
+
+} \ No newline at end of file