diff --git a/handlers/dev/mdpaket.handlers.go b/handlers/dev/mdpaket.handlers.go
index 62476d9..d31ad1f 100644
--- a/handlers/dev/mdpaket.handlers.go
+++ b/handlers/dev/mdpaket.handlers.go
@@ -3,10 +3,12 @@ package dev_handlers
import (
breadcrumadmin "cpone/component/breadcrumbadmin"
navbarmenu "cpone/component/navbar"
+ "cpone/component/pagination"
sidebaruserprofile "cpone/component/sidebar_user_profile"
"cpone/models"
globalservices "cpone/services"
"cpone/utils"
+ "fmt"
devmdpaket "cpone/views/dev/mdpaket"
@@ -17,6 +19,7 @@ import (
type MasterDataPaketService interface {
GetListBreadCrumb() (models.BreadCrumbV1, error)
+ GetListMasterDataPaket(keyword string, currenPage int, rowPerPage int) ([]models.MDPaket, int, error)
}
func NewMasterDataPaketServiceHandler(us MasterDataPaketService) *MasterDataPaketHandler {
@@ -35,7 +38,7 @@ func (usr *MasterDataPaketHandler) View(c echo.Context, cmp templ.Component) err
return cmp.Render(c.Request().Context(), c.Response().Writer)
}
-func (usr *MasterDataPaketHandler) HandlerShowMasterDataPaket(c echo.Context) error {
+func (mdp *MasterDataPaketHandler) HandlerShowMasterDataPaket(c echo.Context) error {
logger, _ := zap.NewProduction()
dataMenu, err := globalservices.GetMenu()
@@ -48,9 +51,22 @@ func (usr *MasterDataPaketHandler) HandlerShowMasterDataPaket(c echo.Context) er
return err
}
+ dataPaket, totalPage, err := mdp.MasterDataPaketService.GetListMasterDataPaket("", 1, 3)
+ if err != nil {
+ defer logger.Sync()
+ logger.Info("ERROR GET DATA PAKET",
+ zap.Any("error", err),
+ )
+ fmt.Println(dataPaket)
+ return err
+ }
+
defer logger.Sync()
- dataBreadCrumb, err := usr.MasterDataPaketService.GetListBreadCrumb()
+ tableID := utils.GenerateRandomID("tablebody")
+ paginationID := utils.GenerateRandomID("paginationid")
+
+ dataBreadCrumb, err := mdp.MasterDataPaketService.GetListBreadCrumb()
if err != nil {
return err
}
@@ -59,10 +75,26 @@ func (usr *MasterDataPaketHandler) HandlerShowMasterDataPaket(c echo.Context) er
navbaruserComponent := navbarmenu.Navbar(dataUser)
sidebaruserprofileComponent := sidebaruserprofile.Navbaruserprofile(dataUser)
- cmp_mdu := devmdpaket.ShowMasterDataPaket(
+ contentTablePaket := devmdpaket.TablePaket(dataPaket, tableID)
+ paginationPaket := pagination.PaginationV2(
+ totalPage,
+ 1,
+ "/dev/paketpagination",
+ paginationID,
+ "#tableID, #paginationID",
+ "#"+paginationID,
+ "outerHTML",
+ "",
+ )
+
+ cmp_mdp := devmdpaket.ShowMasterDataPaket(
"Master Paket",
devmdpaket.ContentMasterDataPaket(
+ tableID,
+ paginationID,
breadcrumadmin.MainBreadcrumbAdminV1(dataBreadCrumb),
+ contentTablePaket,
+ paginationPaket,
),
devmdpaket.CSSMasterDataPaket(),
devmdpaket.JsMasterDataPaket(),
@@ -71,5 +103,5 @@ func (usr *MasterDataPaketHandler) HandlerShowMasterDataPaket(c echo.Context) er
sidebaruserprofileComponent,
)
- return utils.View(c, cmp_mdu)
+ return utils.View(c, cmp_mdp)
}
diff --git a/models/paket.models.go b/models/paket.models.go
new file mode 100644
index 0000000..43b59fa
--- /dev/null
+++ b/models/paket.models.go
@@ -0,0 +1,9 @@
+package models
+
+type MDPaket struct {
+ PaketID int `json:"paket_id"`
+ PaketKode string `json:"paket_kode"`
+ PaketJenis string `json:"paket_jenis"`
+ PaketNama string `json:"paket_nama"`
+ PaketIsActive string `json:"paket_Is_Active"`
+}
diff --git a/services/dev/mdpaket.services.go b/services/dev/mdpaket.services.go
index b333097..fbe4219 100644
--- a/services/dev/mdpaket.services.go
+++ b/services/dev/mdpaket.services.go
@@ -15,7 +15,7 @@ type ServiceMasterDataPaket struct {
MasterDataPaketStore db.AppStore
}
-func (smdu *ServiceMasterDataPaket) GetListBreadCrumb() (models.BreadCrumbV1, error) {
+func (smdp *ServiceMasterDataPaket) GetListBreadCrumb() (models.BreadCrumbV1, error) {
var ret models.BreadCrumbV1
dummyBreadcrumb := models.BreadCrumbV1{
@@ -39,3 +39,74 @@ func (smdu *ServiceMasterDataPaket) GetListBreadCrumb() (models.BreadCrumbV1, er
ret = dummyBreadcrumb
return ret, nil
}
+
+func (smdp *ServiceMasterDataPaket) GetListMasterDataPaket(keyword string, currentPage int, rowPerPage int) ([]models.MDPaket, int, error) {
+ var ret []models.MDPaket
+ // var totalData int
+
+ // offset := (currentPage - 1) * rowPerPage
+
+ // // total data
+ // prm := "%" + strings.TrimSpace(keyword) + "%"
+ // querytotal := ``
+ // if err := dbx.Handlex.Get(&totalData, querytotal, prm, prm); err != nil {
+ // return nil, 0, fmt.Errorf("error query database: %v", err)
+ // }
+
+ // // get data
+ // query := ``
+ // if err := dbx.Handlex.Select(&ret, query, prm, prm, rowPerPage, offset); err != nil {
+ // return nil, 0, fmt.Errorf("error query database: %v", err)
+ // }
+ // totalPage := int(math.Ceil(float64(totalData) / float64(rowPerPage)))
+
+ // return ret, totalPage, nil
+
+ dummyData := []models.MDPaket{
+ {
+ PaketID: 1,
+ PaketKode: "001",
+ PaketJenis: "Panel",
+ PaketNama: "Paket A",
+ PaketIsActive: "Y",
+ },
+ {
+ PaketID: 2,
+ PaketKode: "002",
+ PaketJenis: "Panel",
+ PaketNama: "Paket B",
+ PaketIsActive: "Y",
+ },
+ {
+ PaketID: 3,
+ PaketKode: "003",
+ PaketJenis: "Profile",
+ PaketNama: "Paket C",
+ PaketIsActive: "Y",
+ },
+ {
+ PaketID: 4,
+ PaketKode: "004",
+ PaketJenis: "Profile",
+ PaketNama: "Paket D",
+ PaketIsActive: "Y",
+ },
+ {
+ PaketID: 5,
+ PaketKode: "005",
+ PaketJenis: "Panel",
+ PaketNama: "Paket E",
+ PaketIsActive: "Y",
+ },
+ {
+ PaketID: 6,
+ PaketKode: "006",
+ PaketJenis: "Profile",
+ PaketNama: "Paket F",
+ PaketIsActive: "Y",
+ },
+ }
+
+ ret = dummyData
+ return ret, 2, nil
+}
diff --git a/views/dev/mdpaket/mdpaket.templ b/views/dev/mdpaket/mdpaket.templ
index 50ef2df..47847d1 100644
--- a/views/dev/mdpaket/mdpaket.templ
+++ b/views/dev/mdpaket/mdpaket.templ
@@ -1,17 +1,29 @@
package devmdpaket
-import "cpone/layout"
-import "cpone/component/customtextfield"
-import "cpone/component/table"
+import (
+ "cpone/layout"
+ "cpone/component/customtextfield"
+ "cpone/component/table"
+ "cpone/models"
+ "strconv"
+)
templ ContentMasterDataPaket(
+ tableID string,
+ paginationID string,
breadcrumb templ.Component,
+ tablecontent templ.Component,
+ paginationPaket templ.Component,
) {
@customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "tableID",
Name: "tableID",
Type: "hidden",
Value: tableID})
+ @customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "paginationID",
+ Name: "paginationID",
+ Type: "hidden",
+ Value: paginationID})
@breadcrumb
@@ -30,18 +42,33 @@ templ ContentMasterDataPaket(
+ @tablecontent
+ @paginationPaket
+
+
}
-templ TableHeadPaket(data []string, tableID string) {
+templ TablePaket(data []models.MDPaket, tableID string) {
- @tablecomponent.TableV3([]string{"KODE", "JENIS PAKET", "NAMA PAKET", "AKSI"}
+ @tablecomponent.TableV3([]string{"KODE", "JENIS PAKET", "NAMA PAKET", "AKSI"},
[]string{"20%", "30%", "30%", "20%"},
TableDataPaket(data))
}
-templ TableDataPaket(data []string) {
+templ TableDataPaket(data []models.MDPaket) {
if len(data) == 0 {
| Data Tidak Ditemukan |
@@ -49,15 +76,64 @@ templ TableDataPaket(data []string) {
}
for _, v := range data {
+ | { v.PaketKode } |
+ { v.PaketJenis } |
+ { v.PaketNama } |
-
+
|
}
}
templ CSSMasterDataPaket() {
-
+
+
+
+
}
templ JsMasterDataPaket() {
diff --git a/views/dev/mdpaket/mdpaket_templ.go b/views/dev/mdpaket/mdpaket_templ.go
index 59d5e54..f17b1e6 100644
--- a/views/dev/mdpaket/mdpaket_templ.go
+++ b/views/dev/mdpaket/mdpaket_templ.go
@@ -10,10 +10,20 @@ import "context"
import "io"
import "bytes"
-import "cpone/layout"
+import (
+ "cpone/component/customtextfield"
+ "cpone/component/table"
+ "cpone/layout"
+ "cpone/models"
+ "strconv"
+)
func ContentMasterDataPaket(
+ tableID string,
+ paginationID string,
breadcrumb templ.Component,
+ tablecontent templ.Component,
+ paginationPaket 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)
@@ -27,7 +37,25 @@ func ContentMasterDataPaket(
templ_7745c5c3_Var1 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("")
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "tableID",
+ Name: "tableID",
+ Type: "hidden",
+ Value: tableID}).Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "paginationID",
+ Name: "paginationID",
+ Type: "hidden",
+ Value: paginationID}).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
}
@@ -35,10 +63,166 @@ func ContentMasterDataPaket(
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
}
+ templ_7745c5c3_Err = tablecontent.Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = paginationPaket.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 TablePaket(data []models.MDPaket, tableID 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)
+ 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
+ }
+ templ_7745c5c3_Err = tablecomponent.TableV3([]string{"KODE", "JENIS PAKET", "NAMA PAKET", "AKSI"},
+ []string{"20%", "30%", "30%", "20%"},
+ TableDataPaket(data)).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 TableDataPaket(data []models.MDPaket) 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_Var5 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var5 == nil {
+ templ_7745c5c3_Var5 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ if len(data) == 0 {
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("| Data Tidak Ditemukan |
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ }
+ for _, v := range data {
+ _, 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.PaketKode)
+ if templ_7745c5c3_Err != nil {
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdpaket\mdpaket.templ`, Line: 79, Col: 29}
+ }
+ _, 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_Var7 string
+ templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(v.PaketJenis)
+ if templ_7745c5c3_Err != nil {
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdpaket\mdpaket.templ`, Line: 80, Col: 30}
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7))
+ 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_Var8 string
+ templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(v.PaketNama)
+ if templ_7745c5c3_Err != nil {
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdpaket\mdpaket.templ`, Line: 81, Col: 29}
+ }
+ _, 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(" | |
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ }
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
@@ -54,11 +238,15 @@ func CSSMasterDataPaket() templ.Component {
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
+ templ_7745c5c3_Var10 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var10 == nil {
+ templ_7745c5c3_Var10 = 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)
}
@@ -74,9 +262,9 @@ func JsMasterDataPaket() templ.Component {
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
+ templ_7745c5c3_Var11 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var11 == nil {
+ templ_7745c5c3_Var11 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
if !templ_7745c5c3_IsBuffer {
@@ -102,12 +290,12 @@ func ShowMasterDataPaket(
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
+ templ_7745c5c3_Var12 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var12 == nil {
+ templ_7745c5c3_Var12 = 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_Var13 := 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()
@@ -122,7 +310,7 @@ func ShowMasterDataPaket(
}
return templ_7745c5c3_Err
})
- templ_7745c5c3_Err = layout.CorporateLayout(title, css, js, navbarmenu, navbaruser, userprofile).Render(templ.WithChildren(ctx, templ_7745c5c3_Var5), templ_7745c5c3_Buffer)
+ templ_7745c5c3_Err = layout.CorporateLayout(title, css, js, navbarmenu, navbaruser, userprofile).Render(templ.WithChildren(ctx, templ_7745c5c3_Var13), templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}