From 09bcbdcd59ce43d28b6cac59e622e8eb7f2a5c61 Mon Sep 17 00:00:00 2001 From: Hanan Askarim Date: Tue, 28 May 2024 16:58:37 +0700 Subject: [PATCH] selected tabel --- handlers/dev/masterkelainan.handlers.go | 74 ++++++++- handlers/routes.go | 1 + views/dev/masterkelainan/masterkelainan.templ | 14 +- .../masterkelainan/masterkelainan_templ.go | 20 ++- .../dev/masterkelainan/mdkelainantable.templ | 58 +++++-- .../masterkelainan/mdkelainantable_templ.go | 147 ++++++++++++------ 6 files changed, 236 insertions(+), 78 deletions(-) diff --git a/handlers/dev/masterkelainan.handlers.go b/handlers/dev/masterkelainan.handlers.go index a7a6f10..b6b6aff 100644 --- a/handlers/dev/masterkelainan.handlers.go +++ b/handlers/dev/masterkelainan.handlers.go @@ -169,7 +169,9 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainan(c echo.Context) error "/dev/kelainan/opendelete", "#"+dialogDeleteBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID") + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "/dev/kelainan/selected", + ) // filter kelainan component kelainanFilterComponent := customtextfieldsearch.MainCustomTextFieldSearchV2(searchID, @@ -325,7 +327,9 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainanSearch(c echo.Context) "/dev/kelainan/opendelete", "#"+dialogDeleteBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID") + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "/dev/kelainan/selected", + ) kelainanPaginationComponent := pagination.PaginationV2(totalpage, 1, @@ -379,6 +383,7 @@ func (lh *MasterKelainanHandler) HandlerShowMasterKelainanPagination(c echo.Cont "#"+dialogDeleteBodyID, "outerHTML", "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "/dev/kelainan/selected", ) kelainanPaginationComponent := pagination.PaginationV2(totalpage, @@ -516,7 +521,9 @@ func (lh *MasterKelainanHandler) AddKelainan(c echo.Context) error { "/dev/kelainan/opendelete", "#"+dialogDeleteBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID") + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "/dev/kelainan/selected", + ) // New pagination kelainanPaginationComponent := pagination.PaginationV2(totalpage, @@ -718,7 +725,9 @@ func (lh *MasterKelainanHandler) HandleEditKelainan(c echo.Context) error { "/dev/kelainan/opendelete", "#"+dialogDeleteBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID") + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "/dev/kelainan/selected", + ) // pagination component kelainanPaginationComponent := pagination.PaginationV2( @@ -868,7 +877,9 @@ func (lh *MasterKelainanHandler) HandleDeleteKelainan(c echo.Context) error { "/dev/kelainan/opendelete", "#"+dialogDeleteBodyID, "outerHTML", - "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID") + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "/dev/kelainan/selected", + ) //pagination component kelainanPaginationComponent := pagination.PaginationV2( @@ -894,3 +905,56 @@ func (lh *MasterKelainanHandler) HandleDeleteKelainan(c echo.Context) error { return utils.ViewMulti(c, retVal) } + +func (lh *MasterKelainanHandler) HandleSelected(c echo.Context) error { + id := c.QueryParam("id") + search := c.QueryParam("search") + searchID := c.QueryParam("searchID") + tableID := c.QueryParam("tableID") + paginationID := c.QueryParam("paginationID") + dialogEditBodyID := c.QueryParam("dialogEditBodyID") + dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID") + logger, _ := zap.NewProduction() + + println("id selected", id) + + dataKelainan, totalpage, err := lh.MasterKelainanService.GetListMasterKelainan(search, 1, 5) + if err != nil { + defer logger.Sync() + logger.Info("ERROR GET KELAINAN", + zap.Any("error", err), + ) + fmt.Println(dataKelainan) + return err + } + + defer logger.Sync() + logger.Info("LOAD KELAINAN", + zap.Any("data", dataKelainan), + ) + + contentKelainanComponent := masterkelainan.TableKelainan( + dataKelainan, + tableID, + "/dev/kelainan/openedit", + "#"+dialogEditBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "/dev/kelainan/opendelete", + "#"+dialogDeleteBodyID, + "outerHTML", + "#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "/dev/kelainan/selected", + ) + + kelainanPaginationComponent := pagination.PaginationV2(totalpage, + 1, + "/dev/kelainanpagination", + paginationID, + "#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID", + "#"+paginationID, "outerHTML", "", "") + + retval := []templ.Component{contentKelainanComponent, kelainanPaginationComponent} + + return utils.ViewMulti(c, retval) +} diff --git a/handlers/routes.go b/handlers/routes.go index a81ce2c..93f1dda 100644 --- a/handlers/routes.go +++ b/handlers/routes.go @@ -226,4 +226,5 @@ func SetupRoutesDev(app *echo.Echo, appStore db.AppStore) { dev.GET("/kelainan/opendelete", devKLhandlers.HandleOpenDeleteForm) dev.POST("/kelainan/closedeleteform", devKLhandlers.HandleCloseFormDelete) dev.POST("/kelainan/delete", devKLhandlers.HandleDeleteKelainan) + dev.GET("/kelainan/selected", devKLhandlers.HandleSelected) } diff --git a/views/dev/masterkelainan/masterkelainan.templ b/views/dev/masterkelainan/masterkelainan.templ index fb28b2c..b8939f0 100644 --- a/views/dev/masterkelainan/masterkelainan.templ +++ b/views/dev/masterkelainan/masterkelainan.templ @@ -65,8 +65,13 @@ templ ContentMasterKelainan(
@breadcrumb
-
-
+
+
+
+ @filterComponent +
+
+
- @filterComponent @tablecontent @paginationComponent @modalAddform @@ -123,7 +127,9 @@ templ CssKelainan() { #title { font-weight: 600; } - + .selected { + background-color: yellow; /* Atur sesuai kebutuhan Anda */ + } } diff --git a/views/dev/masterkelainan/masterkelainan_templ.go b/views/dev/masterkelainan/masterkelainan_templ.go index ce1d19e..4eb2551 100644 --- a/views/dev/masterkelainan/masterkelainan_templ.go +++ b/views/dev/masterkelainan/masterkelainan_templ.go @@ -121,14 +121,22 @@ func ContentMasterKelainan( 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 + } + templ_7745c5c3_Err = filterComponent.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
+// } + +script clickHandler(id int) { + // document.getElementById(id).classList.add("selected"); + console.log(id); +} + templ TableRow(data []models.Kelainan, hxGetEdit string, hxTargetEdit string, @@ -42,6 +65,7 @@ templ TableRow(data []models.Kelainan, hxTargetDelete string, hxSwapDelete string, hxIncludeDelete string, + hxGetSelected string, ) { if len(data) == 0 { @@ -49,7 +73,13 @@ templ TableRow(data []models.Kelainan, } for _, v := range data { - + { v.Nomor } { v.Mcu_KelainanGroupName } diff --git a/views/dev/masterkelainan/mdkelainantable_templ.go b/views/dev/masterkelainan/mdkelainantable_templ.go index d6fc294..c6ea323 100644 --- a/views/dev/masterkelainan/mdkelainantable_templ.go +++ b/views/dev/masterkelainan/mdkelainantable_templ.go @@ -26,6 +26,7 @@ func TableKelainan(data []models.Kelainan, hxTargetDelete string, hxSwapDelete string, hxIncludeDelete string, + hxGetSelected string, ) 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) @@ -39,25 +40,25 @@ func TableKelainan(data []models.Kelainan, templ_7745c5c3_Var1 = templ.NopComponent } ctx = templ.ClearChildren(ctx) - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-swap-oob=\"true\" class=\"col-lg-6\">") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } templ_7745c5c3_Err = tablecomponent.TableV3([]string{"NO", "GRUP KELAINAN", "AKSI"}, - []string{"10%", "70%", "20%"}, + []string{"10%", "60%", "30%"}, TableRow(data, hxGetEdit, hxTargetEdit, @@ -67,11 +68,12 @@ func TableKelainan(data []models.Kelainan, hxTargetDelete, hxSwapDelete, hxIncludeDelete, + hxGetSelected, )).Render(ctx, templ_7745c5c3_Buffer) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -82,6 +84,30 @@ func TableKelainan(data []models.Kelainan, }) } +// func concatIDx(id string) string { +// return "changeColor(" + id + ")" +// } + +// templ component(contact model.Contact) { +//
+// { contact.Name } +//
+// } +// +// templ buttonTempl(id int) { +// +// } +func clickHandler(id int) templ.ComponentScript { + return templ.ComponentScript{ + Name: `__templ_clickHandler_4d2c`, + Function: `function __templ_clickHandler_4d2c(id){// document.getElementById(id).classList.add("selected"); + console.log(id); +}`, + Call: templ.SafeScript(`__templ_clickHandler_4d2c`, id), + CallInline: templ.SafeScriptInline(`__templ_clickHandler_4d2c`, id), + } +} + func TableRow(data []models.Kelainan, hxGetEdit string, hxTargetEdit string, @@ -91,6 +117,7 @@ func TableRow(data []models.Kelainan, hxTargetDelete string, hxSwapDelete string, hxIncludeDelete string, + hxGetSelected string, ) 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) @@ -111,29 +138,55 @@ func TableRow(data []models.Kelainan, } } for _, v := range data { - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, clickHandler(v.Mcu_KelainanGroupID)) + 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 + } + var templ_7745c5c3_Var6 string + templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(v.Nomor) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\masterkelainan\mdkelainantable.templ`, Line: 83, Col: 16} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6)) + 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 } - var templ_7745c5c3_Var5 string - templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(v.Mcu_KelainanGroupName) + var templ_7745c5c3_Var7 string + templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(v.Mcu_KelainanGroupName) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\masterkelainan\mdkelainantable.templ`, Line: 54, Col: 32} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\masterkelainan\mdkelainantable.templ`, Line: 84, Col: 32} } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5)) + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7)) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -184,21 +237,21 @@ func TableAction( defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) } ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var6 := templ.GetChildren(ctx) - if templ_7745c5c3_Var6 == nil { - templ_7745c5c3_Var6 = templ.NopComponent + templ_7745c5c3_Var8 := templ.GetChildren(ctx) + if templ_7745c5c3_Var8 == nil { + templ_7745c5c3_Var8 = templ.NopComponent } ctx = templ.ClearChildren(ctx) _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("