Compare commits
2 Commits
897bdc176c
...
adib/md-no
| Author | SHA1 | Date | |
|---|---|---|---|
| 7f32ac1c1c | |||
| 709fcb316d |
@@ -13,6 +13,7 @@ import (
|
||||
dev_mdnonlabtemplateview "cpone/views/dev/mdnonlabtemplate"
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/a-h/templ"
|
||||
"github.com/labstack/echo/v4"
|
||||
@@ -24,6 +25,13 @@ type MDNonlabTemplateServices interface {
|
||||
GetListNonlabTemplate(search string, currentPage int, rowPerPage int) ([]models.MDNonlabTemplate, int, error)
|
||||
GetMDNonlabTemplateByID(id string) (models.MDNonlabTemplate, error)
|
||||
DeleteDataNonlabTemplate(id string) (models.MDNonlabTemplate, error)
|
||||
AddNonlabTemplate(nama string, fisik string) (models.MDNonlabTemplate, error)
|
||||
UpdateNonlabTemplate(id string, nama string, fisik string) (models.MDNonlabTemplate, error)
|
||||
GetIDNonlabTemplate(name string) (int, error)
|
||||
GetDetailByID(id string) (models.NonlabTemplateDetail, error)
|
||||
ListDetailByIDNonlabTemplate(id string) ([]models.NonlabTemplateDetail, error)
|
||||
AddDetailNonlabTemplate(idnonlab string, kode string, name string, flagActive string) ([]models.NonlabTemplateDetail, error)
|
||||
DeleteDetailNonlabTemplate(id string) ([]models.NonlabTemplateDetail, error)
|
||||
}
|
||||
|
||||
type MDNonlabTemplateHandler struct {
|
||||
@@ -49,6 +57,10 @@ func (nlt *MDNonlabTemplateHandler) HandleShowNonlabTemplateScreen(c echo.Contex
|
||||
dialogDeleteID := utils.GenerateRandomID("dialogdeleteid")
|
||||
dialogDeleteBodyID := utils.GenerateRandomID("dialogdeletebodyid")
|
||||
|
||||
tableDetailID := utils.GenerateRandomID("tabledetailid")
|
||||
detailEditID := utils.GenerateRandomID("detaileditid")
|
||||
detailDeleteID := utils.GenerateRandomID("detaildeleteid")
|
||||
|
||||
dataMenu, err := services.GetMenu()
|
||||
if err != nil {
|
||||
fmt.Println(dataMenu)
|
||||
@@ -125,19 +137,31 @@ func (nlt *MDNonlabTemplateHandler) HandleShowNonlabTemplateScreen(c echo.Contex
|
||||
)
|
||||
|
||||
// dialog add
|
||||
var detailData []models.NonlabTemplateDetail
|
||||
tableDetail := dev_mdnonlabtemplateview.TableDetail(detailData,
|
||||
tableDetailID,
|
||||
"/dev/md/nonlabtemplate/pilihdetail",
|
||||
"#"+detailEditID,
|
||||
"outerHTML",
|
||||
"#detailEditID, #detailDeleteID",
|
||||
"/dev/md/nonlabtemplate/deletedetail",
|
||||
"#"+detailDeleteID,
|
||||
"outerHTML",
|
||||
"#detailEditID, #detailDeleteID",
|
||||
)
|
||||
|
||||
dialogAddBody := dev_mdnonlabtemplateview.BodyFormMDNonlabTemplate(
|
||||
dialogAddBodyID,
|
||||
models.CustomTextFieldv2Prm{
|
||||
Name: "nonlabtemplateid",
|
||||
ID: "nonlabtemplateinputid",
|
||||
Type: "hidden",
|
||||
Value: dialogAddBodyID,
|
||||
Name: "nonlabtemplateid",
|
||||
ID: "nonlabtemplateinputid",
|
||||
Type: "hidden",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Nama Template",
|
||||
Name: "nonlabtemplatename",
|
||||
ID: "nonlabtemplateinputname",
|
||||
Type: "text",
|
||||
Placeholder: "Nama Template",
|
||||
Name: "nonlabtemplatename",
|
||||
ID: "nonlabtemplateinputname",
|
||||
Type: "text",
|
||||
},
|
||||
models.CustomCheckboxv1Prm{
|
||||
Text: "Template Fisik",
|
||||
@@ -145,13 +169,33 @@ func (nlt *MDNonlabTemplateHandler) HandleShowNonlabTemplateScreen(c echo.Contex
|
||||
ID: "nonlabtemplateinputname",
|
||||
Value: "N",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Placeholder: "Kode",
|
||||
Name: "nltdetailkode",
|
||||
ID: "nltdetailinputkode",
|
||||
Type: "text",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Placeholder: "Nama Detail",
|
||||
Name: "nltdetailname",
|
||||
ID: "nltdetailinputkode",
|
||||
Type: "text",
|
||||
},
|
||||
dev_mdnonlabtemplateview.BtnSimpanNama(
|
||||
"/dev/md/nonlabtemplate/simpanama",
|
||||
"#"+dialogAddBodyID,
|
||||
"outerHTML",
|
||||
"#"+dialogAddID,
|
||||
"#tableID, #paginationID, #searchID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID,
|
||||
false,
|
||||
"#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID,
|
||||
),
|
||||
dev_mdnonlabtemplateview.BtnAddDetail(
|
||||
"/dev/md/nonlabtemplate/adddetail",
|
||||
"#"+dialogAddBodyID,
|
||||
"outerHTML",
|
||||
"#"+dialogAddID,
|
||||
"#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID,
|
||||
),
|
||||
tableDetail,
|
||||
dev_mdnonlabtemplateview.JSShowModal(""),
|
||||
)
|
||||
dialogAddBtn := dev_mdnonlabtemplateview.ActionFormMDNonlabTmplt(
|
||||
@@ -172,7 +216,7 @@ func (nlt *MDNonlabTemplateHandler) HandleShowNonlabTemplateScreen(c echo.Contex
|
||||
Link: "/dev/md/nonlabtemplate/add",
|
||||
HxTarget: "#" + dialogAddBodyID,
|
||||
HxSwap: "outerHTML",
|
||||
HxInclude: "#tableID, #paginationID, #searchID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #" + searchID + ", #currpage" + paginationID,
|
||||
HxInclude: "#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #" + searchID + ", #currpage" + paginationID,
|
||||
ModalID: dialogAddID,
|
||||
ModalTitle: "New - Nonlab Template",
|
||||
DialogBody: dialogAddBody,
|
||||
@@ -229,6 +273,9 @@ func (nlt *MDNonlabTemplateHandler) HandleShowNonlabTemplateScreen(c echo.Contex
|
||||
dialogEditBodyID,
|
||||
dialogDeleteID,
|
||||
dialogDeleteBodyID,
|
||||
tableDetailID,
|
||||
detailEditID,
|
||||
detailDeleteID,
|
||||
breadcrumbComp,
|
||||
tableFilter,
|
||||
tableComp,
|
||||
@@ -488,6 +535,22 @@ func (nlt *MDNonlabTemplateHandler) HandleCloseFormAdd(c echo.Context) error {
|
||||
dialogAddID := c.FormValue("dialogAddID")
|
||||
searchID := c.FormValue("searchID")
|
||||
paginationID := c.FormValue("paginationID")
|
||||
tableDetailID := c.FormValue("tableDetailID")
|
||||
detailEditID := c.FormValue("detailEditID")
|
||||
detailDeleteID := c.FormValue("detailDeleteID")
|
||||
|
||||
var detailData []models.NonlabTemplateDetail
|
||||
tableDetail := dev_mdnonlabtemplateview.TableDetail(detailData,
|
||||
tableDetailID,
|
||||
"/dev/md/nonlabtemplate/pilihdetail",
|
||||
"#"+detailEditID,
|
||||
"outerHTML",
|
||||
"#detailEditID, #detailDeleteID",
|
||||
"/dev/md/nonlabtemplate/deletedetail",
|
||||
"#"+detailDeleteID,
|
||||
"outerHTML",
|
||||
"#detailEditID, #detailDeleteID",
|
||||
)
|
||||
|
||||
dialogAddBody := dev_mdnonlabtemplateview.BodyFormMDNonlabTemplate(
|
||||
dialogAddBodyID,
|
||||
@@ -497,10 +560,10 @@ func (nlt *MDNonlabTemplateHandler) HandleCloseFormAdd(c echo.Context) error {
|
||||
Type: "hidden",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Nama Template",
|
||||
Name: "nonlabtemplatename",
|
||||
ID: "nonlabtemplateinputname",
|
||||
Type: "text",
|
||||
Placeholder: "Nama Template",
|
||||
Name: "nonlabtemplatename",
|
||||
ID: "nonlabtemplateinputname",
|
||||
Type: "text",
|
||||
},
|
||||
models.CustomCheckboxv1Prm{
|
||||
Text: "Template Fisik",
|
||||
@@ -508,13 +571,33 @@ func (nlt *MDNonlabTemplateHandler) HandleCloseFormAdd(c echo.Context) error {
|
||||
ID: "nonlabtemplateinputname",
|
||||
Value: "N",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Placeholder: "Kode",
|
||||
Name: "nltdetailkode",
|
||||
ID: "nltdetailinputkode",
|
||||
Type: "text",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Placeholder: "Nama Detail",
|
||||
Name: "nltdetailname",
|
||||
ID: "nltdetailinputkode",
|
||||
Type: "text",
|
||||
},
|
||||
dev_mdnonlabtemplateview.BtnSimpanNama(
|
||||
"/dev/md/nonlabtemplate/simpanama",
|
||||
"#"+dialogAddBodyID,
|
||||
"outerHTML",
|
||||
"#"+dialogAddID,
|
||||
"#tableID, #paginationID, #searchID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID,
|
||||
false,
|
||||
"#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID,
|
||||
),
|
||||
dev_mdnonlabtemplateview.BtnAddDetail(
|
||||
"/dev/md/nonlabtemplate/adddetail",
|
||||
"#"+dialogAddBodyID,
|
||||
"outerHTML",
|
||||
"#"+dialogAddID,
|
||||
"#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID,
|
||||
),
|
||||
tableDetail,
|
||||
dev_mdnonlabtemplateview.JSHideModal("#"+dialogAddID),
|
||||
)
|
||||
return utils.View(c, dialogAddBody)
|
||||
@@ -526,26 +609,190 @@ func (nlt *MDNonlabTemplateHandler) HandleSimpanNama(c echo.Context) error {
|
||||
dialogAddID := c.FormValue("dialogAddID")
|
||||
searchID := c.FormValue("searchID")
|
||||
paginationID := c.FormValue("paginationID")
|
||||
logger.Info("Test Button")
|
||||
tableDetailID := c.FormValue("tableDetailID")
|
||||
detailEditID := c.FormValue("detailEditID")
|
||||
detailDeleteID := c.FormValue("detailDeleteID")
|
||||
|
||||
fisik := c.FormValue("nonlabtemplatefisik")
|
||||
name := c.FormValue("nonlabtemplatename")
|
||||
id := c.FormValue("nonlabtemplateid")
|
||||
logger.Info("Component ID", zap.Any("ID", id))
|
||||
var detailData []models.NonlabTemplateDetail
|
||||
var respAdd models.MDNonlabTemplate
|
||||
var err error
|
||||
|
||||
dialogAddBody := dev_mdnonlabtemplateview.BodyFormMDNonlabTemplate(
|
||||
if id != "" {
|
||||
detailData, err = nlt.MDNonlabTemplateServices.ListDetailByIDNonlabTemplate(id)
|
||||
logger.Info("error get id", zap.Any("err", err))
|
||||
}
|
||||
|
||||
flagFisik := "N"
|
||||
if fisik == "on" {
|
||||
flagFisik = "Y"
|
||||
}
|
||||
|
||||
formValidation := ""
|
||||
namaValidation := ""
|
||||
|
||||
if strings.TrimSpace(name) == "" {
|
||||
formValidation = "Nama tidak boleh kosong"
|
||||
namaValidation = "Nama tidak boleh kosong"
|
||||
}
|
||||
|
||||
if formValidation != "" || namaValidation != "" {
|
||||
tableDetail := dev_mdnonlabtemplateview.TableDetail(detailData,
|
||||
tableDetailID,
|
||||
"/dev/md/nonlabtemplate/pilihdetail",
|
||||
"#"+detailEditID,
|
||||
"outerHTML",
|
||||
"#detailEditID, #detailDeleteID",
|
||||
"/dev/md/nonlabtemplate/deletedetail",
|
||||
"#"+detailDeleteID,
|
||||
"outerHTML",
|
||||
"#detailEditID, #detailDeleteID",
|
||||
)
|
||||
nf := dev_mdnonlabtemplateview.BodyFormMDNonlabTemplate(
|
||||
dialogAddBodyID,
|
||||
models.CustomTextFieldv2Prm{
|
||||
Name: "nonlabtemplateid",
|
||||
ID: "nonlabtemplateinputid",
|
||||
Type: "hidden",
|
||||
Value: id,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Placeholder: "Nama Template",
|
||||
Name: "nonlabtemplatename",
|
||||
ID: "nonlabtemplateinputname",
|
||||
Type: "text",
|
||||
Value: name,
|
||||
ErrorMsg: namaValidation,
|
||||
},
|
||||
models.CustomCheckboxv1Prm{
|
||||
Text: "Template Fisik",
|
||||
Name: "nonlabtemplatefisik",
|
||||
ID: "nonlabtemplateinputname",
|
||||
Value: fisik,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Placeholder: "Kode",
|
||||
Name: "nltdetailkode",
|
||||
ID: "nltdetailinputkode",
|
||||
Type: "text",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Placeholder: "Nama Detail",
|
||||
Name: "nltdetailname",
|
||||
ID: "nltdetailinputkode",
|
||||
Type: "text",
|
||||
},
|
||||
dev_mdnonlabtemplateview.BtnSimpanNama(
|
||||
"/dev/md/nonlabtemplate/simpanama",
|
||||
"#"+dialogAddBodyID,
|
||||
"outerHTML",
|
||||
false,
|
||||
"#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID,
|
||||
),
|
||||
dev_mdnonlabtemplateview.BtnAddDetail(
|
||||
"/dev/md/nonlabtemplate/adddetail",
|
||||
"#"+dialogAddBodyID,
|
||||
"outerHTML",
|
||||
"#"+dialogAddID,
|
||||
"#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID,
|
||||
),
|
||||
tableDetail,
|
||||
dev_mdnonlabtemplateview.JSShowModal(""),
|
||||
)
|
||||
toast := customtoastv2.CustomToastV2Show("Warning", formValidation, "warning")
|
||||
return utils.ViewMulti(c, []templ.Component{toast, nf})
|
||||
}
|
||||
|
||||
if id != "" {
|
||||
respAdd, err = nlt.MDNonlabTemplateServices.UpdateNonlabTemplate(id, name, flagFisik)
|
||||
} else {
|
||||
respAdd, err = nlt.MDNonlabTemplateServices.AddNonlabTemplate(name, flagFisik)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Info("Error", zap.Any("Error", err), zap.Any("nama", name), zap.Any("fisik", flagFisik))
|
||||
nf := dev_mdnonlabtemplateview.BodyFormMDNonlabTemplate(
|
||||
dialogAddBodyID,
|
||||
models.CustomTextFieldv2Prm{
|
||||
Name: "nonlabtemplateid",
|
||||
ID: "nonlabtemplateinputid",
|
||||
Type: "hidden",
|
||||
Value: strconv.Itoa(int(respAdd.NonlabTemplateID)),
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Placeholder: "Nama Template",
|
||||
Name: "nonlabtemplatename",
|
||||
ID: "nonlabtemplateinputname",
|
||||
Type: "text",
|
||||
Value: name,
|
||||
},
|
||||
models.CustomCheckboxv1Prm{
|
||||
Text: "Template Fisik",
|
||||
Name: "nonlabtemplatefisik",
|
||||
ID: "nonlabtemplateinputname",
|
||||
Value: fisik,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Placeholder: "Kode",
|
||||
Name: "nltdetailkode",
|
||||
ID: "nltdetailinputkode",
|
||||
Type: "text",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Placeholder: "Nama Detail",
|
||||
Name: "nltdetailname",
|
||||
ID: "nltdetailinputkode",
|
||||
Type: "text",
|
||||
},
|
||||
dev_mdnonlabtemplateview.BtnSimpanNama(
|
||||
"/dev/md/nonlabtemplate/simpanama",
|
||||
"#"+dialogAddBodyID,
|
||||
"outerHTML",
|
||||
false,
|
||||
"#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID,
|
||||
),
|
||||
dev_mdnonlabtemplateview.BtnAddDetail(
|
||||
"/dev/md/nonlabtemplate/adddetail",
|
||||
"#"+dialogAddBodyID,
|
||||
"outerHTML",
|
||||
"#"+dialogAddID,
|
||||
"#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID,
|
||||
),
|
||||
dev_mdnonlabtemplateview.TableDetail(detailData,
|
||||
tableDetailID,
|
||||
"/dev/md/nonlabtemplate/pilihdetail",
|
||||
"#"+detailEditID,
|
||||
"outerHTML",
|
||||
"#detailEditID, #detailDeleteID",
|
||||
"/dev/md/nonlabtemplate/deletedetail",
|
||||
"#"+detailDeleteID,
|
||||
"outerHTML",
|
||||
"#detailEditID, #detailDeleteID",
|
||||
),
|
||||
dev_mdnonlabtemplateview.JSShowModal(""),
|
||||
)
|
||||
toast := customtoastv2.CustomToastV2Show("Error", err.Error(), "danger")
|
||||
return utils.ViewMulti(c, []templ.Component{toast, nf})
|
||||
}
|
||||
logger.Info("ADD Nonlab Template", zap.Any("response", respAdd))
|
||||
|
||||
returnBody := dev_mdnonlabtemplateview.BodyFormMDNonlabTemplate(
|
||||
dialogAddBodyID,
|
||||
models.CustomTextFieldv2Prm{
|
||||
Name: "nonlabtemplateid",
|
||||
ID: "nonlabtemplateinputid",
|
||||
Type: "hidden",
|
||||
Name: "nonlabtemplateid",
|
||||
ID: "nonlabtemplateinputid",
|
||||
Type: "hidden",
|
||||
Value: strconv.Itoa(int(respAdd.NonlabTemplateID)),
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Nama Template",
|
||||
Name: "nonlabtemplatename",
|
||||
ID: "nonlabtemplateinputname",
|
||||
Type: "text",
|
||||
Value: name,
|
||||
Placeholder: "Nama Template",
|
||||
Name: "nonlabtemplatename",
|
||||
ID: "nonlabtemplateinputname",
|
||||
Type: "text",
|
||||
Value: name,
|
||||
},
|
||||
models.CustomCheckboxv1Prm{
|
||||
Text: "Template Fisik",
|
||||
@@ -553,14 +800,396 @@ func (nlt *MDNonlabTemplateHandler) HandleSimpanNama(c echo.Context) error {
|
||||
ID: "nonlabtemplateinputname",
|
||||
Value: fisik,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Placeholder: "Kode",
|
||||
Name: "nltdetailkode",
|
||||
ID: "nltdetailinputkode",
|
||||
Type: "text",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Placeholder: "Nama Detail",
|
||||
Name: "nltdetailname",
|
||||
ID: "nltdetailinputkode",
|
||||
Type: "text",
|
||||
},
|
||||
dev_mdnonlabtemplateview.BtnSimpanNama(
|
||||
"/dev/md/nonlabtemplate/simpanama",
|
||||
"#"+dialogAddBodyID,
|
||||
"outerHTML",
|
||||
true,
|
||||
"#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID,
|
||||
),
|
||||
dev_mdnonlabtemplateview.BtnAddDetail(
|
||||
"/dev/md/nonlabtemplate/adddetail",
|
||||
"#"+dialogAddBodyID,
|
||||
"outerHTML",
|
||||
"#"+dialogAddID,
|
||||
"#tableID, #paginationID, #searchID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID,
|
||||
"#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID,
|
||||
),
|
||||
dev_mdnonlabtemplateview.TableDetail(detailData,
|
||||
tableDetailID,
|
||||
"/dev/md/nonlabtemplate/pilihdetail",
|
||||
"#"+detailEditID,
|
||||
"outerHTML",
|
||||
"#detailEditID, #detailDeleteID",
|
||||
"/dev/md/nonlabtemplate/deletedetail",
|
||||
"#"+detailDeleteID,
|
||||
"outerHTML",
|
||||
"#detailEditID, #detailDeleteID",
|
||||
),
|
||||
dev_mdnonlabtemplateview.JSShowModal(""),
|
||||
)
|
||||
return utils.View(c, dialogAddBody)
|
||||
|
||||
var msg string
|
||||
if id != "" {
|
||||
msg = "Success update data nonlab template "
|
||||
} else {
|
||||
msg = "Success insert data nonlab template "
|
||||
}
|
||||
|
||||
toast := customtoastv2.CustomToastV2Show("Success", msg+name, "success")
|
||||
return utils.ViewMulti(c, []templ.Component{toast, returnBody})
|
||||
}
|
||||
|
||||
func (nlt *MDNonlabTemplateHandler) HandleAddDetail(c echo.Context) error {
|
||||
logger, _ := zap.NewProduction()
|
||||
|
||||
dialogAddBodyID := c.FormValue("dialogAddBodyID")
|
||||
dialogAddID := c.FormValue("dialogAddID")
|
||||
searchID := c.FormValue("searchID")
|
||||
paginationID := c.FormValue("paginationID")
|
||||
tableDetailID := c.FormValue("tableDetailID")
|
||||
detailEditID := c.FormValue("detailEditID")
|
||||
detailDeleteID := c.FormValue("detailDeleteID")
|
||||
|
||||
id := c.FormValue("nonlabtemplateid")
|
||||
template := c.FormValue("nonlabtemplatename")
|
||||
fisik := c.FormValue("nonlabtemplatefisik")
|
||||
|
||||
kode := c.FormValue("nltdetailkode")
|
||||
name := c.FormValue("nltdetailname")
|
||||
|
||||
var detailData []models.NonlabTemplateDetail
|
||||
var err error
|
||||
|
||||
if fisik == "Y" {
|
||||
fisik = "on"
|
||||
} else {
|
||||
fisik = "off"
|
||||
}
|
||||
|
||||
// default active
|
||||
flagActive := "Y"
|
||||
|
||||
formValidation := ""
|
||||
templateValidation := ""
|
||||
kodeValidation := ""
|
||||
namaValidation := ""
|
||||
|
||||
if strings.TrimSpace(id) == "" {
|
||||
formValidation = "Simpan nama template dulu"
|
||||
templateValidation = "Simpan nama template dulu"
|
||||
}
|
||||
if strings.TrimSpace(kode) == "" {
|
||||
formValidation = "Kode tidak boleh kosong"
|
||||
kodeValidation = "Kode tidak boleh kosong"
|
||||
}
|
||||
if strings.TrimSpace(name) == "" {
|
||||
formValidation = "Nama tidak boleh kosong"
|
||||
namaValidation = "Nama tidak boleh kosong"
|
||||
}
|
||||
|
||||
if formValidation != "" || templateValidation != "" || kodeValidation != "" || namaValidation != "" {
|
||||
nf := dev_mdnonlabtemplateview.BodyFormMDNonlabTemplate(
|
||||
dialogAddBodyID,
|
||||
models.CustomTextFieldv2Prm{
|
||||
Name: "nonlabtemplateid",
|
||||
ID: "nonlabtemplateinputid",
|
||||
Type: "hidden",
|
||||
Value: id,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Placeholder: "Nama Template",
|
||||
Name: "nonlabtemplatename",
|
||||
ID: "nonlabtemplateinputname",
|
||||
Type: "text",
|
||||
Value: template,
|
||||
ErrorMsg: templateValidation,
|
||||
},
|
||||
models.CustomCheckboxv1Prm{
|
||||
Text: "Template Fisik",
|
||||
Name: "nonlabtemplatefisik",
|
||||
ID: "nonlabtemplateinputname",
|
||||
Value: fisik,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Placeholder: "Kode",
|
||||
Name: "nltdetailkode",
|
||||
ID: "nltdetailinputkode",
|
||||
Type: "text",
|
||||
Value: kode,
|
||||
ErrorMsg: kodeValidation,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Placeholder: "Nama Detail",
|
||||
Name: "nltdetailname",
|
||||
ID: "nltdetailinputkode",
|
||||
Type: "text",
|
||||
Value: name,
|
||||
ErrorMsg: namaValidation,
|
||||
},
|
||||
dev_mdnonlabtemplateview.BtnSimpanNama(
|
||||
"/dev/md/nonlabtemplate/simpanama",
|
||||
"#"+dialogAddBodyID,
|
||||
"outerHTML",
|
||||
true,
|
||||
"#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID,
|
||||
),
|
||||
dev_mdnonlabtemplateview.BtnAddDetail(
|
||||
"/dev/md/nonlabtemplate/adddetail",
|
||||
"#"+dialogAddBodyID,
|
||||
"outerHTML",
|
||||
"#"+dialogAddID,
|
||||
"#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID,
|
||||
),
|
||||
dev_mdnonlabtemplateview.TableDetail(detailData,
|
||||
tableDetailID,
|
||||
"/dev/md/nonlabtemplate/pilihdetail",
|
||||
"#"+detailEditID,
|
||||
"outerHTML",
|
||||
"#detailEditID, #detailDeleteID",
|
||||
"/dev/md/nonlabtemplate/deletedetail",
|
||||
"#"+detailDeleteID,
|
||||
"outerHTML",
|
||||
"#detailEditID, #detailDeleteID",
|
||||
),
|
||||
dev_mdnonlabtemplateview.JSShowModal(""),
|
||||
)
|
||||
toast := customtoastv2.CustomToastV2Show("Warning", formValidation, "warning")
|
||||
return utils.ViewMulti(c, []templ.Component{toast, nf})
|
||||
}
|
||||
|
||||
resp, err := nlt.MDNonlabTemplateServices.AddDetailNonlabTemplate(id, kode, name, flagActive)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Info("Error", zap.Any("Error", err), zap.Any("id", id), zap.Any("kode", kode), zap.Any("nama", name))
|
||||
nf := dev_mdnonlabtemplateview.BodyFormMDNonlabTemplate(
|
||||
dialogAddBodyID,
|
||||
models.CustomTextFieldv2Prm{
|
||||
Name: "nonlabtemplateid",
|
||||
ID: "nonlabtemplateinputid",
|
||||
Type: "hidden",
|
||||
Value: id,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Placeholder: "Nama Template",
|
||||
Name: "nonlabtemplatename",
|
||||
ID: "nonlabtemplateinputname",
|
||||
Type: "text",
|
||||
Value: template,
|
||||
},
|
||||
models.CustomCheckboxv1Prm{
|
||||
Text: "Template Fisik",
|
||||
Name: "nonlabtemplatefisik",
|
||||
ID: "nonlabtemplateinputname",
|
||||
Value: fisik,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Placeholder: "Kode",
|
||||
Name: "nltdetailkode",
|
||||
ID: "nltdetailinputkode",
|
||||
Type: "text",
|
||||
Value: kode,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Placeholder: "Nama Detail",
|
||||
Name: "nltdetailname",
|
||||
ID: "nltdetailinputkode",
|
||||
Type: "text",
|
||||
Value: name,
|
||||
},
|
||||
dev_mdnonlabtemplateview.BtnSimpanNama(
|
||||
"/dev/md/nonlabtemplate/simpanama",
|
||||
"#"+dialogAddBodyID,
|
||||
"outerHTML",
|
||||
true,
|
||||
"#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID,
|
||||
),
|
||||
dev_mdnonlabtemplateview.BtnAddDetail(
|
||||
"/dev/md/nonlabtemplate/adddetail",
|
||||
"#"+dialogAddBodyID,
|
||||
"outerHTML",
|
||||
"#"+dialogAddID,
|
||||
"#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID,
|
||||
),
|
||||
dev_mdnonlabtemplateview.TableDetail(detailData,
|
||||
tableDetailID,
|
||||
"/dev/md/nonlabtemplate/pilihdetail",
|
||||
"#"+detailEditID,
|
||||
"outerHTML",
|
||||
"#detailEditID, #detailDeleteID",
|
||||
"/dev/md/nonlabtemplate/deletedetail",
|
||||
"#"+detailDeleteID,
|
||||
"outerHTML",
|
||||
"#detailEditID, #detailDeleteID",
|
||||
),
|
||||
dev_mdnonlabtemplateview.JSShowModal(""),
|
||||
)
|
||||
toast := customtoastv2.CustomToastV2Show("Error", err.Error(), "danger")
|
||||
return utils.ViewMulti(c, []templ.Component{toast, nf})
|
||||
}
|
||||
logger.Info("ADD Nonlab Template Detail", zap.Any("response", resp))
|
||||
|
||||
returnBody := dev_mdnonlabtemplateview.BodyFormMDNonlabTemplate(
|
||||
dialogAddBodyID,
|
||||
models.CustomTextFieldv2Prm{
|
||||
Name: "nonlabtemplateid",
|
||||
ID: "nonlabtemplateinputid",
|
||||
Type: "hidden",
|
||||
Value: id,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Placeholder: "Nama Template",
|
||||
Name: "nonlabtemplatename",
|
||||
ID: "nonlabtemplateinputname",
|
||||
Type: "text",
|
||||
Value: template,
|
||||
},
|
||||
models.CustomCheckboxv1Prm{
|
||||
Text: "Template Fisik",
|
||||
Name: "nonlabtemplatefisik",
|
||||
ID: "nonlabtemplateinputname",
|
||||
Value: fisik,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Placeholder: "Kode",
|
||||
Name: "nltdetailkode",
|
||||
ID: "nltdetailinputkode",
|
||||
Type: "text",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Placeholder: "Nama Detail",
|
||||
Name: "nltdetailname",
|
||||
ID: "nltdetailinputkode",
|
||||
Type: "text",
|
||||
},
|
||||
dev_mdnonlabtemplateview.BtnSimpanNama(
|
||||
"/dev/md/nonlabtemplate/simpanama",
|
||||
"#"+dialogAddBodyID,
|
||||
"outerHTML",
|
||||
true,
|
||||
"#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID,
|
||||
),
|
||||
dev_mdnonlabtemplateview.BtnAddDetail(
|
||||
"/dev/md/nonlabtemplate/adddetail",
|
||||
"#"+dialogAddBodyID,
|
||||
"outerHTML",
|
||||
"#"+dialogAddID,
|
||||
"#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID,
|
||||
),
|
||||
dev_mdnonlabtemplateview.TableDetail(resp,
|
||||
tableDetailID,
|
||||
"/dev/md/nonlabtemplate/pilihdetail",
|
||||
"#"+detailEditID,
|
||||
"outerHTML",
|
||||
"#detailEditID, #detailDeleteID",
|
||||
"/dev/md/nonlabtemplate/deletedetail",
|
||||
"#"+detailDeleteID,
|
||||
"outerHTML",
|
||||
"#detailEditID, #detailDeleteID",
|
||||
),
|
||||
dev_mdnonlabtemplateview.JSShowModal(""),
|
||||
)
|
||||
toast := customtoastv2.CustomToastV2Show("Success", "success insert detail "+name, "success")
|
||||
return utils.ViewMulti(c, []templ.Component{toast, returnBody})
|
||||
}
|
||||
|
||||
func (nlt *MDNonlabTemplateHandler) HandleDeleteDetail(c echo.Context) error {
|
||||
logger, _ := zap.NewProduction()
|
||||
defer logger.Sync()
|
||||
|
||||
dialogAddBodyID := c.FormValue("dialogAddBodyID")
|
||||
dialogAddID := c.FormValue("dialogAddID")
|
||||
searchID := c.FormValue("searchID")
|
||||
paginationID := c.FormValue("paginationID")
|
||||
tableDetailID := c.FormValue("tableDetailID")
|
||||
detailEditID := c.FormValue("detailEditID")
|
||||
detailDeleteID := c.FormValue("detailDeleteID")
|
||||
|
||||
id := c.QueryParam("id")
|
||||
logger.Info("ID Selected", zap.Any("ID", id))
|
||||
|
||||
fisik := c.FormValue("nonlabtemplatefisik")
|
||||
name := c.FormValue("nonlabtemplatename")
|
||||
idTemplate := c.FormValue("nonlabtemplateid")
|
||||
|
||||
respDel, err := nlt.MDNonlabTemplateServices.DeleteDetailNonlabTemplate(id)
|
||||
if err != nil {
|
||||
logger.Error("Error", zap.Any("error", err))
|
||||
}
|
||||
logger.Info("Resp Delete", zap.Any("resp", respDel))
|
||||
|
||||
nf := dev_mdnonlabtemplateview.BodyFormMDNonlabTemplate(
|
||||
dialogAddBodyID,
|
||||
models.CustomTextFieldv2Prm{
|
||||
Name: "nonlabtemplateid",
|
||||
ID: "nonlabtemplateinputid",
|
||||
Type: "hidden",
|
||||
Value: idTemplate,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Placeholder: "Nama Template",
|
||||
Name: "nonlabtemplatename",
|
||||
ID: "nonlabtemplateinputname",
|
||||
Type: "text",
|
||||
Value: name,
|
||||
},
|
||||
models.CustomCheckboxv1Prm{
|
||||
Text: "Template Fisik",
|
||||
Name: "nonlabtemplatefisik",
|
||||
ID: "nonlabtemplateinputname",
|
||||
Value: fisik,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Placeholder: "Kode",
|
||||
Name: "nltdetailkode",
|
||||
ID: "nltdetailinputkode",
|
||||
Type: "text",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Placeholder: "Nama Detail",
|
||||
Name: "nltdetailname",
|
||||
ID: "nltdetailinputkode",
|
||||
Type: "text",
|
||||
},
|
||||
dev_mdnonlabtemplateview.BtnSimpanNama(
|
||||
"/dev/md/nonlabtemplate/simpanama",
|
||||
"#"+dialogAddBodyID,
|
||||
"outerHTML",
|
||||
true,
|
||||
"#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID,
|
||||
),
|
||||
dev_mdnonlabtemplateview.BtnAddDetail(
|
||||
"/dev/md/nonlabtemplate/adddetail",
|
||||
"#"+dialogAddBodyID,
|
||||
"outerHTML",
|
||||
"#"+dialogAddID,
|
||||
"#tableID, #paginationID, #searchID, #tableDetailID, #detailEditID, #detailDeleteID, #dialogAddBodyID, #dialogAddID, #dialogDeleteBodyID, #dialogDeleteID, #dialogEditBodyID, #"+searchID+", #currpage"+paginationID,
|
||||
),
|
||||
dev_mdnonlabtemplateview.TableDetail(respDel,
|
||||
tableDetailID,
|
||||
"/dev/md/nonlabtemplate/pilihdetail",
|
||||
"#"+detailEditID,
|
||||
"outerHTML",
|
||||
"#detailEditID, #detailDeleteID",
|
||||
"/dev/md/nonlabtemplate/deletedetail",
|
||||
"#"+detailDeleteID,
|
||||
"outerHTML",
|
||||
"#detailEditID, #detailDeleteID",
|
||||
),
|
||||
dev_mdnonlabtemplateview.JSShowModal(""),
|
||||
)
|
||||
toast := customtoastv2.CustomToastV2Show("Success", "Success delete detail", "success")
|
||||
|
||||
return utils.ViewMulti(c, []templ.Component{toast, nf})
|
||||
}
|
||||
|
||||
@@ -289,6 +289,8 @@ func SetupRoutesDev(app *echo.Echo, appStore db.AppStore) {
|
||||
dev.POST("/md/nonlabtemplate/delete", devMDNonlabTemplateHandlers.HandleDelete)
|
||||
dev.POST("/md/nonlabtemplate/simpanama", devMDNonlabTemplateHandlers.HandleSimpanNama)
|
||||
dev.POST("/md/nonlabtemplate/closeaddform", devMDNonlabTemplateHandlers.HandleCloseFormAdd)
|
||||
dev.POST("/md/nonlabtemplate/adddetail", devMDNonlabTemplateHandlers.HandleAddDetail)
|
||||
dev.POST("/md/nonlabtemplate/deletedetail", devMDNonlabTemplateHandlers.HandleDeleteDetail)
|
||||
|
||||
// masterdata nat unit
|
||||
devMdNatUnitServices := dev_services.NewMdNatUnitServices(appStore)
|
||||
|
||||
@@ -15,6 +15,17 @@ type MDNonlabTemplate struct {
|
||||
NonlabTemplateDeleteUserID string `db:"NonlabTemplateDeleteUserID"`
|
||||
}
|
||||
|
||||
type NonlabTemplateDetail struct {
|
||||
NonlabTemplateDetailID int `db:"NonlabTemplateDetailID"`
|
||||
NonlabTemplateDetailNonlabTemplateID int `db:"NonlabTemplateDetailNonlabTemplateID"`
|
||||
NonlabTemplateDetailCode string `db:"NonlabTemplateDetailCode"`
|
||||
NonlabTemplateDetailName string `db:"NonlabTemplateDetailName"`
|
||||
NonlabTemplateDetaiNat_UnitID string `db:"NonlabTemplateDetaiNat_UnitID"`
|
||||
NonlabTemplateDetailFlagActive string `db:"NonlabTemplateDetailFlagActive"`
|
||||
NonlabTemplateDetaiM_LangID string `db:"NonlabTemplateDetaiM_LangID"`
|
||||
NonlabTemplateDetailIsActive string `db:"NonlabTemplateDetailIsActive"`
|
||||
}
|
||||
|
||||
type MDNonlabTemplateForm struct {
|
||||
IDComponent string
|
||||
Link string
|
||||
|
||||
@@ -6,6 +6,7 @@ import (
|
||||
dbx "cpone/package/database"
|
||||
"fmt"
|
||||
"math"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"go.uber.org/zap"
|
||||
@@ -127,9 +128,303 @@ func (nlt *MDNonlabTemplateServices) DeleteDataNonlabTemplate(id string) (models
|
||||
_, err := dlt.RowsAffected()
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("Error delete sample station", zap.String("id", id))
|
||||
logger.Error("Error delete nonlab template", zap.String("id", id))
|
||||
return ret, fmt.Errorf("query failed delete non lab template")
|
||||
}
|
||||
|
||||
return nlt.GetMDNonlabTemplateByID(id)
|
||||
}
|
||||
|
||||
func (nlt *MDNonlabTemplateServices) AddNonlabTemplate(nama string, fisik string) (models.MDNonlabTemplate, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
var ret models.MDNonlabTemplate
|
||||
|
||||
var count int
|
||||
var prmName = "%" + nama + "%"
|
||||
q := `
|
||||
SELECT COUNT(*)
|
||||
FROM nonlab_template
|
||||
WHERE NonlabTemplateName LIKE ?
|
||||
AND NonlabTemplateIsActive = 'Y'
|
||||
`
|
||||
err := dbx.Handlex.Get(&count, q, prmName)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("cek duplicate", zap.Any("nama", prmName))
|
||||
return ret, fmt.Errorf("query failed to cek duplicate: %v", err)
|
||||
}
|
||||
if count > 0 {
|
||||
defer logger.Sync()
|
||||
logger.Error("duplicate data", zap.Any("nama", nama))
|
||||
return ret, fmt.Errorf("duplicate nama")
|
||||
}
|
||||
|
||||
q = `
|
||||
INSERT INTO nonlab_template (
|
||||
NonlabTemplateName,
|
||||
NonlabTemplateFlagFisik,
|
||||
NonlabTemplateCreated,
|
||||
NonlabTemplateCreatedUserID
|
||||
) VALUES (?,?,NOW(),1);
|
||||
`
|
||||
rsp := dbx.Handlex.MustExec(q, nama, fisik)
|
||||
insertedID, err := rsp.LastInsertId()
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("error insert data", zap.Any("nama", nama))
|
||||
return ret, fmt.Errorf("failed insert data: %v", err)
|
||||
}
|
||||
|
||||
s := strconv.Itoa(int(insertedID))
|
||||
return nlt.GetMDNonlabTemplateByID(s)
|
||||
}
|
||||
|
||||
func (nlt *MDNonlabTemplateServices) UpdateNonlabTemplate(id string, nama string, fisik string) (models.MDNonlabTemplate, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
var ret models.MDNonlabTemplate
|
||||
|
||||
var count int
|
||||
var prmNama = "%" + nama + "%"
|
||||
q := `
|
||||
SELECT COUNT(*)
|
||||
FROM nonlab_template
|
||||
WHERE NonlabTemplateName LIKE ?
|
||||
AND NonlabTemplateIsActive = 'Y'
|
||||
AND NonlabTemplateID <> ?
|
||||
`
|
||||
err := dbx.Handlex.Get(&count, q, prmNama, id)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("cek duplicate", zap.Any("nama", prmNama))
|
||||
return ret, fmt.Errorf("query failed to cek duplicate: %v", err)
|
||||
}
|
||||
if count > 0 {
|
||||
defer logger.Sync()
|
||||
logger.Error("duplicate data", zap.Any("nama", nama))
|
||||
return ret, fmt.Errorf("duplicate nama")
|
||||
}
|
||||
|
||||
q = `
|
||||
UPDATE nonlab_template SET
|
||||
NonlabTemplateName = ?,
|
||||
NonlabTemplateFlagFisik = ?,
|
||||
NonlabTemplateLastUpdated = NOW(),
|
||||
NonlabTemplateLastUpdatedUserID = 1
|
||||
WHERE NonlabTemplateID = ?;
|
||||
`
|
||||
respUpdt := dbx.Handlex.MustExec(q, nama, fisik, id)
|
||||
_, err = respUpdt.RowsAffected()
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("error update data", zap.Any("name", nama))
|
||||
return ret, fmt.Errorf("query failed to update data")
|
||||
}
|
||||
|
||||
return nlt.GetMDNonlabTemplateByID(id)
|
||||
}
|
||||
|
||||
func (nlt *MDNonlabTemplateServices) GetIDNonlabTemplate(name string) (int, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
var ret int
|
||||
|
||||
prmName := "%" + name + "%"
|
||||
q := `
|
||||
SELECT
|
||||
NonlabTemplateID
|
||||
FROM nonlab_template
|
||||
WHERE NonlabTemplateName LIKE ?
|
||||
AND NonlabTemplateIsActive = 'Y'
|
||||
`
|
||||
err := dbx.Handlex.Get(&ret, q, prmName)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("Error get data non lab template by id vs",
|
||||
zap.String("name", prmName),
|
||||
zap.Error(err),
|
||||
)
|
||||
return ret, fmt.Errorf("QUERY FAILED GET DATA BY NAME")
|
||||
}
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
func (nlt *MDNonlabTemplateServices) GetDetailByID(id string) (models.NonlabTemplateDetail, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
var ret models.NonlabTemplateDetail
|
||||
|
||||
q := `
|
||||
SELECT
|
||||
NonlabTemplateDetailID,
|
||||
NonlabTemplateDetailNonlabTemplateID,
|
||||
NonlabTemplateDetailCode,
|
||||
NonlabTemplateDetailName,
|
||||
NonlabTemplateDetaiNat_UnitID,
|
||||
NonlabTemplateDetailFlagActive,
|
||||
NonlabTemplateDetaiM_LangID,
|
||||
NonlabTemplateDetailIsActive
|
||||
FROM nonlab_template_detail
|
||||
WHERE NonlabTemplateDetailID = ?
|
||||
AND NonlabTemplateDetailIsActive = 'Y'
|
||||
`
|
||||
err := dbx.Handlex.Get(&ret, q, id)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("Error get data detail nonlab template", zap.Any("ID", id))
|
||||
return ret, fmt.Errorf("query failed, error get data by id : %v", err)
|
||||
}
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
func (nlt *MDNonlabTemplateServices) ListDetailByIDNonlabTemplate(id string) ([]models.NonlabTemplateDetail, error) {
|
||||
var ret []models.NonlabTemplateDetail
|
||||
var totalData int
|
||||
|
||||
query := `
|
||||
SELECT COUNT(*)
|
||||
FROM nonlab_template_detail
|
||||
WHERE NonlabTemplateDetailNonlabTemplateID = ?
|
||||
AND NonlabTemplateDetailIsActive = 'Y'
|
||||
`
|
||||
if err := dbx.Handlex.Get(&totalData, query, id); err != nil {
|
||||
return ret, fmt.Errorf("error querying databases: %v", err)
|
||||
}
|
||||
|
||||
query = `
|
||||
SELECT
|
||||
NonlabTemplateDetailID,
|
||||
NonlabTemplateDetailNonlabTemplateID,
|
||||
NonlabTemplateDetailCode,
|
||||
NonlabTemplateDetailName,
|
||||
NonlabTemplateDetaiNat_UnitID,
|
||||
NonlabTemplateDetailFlagActive,
|
||||
NonlabTemplateDetaiM_LangID,
|
||||
NonlabTemplateDetailIsActive
|
||||
FROM nonlab_template_detail
|
||||
WHERE NonlabTemplateDetailNonlabTemplateID = ?
|
||||
AND NonlabTemplateDetailIsActive = 'Y'
|
||||
`
|
||||
if err := dbx.Handlex.Select(&ret, query, id); err != nil {
|
||||
return ret, fmt.Errorf("error querying database: %v", err)
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
func (nlt *MDNonlabTemplateServices) AddDetailNonlabTemplate(idnonlab string, kode string, name string, flagActive string) ([]models.NonlabTemplateDetail, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
var ret []models.NonlabTemplateDetail
|
||||
|
||||
var count int
|
||||
prmKode := "%" + kode + "%"
|
||||
prmName := "%" + name + "%"
|
||||
q := `
|
||||
SELECT COUNT(*)
|
||||
FROM nonlab_template_detail
|
||||
WHERE (NonlabTemplateDetailCode LIKE ? OR NonlabTemplateDetailName LIKE ?)
|
||||
AND NonlabTemplateDetailNonlabTemplateID = ?
|
||||
AND NonlabTemplateDetailIsActive = 'Y'
|
||||
`
|
||||
err := dbx.Handlex.Get(&count, q, prmKode, prmName, idnonlab)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("cek duplicate", zap.Any("kode", prmKode), zap.Any("nama", prmName))
|
||||
return ret, fmt.Errorf("query failed to cek duplicate: %v", err)
|
||||
}
|
||||
if count > 0 {
|
||||
defer logger.Sync()
|
||||
logger.Error("data duplicate", zap.Any("kode", prmKode), zap.Any("nama", prmName))
|
||||
return ret, fmt.Errorf("terdapat data duplikat")
|
||||
}
|
||||
|
||||
q = `
|
||||
INSERT INTO nonlab_template_detail (
|
||||
NonlabTemplateDetailNonlabTemplateID,
|
||||
NonlabTemplateDetailCode,
|
||||
NonlabTemplateDetailName,
|
||||
NonlabTemplateDetailFlagActive,
|
||||
NonlabTemplateDetailCreated
|
||||
) VALUES(?,?,?,?,NOW())
|
||||
`
|
||||
rsp := dbx.Handlex.MustExec(q, idnonlab, kode, name, flagActive)
|
||||
insertedID, err := rsp.LastInsertId()
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("error insert data", zap.Any("kode", prmKode), zap.Any("nama", prmName))
|
||||
return ret, fmt.Errorf("query failed to insert data: %v", err)
|
||||
}
|
||||
logger.Info("Success Insert data", zap.Any("id", insertedID))
|
||||
|
||||
return nlt.ListDetailByIDNonlabTemplate(idnonlab)
|
||||
}
|
||||
|
||||
func (nlt *MDNonlabTemplateServices) DeleteDetailNonlabTemplate(id string) ([]models.NonlabTemplateDetail, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
var temp models.NonlabTemplateDetail
|
||||
var ret []models.NonlabTemplateDetail
|
||||
|
||||
temp, err := nlt.GetDetailByID(id)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("Error get current detail nonlab template", zap.Any("id", id))
|
||||
return ret, fmt.Errorf("query failed get current detail nonlab template")
|
||||
}
|
||||
|
||||
q := `
|
||||
UPDATE nonlab_template_detail
|
||||
SET
|
||||
NonlabTemplateDetailIsActive = 'N',
|
||||
NonlabTemplateDetailLastUpdated = NOW()
|
||||
WHERE NonlabTemplateDetailID = ?
|
||||
AND NonlabTemplateDetailNonlabTemplateID = ?
|
||||
`
|
||||
dlt := dbx.Handlex.MustExec(q, id, temp.NonlabTemplateDetailNonlabTemplateID)
|
||||
_, err = dlt.RowsAffected()
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("Error delete detail nonlab template", zap.Any("id", id))
|
||||
return ret, fmt.Errorf("query failed delete detail nonlab template")
|
||||
}
|
||||
|
||||
s := strconv.Itoa(int(temp.NonlabTemplateDetailNonlabTemplateID))
|
||||
|
||||
return nlt.ListDetailByIDNonlabTemplate(s)
|
||||
}
|
||||
|
||||
func (nlt *MDNonlabTemplateServices) PilihDetailNonlabTemplate(id string) ([]models.NonlabTemplateDetail, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
var cek models.NonlabTemplateDetail
|
||||
var ret []models.NonlabTemplateDetail
|
||||
var flag string
|
||||
|
||||
cek, err := nlt.GetDetailByID(id)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("Error cek current detail nonlab template", zap.Any("ID", id))
|
||||
return ret, fmt.Errorf("query failed cek current detail nonlab template")
|
||||
}
|
||||
|
||||
if cek.NonlabTemplateDetailFlagActive == "Y" {
|
||||
flag = "N"
|
||||
} else {
|
||||
flag = "Y"
|
||||
}
|
||||
|
||||
q := `
|
||||
UPDATE nonlab_template_detail
|
||||
SET
|
||||
NonlabTemplateDetailFlagActive = ?,
|
||||
NonlabTemplateDetailLastUpdated = NOW()
|
||||
WHERE NonlabTemplateDetailID = ?
|
||||
AND NonlabTemplateDetailNonlabTemplateID = ?
|
||||
`
|
||||
updt := dbx.Handlex.MustExec(q, flag, id, cek.NonlabTemplateDetailNonlabTemplateID)
|
||||
_, err = updt.RowsAffected()
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Error("Error update detail nonlab template", zap.Any("id", id), zap.Any("flag", flag))
|
||||
return ret, fmt.Errorf("query failed update detail nonlab template")
|
||||
}
|
||||
|
||||
s := strconv.Itoa(int(cek.NonlabTemplateDetailNonlabTemplateID))
|
||||
|
||||
return nlt.ListDetailByIDNonlabTemplate(s)
|
||||
}
|
||||
|
||||
@@ -14,6 +14,9 @@ templ MdNonlabTemplateScreen(
|
||||
dialogEditBodyID string,
|
||||
dialogDeleteID string,
|
||||
dialogDeleteBodyID string,
|
||||
tableDetailID string,
|
||||
detailEditID string,
|
||||
detailDeleteID string,
|
||||
breadcrumb templ.Component,
|
||||
filtercomponent templ.Component,
|
||||
tablecontent templ.Component,
|
||||
@@ -59,6 +62,18 @@ templ MdNonlabTemplateScreen(
|
||||
Name: "dialogDeleteBodyID",
|
||||
Type: "hidden",
|
||||
Value: dialogDeleteBodyID})
|
||||
@customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "tableDetailID",
|
||||
Name: "tableDetailID",
|
||||
Type: "hidden",
|
||||
Value: tableDetailID})
|
||||
@customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "detailEditID",
|
||||
Name: "detailEditID",
|
||||
Type: "hidden",
|
||||
Value: detailEditID})
|
||||
@customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "detailDeleteID",
|
||||
Name: "detailDeleteID",
|
||||
Type: "hidden",
|
||||
Value: detailDeleteID})
|
||||
<div class="row align-items-center mb-10">
|
||||
<div class="col-md-10 col-sm-12 p-0">
|
||||
@breadcrumb
|
||||
|
||||
@@ -24,6 +24,9 @@ func MdNonlabTemplateScreen(
|
||||
dialogEditBodyID string,
|
||||
dialogDeleteID string,
|
||||
dialogDeleteBodyID string,
|
||||
tableDetailID string,
|
||||
detailEditID string,
|
||||
detailDeleteID string,
|
||||
breadcrumb templ.Component,
|
||||
filtercomponent templ.Component,
|
||||
tablecontent templ.Component,
|
||||
@@ -111,6 +114,27 @@ func MdNonlabTemplateScreen(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "tableDetailID",
|
||||
Name: "tableDetailID",
|
||||
Type: "hidden",
|
||||
Value: tableDetailID}).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "detailEditID",
|
||||
Name: "detailEditID",
|
||||
Type: "hidden",
|
||||
Value: detailEditID}).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "detailDeleteID",
|
||||
Name: "detailDeleteID",
|
||||
Type: "hidden",
|
||||
Value: detailDeleteID}).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"row align-items-center mb-10\"><div class=\"col-md-10 col-sm-12 p-0\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
@@ -126,7 +150,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: 72, Col: 55}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtemplate.templ`, Line: 87, Col: 55}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -139,7 +163,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: 83, Col: 51}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtemplate.templ`, Line: 98, Col: 51}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
|
||||
@@ -18,6 +18,14 @@ templ MDNonlabTmpltForm(data models.MDNonlabTemplateForm) {
|
||||
hx-on::before-request={ HandleFormBeforeRequest() }
|
||||
hx-on::after-request={ HandleFormAfterRequest() }
|
||||
>
|
||||
if data.ModalTitle == "Delete - Nonlab Template" {
|
||||
@modalcomponent.Modal(data.ModalID,
|
||||
data.ModalTitle,
|
||||
data.DialogBody,
|
||||
data.DialogAction,
|
||||
data.ButtonClose,
|
||||
)
|
||||
}
|
||||
@modalcomponent.ModalXL(data.ModalID,
|
||||
data.ModalTitle,
|
||||
data.DialogBody,
|
||||
@@ -32,6 +40,7 @@ script HandleFormBeforeRequest() {
|
||||
const btnActCancel = document.querySelectorAll('.btnactcancel');
|
||||
const btnActSaveData = document.querySelectorAll('.btnactsavedata');
|
||||
|
||||
console.log("here test")
|
||||
for (let i = 0; i < btnActCancel.length; i++) {
|
||||
btnActCancel[i].setAttribute('disabled', 'true');
|
||||
}
|
||||
@@ -44,6 +53,7 @@ script HandleFormAfterRequest() {
|
||||
const btnActCancel = document.querySelectorAll('.btnactcancel');
|
||||
const btnActSaveData = document.querySelectorAll('.btnactsavedata');
|
||||
|
||||
console.log("here test#2")
|
||||
for (let i = 0; i < btnActCancel.length; i++) {
|
||||
btnActCancel[i].removeAttribute('disabled');
|
||||
}
|
||||
@@ -57,11 +67,16 @@ templ BodyFormMDNonlabTemplate(
|
||||
inputID models.CustomTextFieldv2Prm,
|
||||
inputName models.CustomTextFieldv2Prm,
|
||||
inputFlag models.CustomCheckboxv1Prm,
|
||||
detailKode models.CustomTextFieldv2Prm,
|
||||
detailNama models.CustomTextFieldv2Prm,
|
||||
btnSimpan templ.Component,
|
||||
btnAddDetail templ.Component,
|
||||
tableDetail templ.Component,
|
||||
hxOnLoad templ.ComponentScript,
|
||||
) {
|
||||
<div id={ componentID } hx-on::load={ hxOnLoad }>
|
||||
@customtextfield.CustomTextFieldv2(inputID)
|
||||
<h6 class="font-weight-bold">Nama Template</h6>
|
||||
<div class="row">
|
||||
<div class="col-8">
|
||||
@customtextfield.CustomTextFieldv2(inputName)
|
||||
@@ -70,7 +85,22 @@ templ BodyFormMDNonlabTemplate(
|
||||
@customcheckbox.MainCustomCheckboxInput(inputFlag)
|
||||
</div>
|
||||
</div>
|
||||
@btnSimpan
|
||||
<div class="col-12 d-flex justify-content-end mt-4">
|
||||
@btnSimpan
|
||||
</div>
|
||||
<h6 class="font-weight-bold">Detail Hasil</h6>
|
||||
<div class="row align-items-center">
|
||||
<div class="col-2">
|
||||
@customtextfield.CustomTextFieldv2(detailKode)
|
||||
</div>
|
||||
<div class="col-8">
|
||||
@customtextfield.CustomTextFieldv2(detailNama)
|
||||
</div>
|
||||
<div class="col-2 d-flex justify-content-center">
|
||||
@btnAddDetail
|
||||
</div>
|
||||
</div>
|
||||
@tableDetail
|
||||
</div>
|
||||
<script>
|
||||
document.addEventListener('htmx:afterSwap', function(event) {
|
||||
@@ -136,16 +166,33 @@ templ BtnCloseFormMDNonlabTmplt(LinkClose string, targetClose string, hxSwapClos
|
||||
</button>
|
||||
}
|
||||
|
||||
templ BtnSimpanNama(Link string, target string, hxSwap string, modalID string, hxInclude string) {
|
||||
templ BtnSimpanNama(Link string, target string, hxSwap string, disable bool, hxInclude string) {
|
||||
<button
|
||||
hx-post={ Link }
|
||||
hx-target={ target }
|
||||
hx-swap={ hxSwap }
|
||||
hx-include={ hxInclude }
|
||||
type="button"
|
||||
class="btn btn-outline-secondary font-weight-bolder rounded-lg"
|
||||
class="btn btntmplt btn-outline-secondary font-weight-bolder rounded-lg"
|
||||
aria-label="Simpan Nama"
|
||||
if disable {
|
||||
disabled
|
||||
}
|
||||
>
|
||||
Simpan
|
||||
</button>
|
||||
}
|
||||
|
||||
templ BtnAddDetail(Link string, target string, hxSwap string, modalID string, hxInclude string) {
|
||||
<button
|
||||
hx-post={ Link }
|
||||
hx-target={ target }
|
||||
hx-swap={ hxSwap }
|
||||
hx-include={ hxInclude }
|
||||
type="button"
|
||||
class="btn"
|
||||
aria-label="Add Detail Hasil"
|
||||
>
|
||||
<i aria-hidden="true" class="ki ki-solid-plus icon-2x text-primary"></i>
|
||||
</button>
|
||||
}
|
||||
@@ -123,6 +123,17 @@ func MDNonlabTmpltForm(data models.MDNonlabTemplateForm) templ.Component {
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if data.ModalTitle == "Delete - Nonlab Template" {
|
||||
templ_7745c5c3_Err = modalcomponent.Modal(data.ModalID,
|
||||
data.ModalTitle,
|
||||
data.DialogBody,
|
||||
data.DialogAction,
|
||||
data.ButtonClose,
|
||||
).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
templ_7745c5c3_Err = modalcomponent.ModalXL(data.ModalID,
|
||||
data.ModalTitle,
|
||||
data.DialogBody,
|
||||
@@ -145,10 +156,11 @@ func MDNonlabTmpltForm(data models.MDNonlabTemplateForm) templ.Component {
|
||||
|
||||
func HandleFormBeforeRequest() templ.ComponentScript {
|
||||
return templ.ComponentScript{
|
||||
Name: `__templ_HandleFormBeforeRequest_7bdf`,
|
||||
Function: `function __templ_HandleFormBeforeRequest_7bdf(){const btnActCancel = document.querySelectorAll('.btnactcancel');
|
||||
Name: `__templ_HandleFormBeforeRequest_8f9d`,
|
||||
Function: `function __templ_HandleFormBeforeRequest_8f9d(){const btnActCancel = document.querySelectorAll('.btnactcancel');
|
||||
const btnActSaveData = document.querySelectorAll('.btnactsavedata');
|
||||
|
||||
console.log("here test")
|
||||
for (let i = 0; i < btnActCancel.length; i++) {
|
||||
btnActCancel[i].setAttribute('disabled', 'true');
|
||||
}
|
||||
@@ -156,17 +168,18 @@ func HandleFormBeforeRequest() templ.ComponentScript {
|
||||
btnActSaveData[i].setAttribute('disabled', 'true');
|
||||
}
|
||||
}`,
|
||||
Call: templ.SafeScript(`__templ_HandleFormBeforeRequest_7bdf`),
|
||||
CallInline: templ.SafeScriptInline(`__templ_HandleFormBeforeRequest_7bdf`),
|
||||
Call: templ.SafeScript(`__templ_HandleFormBeforeRequest_8f9d`),
|
||||
CallInline: templ.SafeScriptInline(`__templ_HandleFormBeforeRequest_8f9d`),
|
||||
}
|
||||
}
|
||||
|
||||
func HandleFormAfterRequest() templ.ComponentScript {
|
||||
return templ.ComponentScript{
|
||||
Name: `__templ_HandleFormAfterRequest_cc6f`,
|
||||
Function: `function __templ_HandleFormAfterRequest_cc6f(){const btnActCancel = document.querySelectorAll('.btnactcancel');
|
||||
Name: `__templ_HandleFormAfterRequest_7066`,
|
||||
Function: `function __templ_HandleFormAfterRequest_7066(){const btnActCancel = document.querySelectorAll('.btnactcancel');
|
||||
const btnActSaveData = document.querySelectorAll('.btnactsavedata');
|
||||
|
||||
console.log("here test#2")
|
||||
for (let i = 0; i < btnActCancel.length; i++) {
|
||||
btnActCancel[i].removeAttribute('disabled');
|
||||
}
|
||||
@@ -174,8 +187,8 @@ func HandleFormAfterRequest() templ.ComponentScript {
|
||||
btnActSaveData[i].removeAttribute('disabled');
|
||||
}
|
||||
}`,
|
||||
Call: templ.SafeScript(`__templ_HandleFormAfterRequest_cc6f`),
|
||||
CallInline: templ.SafeScriptInline(`__templ_HandleFormAfterRequest_cc6f`),
|
||||
Call: templ.SafeScript(`__templ_HandleFormAfterRequest_7066`),
|
||||
CallInline: templ.SafeScriptInline(`__templ_HandleFormAfterRequest_7066`),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -184,7 +197,11 @@ func BodyFormMDNonlabTemplate(
|
||||
inputID models.CustomTextFieldv2Prm,
|
||||
inputName models.CustomTextFieldv2Prm,
|
||||
inputFlag models.CustomCheckboxv1Prm,
|
||||
detailKode models.CustomTextFieldv2Prm,
|
||||
detailNama models.CustomTextFieldv2Prm,
|
||||
btnSimpan templ.Component,
|
||||
btnAddDetail templ.Component,
|
||||
tableDetail templ.Component,
|
||||
hxOnLoad templ.ComponentScript,
|
||||
) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
@@ -210,7 +227,7 @@ func BodyFormMDNonlabTemplate(
|
||||
var templ_7745c5c3_Var10 string
|
||||
templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(componentID)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 63, Col: 25}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 77, Col: 25}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -233,7 +250,7 @@ func BodyFormMDNonlabTemplate(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"row\"><div class=\"col-8\">")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<h6 class=\"font-weight-bold\">Nama Template</h6><div class=\"row\"><div class=\"col-8\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -249,7 +266,7 @@ func BodyFormMDNonlabTemplate(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div></div>")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div></div><div class=\"col-12 d-flex justify-content-end mt-4\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -257,6 +274,38 @@ func BodyFormMDNonlabTemplate(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><h6 class=\"font-weight-bold\">Detail Hasil</h6><div class=\"row align-items-center\"><div class=\"col-2\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(detailKode).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"col-8\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(detailNama).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"col-2 d-flex justify-content-center\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = btnAddDetail.Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = tableDetail.Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><script>\r\n document.addEventListener('htmx:afterSwap', function(event) {\r\n $('.selectpicker').selectpicker('refresh');\r\n })\r\n </script>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
@@ -334,7 +383,7 @@ func ActionFormMDNonlabTmplt(LinkClose string, targetClose string, hxSwapClose s
|
||||
var templ_7745c5c3_Var14 string
|
||||
templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(LinkClose)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 103, Col: 31}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 133, Col: 31}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -347,7 +396,7 @@ func ActionFormMDNonlabTmplt(LinkClose string, targetClose string, hxSwapClose s
|
||||
var templ_7745c5c3_Var15 string
|
||||
templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(targetClose)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 104, Col: 35}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 134, Col: 35}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -360,7 +409,7 @@ func ActionFormMDNonlabTmplt(LinkClose string, targetClose string, hxSwapClose s
|
||||
var templ_7745c5c3_Var16 string
|
||||
templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.JoinStringErrs(hxSwapClose)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 105, Col: 33}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 135, Col: 33}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var16))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -401,7 +450,7 @@ func BtnCloseFormMDNonlabTmplt(LinkClose string, targetClose string, hxSwapClose
|
||||
var templ_7745c5c3_Var18 string
|
||||
templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.JoinStringErrs(LinkClose)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 126, Col: 27}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 156, Col: 27}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var18))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -414,7 +463,7 @@ func BtnCloseFormMDNonlabTmplt(LinkClose string, targetClose string, hxSwapClose
|
||||
var templ_7745c5c3_Var19 string
|
||||
templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs(targetClose)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 127, Col: 31}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 157, Col: 31}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -427,7 +476,7 @@ func BtnCloseFormMDNonlabTmplt(LinkClose string, targetClose string, hxSwapClose
|
||||
var templ_7745c5c3_Var20 string
|
||||
templ_7745c5c3_Var20, templ_7745c5c3_Err = templ.JoinStringErrs(hxSwapClose)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 128, Col: 29}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 158, Col: 29}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var20))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -453,7 +502,7 @@ func BtnCloseFormMDNonlabTmplt(LinkClose string, targetClose string, hxSwapClose
|
||||
})
|
||||
}
|
||||
|
||||
func BtnSimpanNama(Link string, target string, hxSwap string, modalID string, hxInclude string) templ.Component {
|
||||
func BtnSimpanNama(Link string, target string, hxSwap string, disable bool, hxInclude 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 {
|
||||
@@ -473,7 +522,7 @@ func BtnSimpanNama(Link string, target string, hxSwap string, modalID string, hx
|
||||
var templ_7745c5c3_Var23 string
|
||||
templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.JoinStringErrs(Link)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 141, Col: 22}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 171, Col: 22}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var23))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -486,7 +535,7 @@ func BtnSimpanNama(Link string, target string, hxSwap string, modalID string, hx
|
||||
var templ_7745c5c3_Var24 string
|
||||
templ_7745c5c3_Var24, templ_7745c5c3_Err = templ.JoinStringErrs(target)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 142, Col: 26}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 172, Col: 26}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var24))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -499,7 +548,7 @@ func BtnSimpanNama(Link string, target string, hxSwap string, modalID string, hx
|
||||
var templ_7745c5c3_Var25 string
|
||||
templ_7745c5c3_Var25, templ_7745c5c3_Err = templ.JoinStringErrs(hxSwap)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 143, Col: 24}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 173, Col: 24}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var25))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -512,13 +561,99 @@ func BtnSimpanNama(Link string, target string, hxSwap string, modalID string, hx
|
||||
var templ_7745c5c3_Var26 string
|
||||
templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.JoinStringErrs(hxInclude)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 144, Col: 30}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 174, Col: 30}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var26))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" type=\"button\" class=\"btn btn-outline-secondary font-weight-bolder rounded-lg\" aria-label=\"Simpan Nama\">Simpan\r</button>")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" type=\"button\" class=\"btn btntmplt btn-outline-secondary font-weight-bolder rounded-lg\" aria-label=\"Simpan Nama\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if disable {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(" disabled")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(">Simpan\r</button>")
|
||||
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 BtnAddDetail(Link string, target string, hxSwap string, modalID string, hxInclude 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_Var27 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var27 == nil {
|
||||
templ_7745c5c3_Var27 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<button hx-post=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var28 string
|
||||
templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.JoinStringErrs(Link)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 188, Col: 22}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var28))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var29 string
|
||||
templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinStringErrs(target)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 189, Col: 26}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var29))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-swap=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var30 string
|
||||
templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.JoinStringErrs(hxSwap)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 190, Col: 24}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var30))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-include=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var31 string
|
||||
templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinStringErrs(hxInclude)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\mdnonlabtmptmodal.templ`, Line: 191, Col: 30}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" type=\"button\" class=\"btn\" aria-label=\"Add Detail Hasil\"><i aria-hidden=\"true\" class=\"ki ki-solid-plus icon-2x text-primary\"></i></button>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
||||
119
views/dev/mdnonlabtemplate/tabledetail.templ
Normal file
119
views/dev/mdnonlabtemplate/tabledetail.templ
Normal file
@@ -0,0 +1,119 @@
|
||||
package dev_mdnonlabtemplateview
|
||||
|
||||
import "cpone/models"
|
||||
import "strconv"
|
||||
import "cpone/component/table"
|
||||
|
||||
templ TableDetail(data []models.NonlabTemplateDetail,
|
||||
tableDetailID string,
|
||||
hxGetEdit string,
|
||||
hxTargetEdit string,
|
||||
hxSwapEdit string,
|
||||
hxIncludeEdit string,
|
||||
hxGetDelete string,
|
||||
hxTargetDelete string,
|
||||
hxSwapDelete string,
|
||||
hxIncludeDelete string,
|
||||
) {
|
||||
<div id={ tableDetailID }>
|
||||
@tablecomponent.TableV3([]string{"KODE", "TEST", "AKSI"},
|
||||
[]string{"20%","50%","30%"},
|
||||
RowDetail(data,
|
||||
hxGetEdit,
|
||||
hxTargetEdit,
|
||||
hxSwapEdit,
|
||||
hxIncludeEdit,
|
||||
hxGetDelete,
|
||||
hxTargetDelete,
|
||||
hxSwapDelete,
|
||||
hxIncludeDelete,
|
||||
))
|
||||
</div>
|
||||
}
|
||||
|
||||
templ RowDetail(
|
||||
data []models.NonlabTemplateDetail,
|
||||
hxGetEdit string,
|
||||
hxTargetEdit string,
|
||||
hxSwapEdit string,
|
||||
hxIncludeEdit string,
|
||||
hxGetDelete string,
|
||||
hxTargetDelete string,
|
||||
hxSwapDelete string,
|
||||
hxIncludeDelete string,
|
||||
) {
|
||||
if len(data) == 0 {
|
||||
<tr>
|
||||
<td colspan="3" class="text-center">Data Tidak Ditemukan</td>
|
||||
</tr>
|
||||
}
|
||||
for _, v := range data {
|
||||
<tr>
|
||||
<td>{ v.NonlabTemplateDetailCode }</td>
|
||||
<td>{ v.NonlabTemplateDetailName }</td>
|
||||
<td>
|
||||
@ActionRow(v.NonlabTemplateDetailID,
|
||||
v.NonlabTemplateDetailFlagActive,
|
||||
hxGetEdit,
|
||||
hxTargetEdit,
|
||||
hxSwapEdit,
|
||||
hxIncludeEdit,
|
||||
hxGetDelete,
|
||||
hxTargetDelete,
|
||||
hxSwapDelete,
|
||||
hxIncludeDelete,
|
||||
)
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
templ ActionRow(
|
||||
id int,
|
||||
flagActive string,
|
||||
hxGetEdit string,
|
||||
hxTargetEdit string,
|
||||
hxSwapEdit string,
|
||||
hxIncludeEdit string,
|
||||
hxGetDelete string,
|
||||
hxTargetDelete string,
|
||||
hxSwapDelete string,
|
||||
hxIncludeDelete string,
|
||||
) {
|
||||
<div class="row px-5 d-flex justify-content-around">
|
||||
<a
|
||||
type="button"
|
||||
class="btn mb-2 btn-sm col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5"
|
||||
hx-get={ hxGetDelete + "?id=" + strconv.Itoa(id) }
|
||||
hx-target={ hxTargetDelete }
|
||||
hx-swap={ hxSwapDelete }
|
||||
hx-include={ hxIncludeDelete }
|
||||
>
|
||||
<i aria-hidden="true" class="flaticon2-trash text-danger"></i>
|
||||
</a>
|
||||
if flagActive == "Y" {
|
||||
<a
|
||||
type="button"
|
||||
class="btn btn-light-danger mb-2 btn-sm col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 mb-2 btn-sm"
|
||||
hx-get={ hxGetEdit + "?id=" + strconv.Itoa(id) }
|
||||
hx-target={ hxTargetEdit }
|
||||
hx-swap={ hxSwapEdit }
|
||||
hx-include={ hxIncludeEdit }
|
||||
>
|
||||
Tidak
|
||||
</a>
|
||||
} else {
|
||||
<a
|
||||
type="button"
|
||||
class="btn btn-light-tosca mb-2 btn-sm col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 mb-2 btn-sm"
|
||||
hx-get={ hxGetEdit + "?id=" + strconv.Itoa(id) }
|
||||
hx-target={ hxTargetEdit }
|
||||
hx-swap={ hxSwapEdit }
|
||||
hx-include={ hxIncludeEdit }
|
||||
>
|
||||
Pilih
|
||||
</a>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
373
views/dev/mdnonlabtemplate/tabledetail_templ.go
Normal file
373
views/dev/mdnonlabtemplate/tabledetail_templ.go
Normal file
@@ -0,0 +1,373 @@
|
||||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.2.663
|
||||
package dev_mdnonlabtemplateview
|
||||
|
||||
//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/models"
|
||||
import "strconv"
|
||||
import "cpone/component/table"
|
||||
|
||||
func TableDetail(data []models.NonlabTemplateDetail,
|
||||
tableDetailID string,
|
||||
hxGetEdit string,
|
||||
hxTargetEdit string,
|
||||
hxSwapEdit string,
|
||||
hxIncludeEdit string,
|
||||
hxGetDelete string,
|
||||
hxTargetDelete string,
|
||||
hxSwapDelete string,
|
||||
hxIncludeDelete 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_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("<div id=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var2 string
|
||||
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(tableDetailID)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\tabledetail.templ`, Line: 18, Col: 27}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
|
||||
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 = tablecomponent.TableV3([]string{"KODE", "TEST", "AKSI"},
|
||||
[]string{"20%", "50%", "30%"},
|
||||
RowDetail(data,
|
||||
hxGetEdit,
|
||||
hxTargetEdit,
|
||||
hxSwapEdit,
|
||||
hxIncludeEdit,
|
||||
hxGetDelete,
|
||||
hxTargetDelete,
|
||||
hxSwapDelete,
|
||||
hxIncludeDelete,
|
||||
)).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div>")
|
||||
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 RowDetail(
|
||||
data []models.NonlabTemplateDetail,
|
||||
hxGetEdit string,
|
||||
hxTargetEdit string,
|
||||
hxSwapEdit string,
|
||||
hxIncludeEdit string,
|
||||
hxGetDelete string,
|
||||
hxTargetDelete string,
|
||||
hxSwapDelete string,
|
||||
hxIncludeDelete 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_Var3 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var3 == nil {
|
||||
templ_7745c5c3_Var3 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
if len(data) == 0 {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<tr><td colspan=\"3\" class=\"text-center\">Data Tidak Ditemukan</td></tr>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
for _, v := range data {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<tr><td>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var4 string
|
||||
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(v.NonlabTemplateDetailCode)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\tabledetail.templ`, Line: 52, Col: 45}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</td><td>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var5 string
|
||||
templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(v.NonlabTemplateDetailName)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\tabledetail.templ`, Line: 53, Col: 45}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</td><td>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = ActionRow(v.NonlabTemplateDetailID,
|
||||
v.NonlabTemplateDetailFlagActive,
|
||||
hxGetEdit,
|
||||
hxTargetEdit,
|
||||
hxSwapEdit,
|
||||
hxIncludeEdit,
|
||||
hxGetDelete,
|
||||
hxTargetDelete,
|
||||
hxSwapDelete,
|
||||
hxIncludeDelete,
|
||||
).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</td></tr>")
|
||||
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 ActionRow(
|
||||
id int,
|
||||
flagActive string,
|
||||
hxGetEdit string,
|
||||
hxTargetEdit string,
|
||||
hxSwapEdit string,
|
||||
hxIncludeEdit string,
|
||||
hxGetDelete string,
|
||||
hxTargetDelete string,
|
||||
hxSwapDelete string,
|
||||
hxIncludeDelete 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_Var6 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var6 == nil {
|
||||
templ_7745c5c3_Var6 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"row px-5 d-flex justify-content-around\"><a type=\"button\" class=\"btn mb-2 btn-sm col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5\" hx-get=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var7 string
|
||||
templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(hxGetDelete + "?id=" + strconv.Itoa(id))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\tabledetail.templ`, Line: 88, Col: 60}
|
||||
}
|
||||
_, 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("\" hx-target=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var8 string
|
||||
templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(hxTargetDelete)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\tabledetail.templ`, Line: 89, Col: 38}
|
||||
}
|
||||
_, 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("\" hx-swap=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var9 string
|
||||
templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(hxSwapDelete)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\tabledetail.templ`, Line: 90, Col: 34}
|
||||
}
|
||||
_, 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("\" hx-include=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var10 string
|
||||
templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(hxIncludeDelete)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\tabledetail.templ`, Line: 91, Col: 40}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\"><i aria-hidden=\"true\" class=\"flaticon2-trash text-danger\"></i></a> ")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if flagActive == "Y" {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<a type=\"button\" class=\"btn btn-light-danger mb-2 btn-sm col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 mb-2 btn-sm\" hx-get=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var11 string
|
||||
templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(hxGetEdit + "?id=" + strconv.Itoa(id))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\tabledetail.templ`, Line: 99, Col: 62}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var12 string
|
||||
templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(hxTargetEdit)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\tabledetail.templ`, Line: 100, Col: 40}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-swap=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var13 string
|
||||
templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(hxSwapEdit)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\tabledetail.templ`, Line: 101, Col: 36}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-include=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var14 string
|
||||
templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(hxIncludeEdit)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\tabledetail.templ`, Line: 102, Col: 42}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\">Tidak\r</a>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
} else {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<a type=\"button\" class=\"btn btn-light-tosca mb-2 btn-sm col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 mb-2 btn-sm\" hx-get=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var15 string
|
||||
templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(hxGetEdit + "?id=" + strconv.Itoa(id))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\tabledetail.templ`, Line: 110, Col: 62}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var16 string
|
||||
templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.JoinStringErrs(hxTargetEdit)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\tabledetail.templ`, Line: 111, Col: 40}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var16))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-swap=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var17 string
|
||||
templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.JoinStringErrs(hxSwapEdit)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\tabledetail.templ`, Line: 112, Col: 36}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var17))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-include=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var18 string
|
||||
templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.JoinStringErrs(hxIncludeEdit)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mdnonlabtemplate\tabledetail.templ`, Line: 113, Col: 42}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var18))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\">Pilih\r</a>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div>")
|
||||
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
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user