md nonlab template listing data + filter + pagination
This commit is contained in:
252
handlers/dev/md.nonlabtemplate.handlers.go
Normal file
252
handlers/dev/md.nonlabtemplate.handlers.go
Normal file
@@ -0,0 +1,252 @@
|
||||
package dev_handlers
|
||||
|
||||
import (
|
||||
breadcrumadmin "cpone/component/breadcrumbadmin"
|
||||
"cpone/component/customtextfieldsearch"
|
||||
navbarmenu "cpone/component/navbar"
|
||||
"cpone/component/pagination"
|
||||
sidebaruserprofile "cpone/component/sidebar_user_profile"
|
||||
"cpone/models"
|
||||
"cpone/services"
|
||||
"cpone/utils"
|
||||
dev_mdnonlabtemplateview "cpone/views/dev/mdnonlabtemplate"
|
||||
"fmt"
|
||||
"strconv"
|
||||
|
||||
"github.com/a-h/templ"
|
||||
"github.com/labstack/echo/v4"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
type MDNonLabTemplateServices interface {
|
||||
GetMDNonLabTemplateBreadcrumb() (models.BreadCrumbV1, error)
|
||||
GetMDNonLabTemplateData(search string, currentPage int, rowPerPage int) ([]models.MDNonLabTemplate, int, error)
|
||||
}
|
||||
|
||||
type MDNonLabTemplateHandler struct {
|
||||
MDNonLabTemplateServices MDNonLabTemplateServices
|
||||
}
|
||||
|
||||
func NewMDNonLabTemplateHandler(nlt MDNonLabTemplateServices) *MDNonLabTemplateHandler {
|
||||
return &MDNonLabTemplateHandler{
|
||||
MDNonLabTemplateServices: nlt,
|
||||
}
|
||||
}
|
||||
|
||||
func (mdnlt *MDNonLabTemplateHandler) HandleShowMDNonLabTemplateScreen(c echo.Context) error {
|
||||
logger, _ := zap.NewProduction()
|
||||
|
||||
tableID := utils.GenerateRandomID("tableid")
|
||||
paginationID := utils.GenerateRandomID("paginationid")
|
||||
searchID := utils.GenerateRandomID("searchid")
|
||||
dialogAddID := utils.GenerateRandomID("dialogaddid")
|
||||
dialogAddBodyID := utils.GenerateRandomID("dialogaddbodyid")
|
||||
dialogEditID := utils.GenerateRandomID("dialogeditid")
|
||||
dialogEditBodyID := utils.GenerateRandomID("dialogeditbodyid")
|
||||
dialogDeleteID := utils.GenerateRandomID("dialogdeleteid")
|
||||
dialogDeleteBodyID := utils.GenerateRandomID("dialogdeletebodyid")
|
||||
|
||||
dataMenu, err := services.GetMenu()
|
||||
if err != nil {
|
||||
fmt.Println(dataMenu)
|
||||
return err
|
||||
}
|
||||
|
||||
dataUser, err := services.GetUserLogin()
|
||||
if err != nil {
|
||||
fmt.Println(dataUser)
|
||||
return err
|
||||
}
|
||||
defer logger.Sync()
|
||||
logger.Info("LOAD USER DEV", zap.Any("data", dataUser))
|
||||
|
||||
title := "Master Non-lab Template"
|
||||
|
||||
dataBreadCrumb, err := mdnlt.MDNonLabTemplateServices.GetMDNonLabTemplateBreadcrumb()
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Info("ERROR BREADCRUMB DEV", zap.Any("error", err))
|
||||
return err
|
||||
}
|
||||
defer logger.Sync()
|
||||
logger.Info("LOAD BREADCRUMB DEV", zap.Any("data", dataBreadCrumb))
|
||||
|
||||
breadcrumbComp := breadcrumadmin.MainBreadcrumbAdminV1(dataBreadCrumb)
|
||||
navbarmenuComp := navbarmenu.NavbarMenu(dataMenu)
|
||||
navbaruserComp := navbarmenu.Navbar(dataUser)
|
||||
sidebarusrComp := sidebaruserprofile.Navbaruserprofile(dataUser)
|
||||
|
||||
dataList, totalPage, err := mdnlt.MDNonLabTemplateServices.GetMDNonLabTemplateData("", 1, 5)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Info("ERROR GET DATA DEV", zap.Any("error", err))
|
||||
return err
|
||||
}
|
||||
|
||||
tableComp := dev_mdnonlabtemplateview.TableNonLabTemplate(dataList,
|
||||
tableID,
|
||||
"/dev/md/nonlabtemplate/openedit",
|
||||
"#"+dialogEditBodyID,
|
||||
"outerHTML",
|
||||
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
|
||||
"/dev/md/nonlabtemplate/opendelete",
|
||||
"#"+dialogDeleteBodyID,
|
||||
"outerHTML",
|
||||
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
|
||||
)
|
||||
|
||||
tableFilter := customtextfieldsearch.MainCustomTextFieldSearchV3(searchID,
|
||||
"search",
|
||||
"Cari Nama Template",
|
||||
"text",
|
||||
"/dev/md/nonlabtemplate/filter",
|
||||
"input changed delay:500ms, search",
|
||||
"#"+paginationID,
|
||||
"#loadingcontent", "",
|
||||
"outerHTML",
|
||||
"#tableID, #paginationID, #searchID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
|
||||
dev_mdnonlabtemplateview.BeforeRequestContent(),
|
||||
dev_mdnonlabtemplateview.AfterRequestContent(),
|
||||
)
|
||||
|
||||
tablePagination := pagination.PaginationV3(totalPage,
|
||||
1,
|
||||
"/dev/md/nonlabtemplate/changepage",
|
||||
paginationID,
|
||||
"#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
|
||||
"#"+paginationID,
|
||||
"outerHTML", "", "",
|
||||
dev_mdnonlabtemplateview.BeforeRequestContent(),
|
||||
dev_mdnonlabtemplateview.AfterRequestContent(),
|
||||
)
|
||||
|
||||
content := dev_mdnonlabtemplateview.MDNonLabTemplateScreen(
|
||||
tableID,
|
||||
paginationID,
|
||||
searchID,
|
||||
dialogAddID,
|
||||
dialogAddBodyID,
|
||||
dialogEditID,
|
||||
dialogEditBodyID,
|
||||
dialogDeleteID,
|
||||
dialogDeleteBodyID,
|
||||
breadcrumbComp,
|
||||
tableFilter,
|
||||
tableComp,
|
||||
tablePagination,
|
||||
)
|
||||
css := dev_mdnonlabtemplateview.CSSMDNonLabTemplate()
|
||||
js := dev_mdnonlabtemplateview.JSSMDNonLabTemplate()
|
||||
|
||||
view := dev_mdnonlabtemplateview.ShowMDNonLabTemplate(
|
||||
title,
|
||||
content,
|
||||
css,
|
||||
js,
|
||||
navbarmenuComp,
|
||||
navbaruserComp,
|
||||
sidebarusrComp,
|
||||
)
|
||||
|
||||
return utils.View(c, view)
|
||||
}
|
||||
|
||||
func (mdnlt *MDNonLabTemplateHandler) HandleFilterMDNonLabTemplate(c echo.Context) error {
|
||||
search := c.QueryParam("search")
|
||||
searchID := c.QueryParam("searchID")
|
||||
tableID := c.QueryParam("tableID")
|
||||
paginationID := c.QueryParam("paginationID")
|
||||
dialogEditBodyID := c.QueryParam("dialogEditBodyID")
|
||||
dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID")
|
||||
var retval []templ.Component
|
||||
logger, _ := zap.NewProduction()
|
||||
|
||||
dataList, totalPage, err := mdnlt.MDNonLabTemplateServices.GetMDNonLabTemplateData(search, 1, 5)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Info("ERROR GET DATA", zap.Any("error", err))
|
||||
return err
|
||||
}
|
||||
|
||||
tableComp := dev_mdnonlabtemplateview.TableNonLabTemplate(dataList,
|
||||
tableID,
|
||||
"/dev/md/nonlabtemplate/openedit",
|
||||
"#"+dialogEditBodyID,
|
||||
"outerHTML",
|
||||
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
|
||||
"/dev/md/nonlabtemplate/opendelete",
|
||||
"#"+dialogDeleteBodyID,
|
||||
"outerHTML",
|
||||
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
|
||||
)
|
||||
|
||||
tablePagination := pagination.PaginationV3(
|
||||
totalPage,
|
||||
1,
|
||||
"/dev/md/nonlabtemplate/changepage",
|
||||
paginationID,
|
||||
"#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
|
||||
"#"+paginationID,
|
||||
"outerHTML", "", "",
|
||||
dev_mdnonlabtemplateview.BeforeRequestContent(),
|
||||
dev_mdnonlabtemplateview.AfterRequestContent(),
|
||||
)
|
||||
|
||||
retval = append(retval, tableComp)
|
||||
retval = append(retval, tablePagination)
|
||||
return utils.ViewMulti(c, retval)
|
||||
}
|
||||
|
||||
func (mdnlt *MDNonLabTemplateHandler) HandleChangePageMDNonLabTemplate(c echo.Context) error {
|
||||
search := c.QueryParam("search")
|
||||
pageparam := c.QueryParam("page")
|
||||
tableID := c.QueryParam("tableID")
|
||||
searchID := c.QueryParam("searchID")
|
||||
paginationID := c.QueryParam("paginationID")
|
||||
dialogEditBodyID := c.QueryParam("dialogEditBodyID")
|
||||
dialogDeleteBodyID := c.QueryParam("dialogDeleteBodyID")
|
||||
var retval []templ.Component
|
||||
logger, _ := zap.NewProduction()
|
||||
|
||||
page, err := strconv.Atoi(pageparam)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Info("ERROR CONVERT PAGE PARAM", zap.Any("page", page), zap.Any("error", err))
|
||||
return err
|
||||
}
|
||||
|
||||
dataList, totalPage, err := mdnlt.MDNonLabTemplateServices.GetMDNonLabTemplateData(search, page, 5)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Info("ERROR CONVERT PAGE PARAM", zap.Any("error", err))
|
||||
return err
|
||||
}
|
||||
|
||||
tableComp := dev_mdnonlabtemplateview.TableNonLabTemplate(dataList,
|
||||
tableID,
|
||||
"/dev/md/nonlabtemplate/openedit",
|
||||
"#"+dialogEditBodyID,
|
||||
"outerHTML",
|
||||
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
|
||||
"/dev/md/nonlabtemplate/opendelete",
|
||||
"#"+dialogDeleteBodyID,
|
||||
"outerHTML",
|
||||
"#dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
|
||||
)
|
||||
|
||||
tablePagination := pagination.PaginationV3(
|
||||
totalPage,
|
||||
page,
|
||||
"/dev/md/nonlabtemplate/changepage",
|
||||
paginationID,
|
||||
"#tableID, #searchID, #"+searchID+", #paginationID, #dialogEditBodyID, #dialogEditID, #dialogDeleteBodyID, #dialogDeleteID",
|
||||
"#"+paginationID,
|
||||
"outerHTML", "", "",
|
||||
dev_mdnonlabtemplateview.BeforeRequestContent(),
|
||||
dev_mdnonlabtemplateview.AfterRequestContent(),
|
||||
)
|
||||
|
||||
retval = append(retval, tableComp)
|
||||
retval = append(retval, tablePagination)
|
||||
return utils.ViewMulti(c, retval)
|
||||
}
|
||||
84
services/dev/md.nonlabtemplate.services.go
Normal file
84
services/dev/md.nonlabtemplate.services.go
Normal file
@@ -0,0 +1,84 @@
|
||||
package dev_services
|
||||
|
||||
import (
|
||||
"cpone/db"
|
||||
"cpone/models"
|
||||
dbx "cpone/package/database"
|
||||
"fmt"
|
||||
"math"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type MDNonLabTemplateServices struct {
|
||||
MDNonLabTemplateStore db.AppStore
|
||||
}
|
||||
|
||||
func NewMDNonLabTemplateServices(uStore db.AppStore) *MDNonLabTemplateServices {
|
||||
return &MDNonLabTemplateServices{
|
||||
MDNonLabTemplateStore: uStore,
|
||||
}
|
||||
}
|
||||
|
||||
func (mdnlt *MDNonLabTemplateServices) GetMDNonLabTemplateBreadcrumb() (models.BreadCrumbV1, error) {
|
||||
var ret models.BreadCrumbV1
|
||||
|
||||
breadcrumb := models.BreadCrumbV1{
|
||||
Title: "Master Non-lab Template",
|
||||
Item: []models.ItemBreadCrumbV1{
|
||||
{
|
||||
Item: "Dashboard",
|
||||
Url: "/dev/dashboard",
|
||||
},
|
||||
{
|
||||
Item: "Master",
|
||||
Url: "/dev/master",
|
||||
},
|
||||
{
|
||||
Item: "Non-lab Template",
|
||||
Url: "",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
ret = breadcrumb
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
func (mdnlt *MDNonLabTemplateServices) GetMDNonLabTemplateData(search string, currentPage int, rowPerPage int) ([]models.MDNonLabTemplate, int, error) {
|
||||
var ret []models.MDNonLabTemplate
|
||||
var totalData int
|
||||
|
||||
offset := (currentPage - 1) * rowPerPage
|
||||
prm := "%" + strings.TrimSpace(search) + "%"
|
||||
query := `
|
||||
SELECT COUNT(*)
|
||||
FROM nonlab_template
|
||||
WHERE NonlabTemplateIsActive = 'Y'
|
||||
AND (NonlabTemplateName LIKE ?)
|
||||
`
|
||||
if err := dbx.Handlex.Get(&totalData, query, prm); err != nil {
|
||||
return nil, 0, fmt.Errorf("error querying databases: %v", err)
|
||||
}
|
||||
|
||||
query = `
|
||||
SELECT
|
||||
NonlabTemplateID,
|
||||
NonlabTemplateName,
|
||||
NonlabTemplateFlagFisik,
|
||||
NonlabTemplateIsActive,
|
||||
NonlabTemplateCreated,
|
||||
NonlabTemplateLastUpdated
|
||||
FROM nonlab_template
|
||||
WHERE NonlabTemplateIsActive = 'Y'
|
||||
AND (NonlabTemplateName LIKE ?)
|
||||
ORDER BY NonlabTemplateID ASC
|
||||
LIMIT ? OFFSET ?
|
||||
`
|
||||
if err := dbx.Handlex.Select(&ret, query, prm, rowPerPage, offset); err != nil {
|
||||
return nil, 0, fmt.Errorf("error querying database: %v", err)
|
||||
}
|
||||
|
||||
totalPage := int(math.Ceil(float64(totalData) / float64(rowPerPage)))
|
||||
|
||||
return ret, totalPage, nil
|
||||
}
|
||||
@@ -2,7 +2,6 @@ package dev_mdnonlabtemplateview
|
||||
|
||||
import "cpone/component/customtextfield"
|
||||
import "cpone/models"
|
||||
import "cpone/component/table"
|
||||
import "cpone/layout"
|
||||
|
||||
templ MDNonLabTemplateScreen(
|
||||
@@ -82,11 +81,11 @@ templ MDNonLabTemplateScreen(
|
||||
</div>
|
||||
@filterComponent
|
||||
<div id="loading-parent" class="rounded">
|
||||
@tablecomponent
|
||||
@tableComponent
|
||||
@paginationComponent
|
||||
<div id="loading-child" class="rounded bg-transparent">
|
||||
<div id="loading-spinner" class="spinner-border text-primary d-none" style="width: 3rem; height: 3rem;" role="status">
|
||||
<span class="sr-only">Loading</span>
|
||||
<span class="sr-only">Loading...</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -128,7 +127,43 @@ templ CSSMDNonLabTemplate() {
|
||||
}
|
||||
|
||||
templ JSSMDNonLabTemplate() {
|
||||
<script>
|
||||
document.addEventListener('htmx:beforeRequest', function(event) {
|
||||
var indicator = document.querySelector('#loadingcontent');
|
||||
if (indicator) {
|
||||
console.log('Loading Start')
|
||||
}
|
||||
});
|
||||
|
||||
document.addEventListener('htmx:afterRequest', function(event) {
|
||||
var indicator = document.querySelector('#loadingcontent');
|
||||
if (indicator) {
|
||||
console.log('Loading End')
|
||||
}
|
||||
});
|
||||
</script>
|
||||
}
|
||||
|
||||
script BeforeRequestContent() {
|
||||
const loadingParent = document.getElementById("loading-parent");
|
||||
const loadingChild = document.getElementById("loading-child");
|
||||
const loadingSpinner = document.getElementById("loading-spinner");
|
||||
|
||||
loadingParent.classList.add("overlay");
|
||||
loadingParent.classList.add("overlay-block");
|
||||
loadingChild.classList.add("overlay-layer");
|
||||
loadingSpinner.classList.remove("d-none");
|
||||
}
|
||||
|
||||
script AfterRequestContent() {
|
||||
const loadingParent = document.getElementById("loading-parent");
|
||||
const loadingChild = document.getElementById("loading-child");
|
||||
const loadingSpinner = document.getElementById("loading-spinner");
|
||||
|
||||
loadingParent.classList.remove("overlay");
|
||||
loadingParent.classList.remove("overlay-block");
|
||||
loadingChild.classList.remove("overlay-layer");
|
||||
loadingSpinner.classList.add("d-none");
|
||||
}
|
||||
|
||||
templ ShowMDNonLabTemplate(
|
||||
|
||||
@@ -12,7 +12,6 @@ import "bytes"
|
||||
|
||||
import "cpone/component/customtextfield"
|
||||
import "cpone/models"
|
||||
import "cpone/component/table"
|
||||
import "cpone/layout"
|
||||
|
||||
func MDNonLabTemplateScreen(
|
||||
@@ -124,7 +123,7 @@ func MDNonLabTemplateScreen(
|
||||
var templ_7745c5c3_Var2 string
|
||||
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs("#" + dialogAddID)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtemplate.templ`, Line: 70, Col: 55}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtemplate.templ`, Line: 69, Col: 55}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -137,7 +136,7 @@ func MDNonLabTemplateScreen(
|
||||
var templ_7745c5c3_Var3 string
|
||||
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs("#" + dialogAddID)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtemplate.templ`, Line: 79, Col: 51}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtemplate.templ`, Line: 78, Col: 51}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -155,7 +154,7 @@ func MDNonLabTemplateScreen(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = tablecomponent.Render(ctx, templ_7745c5c3_Buffer)
|
||||
templ_7745c5c3_Err = tableComponent.Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -163,7 +162,7 @@ func MDNonLabTemplateScreen(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div id=\"loading-child\" class=\"rounded bg-transparent\"><div id=\"loading-spinner\" class=\"spinner-border text-primary d-none\" style=\"width: 3rem; height: 3rem;\" role=\"status\"><span class=\"sr-only\">Loading</span></div></div></div></div>")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div id=\"loading-child\" class=\"rounded bg-transparent\"><div id=\"loading-spinner\" class=\"spinner-border text-primary d-none\" style=\"width: 3rem; height: 3rem;\" role=\"status\"><span class=\"sr-only\">Loading...</span></div></div></div></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -211,6 +210,10 @@ func JSSMDNonLabTemplate() templ.Component {
|
||||
templ_7745c5c3_Var5 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<script>\r\n document.addEventListener('htmx:beforeRequest', function(event) {\r\n var indicator = document.querySelector('#loadingcontent');\r\n if (indicator) {\r\n console.log('Loading Start')\r\n }\r\n });\r\n\r\n document.addEventListener('htmx:afterRequest', function(event) {\r\n var indicator = document.querySelector('#loadingcontent');\r\n if (indicator) {\r\n console.log('Loading End')\r\n }\r\n });\r\n </script>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
@@ -218,6 +221,40 @@ func JSSMDNonLabTemplate() templ.Component {
|
||||
})
|
||||
}
|
||||
|
||||
func BeforeRequestContent() templ.ComponentScript {
|
||||
return templ.ComponentScript{
|
||||
Name: `__templ_BeforeRequestContent_5717`,
|
||||
Function: `function __templ_BeforeRequestContent_5717(){const loadingParent = document.getElementById("loading-parent");
|
||||
const loadingChild = document.getElementById("loading-child");
|
||||
const loadingSpinner = document.getElementById("loading-spinner");
|
||||
|
||||
loadingParent.classList.add("overlay");
|
||||
loadingParent.classList.add("overlay-block");
|
||||
loadingChild.classList.add("overlay-layer");
|
||||
loadingSpinner.classList.remove("d-none");
|
||||
}`,
|
||||
Call: templ.SafeScript(`__templ_BeforeRequestContent_5717`),
|
||||
CallInline: templ.SafeScriptInline(`__templ_BeforeRequestContent_5717`),
|
||||
}
|
||||
}
|
||||
|
||||
func AfterRequestContent() templ.ComponentScript {
|
||||
return templ.ComponentScript{
|
||||
Name: `__templ_AfterRequestContent_077f`,
|
||||
Function: `function __templ_AfterRequestContent_077f(){const loadingParent = document.getElementById("loading-parent");
|
||||
const loadingChild = document.getElementById("loading-child");
|
||||
const loadingSpinner = document.getElementById("loading-spinner");
|
||||
|
||||
loadingParent.classList.remove("overlay");
|
||||
loadingParent.classList.remove("overlay-block");
|
||||
loadingChild.classList.remove("overlay-layer");
|
||||
loadingSpinner.classList.add("d-none");
|
||||
}`,
|
||||
Call: templ.SafeScript(`__templ_AfterRequestContent_077f`),
|
||||
CallInline: templ.SafeScriptInline(`__templ_AfterRequestContent_077f`),
|
||||
}
|
||||
}
|
||||
|
||||
func ShowMDNonLabTemplate(
|
||||
title string,
|
||||
cmp templ.Component,
|
||||
|
||||
@@ -17,8 +17,8 @@ templ TableNonLabTemplate(
|
||||
hxIncludeDelete string,
|
||||
) {
|
||||
<div id={ tableID } hx-swap-oob="true">
|
||||
@tablecomponent.TableV3([]string{"ID", "NAMA TEMPLATE", "AKSI"},
|
||||
[]string{"20%", "60%", "20%"},
|
||||
@tablecomponent.TableV3([]string{"NAMA TEMPLATE", "FLAG FISIK", "AKSI"},
|
||||
[]string{"50%", "30%", "20%"},
|
||||
ItemRow(data,
|
||||
hxGetEdit,
|
||||
hxTargetEdit,
|
||||
@@ -50,8 +50,8 @@ templ ItemRow(
|
||||
}
|
||||
for _, i := range data {
|
||||
<tr>
|
||||
<td>{ i.NonLabTemplateID }</td>
|
||||
<td>{ i.NonLabTemplateName }</td>
|
||||
<td>{ i.NonLabTemplateFlagFisik }</td>
|
||||
<td>
|
||||
@TableAction(i.NonLabTemplateID,
|
||||
hxGetEdit,
|
||||
|
||||
@@ -55,8 +55,8 @@ func TableNonLabTemplate(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = tablecomponent.TableV3([]string{"ID", "NAMA TEMPLATE", "AKSI"},
|
||||
[]string{"20%", "60%", "20%"},
|
||||
templ_7745c5c3_Err = tablecomponent.TableV3([]string{"NAMA TEMPLATE", "FLAG FISIK", "AKSI"},
|
||||
[]string{"50%", "30%", "20%"},
|
||||
ItemRow(data,
|
||||
hxGetEdit,
|
||||
hxTargetEdit,
|
||||
@@ -116,9 +116,9 @@ func ItemRow(
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var4 string
|
||||
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(i.NonLabTemplateID)
|
||||
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(i.NonLabTemplateName)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtemplatetable.templ`, Line: 53, Col: 36}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtemplatetable.templ`, Line: 53, Col: 38}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -129,9 +129,9 @@ func ItemRow(
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var5 string
|
||||
templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(i.NonLabTemplateName)
|
||||
templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(i.NonLabTemplateFlagFisik)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtemplatetable.templ`, Line: 54, Col: 38}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtemplatetable.templ`, Line: 54, Col: 43}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
|
||||
Reference in New Issue
Block a user