step 8 : templ and handling submit except saran mcu

This commit is contained in:
sindhu
2024-05-21 16:11:20 +07:00
parent 7d6e8cc687
commit 79d736884e
7 changed files with 1035 additions and 0 deletions

View File

@@ -0,0 +1,154 @@
package public_handlers
import (
"cpone/models"
"cpone/utils"
surveymcu "cpone/views/public/surveymcu"
"github.com/a-h/templ"
"github.com/labstack/echo/v4"
"go.uber.org/zap"
)
type SurveyMcuService interface {
GetSurveyMcuByNoreg(nomorRegistrasi string) ([]models.SurveyMcu, error)
}
func NewSurveyMcuHandler(us SurveyMcuService) *SurveyMcuHandler {
return &SurveyMcuHandler{
SurveyMcuService: us,
}
}
type SurveyMcuHandler struct {
SurveyMcuService SurveyMcuService
}
func (lh *SurveyMcuHandler) HandlerShowSurveyMcu(c echo.Context) error {
nomorRegistrasi := c.Param("nomorRegistrasi")
// nomorRegistrasi := "1"
logger, _ := zap.NewProduction()
defer logger.Sync()
dataSurveyMcu, err := lh.SurveyMcuService.GetSurveyMcuByNoreg(nomorRegistrasi)
if err != nil {
logger.Info("Error",
zap.Any("Error", err),
zap.Any("prm", nomorRegistrasi),
)
return err
}
logger.Info("SHOW DATA SURVEY MCU handler",
zap.Any("return", dataSurveyMcu),
zap.Any("prm", nomorRegistrasi),
)
stringUrl := "surveymcuproses/" + nomorRegistrasi
var hxInclude string = ""
var idClearMsg []models.IdClearErrorMessage
if len(dataSurveyMcu) > 0 {
for _, v := range dataSurveyMcu {
if len(v.DataListItemSurveyMcu) > 0 {
hxInclude = utils.ConcatHxIncludeSurveyMcu(v.DataListItemSurveyMcu)
}
}
}
si := surveymcu.ShowSurveyMcu("Survey Mcu",
surveymcu.MainContentSurveyMcuLayout(dataSurveyMcu, stringUrl, surveymcu.ErrorMessageSurveyMcu("", "", idClearMsg, "alertSaranMcu"), hxInclude), surveymcu.CssSurveyMcu(), surveymcu.JsSurveyMcu())
return utils.View(c, si)
}
func (lh *SurveyMcuHandler) HandlerProcessSurveyMcu(c echo.Context) error {
nomorRegistrasi := c.Param("nomorRegistrasi")
// nomorRegistrasi := "1"
logger, _ := zap.NewProduction()
defer logger.Sync()
dataSurveyMcu, err := lh.SurveyMcuService.GetSurveyMcuByNoreg(nomorRegistrasi)
if err != nil {
logger.Info("Error",
zap.Any("Error", err),
zap.Any("prm", nomorRegistrasi),
)
return err
}
logger.Info("SHOW DATA SURVEY MCU handler",
zap.Any("return", dataSurveyMcu),
zap.Any("prm", nomorRegistrasi),
)
form := c.Request().PostForm
// stringUrl := "surveymcuproses/" + nomorRegistrasi
logger.Info("CEK POST handler",
zap.Any("c.FormValue", c.FormValue(form.Get("radio-1"))),
zap.Any("name dari inputan", form.Get("radio-1")),
)
// proses validasi
var si templ.Component
var idFormKosong string = ""
var stringMessage string = ""
var isFormEmpty bool = false
var idClearMsg []models.IdClearErrorMessage
var idSaranMcuAlert string = ""
// var idSaranMcuClear string = ""
if len(dataSurveyMcu) > 0 {
for _, v := range dataSurveyMcu {
if len(v.DataListItemSurveyMcu) > 0 {
for _, x := range v.DataListItemSurveyMcu {
if len(c.FormValue("radio-"+x.IDItemSurvey)) > 0 {
idClearMsg = append(idClearMsg, models.IdClearErrorMessage{IdItem: x.IDItemSurvey})
}
if "default-"+x.NameRadioButton == c.FormValue("default-"+x.NameRadioButton) && len(c.FormValue("radio-"+x.IDItemSurvey)) == 0 {
stringMessage += "Pertanyaan ke-" + x.IDItemSurvey + " wajib diisi,"
idFormKosong += utils.GetIdSurveyMcu(x.IDItemSurvey)
isFormEmpty = true
break
}
}
}
}
}
// if len(c.FormValue("saranMcu")) == 0 {
// isFormEmpty = true
// stringMessage += " Kemudian Saran Mcu Wajib Diisi"
// idSaranMcuAlert = "alertSaranMcu"
// }
// if len(c.FormValue("saranMcu")) > 0 {
// isFormEmpty = false
// stringMessage += ""
// idSaranMcuAlert = "alertSaranMcu"
// }
if isFormEmpty {
si = surveymcu.ErrorMessageSurveyMcu(stringMessage, idFormKosong, idClearMsg, idSaranMcuAlert)
// si = surveymcu.ShowSurveyMcu("Survey Mcu",
// surveymcu.MainContentSurveyMcuLayout(dataSurveyMcu, nomorRegistrasi, surveymcu.ErrorMessageSurveyMcu(stringMessage, idFormKosong)), surveymcu.CssSurveyMcu(), surveymcu.JsSurveyMcu())
// si = surveymcu.FormSurvey(dataSurveyMcu, stringUrl)
} else {
// var idClearMsgEmpty []models.IdClearErrorMessage
si = surveymcu.ErrorMessageSurveyMcu("", "", idClearMsg, "")
}
// stringMessage += fmt.Sprintf("Pertanyaan ke-%s", x.IDItemSurvey, " wajib diisi")
// si := surveymcu.ShowSurveyMcu("Survey Mcu",
// surveymcu.MainContentSurveyMcuLayout(dataSurveyMcu, nomorRegistrasi), surveymcu.CssSurveyMcu(), surveymcu.JsSurveyMcu())
return utils.View(c, si)
}

View File

@@ -9,6 +9,7 @@ import (
corporate_services "cpone/services/corporate"
dev_services "cpone/services/dev"
public_services "cpone/services/public"
"net/http"
"cpone/db"
@@ -76,6 +77,19 @@ func SetupRoutesPublic(app *echo.Echo, appStore db.AppStore) {
publicKartuKontrolhandlers := public_handlers.NewKartuKontrolHandler(publicKartuKontrolServices)
public.GET("kartukontrol/:nomorRegistrasi", publicKartuKontrolhandlers.HandlerShowKartuKontrol)
public.GET("modalsurveykartukontrol", publicKartuKontrolhandlers.HandlerShowWordingModalSurveyMcu)
// survey mcu page (pertanyaan dan jawaban)
publicSurveyMcuServices := public_services.NewServicesSurveyMcu(appStore)
publicSurveyMcuhandlers := public_handlers.NewSurveyMcuHandler(publicSurveyMcuServices)
public.GET("surveymcu/:nomorRegistrasi", publicSurveyMcuhandlers.HandlerShowSurveyMcu)
// contoh penggunaan header location spt php
app.GET("/redirectsurveymcu", func(c echo.Context) error {
return c.Redirect(http.StatusFound, "surveymcu/:nomorRegistrasi")
})
// surveymcuproses
public.POST("surveymcuproses/:nomorRegistrasi", publicSurveyMcuhandlers.HandlerProcessSurveyMcu)
}
func SetupRoutesCorporate(app *echo.Echo, appStore db.AppStore) {
public := app.Group("/corp")

View File

@@ -0,0 +1,19 @@
package models
type SurveyMcu struct {
DataListItemSurveyMcu []ItemSurveyMcu `json:"dataListItemSurveyMcu"`
}
type ItemSurveyMcu struct {
IDItemSurvey string `json:"iditemsurvey"`
Nomor string `json:"nomor"`
Pertanyaan string `json:"pertanyaan"`
Jawaban bool `json:"jawaban"`
NameRadioButton string `json:"nameradiobutton"`
Checked string `json:"checked"`
ErrorMessage string `json:"errorMessage"`
}
type IdClearErrorMessage struct {
IdItem string `json:"iditem"`
}

View File

@@ -0,0 +1,129 @@
package public_services
import (
"cpone/db"
"cpone/models"
"go.uber.org/zap"
)
func NewServicesSurveyMcu(uStore db.AppStore) *SurveyMcuService {
return &SurveyMcuService{
SurveyMcuStore: uStore,
}
}
type SurveyMcuService struct {
SurveyMcuStore db.AppStore
}
func (su *SurveyMcuService) GetSurveyMcuByNoreg(nomorRegistrasi string) ([]models.SurveyMcu, error) {
logger, _ := zap.NewProduction()
defer logger.Sync()
logger.Info("QUERY SEARCH GET SURVEY MCU BY NOMOR REGISTRASI",
zap.String("query search", ""),
)
dataItemSurveyMcu := []models.ItemSurveyMcu{
{
IDItemSurvey: "1",
Nomor: "1",
Pertanyaan: "Bagaimana Penilaian Sikap & Keramahan Petugas?",
Jawaban: false,
Checked: "",
ErrorMessage: "",
NameRadioButton: "radio-1",
},
{
IDItemSurvey: "2",
Nomor: "2",
Pertanyaan: "Bagaimana Penilaian Penampilan Petugas?",
Jawaban: false,
Checked: "",
ErrorMessage: "",
NameRadioButton: "radio-2",
},
{
IDItemSurvey: "3",
Nomor: "3",
Pertanyaan: "Bagaimana Penilaian Ketrampilan Petugas?",
Jawaban: false,
Checked: "",
ErrorMessage: "",
NameRadioButton: "radio-3",
},
{
IDItemSurvey: "4",
Nomor: "4",
Pertanyaan: "Bagaimana Penilaian Pemberian Informasi Petugas?",
Jawaban: false,
Checked: "",
ErrorMessage: "",
NameRadioButton: "radio-4",
},
{
IDItemSurvey: "5",
Nomor: "5",
Pertanyaan: "Bagaimana Penilaian Kelengkapan Alat?",
Jawaban: false,
Checked: "",
ErrorMessage: "",
NameRadioButton: "radio-5",
},
{
IDItemSurvey: "6",
Nomor: "6",
Pertanyaan: "Bagaimana Penilaian Kelayakan Alat?",
Jawaban: false,
Checked: "",
ErrorMessage: "",
NameRadioButton: "radio-6",
},
{
IDItemSurvey: "7",
Nomor: "7",
Pertanyaan: "Bagaimana Penilaian Kebersihan Ruangan?",
Jawaban: false,
Checked: "",
ErrorMessage: "",
NameRadioButton: "radio-7",
},
{
IDItemSurvey: "8",
Nomor: "8",
Pertanyaan: "Bagaimana Penilaian Kebersihan Ruangan?",
Jawaban: false,
Checked: "",
ErrorMessage: "",
NameRadioButton: "radio-8",
},
{
IDItemSurvey: "9",
Nomor: "9",
Pertanyaan: "Bagaimana Penilaian Alur Pelayanan?",
Jawaban: false,
Checked: "",
ErrorMessage: "",
NameRadioButton: "radio-9",
},
{
IDItemSurvey: "10",
Nomor: "10",
Pertanyaan: "Bagaimana Penilaian Ketepatan Waktu?",
Jawaban: false,
Checked: "",
ErrorMessage: "",
NameRadioButton: "radio-10",
},
}
surveymcu := []models.SurveyMcu{
{
DataListItemSurveyMcu: dataItemSurveyMcu,
},
}
return surveymcu, nil
}

24
utils/surveymcu.utils.go Normal file
View File

@@ -0,0 +1,24 @@
package utils
import "cpone/models"
func GetIdSurveyMcu(id string) string {
return id
}
func ConcatHxIncludeSurveyMcu(data []models.ItemSurveyMcu) string {
var stringx string
if len(data) > 0 {
for i, v := range data {
if i > 0 {
stringx += ", "
}
stringx += "[name='radio-" + v.IDItemSurvey + "'], [name='default-radio-" + v.IDItemSurvey + "'], [name='id-radio']"
}
}
stringx += ",[name='saranMcu']"
return stringx
}

View File

@@ -0,0 +1,304 @@
package public_surveymcu
import (
"cpone/models"
"cpone/layout"
)
func concatNameRadioButtonBaik(idPertanyaan string) string {
return "radio-baik-" + idPertanyaan
}
func concatNameRadioButtonKurang(idPertanyaan string) string {
return "radio-kurang-" + idPertanyaan
}
func concatIdErrorMessage(idPertanyaan string) string {
return "errorMessage-" + idPertanyaan
}
func concatNameDefault(NameRadioButton string) string {
return "default-" + NameRadioButton
}
func isIDInClearList(IDItemSurvey string, idclear []models.IdClearErrorMessage) bool {
for _, item := range idclear {
if item.IdItem == IDItemSurvey {
return true
}
}
return false
}
templ MainContentSurveyMcuLayout(dataSurveyMcu []models.SurveyMcu, urlPost string, errorComp templ.Component, hxInclude string) {
<div class="content-fluid bg-field">
<!-- judul start -->
<div class="py-15 px-9">
<h1 class="title text-primary text-center">Survey MCU</h1>
</div>
<!-- judul end -->
<div class="mb-2"></div>
// <form hx-post={ urlPost }>
<div class="px-10">
if len(dataSurveyMcu) > 0 {
for _, v := range dataSurveyMcu {
if len(v.DataListItemSurveyMcu) > 0 {
for _, k := range v.DataListItemSurveyMcu {
<!-- pertanyaan 1 start -->
<div class="card shadow-sm py-2 mb-8" style="border-radius: 12px">
<div class="card-body px-10 py-10">
<!-- pertanyaan -->
<div class="flex-container">
<h5
class="title-pertanyaan text-black no-margin-padding flex-number"
>
{ k.Nomor }&nbsp;
</h5>
<h5
class="title-pertanyaan text-black no-margin-padding flex-question"
>
{ k.Pertanyaan }
</h5>
</div>
<!-- jawaban start -->
<div class="mt-5">
<div class="row">
<div class="col-12">
<div class="form-group">
<input type="text" name={ concatNameDefault(k.NameRadioButton) } value={ concatNameDefault(k.NameRadioButton) }/>
<input type="text" name="id-radio" value={ k.IDItemSurvey }/>
<div class="radio-list">
<label class="radio">
<input type="radio" name={ k.NameRadioButton } value="Baik"/>
<span></span>
<h3 class="text-jawaban">Baik</h3>
</label>
<label class="radio">
<input type="radio" name={ k.NameRadioButton } value="Kurang"/>
<span></span>
<h3 class="text-jawaban">Kurang</h3>
</label>
</div>
</div>
</div>
</div>
</div>
<!-- jawaban end -->
<div
id={ concatIdErrorMessage(k.IDItemSurvey) }
class="form-group validated"
style="display: none"
>
<div class="invalid-feedback">
hello
</div>
</div>
</div>
</div>
<!-- pertanyaan 1 end -->
}
}
}
}
<!-- text area saran start -->
<textarea
class="form-control saran-mcu mb-10"
name="saranMcu"
rows="9"
placeholder="Saran"
></textarea>
<div
id="alertSaranMcu"
class="form-group validated"
style="display: none"
>
<div class="invalid-feedback">
hello
</div>
</div>
<!-- text area saran end -->
<!-- button submit start -->
<button
class="btn btn-lg btn-primary text-white"
style="border-radius: 8px; width: 100%"
type="submit"
hx-swap="none"
hx-post={ urlPost }
hx-include={ hxInclude }
>
<span class="title-button text-center">Submit</span>
</button>
<!-- button submit end -->
<!-- atur spacing bottom -->
<div style="height: 14vh"></div>
</div>
// </form>
</div>
}
templ ErrorMessageSurveyMcu(ErrorMessage string, IDItemSurvey string, idclear []models.IdClearErrorMessage, idSaranMcuAlert string) {
if len(idclear) > 0 {
for _, v := range idclear {
<!-- error pertanyaan kosong start -->
<div
id={ concatIdErrorMessage(v.IdItem) }
hx-swap-oob="true"
class="form-group validated"
style="display:none"
>
<div class="invalid-feedback">
{ ErrorMessage }
</div>
</div>
<!-- error pertanyaan kosong end -->
}
}
<!-- error pertanyaan kosong start -->
<div
id={ concatIdErrorMessage(IDItemSurvey) }
hx-swap-oob="true"
class="form-group validated"
>
<div class="invalid-feedback">
{ ErrorMessage }
</div>
</div>
<!-- error pertanyaan kosong end -->
// saran mcu
// <div
// id={ idSaranMcuAlert }
// hx-swap-oob="true"
// class="form-group validated"
// >
// <div class="invalid-feedback">
// { ErrorMessage }
// </div>
// </div>
}
// templ ErrorMessageSurveyMcu(ErrorMessage string, IDItemSurvey string, idclear []models.IdClearErrorMessage) {
// <!-- error pertanyaan kosong start -->
// <div
// id={ concatIdErrorMessage(IDItemSurvey) }
// hx-swap-oob="true"
// class="form-group validated"
// >
// <div class="invalid-feedback">
// { ErrorMessage }
// </div>
// </div>
// <!-- error pertanyaan kosong end -->
// }
templ CssSurveyMcu() {
<link
rel="stylesheet"
href="assets/css/googlefont/poppins.css"
/>
<link
rel="stylesheet"
href="assets/css/googlefont/publicsans.css"
/>
<link
rel="stylesheet"
href="assets/css/googlefont/roboto.css"
/>
<style>
body {
background-color: var(--fieldbg);
}
.card-control {
width: 390px;
height: 1212px;
/* background-image: url("asset-corporate-portal/media/kartukontrol/bg-kartuKontrol.svg");
background-size: 390px 1212px;
background-repeat: no-repeat; */
margin: auto;
}
.title {
font-family: Poppins;
font-size: 24px;
font-style: normal;
font-weight: 600;
line-height: normal;
}
.title-pertanyaan {
font-family: Poppins;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 24px;
}
.no-margin-padding {
margin: 0;
padding: 0;
}
.flex-container {
display: flex;
align-items: center;
align-items: flex-start;
}
.flex-number {
margin-right: 5px;
}
.flex-question {
flex-grow: 1;
}
.text-jawaban {
color: var(--textjawabansurveymcu);
font-family: Poppins;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 22px;
}
.radio-list {
display: flex;
flex-direction: column;
}
.radio {
display: flex;
align-items: center;
margin-bottom: 10px;
}
.radio h3 {
margin: 0;
padding-left: 10px;
}
.saran-mcu::placeholder {
color: var(--text-disabled);
font-family: Poppins, sans-serif;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: normal;
}
.title-button {
font-family: "Public Sans";
font-size: 15px;
font-style: normal;
font-weight: 700;
line-height: 26px;
}
</style>
}
templ JsSurveyMcu() {
}
templ ShowSurveyMcu(title string, cmp templ.Component, css templ.Component, js templ.Component) {
@layout.PlaygroundLayout(title, css, js) {
@cmp
}
}

View File

@@ -0,0 +1,391 @@
// Code generated by templ - DO NOT EDIT.
// templ: version: v0.2.663
package public_surveymcu
//lint:file-ignore SA4006 This context is only used if a nested component is present.
import "github.com/a-h/templ"
import "context"
import "io"
import "bytes"
import (
"cpone/layout"
"cpone/models"
)
func concatNameRadioButtonBaik(idPertanyaan string) string {
return "radio-baik-" + idPertanyaan
}
func concatNameRadioButtonKurang(idPertanyaan string) string {
return "radio-kurang-" + idPertanyaan
}
func concatIdErrorMessage(idPertanyaan string) string {
return "errorMessage-" + idPertanyaan
}
func concatNameDefault(NameRadioButton string) string {
return "default-" + NameRadioButton
}
func isIDInClearList(IDItemSurvey string, idclear []models.IdClearErrorMessage) bool {
for _, item := range idclear {
if item.IdItem == IDItemSurvey {
return true
}
}
return false
}
func MainContentSurveyMcuLayout(dataSurveyMcu []models.SurveyMcu, urlPost string, errorComp templ.Component, 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_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 class=\"content-fluid bg-field\"><!-- judul start --><div class=\"py-15 px-9\"><h1 class=\"title text-primary text-center\">Survey MCU</h1></div><!-- judul end --><div class=\"mb-2\"></div><div class=\"px-10\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if len(dataSurveyMcu) > 0 {
for _, v := range dataSurveyMcu {
if len(v.DataListItemSurveyMcu) > 0 {
for _, k := range v.DataListItemSurveyMcu {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!-- pertanyaan 1 start --> <div class=\"card shadow-sm py-2 mb-8\" style=\"border-radius: 12px\"><div class=\"card-body px-10 py-10\"><!-- pertanyaan --><div class=\"flex-container\"><h5 class=\"title-pertanyaan text-black no-margin-padding flex-number\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var2 string
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(k.Nomor)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\public\surveymcu\surveymcu.templ`, Line: 55, Col: 20}
}
_, 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("&nbsp;\r</h5><h5 class=\"title-pertanyaan text-black no-margin-padding flex-question\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var3 string
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(k.Pertanyaan)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\public\surveymcu\surveymcu.templ`, Line: 60, Col: 25}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</h5></div><!-- jawaban start --><div class=\"mt-5\"><div class=\"row\"><div class=\"col-12\"><div class=\"form-group\"><input type=\"text\" name=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var4 string
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(concatNameDefault(k.NameRadioButton))
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\public\surveymcu\surveymcu.templ`, Line: 68, Col: 75}
}
_, 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("\" value=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var5 string
templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(concatNameDefault(k.NameRadioButton))
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\public\surveymcu\surveymcu.templ`, Line: 68, Col: 122}
}
_, 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("\"> <input type=\"text\" name=\"id-radio\" value=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var6 string
templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(k.IDItemSurvey)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\public\surveymcu\surveymcu.templ`, Line: 69, Col: 70}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\"><div class=\"radio-list\"><label class=\"radio\"><input type=\"radio\" name=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var7 string
templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(k.NameRadioButton)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\public\surveymcu\surveymcu.templ`, Line: 72, Col: 59}
}
_, 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("\" value=\"Baik\"> <span></span><h3 class=\"text-jawaban\">Baik</h3></label> <label class=\"radio\"><input type=\"radio\" name=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var8 string
templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(k.NameRadioButton)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\public\surveymcu\surveymcu.templ`, Line: 77, Col: 59}
}
_, 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("\" value=\"Kurang\"> <span></span><h3 class=\"text-jawaban\">Kurang</h3></label></div></div></div></div></div><!-- jawaban end --><div id=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var9 string
templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(concatIdErrorMessage(k.IDItemSurvey))
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\public\surveymcu\surveymcu.templ`, Line: 88, Col: 51}
}
_, 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("\" class=\"form-group validated\" style=\"display: none\"><div class=\"invalid-feedback\">hello\r</div></div></div></div><!-- pertanyaan 1 end -->")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
}
}
}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!-- text area saran start --><textarea class=\"form-control saran-mcu mb-10\" name=\"saranMcu\" rows=\"9\" placeholder=\"Saran\"></textarea><div id=\"alertSaranMcu\" class=\"form-group validated\" style=\"display: none\"><div class=\"invalid-feedback\">hello\r</div></div><!-- text area saran end --><!-- button submit start --><button class=\"btn btn-lg btn-primary text-white\" style=\"border-radius: 8px; width: 100%\" type=\"submit\" hx-swap=\"none\" hx-post=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var10 string
templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(urlPost)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\public\surveymcu\surveymcu.templ`, Line: 126, Col: 21}
}
_, 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("\" hx-include=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var11 string
templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(hxInclude)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\public\surveymcu\surveymcu.templ`, Line: 127, Col: 26}
}
_, 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("\"><span class=\"title-button text-center\">Submit</span></button><!-- button submit end --><!-- atur spacing bottom --><div style=\"height: 14vh\"></div></div></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 ErrorMessageSurveyMcu(ErrorMessage string, IDItemSurvey string, idclear []models.IdClearErrorMessage, idSaranMcuAlert 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_Var12 := templ.GetChildren(ctx)
if templ_7745c5c3_Var12 == nil {
templ_7745c5c3_Var12 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
if len(idclear) > 0 {
for _, v := range idclear {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!-- error pertanyaan kosong start --> <div id=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var13 string
templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(concatIdErrorMessage(v.IdItem))
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\public\surveymcu\surveymcu.templ`, Line: 144, Col: 39}
}
_, 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-swap-oob=\"true\" class=\"form-group validated\" style=\"display:none\"><div class=\"invalid-feedback\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var14 string
templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(ErrorMessage)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\public\surveymcu\surveymcu.templ`, Line: 150, Col: 19}
}
_, 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("</div></div><!-- error pertanyaan kosong end -->")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!-- error pertanyaan kosong start --><div id=\"")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var15 string
templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(concatIdErrorMessage(IDItemSurvey))
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\public\surveymcu\surveymcu.templ`, Line: 158, Col: 41}
}
_, 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-swap-oob=\"true\" class=\"form-group validated\"><div class=\"invalid-feedback\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var16 string
templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.JoinStringErrs(ErrorMessage)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\public\surveymcu\surveymcu.templ`, Line: 163, Col: 17}
}
_, 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("</div></div><!-- error pertanyaan kosong end -->")
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
})
}
// templ ErrorMessageSurveyMcu(ErrorMessage string, IDItemSurvey string, idclear []models.IdClearErrorMessage) {
// <!-- error pertanyaan kosong start -->
// <div
// id={ concatIdErrorMessage(IDItemSurvey) }
// hx-swap-oob="true"
// class="form-group validated"
// >
// <div class="invalid-feedback">
// { ErrorMessage }
// </div>
// </div>
// <!-- error pertanyaan kosong end -->
// }
func CssSurveyMcu() 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_Var17 := templ.GetChildren(ctx)
if templ_7745c5c3_Var17 == nil {
templ_7745c5c3_Var17 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<link rel=\"stylesheet\" href=\"assets/css/googlefont/poppins.css\"><link rel=\"stylesheet\" href=\"assets/css/googlefont/publicsans.css\"><link rel=\"stylesheet\" href=\"assets/css/googlefont/roboto.css\"><style>\r\n body {\r\n background-color: var(--fieldbg);\r\n }\r\n .card-control {\r\n width: 390px;\r\n height: 1212px;\r\n /* background-image: url(\"asset-corporate-portal/media/kartukontrol/bg-kartuKontrol.svg\");\r\n background-size: 390px 1212px;\r\n background-repeat: no-repeat; */\r\n margin: auto;\r\n }\r\n\r\n .title {\r\n font-family: Poppins;\r\n font-size: 24px;\r\n font-style: normal;\r\n font-weight: 600;\r\n line-height: normal;\r\n }\r\n\r\n .title-pertanyaan {\r\n font-family: Poppins;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 24px;\r\n }\r\n\r\n .no-margin-padding {\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n .flex-container {\r\n display: flex;\r\n align-items: center;\r\n align-items: flex-start;\r\n }\r\n\r\n .flex-number {\r\n margin-right: 5px;\r\n }\r\n\r\n .flex-question {\r\n flex-grow: 1;\r\n }\r\n\r\n .text-jawaban {\r\n color: var(--textjawabansurveymcu);\r\n font-family: Poppins;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 22px;\r\n }\r\n\r\n .radio-list {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n\r\n .radio {\r\n display: flex;\r\n align-items: center;\r\n margin-bottom: 10px;\r\n }\r\n\r\n .radio h3 {\r\n margin: 0;\r\n padding-left: 10px;\r\n }\r\n\r\n .saran-mcu::placeholder {\r\n color: var(--text-disabled);\r\n font-family: Poppins, sans-serif;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: normal;\r\n }\r\n\r\n .title-button {\r\n font-family: \"Public Sans\";\r\n font-size: 15px;\r\n font-style: normal;\r\n font-weight: 700;\r\n line-height: 26px;\r\n }\r\n\t</style>")
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 JsSurveyMcu() 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_Var18 := templ.GetChildren(ctx)
if templ_7745c5c3_Var18 == nil {
templ_7745c5c3_Var18 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}
func ShowSurveyMcu(title string, cmp templ.Component, css templ.Component, js templ.Component) templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
ctx = templ.InitializeContext(ctx)
templ_7745c5c3_Var19 := templ.GetChildren(ctx)
if templ_7745c5c3_Var19 == nil {
templ_7745c5c3_Var19 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
templ_7745c5c3_Var20 := templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
if !templ_7745c5c3_IsBuffer {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
templ_7745c5c3_Err = cmp.Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = io.Copy(templ_7745c5c3_W, templ_7745c5c3_Buffer)
}
return templ_7745c5c3_Err
})
templ_7745c5c3_Err = layout.PlaygroundLayout(title, css, js).Render(templ.WithChildren(ctx, templ_7745c5c3_Var20), templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
if !templ_7745c5c3_IsBuffer {
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
}
return templ_7745c5c3_Err
})
}