step 7 : onchange dob and set tahun, bulan, hari done

This commit is contained in:
sindhu
2024-05-31 18:23:24 +07:00
parent 011d2c8857
commit 5680dccd8c
6 changed files with 560 additions and 21 deletions

View File

@@ -30,6 +30,7 @@ type MdDoctorServices interface {
GetJenisKelamin() ([]models.HardCodeDropdownV0, error)
GetKewarganegaraan() ([]models.HardCodeRadioButtonV0, error)
GetListMdSpesialis() ([]models.SpecialistV0, error)
GetDateNow() (string, error)
}
func NewMdDoctorHandler(us MdDoctorServices) *MdDoctorHandler {
@@ -221,6 +222,91 @@ func (lh *MdDoctorHandler) HandleShowMdDoctorScreen(c echo.Context) error {
return err
}
// listItem Pendidikan
dataResultPend, err := services.GetTerminologyList(
models.TerminologyParamv0{
AttributePath: "Person.education",
CodeSystem: "xhis.code.education.level",
},
)
fmt.Println(dataResultPend)
fmt.Println(err)
if err != nil {
defer logger.Sync()
logger.Info("ERROR BREADCRUMB DEV",
zap.Any("error", err),
)
fmt.Println(dataResultPend)
return err
}
// listItem Identitas
dataResultIdentitas, err := services.GetTerminologyList(
models.TerminologyParamv0{
AttributePath: "Person.identifier.type",
CodeSystem: "http://terminology.hl7.org/CodeSystem/v2-0203",
},
)
fmt.Println(dataResultIdentitas)
fmt.Println(err)
if err != nil {
defer logger.Sync()
logger.Info("ERROR BREADCRUMB DEV",
zap.Any("error", err),
)
fmt.Println(dataResultIdentitas)
return err
}
// listItem dataResultBloodRhesus
dataResultBloodRhesus, err := services.GetTerminologyList(
models.TerminologyParamv0{
AttributePath: "Person.blood.rhesus",
CodeSystem: "http://snomed.info/sct",
},
)
fmt.Println(dataResultBloodRhesus)
fmt.Println(err)
if err != nil {
defer logger.Sync()
logger.Info("ERROR BREADCRUMB DEV",
zap.Any("error", err),
)
fmt.Println(dataResultBloodRhesus)
return err
}
// listItem dataResultEtnis
dataResultEtnis, err := services.GetTerminologyList(
models.TerminologyParamv0{
AttributePath: "Person.etnicity",
CodeSystem: "xhis.code.etnicity",
},
)
fmt.Println(dataResultEtnis)
fmt.Println(err)
if err != nil {
defer logger.Sync()
logger.Info("ERROR BREADCRUMB DEV",
zap.Any("error", err),
)
fmt.Println(dataResultEtnis)
return err
}
// tanggal sekarang
dataTglNow, err := lh.MdDoctorServices.GetDateNow()
fmt.Println(dataTglNow)
fmt.Println(err)
if err != nil {
defer logger.Sync()
logger.Info("ERROR BREADCRUMB DEV",
zap.Any("error", err),
)
fmt.Println(dataTglNow)
return err
}
defer logger.Sync()
logger.Info("LOAD BREADCRUMB DEV",
zap.Any("data", dataBreadCrumb),
@@ -244,6 +330,30 @@ func (lh *MdDoctorHandler) HandleShowMdDoctorScreen(c echo.Context) error {
// Component Dropdown MCU
listItemResultSpesialisComponent := dev_mddoctorview.ItemDropdownSpesialis(dataResultSpecialist, 0, "Pilih Spesialis")
// Component Dropdown Pendidikan Terakhir
listItemResultPendComponent := dev_mddoctorview.ItemDropdownTerminology(dataResultPend,
models.TerminologySelectedV0{},
"Pendidikan Terakhir",
)
// Component Dropdown Identitas
listItemResultIdentitasComponent := dev_mddoctorview.ItemDropdownTerminology(dataResultIdentitas,
models.TerminologySelectedV0{},
"Pilih Identitas",
)
// Component Dropdown Rhesus
listItemResultBloodRhesusComponent := dev_mddoctorview.ItemDropdownTerminology(dataResultBloodRhesus,
models.TerminologySelectedV0{},
"Rhesus",
)
// Component Dropdown Etnis
listItemResultEtnisComponent := dev_mddoctorview.ItemDropdownTerminology(dataResultEtnis,
models.TerminologySelectedV0{},
"Etnis",
)
//modal add form
dialogAddBodyCmp := dev_mddoctorview.BodyFormDoctor(
models.CustomTextFieldv2Prm{
@@ -253,6 +363,14 @@ func (lh *MdDoctorHandler) HandleShowMdDoctorScreen(c echo.Context) error {
Type: "hidden",
ID: "doctorid",
},
models.CustomTextFieldv2Prm{
Label: "Tgl Sekarang",
Name: "doctortglnow",
Placeholder: "Tgl Sekarang",
Type: "hidden",
ID: "doctortglnow",
Value: dataTglNow,
},
models.CustomDropdownv1Prm{
Label: "Sapaan",
Name: "doctorsapaan",
@@ -304,6 +422,93 @@ func (lh *MdDoctorHandler) HandleShowMdDoctorScreen(c echo.Context) error {
ID: "doctorspesialis",
},
listItemResultSpesialisComponent,
models.CustomTextFieldv2Prm{
Label: "Imbuhan Akhir 1",
Name: "doctorimbuhanakhir1",
Placeholder: "Akhir 1",
Type: "text",
ID: "doctorimbuhanakhir1",
},
models.CustomTextFieldv2Prm{
Label: "Imbuhan Akhir 2",
Name: "doctorimbuhanakhir2",
Placeholder: "Akhir 2",
Type: "text",
ID: "doctorimbuhanakhir2",
},
models.CustomTextFieldv2Prm{
Label: "Tahun",
Name: "doctorimbuhantahun",
Placeholder: "Tahun",
Type: "text",
ID: "doctorimbuhantahun",
},
models.CustomTextFieldv2Prm{
Label: "Bulan",
Name: "doctorimbuhanbulan",
Placeholder: "Bulan",
Type: "text",
ID: "doctorimbuhanbulan",
},
models.CustomTextFieldv2Prm{
Label: "Hari",
Name: "doctorimbuhanhari",
Placeholder: "Hari",
Type: "text",
ID: "doctorimbuhanhari",
},
models.CustomDropdownv1Prm{
Label: "Pendidikan Terakhir",
Name: "doctorpendidikanterakhir",
ID: "doctorpendidikanterakhir",
},
listItemResultPendComponent,
models.CustomDropdownv1Prm{
Label: "Identitas",
Name: "doctoridentitas",
ID: "doctoridentitas",
},
listItemResultIdentitasComponent,
models.CustomTextFieldv2Prm{
Label: "Email",
Name: "doctorimbuhanemail",
Placeholder: "Email",
Type: "text",
ID: "doctorimbuhanemail",
},
models.CustomTextFieldv2Prm{
Label: "Nama",
Name: "doctorimbuhannama",
Placeholder: "Nama",
Type: "text",
ID: "doctorimbuhannama",
},
models.CustomTextFieldv2Prm{
Label: "Tanggal Lahir",
Name: "doctorimbuhantanggallahir",
Placeholder: "Tanggal Lahir",
Type: "date",
ID: "doctorimbuhantanggallahir",
},
models.CustomDropdownv1Prm{
Label: "Rhesus",
Name: "doctorgolonganbloodrhesus",
ID: "doctorgolonganbloodrhesus",
},
listItemResultBloodRhesusComponent,
models.CustomDropdownv1Prm{
Label: "Ernis",
Name: "doctorgolonganetnis",
ID: "doctorgolonganetnis",
},
listItemResultEtnisComponent,
models.CustomTextFieldv2Prm{
Label: "Nomor HP",
Name: "doctorimbuhannohp",
Placeholder: "Nomor HP",
Type: "text",
ID: "doctorimbuhannohp",
},
dialogAddBodyID, dev_mddoctorview.JsHideModalDoctor(""))
modalActioAddCmp := dev_mddoctorview.ActionFormDoctor(

View File

@@ -690,6 +690,28 @@ func (su *ServicesMdDoctor) GetListMdSpesialis() ([]models.SpecialistV0, error)
return sapaanList, nil
}
// tanggal sekarang
func (su *ServicesMdDoctor) GetDateNow() (string, error) {
var stringDateNow string
logger, _ := zap.NewProduction()
defer logger.Sync()
query := `
SELECT CURRENT_DATE() as tglSekarang
`
logger.Info("QUERY SEARCH INITIAL",
zap.String("query search", query),
)
if err := dbx.Handlex.Get(&stringDateNow, query); err != nil {
return "", fmt.Errorf("error querying database: %v", err)
}
return stringDateNow, nil
}
// LISTING, SEARCH, PAGINATION
func (su *ServicesMdDoctor) GetListMdDoctor(search string, currentPage int, rowPerPage int) ([]models.DoctorV1, int, error) {
var doctorList []models.DoctorV1

View File

@@ -157,7 +157,7 @@ templ ItemDropdownTerminology(dataDropdown []models.TerminologyV0, selectedItem
// for item radiobutton kewarganegaraan
templ ItemRadioButtonKewarganegaraan(data []models.HardCodeRadioButtonV0, selectedRadioButton int) {
<div style="display: flex; gap: 20px">
<div style="display: flex; gap: 20px" class="mt-6">
for _, v := range data {
if (selectedRadioButton == v.ID) {
<label style="display: flex; align-items: center; gap: 5px">

View File

@@ -538,7 +538,7 @@ func ItemRadioButtonKewarganegaraan(data []models.HardCodeRadioButtonV0, selecte
templ_7745c5c3_Var22 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div style=\"display: flex; gap: 20px\">")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div style=\"display: flex; gap: 20px\" class=\"mt-6\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}

View File

@@ -60,7 +60,9 @@ script HandleFormAfterRequest() {
}
}
templ BodyFormDoctor(inputId models.CustomTextFieldv2Prm,
templ BodyFormDoctor(
inputId models.CustomTextFieldv2Prm,
inputTglNow models.CustomTextFieldv2Prm,
dropdownDoctorSapaan models.CustomDropdownv1Prm,
listItemSapaan templ.Component,
InputImbuhanAwal1 models.CustomTextFieldv2Prm,
@@ -74,6 +76,23 @@ templ BodyFormDoctor(inputId models.CustomTextFieldv2Prm,
InputNomorIdentitas models.CustomTextFieldv2Prm,
dropdownDoctorSpesialis models.CustomDropdownv1Prm,
listItemSpesialis templ.Component,
InputImbuhanAkhir1 models.CustomTextFieldv2Prm,
InputImbuhanAkhir2 models.CustomTextFieldv2Prm,
InputTahun models.CustomTextFieldv2Prm,
InputBulan models.CustomTextFieldv2Prm,
InputHari models.CustomTextFieldv2Prm,
dropdownDoctorPend models.CustomDropdownv1Prm,
listItemPend templ.Component,
dropdownDoctorIdentitas models.CustomDropdownv1Prm,
listItemIdentitas templ.Component,
InputEmail models.CustomTextFieldv2Prm,
InputNama models.CustomTextFieldv2Prm,
InputTanggalLahir models.CustomTextFieldv2Prm,
dropdownDoctorBloodRhesus models.CustomDropdownv1Prm,
listItemBloodRhesus templ.Component,
dropdownDoctorEtnis models.CustomDropdownv1Prm,
listItemEtnis templ.Component,
InputNomorHP models.CustomTextFieldv2Prm,
componentID string,
hxOnLoad templ.ComponentScript) {
<div id={ componentID } hx-on::load={ hxOnLoad }>
@@ -100,6 +119,8 @@ templ BodyFormDoctor(inputId models.CustomTextFieldv2Prm,
<!-- person.png end -->
@customtextfield.CustomTextFieldv2(
inputId)
@customtextfield.CustomTextFieldv2(
inputTglNow)
<div class="row mt-5">
<!-- col 1 start -->
<div class="col-4">
@@ -146,7 +167,7 @@ templ BodyFormDoctor(inputId models.CustomTextFieldv2Prm,
</div>
<!-- Kewarganegaraan -->
<!-- Nomor identitas start -->
<div class="form-row mt-0">
<div class="form-row mt-8">
@customtextfield.CustomTextFieldv2(
InputNomorIdentitas)
</div>
@@ -160,6 +181,110 @@ templ BodyFormDoctor(inputId models.CustomTextFieldv2Prm,
<!-- spesialis -->
</div>
<!-- col 1 end -->
<!-- col 2 start -->
<div class="col-4">
<div class="form-row">
<!-- Nama start -->
<div class="col">
@customtextfield.CustomTextFieldv2(
InputNama)
</div>
<!-- Nama end -->
</div>
<div class="form-row">
<!-- TanggalLahir start -->
<div class="col">
@customtextfield.CustomTextFieldv2(
InputTanggalLahir)
</div>
<!-- TanggalLahir end -->
</div>
<div class="form-row">
<!-- BloodRhesus start -->
<div class="col">
@customdropdown.MainCustomDropdownInputV0(
dropdownDoctorBloodRhesus,
listItemBloodRhesus)
</div>
<!-- BloodRhesus end -->
</div>
<div class="form-row">
<!-- Etnis start -->
<div class="col">
@customdropdown.MainCustomDropdownInputV0(
dropdownDoctorEtnis,
listItemEtnis)
</div>
<!-- Etnis end -->
</div>
<div class="form-row mt-0">
<!-- Nomor HP start -->
<div class="col">
@customtextfield.CustomTextFieldv2(
InputNomorHP)
</div>
<!-- Nomor HP end -->
</div>
</div>
<!-- col 2 start -->
<!-- col 3 start -->
<div class="col-4">
<div class="form-row">
<!-- Imbuhan akhir 1 start -->
<div class="col">
@customtextfield.CustomTextFieldv2(
InputImbuhanAkhir1)
</div>
<!-- Imbuhan akhir 1 end -->
<!-- Imbuhan akhir 2 start -->
<div class="col">
@customtextfield.CustomTextFieldv2(
InputImbuhanAkhir2)
</div>
<!-- Imbuhan akhir 2 end -->
</div>
<div class="form-row mt-0">
<!-- Tahun start -->
<div class="col">
@customtextfield.CustomTextFieldv2(
InputTahun)
</div>
<!-- Tahun end -->
<!-- Bulan start -->
<div class="col">
@customtextfield.CustomTextFieldv2(
InputBulan)
</div>
<!-- Bulan end -->
<!-- Hari -->
<div class="col">
@customtextfield.CustomTextFieldv2(
InputHari)
</div>
<!-- Hari -->
</div>
<!-- pendidikan -->
<div class="form-row mt-0">
@customdropdown.MainCustomDropdownInputV0(
dropdownDoctorPend,
listItemPend)
</div>
<!-- pendidikan -->
<!-- Identitas -->
<div class="form-row mt-0">
@customdropdown.MainCustomDropdownInputV0(
dropdownDoctorIdentitas,
listItemIdentitas)
</div>
<!-- Identitas -->
<!-- email -->
<div class="form-row mt-0">
@customtextfield.CustomTextFieldv2(
InputEmail)
</div>
<!-- email -->
</div>
<!-- col 3 start -->
</div>
</div>
</div>
@@ -168,6 +293,48 @@ templ BodyFormDoctor(inputId models.CustomTextFieldv2Prm,
// Reinitialize selectpicker after HTMX content swap
$('.selectpicker').selectpicker('refresh');
});
document.addEventListener('DOMContentLoaded', function() {
document.getElementById('doctorimbuhantahun').setAttribute('disabled',true)
document.getElementById('doctorimbuhanbulan').setAttribute('disabled',true)
document.getElementById('doctorimbuhanhari').setAttribute('disabled',true)
// onchange date picker
var birthdateInput = document.querySelector("#doctorimbuhantanggallahir");
var invalidFeedback = birthdateInput.closest(".form-group").querySelector(".invalid-feedback");
var birthdateValue = birthdateInput.value;
var todayInput = document.querySelector("#doctortglnow");
birthdateInput.addEventListener('change', function() {
var birthdateValue = new Date(birthdateInput.value);
if (!isNaN(birthdateValue)) {
var today = new Date(todayInput.value);
var years = today.getFullYear() - birthdateValue.getFullYear();
var months = today.getMonth() - birthdateValue.getMonth();
var days = today.getDate() - birthdateValue.getDate();
if (days < 0) {
months--;
days += new Date(today.getFullYear(), today.getMonth(), 0).getDate();
}
if (months < 0) {
years--;
months += 12;
}
document.querySelector("[name='doctorimbuhantahun']").value = years + ' Tahun';
document.querySelector("[name='doctorimbuhanbulan']").value = months + ' Bulan';
document.querySelector("[name='doctorimbuhanhari']").value = days + ' Hari';
} else{
birthdateInput.classList.add('is-invalid');
invalidFeedback.textContent = 'Tanggal lahir tidak valid.';
}
})
});
</script>
}

View File

@@ -187,7 +187,9 @@ func HandleFormAfterRequest() templ.ComponentScript {
}
}
func BodyFormDoctor(inputId models.CustomTextFieldv2Prm,
func BodyFormDoctor(
inputId models.CustomTextFieldv2Prm,
inputTglNow models.CustomTextFieldv2Prm,
dropdownDoctorSapaan models.CustomDropdownv1Prm,
listItemSapaan templ.Component,
InputImbuhanAwal1 models.CustomTextFieldv2Prm,
@@ -201,6 +203,23 @@ func BodyFormDoctor(inputId models.CustomTextFieldv2Prm,
InputNomorIdentitas models.CustomTextFieldv2Prm,
dropdownDoctorSpesialis models.CustomDropdownv1Prm,
listItemSpesialis templ.Component,
InputImbuhanAkhir1 models.CustomTextFieldv2Prm,
InputImbuhanAkhir2 models.CustomTextFieldv2Prm,
InputTahun models.CustomTextFieldv2Prm,
InputBulan models.CustomTextFieldv2Prm,
InputHari models.CustomTextFieldv2Prm,
dropdownDoctorPend models.CustomDropdownv1Prm,
listItemPend templ.Component,
dropdownDoctorIdentitas models.CustomDropdownv1Prm,
listItemIdentitas templ.Component,
InputEmail models.CustomTextFieldv2Prm,
InputNama models.CustomTextFieldv2Prm,
InputTanggalLahir models.CustomTextFieldv2Prm,
dropdownDoctorBloodRhesus models.CustomDropdownv1Prm,
listItemBloodRhesus templ.Component,
dropdownDoctorEtnis models.CustomDropdownv1Prm,
listItemEtnis templ.Component,
InputNomorHP models.CustomTextFieldv2Prm,
componentID string,
hxOnLoad templ.ComponentScript) templ.Component {
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
@@ -226,7 +245,7 @@ func BodyFormDoctor(inputId models.CustomTextFieldv2Prm,
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\mddoctor\mddoctorformmodal.templ`, Line: 79, Col: 22}
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctorformmodal.templ`, Line: 98, Col: 22}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10))
if templ_7745c5c3_Err != nil {
@@ -250,6 +269,11 @@ func BodyFormDoctor(inputId models.CustomTextFieldv2Prm,
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(
inputTglNow).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"row mt-5\"><!-- col 1 start --><div class=\"col-4\"><div class=\"form-row\"><!-- sapaan start --><div class=\"col\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
@@ -308,7 +332,7 @@ func BodyFormDoctor(inputId models.CustomTextFieldv2Prm,
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><!-- Kewarganegaraan --><!-- Nomor identitas start --><div class=\"form-row mt-0\">")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><!-- Kewarganegaraan --><!-- Nomor identitas start --><div class=\"form-row mt-8\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -327,7 +351,128 @@ func BodyFormDoctor(inputId models.CustomTextFieldv2Prm,
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><!-- spesialis --></div><!-- col 1 end --></div></div></div><script>\r\n document.addEventListener('htmx:afterSwap', function(event) {\r\n // Reinitialize selectpicker after HTMX content swap\r\n $('.selectpicker').selectpicker('refresh');\r\n });\r\n </script>")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><!-- spesialis --></div><!-- col 1 end --><!-- col 2 start --><div class=\"col-4\"><div class=\"form-row\"><!-- Nama start --><div class=\"col\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(
InputNama).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><!-- Nama end --></div><div class=\"form-row\"><!-- TanggalLahir start --><div class=\"col\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(
InputTanggalLahir).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><!-- TanggalLahir end --></div><div class=\"form-row\"><!-- BloodRhesus start --><div class=\"col\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = customdropdown.MainCustomDropdownInputV0(
dropdownDoctorBloodRhesus,
listItemBloodRhesus).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><!-- BloodRhesus end --></div><div class=\"form-row\"><!-- Etnis start --><div class=\"col\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = customdropdown.MainCustomDropdownInputV0(
dropdownDoctorEtnis,
listItemEtnis).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><!-- Etnis end --></div><div class=\"form-row mt-0\"><!-- Nomor HP start --><div class=\"col\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(
InputNomorHP).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><!-- Nomor HP end --></div></div><!-- col 2 start --><!-- col 3 start --><div class=\"col-4\"><div class=\"form-row\"><!-- Imbuhan akhir 1 start --><div class=\"col\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(
InputImbuhanAkhir1).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><!-- Imbuhan akhir 1 end --><!-- Imbuhan akhir 2 start --><div class=\"col\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(
InputImbuhanAkhir2).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><!-- Imbuhan akhir 2 end --></div><div class=\"form-row mt-0\"><!-- Tahun start --><div class=\"col\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(
InputTahun).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><!-- Tahun end --><!-- Bulan start --><div class=\"col\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(
InputBulan).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><!-- Bulan end --><!-- Hari --><div class=\"col\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(
InputHari).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><!-- Hari --></div><!-- pendidikan --><div class=\"form-row mt-0\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = customdropdown.MainCustomDropdownInputV0(
dropdownDoctorPend,
listItemPend).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><!-- pendidikan --><!-- Identitas --><div class=\"form-row mt-0\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = customdropdown.MainCustomDropdownInputV0(
dropdownDoctorIdentitas,
listItemIdentitas).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><!-- Identitas --><!-- email --><div class=\"form-row mt-0\">")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(
InputEmail).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><!-- email --></div><!-- col 3 start --></div></div></div><script>\r\n document.addEventListener('htmx:afterSwap', function(event) {\r\n // Reinitialize selectpicker after HTMX content swap\r\n $('.selectpicker').selectpicker('refresh');\r\n });\r\n\r\n\tdocument.addEventListener('DOMContentLoaded', function() {\r\n\t\tdocument.getElementById('doctorimbuhantahun').setAttribute('disabled',true)\r\n\t\tdocument.getElementById('doctorimbuhanbulan').setAttribute('disabled',true)\r\n\t\tdocument.getElementById('doctorimbuhanhari').setAttribute('disabled',true)\r\n\r\n\t\t// onchange date picker\r\n\t\tvar birthdateInput = document.querySelector(\"#doctorimbuhantanggallahir\");\r\n \tvar invalidFeedback = birthdateInput.closest(\".form-group\").querySelector(\".invalid-feedback\");\r\n\r\n \tvar birthdateValue = birthdateInput.value;\r\n\r\n\t\tvar todayInput = document.querySelector(\"#doctortglnow\");\r\n\t\r\n\t\tbirthdateInput.addEventListener('change', function() {\r\n\t\t\tvar birthdateValue = new Date(birthdateInput.value);\r\n\t\t\tif (!isNaN(birthdateValue)) {\r\n\t\t\t\tvar today = new Date(todayInput.value);\r\n\t\t\t\t\r\n\t\t\t\tvar years = today.getFullYear() - birthdateValue.getFullYear();\r\n\t\t\t\tvar months = today.getMonth() - birthdateValue.getMonth();\r\n\t\t\t\tvar days = today.getDate() - birthdateValue.getDate();\r\n\t\t\t\t\r\n\t\t\t\tif (days < 0) {\r\n\t\t\t\t\tmonths--;\r\n\t\t\t\t\tdays += new Date(today.getFullYear(), today.getMonth(), 0).getDate();\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif (months < 0) {\r\n\t\t\t\t\tyears--;\r\n\t\t\t\t\tmonths += 12;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdocument.querySelector(\"[name='doctorimbuhantahun']\").value = years + ' Tahun';\r\n\t\t\t\tdocument.querySelector(\"[name='doctorimbuhanbulan']\").value = months + ' Bulan';\r\n\t\t\t\tdocument.querySelector(\"[name='doctorimbuhanhari']\").value = days + ' Hari';\r\n\t\t\t} else{\r\n\t\t\t\tbirthdateInput.classList.add('is-invalid');\r\n\t\t\t\tinvalidFeedback.textContent = 'Tanggal lahir tidak valid.';\r\n\t\t\t}\r\n\t\t})\r\n\t});\r\n </script>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -407,7 +552,7 @@ func ActionFormDoctor(LinkClose string, targetClose string, hxSwapClose string,
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\mddoctor\mddoctorformmodal.templ`, Line: 198, Col: 22}
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctorformmodal.templ`, Line: 365, Col: 22}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14))
if templ_7745c5c3_Err != nil {
@@ -420,7 +565,7 @@ func ActionFormDoctor(LinkClose string, targetClose string, hxSwapClose string,
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\mddoctor\mddoctorformmodal.templ`, Line: 199, Col: 26}
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctorformmodal.templ`, Line: 366, Col: 26}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15))
if templ_7745c5c3_Err != nil {
@@ -433,7 +578,7 @@ func ActionFormDoctor(LinkClose string, targetClose string, hxSwapClose string,
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\mddoctor\mddoctorformmodal.templ`, Line: 200, Col: 24}
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctorformmodal.templ`, Line: 367, Col: 24}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var16))
if templ_7745c5c3_Err != nil {
@@ -474,7 +619,7 @@ func BtnCloseFormDoctor(LinkClose string, targetClose string, hxSwapClose string
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\mddoctor\mddoctorformmodal.templ`, Line: 221, Col: 21}
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctorformmodal.templ`, Line: 388, Col: 21}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var18))
if templ_7745c5c3_Err != nil {
@@ -487,7 +632,7 @@ func BtnCloseFormDoctor(LinkClose string, targetClose string, hxSwapClose string
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\mddoctor\mddoctorformmodal.templ`, Line: 222, Col: 25}
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctorformmodal.templ`, Line: 389, Col: 25}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19))
if templ_7745c5c3_Err != nil {
@@ -500,7 +645,7 @@ func BtnCloseFormDoctor(LinkClose string, targetClose string, hxSwapClose string
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\mddoctor\mddoctorformmodal.templ`, Line: 223, Col: 23}
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctorformmodal.templ`, Line: 390, Col: 23}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var20))
if templ_7745c5c3_Err != nil {
@@ -555,7 +700,7 @@ func DeleteConfirmationBodyDoctor(inputId models.CustomTextFieldv2Prm,
var templ_7745c5c3_Var23 string
templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.JoinStringErrs(componentID)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctorformmodal.templ`, Line: 240, Col: 22}
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctorformmodal.templ`, Line: 407, Col: 22}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var23))
if templ_7745c5c3_Err != nil {
@@ -577,7 +722,7 @@ func DeleteConfirmationBodyDoctor(inputId models.CustomTextFieldv2Prm,
var templ_7745c5c3_Var25 string
templ_7745c5c3_Var25, templ_7745c5c3_Err = templ.JoinStringErrs(message)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctorformmodal.templ`, Line: 241, Col: 14}
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctorformmodal.templ`, Line: 408, Col: 14}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var25))
if templ_7745c5c3_Err != nil {
@@ -595,7 +740,7 @@ func DeleteConfirmationBodyDoctor(inputId models.CustomTextFieldv2Prm,
var templ_7745c5c3_Var26 string
templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.JoinStringErrs(v)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctorformmodal.templ`, Line: 246, Col: 68}
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctorformmodal.templ`, Line: 413, Col: 68}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var26))
if templ_7745c5c3_Err != nil {
@@ -618,7 +763,7 @@ func DeleteConfirmationBodyDoctor(inputId models.CustomTextFieldv2Prm,
var templ_7745c5c3_Var27 string
templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.JoinStringErrs(v)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctorformmodal.templ`, Line: 252, Col: 10}
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctorformmodal.templ`, Line: 419, Col: 10}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var27))
if templ_7745c5c3_Err != nil {
@@ -685,7 +830,7 @@ func ActionFormDoctorDelete(LinkClose string, targetClose string, hxSwapClose st
var templ_7745c5c3_Var30 string
templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.JoinStringErrs(LinkClose)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctorformmodal.templ`, Line: 266, Col: 22}
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctorformmodal.templ`, Line: 433, Col: 22}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var30))
if templ_7745c5c3_Err != nil {
@@ -698,7 +843,7 @@ func ActionFormDoctorDelete(LinkClose string, targetClose string, hxSwapClose st
var templ_7745c5c3_Var31 string
templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinStringErrs(targetClose)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctorformmodal.templ`, Line: 267, Col: 26}
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctorformmodal.templ`, Line: 434, Col: 26}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31))
if templ_7745c5c3_Err != nil {
@@ -711,7 +856,7 @@ func ActionFormDoctorDelete(LinkClose string, targetClose string, hxSwapClose st
var templ_7745c5c3_Var32 string
templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.JoinStringErrs(hxSwapClose)
if templ_7745c5c3_Err != nil {
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctorformmodal.templ`, Line: 268, Col: 24}
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\dev\mddoctor\mddoctorformmodal.templ`, Line: 435, Col: 24}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var32))
if templ_7745c5c3_Err != nil {