Compare commits
15 Commits
adib/echar
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| fc2d9292c2 | |||
| 74d564e303 | |||
| d1b04676a7 | |||
| 31b2d6c793 | |||
| 72c7e714f5 | |||
| 35dd1b18fc | |||
| b9930f5662 | |||
| 4d80bf4ca8 | |||
| fcaa4d7858 | |||
| 19e3269a6a | |||
| 02d5f2e39e | |||
| 55a2e1bbfd | |||
| a729d6ab67 | |||
| 938e6d60f1 | |||
| 57d160b62a |
@@ -15,6 +15,13 @@ var IsLoggedIn = echojwt.WithConfig(
|
||||
},
|
||||
)
|
||||
|
||||
var IsAlreadyLogin = echojwt.WithConfig(
|
||||
echojwt.Config{
|
||||
SigningKey: []byte("--one_api-secret-2019-04-01"),
|
||||
ErrorHandler: JWTErrorChecker,
|
||||
},
|
||||
)
|
||||
|
||||
func JWTErrorChecker(c echo.Context, err error) error {
|
||||
return c.Redirect(http.StatusTemporaryRedirect, "/login")
|
||||
}
|
||||
|
||||
@@ -36,9 +36,9 @@ templ ShowChartFixed(idDiv string, udata string, width string, height string) {
|
||||
|
||||
script GenerateChartFixed(idDiv string, udata string, width string, height string) {
|
||||
htmx.onLoad(function(elt) {
|
||||
console.log("elt ",elt)
|
||||
// console.log("elt ",elt)
|
||||
var element = document.getElementById(idDiv);
|
||||
console.log("element ",element)
|
||||
// console.log("element ",element)
|
||||
if (element) {
|
||||
element.style.height = height;
|
||||
element.style.width = width;
|
||||
@@ -52,8 +52,48 @@ script GenerateChartFixed(idDiv string, udata string, width string, height strin
|
||||
|
||||
// var option_001 = JSON.parse(udata);
|
||||
option[idDiv] = JSON.parse(udata);
|
||||
console.log("option ", option)
|
||||
// console.log("option ", option)
|
||||
// myChart_001.setOption(option_001);
|
||||
myChart[idDiv].setOption(option[idDiv]);
|
||||
});
|
||||
}
|
||||
|
||||
templ ShowChartResponsiveWidth(idDiv string, udata string, height string) {
|
||||
<div id={ idDiv } class="mx-auto" style="width: 100%;"></div>
|
||||
@GenerateChartResponsive(idDiv, udata, height)
|
||||
}
|
||||
|
||||
script GenerateChartResponsive(idDiv string, udata string, height string) {
|
||||
htmx.onLoad(function(elt) {
|
||||
// console.log("elt ",elt)
|
||||
var element = document.getElementById(idDiv);
|
||||
// console.log("element ",element)
|
||||
if (element) {
|
||||
element.style.height = height;
|
||||
}
|
||||
|
||||
var myChart = {};
|
||||
var option = {};
|
||||
|
||||
// var myChart_001 = echarts.init(document.getElementById(idDiv));
|
||||
myChart[idDiv] = echarts.init(element);
|
||||
|
||||
// var option_001 = JSON.parse(udata);
|
||||
option[idDiv] = JSON.parse(udata);
|
||||
// console.log("option ", option)
|
||||
// myChart_001.setOption(option_001);
|
||||
if (option[idDiv]['series']['radius']) {
|
||||
option[idDiv]['series']['radius'] = ['30%', '55%'];
|
||||
} else {
|
||||
option[idDiv]['series'][0]['radius'] = ['30%', '55%'];
|
||||
}
|
||||
|
||||
myChart[idDiv].setOption(option[idDiv]);
|
||||
|
||||
var resizeObserver = new ResizeObserver(function() {
|
||||
myChart[idDiv].resize();
|
||||
});
|
||||
|
||||
resizeObserver.observe(element);
|
||||
});
|
||||
}
|
||||
@@ -124,11 +124,11 @@ func ShowChartFixed(idDiv string, udata string, width string, height string) tem
|
||||
|
||||
func GenerateChartFixed(idDiv string, udata string, width string, height string) templ.ComponentScript {
|
||||
return templ.ComponentScript{
|
||||
Name: `__templ_GenerateChartFixed_a276`,
|
||||
Function: `function __templ_GenerateChartFixed_a276(idDiv, udata, width, height){htmx.onLoad(function(elt) {
|
||||
console.log("elt ",elt)
|
||||
Name: `__templ_GenerateChartFixed_c5bf`,
|
||||
Function: `function __templ_GenerateChartFixed_c5bf(idDiv, udata, width, height){htmx.onLoad(function(elt) {
|
||||
// console.log("elt ",elt)
|
||||
var element = document.getElementById(idDiv);
|
||||
console.log("element ",element)
|
||||
// console.log("element ",element)
|
||||
if (element) {
|
||||
element.style.height = height;
|
||||
element.style.width = width;
|
||||
@@ -142,12 +142,94 @@ func GenerateChartFixed(idDiv string, udata string, width string, height string)
|
||||
|
||||
// var option_001 = JSON.parse(udata);
|
||||
option[idDiv] = JSON.parse(udata);
|
||||
console.log("option ", option)
|
||||
// console.log("option ", option)
|
||||
// myChart_001.setOption(option_001);
|
||||
myChart[idDiv].setOption(option[idDiv]);
|
||||
});
|
||||
}`,
|
||||
Call: templ.SafeScript(`__templ_GenerateChartFixed_a276`, idDiv, udata, width, height),
|
||||
CallInline: templ.SafeScriptInline(`__templ_GenerateChartFixed_a276`, idDiv, udata, width, height),
|
||||
Call: templ.SafeScript(`__templ_GenerateChartFixed_c5bf`, idDiv, udata, width, height),
|
||||
CallInline: templ.SafeScriptInline(`__templ_GenerateChartFixed_c5bf`, idDiv, udata, width, height),
|
||||
}
|
||||
}
|
||||
|
||||
func ShowChartResponsiveWidth(idDiv string, udata string, height 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_Var5 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var5 == nil {
|
||||
templ_7745c5c3_Var5 = 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_Var6 string
|
||||
templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(idDiv)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\chart\chart.templ`, Line: 62, Col: 19}
|
||||
}
|
||||
_, 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("\" class=\"mx-auto\" style=\"width: 100%;\"></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = GenerateChartResponsive(idDiv, udata, height).Render(ctx, 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
|
||||
})
|
||||
}
|
||||
|
||||
func GenerateChartResponsive(idDiv string, udata string, height string) templ.ComponentScript {
|
||||
return templ.ComponentScript{
|
||||
Name: `__templ_GenerateChartResponsive_fa78`,
|
||||
Function: `function __templ_GenerateChartResponsive_fa78(idDiv, udata, height){htmx.onLoad(function(elt) {
|
||||
// console.log("elt ",elt)
|
||||
var element = document.getElementById(idDiv);
|
||||
// console.log("element ",element)
|
||||
if (element) {
|
||||
element.style.height = height;
|
||||
}
|
||||
|
||||
var myChart = {};
|
||||
var option = {};
|
||||
|
||||
// var myChart_001 = echarts.init(document.getElementById(idDiv));
|
||||
myChart[idDiv] = echarts.init(element);
|
||||
|
||||
// var option_001 = JSON.parse(udata);
|
||||
option[idDiv] = JSON.parse(udata);
|
||||
// console.log("option ", option)
|
||||
// myChart_001.setOption(option_001);
|
||||
if (option[idDiv]['series']['radius']) {
|
||||
option[idDiv]['series']['radius'] = ['30%', '55%'];
|
||||
} else {
|
||||
option[idDiv]['series'][0]['radius'] = ['30%', '55%'];
|
||||
}
|
||||
|
||||
myChart[idDiv].setOption(option[idDiv]);
|
||||
|
||||
var resizeObserver = new ResizeObserver(function() {
|
||||
myChart[idDiv].resize();
|
||||
});
|
||||
|
||||
resizeObserver.observe(element);
|
||||
});
|
||||
}`,
|
||||
Call: templ.SafeScript(`__templ_GenerateChartResponsive_fa78`, idDiv, udata, height),
|
||||
CallInline: templ.SafeScriptInline(`__templ_GenerateChartResponsive_fa78`, idDiv, udata, height),
|
||||
}
|
||||
}
|
||||
|
||||
157
component/sidebar_user_profile/modal_sidebar_user.templ
Normal file
157
component/sidebar_user_profile/modal_sidebar_user.templ
Normal file
@@ -0,0 +1,157 @@
|
||||
package sidebaruserprofile
|
||||
|
||||
import (
|
||||
"cpone/component/customtextfield"
|
||||
"cpone/models"
|
||||
"cpone/component/modal"
|
||||
)
|
||||
|
||||
templ SidebarForm() {
|
||||
<div>
|
||||
<form
|
||||
id="form-ganti-password"
|
||||
class="form"
|
||||
hx-post="/corp/dashboard_pic/gantipassword"
|
||||
hx-target="#body-ganti-pass"
|
||||
hx-swap="outerHTML"
|
||||
hx-indicator=".formloading"
|
||||
hx-on::before-request={ HandleFormBeforeRequest() }
|
||||
hx-on::after-request={ HandleFormAfterGantiPass() }
|
||||
>
|
||||
@modalcomponent.Modal("modal-ganti-pass",
|
||||
"Ganti Password",
|
||||
ModalGantiPassword(),
|
||||
ActionFormGantiPassword(),
|
||||
CloseFormGantiPassword(),
|
||||
)
|
||||
</form>
|
||||
</div>
|
||||
}
|
||||
|
||||
templ ModalGantiPassword() {
|
||||
<div id="body-ganti-pass">
|
||||
@customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "oldPassID",
|
||||
Name: "oldpassid",
|
||||
Type: "password",
|
||||
Placeholder: "Masukan password lama",
|
||||
Label: "Password Lama",
|
||||
})
|
||||
@customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "newPassID",
|
||||
Name: "newpassid",
|
||||
Type: "password",
|
||||
Placeholder: "Masukan password baru",
|
||||
Label: "Password Baru",
|
||||
})
|
||||
@customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "reNewPassID",
|
||||
Name: "renewpassid",
|
||||
Type: "password",
|
||||
Placeholder: "Masukan ulang password baru",
|
||||
Label: "Ulangi Password Baru",
|
||||
})
|
||||
</div>
|
||||
<script>
|
||||
document.addEventListener('htmx:afterSwap', function(event) {
|
||||
$('.selectpicker').selectpicker('refresh');
|
||||
})
|
||||
</script>
|
||||
}
|
||||
|
||||
|
||||
templ RetModalGantiPassword(
|
||||
oldPass models.CustomTextFieldv2Prm,
|
||||
newPass models.CustomTextFieldv2Prm,
|
||||
renewPass models.CustomTextFieldv2Prm,
|
||||
hxOnLoad templ.ComponentScript,
|
||||
) {
|
||||
<div id="body-ganti-pass" hx-on::load={ hxOnLoad }>
|
||||
@customtextfield.CustomTextFieldv2(oldPass)
|
||||
@customtextfield.CustomTextFieldv2(newPass)
|
||||
@customtextfield.CustomTextFieldv2(renewPass)
|
||||
</div>
|
||||
<script>
|
||||
document.addEventListener('htmx:afterSwap', function(event) {
|
||||
$('.selectpicker').selectpicker('refresh');
|
||||
})
|
||||
</script>
|
||||
}
|
||||
|
||||
templ ActionFormGantiPassword() {
|
||||
<div>
|
||||
<button
|
||||
hx-on::after-request={ JSHideModal("#modal-ganti-pass") }
|
||||
hx-post="/corp/dashboard_pic/tutupgantipassword"
|
||||
hx-target="#body-ganti-pass"
|
||||
hx-swap="outerHTML"
|
||||
hx-indicator=".cancelloading"
|
||||
type="button"
|
||||
class="btn btn-outline-secondary font-weight-bolder rounded-lg mr-4 btnactcancel"
|
||||
data-dismiss="modal"
|
||||
>
|
||||
<span class="htmx-indicator spinner-border spinner-border-sm cancelloading" role="status" aria-hidden="true"></span>
|
||||
Batal
|
||||
</button>
|
||||
<button
|
||||
type="submit"
|
||||
class="btn btn-primary btn-shadow font-weight-bold rounded-lg btnactsavedata"
|
||||
>
|
||||
<span class="htmx-indicator spinner-border spinner-border-sm formloading" role="status" aria-hidden="true"></span>
|
||||
Simpan
|
||||
</button>
|
||||
</div>
|
||||
}
|
||||
|
||||
templ CloseFormGantiPassword() {
|
||||
<button
|
||||
type="button"
|
||||
hx-on::after-request={ JSHideModal("#modal-ganti-pass") }
|
||||
hx-post="/corp/dashboard_pic/tutupgantipassword"
|
||||
hx-target="#body-ganti-pass"
|
||||
hx-swap="outerHTML"
|
||||
class="close btnactcancel"
|
||||
data-dismiss="modal"
|
||||
aria-label="Close"
|
||||
>
|
||||
<i aria-hidden="true" class="ki ki-close"></i>
|
||||
</button>
|
||||
}
|
||||
|
||||
script JSHideModal(modalID string) {
|
||||
$(modalID).modal('hide')
|
||||
}
|
||||
|
||||
script JSShowModal(modalID string) {
|
||||
$(modalID).modal('show')
|
||||
const btnActCancel = document.querySelectorAll('.btnactcancel');
|
||||
const btnActSaveData = document.querySelectorAll('.btnactsavedata');
|
||||
|
||||
for (let i = 0; i < btnActCancel.length; i++) {
|
||||
btnActCancel[i].removeAttribute('disabled');
|
||||
}
|
||||
for (let i = 0; i < btnActSaveData.length; i++) {
|
||||
btnActSaveData[i].removeAttribute('disabled');
|
||||
}
|
||||
}
|
||||
|
||||
script HandleFormBeforeRequest() {
|
||||
const btnActCancel = document.querySelectorAll('.btnactcancel');
|
||||
const btnActSaveData = document.querySelectorAll('.btnactsavedata');
|
||||
|
||||
for (let i = 0; i < btnActCancel.length; i++) {
|
||||
btnActCancel[i].setAttribute('disabled', 'true');
|
||||
}
|
||||
for (let i = 0; i < btnActSaveData.length; i++) {
|
||||
btnActSaveData[i].setAttribute('disabled', 'true');
|
||||
}
|
||||
}
|
||||
|
||||
script HandleFormAfterGantiPass() {
|
||||
const btnActCancel = document.querySelectorAll('.btnactcancel');
|
||||
const btnActSaveData = document.querySelectorAll('.btnactsavedata');
|
||||
|
||||
for (let i = 0; i < btnActCancel.length; i++) {
|
||||
btnActCancel[i].removeAttribute('disabled');
|
||||
}
|
||||
for (let i = 0; i < btnActSaveData.length; i++) {
|
||||
btnActSaveData[i].removeAttribute('disabled');
|
||||
}
|
||||
}
|
||||
336
component/sidebar_user_profile/modal_sidebar_user_templ.go
Normal file
336
component/sidebar_user_profile/modal_sidebar_user_templ.go
Normal file
@@ -0,0 +1,336 @@
|
||||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.2.663
|
||||
package sidebaruserprofile
|
||||
|
||||
//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/component/customtextfield"
|
||||
"cpone/component/modal"
|
||||
"cpone/models"
|
||||
)
|
||||
|
||||
func SidebarForm() 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>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, HandleFormBeforeRequest(), HandleFormAfterGantiPass())
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<form id=\"form-ganti-password\" class=\"form\" hx-post=\"/corp/dashboard_pic/gantipassword\" hx-target=\"#body-ganti-pass\" hx-swap=\"outerHTML\" hx-indicator=\".formloading\" hx-on::before-request=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var2 templ.ComponentScript = HandleFormBeforeRequest()
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var2.Call)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-on::after-request=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var3 templ.ComponentScript = HandleFormAfterGantiPass()
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var3.Call)
|
||||
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 = modalcomponent.Modal("modal-ganti-pass",
|
||||
"Ganti Password",
|
||||
ModalGantiPassword(),
|
||||
ActionFormGantiPassword(),
|
||||
CloseFormGantiPassword(),
|
||||
).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</form></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 ModalGantiPassword() 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_Var4 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var4 == nil {
|
||||
templ_7745c5c3_Var4 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div id=\"body-ganti-pass\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "oldPassID",
|
||||
Name: "oldpassid",
|
||||
Type: "password",
|
||||
Placeholder: "Masukan password lama",
|
||||
Label: "Password Lama",
|
||||
}).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "newPassID",
|
||||
Name: "newpassid",
|
||||
Type: "password",
|
||||
Placeholder: "Masukan password baru",
|
||||
Label: "Password Baru",
|
||||
}).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "reNewPassID",
|
||||
Name: "renewpassid",
|
||||
Type: "password",
|
||||
Placeholder: "Masukan ulang password baru",
|
||||
Label: "Ulangi Password Baru",
|
||||
}).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
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func RetModalGantiPassword(
|
||||
oldPass models.CustomTextFieldv2Prm,
|
||||
newPass models.CustomTextFieldv2Prm,
|
||||
renewPass models.CustomTextFieldv2Prm,
|
||||
hxOnLoad templ.ComponentScript,
|
||||
) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var5 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var5 == nil {
|
||||
templ_7745c5c3_Var5 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, hxOnLoad)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div id=\"body-ganti-pass\" hx-on::load=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var6 templ.ComponentScript = hxOnLoad
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var6.Call)
|
||||
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 = customtextfield.CustomTextFieldv2(oldPass).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(newPass).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(renewPass).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
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func ActionFormGantiPassword() 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_Var7 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var7 == nil {
|
||||
templ_7745c5c3_Var7 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, JSHideModal("#modal-ganti-pass"))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<button hx-on::after-request=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var8 templ.ComponentScript = JSHideModal("#modal-ganti-pass")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var8.Call)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-post=\"/corp/dashboard_pic/tutupgantipassword\" hx-target=\"#body-ganti-pass\" hx-swap=\"outerHTML\" hx-indicator=\".cancelloading\" type=\"button\" class=\"btn btn-outline-secondary font-weight-bolder rounded-lg mr-4 btnactcancel\" data-dismiss=\"modal\"><span class=\"htmx-indicator spinner-border spinner-border-sm cancelloading\" role=\"status\" aria-hidden=\"true\"></span> Batal\r</button> <button type=\"submit\" class=\"btn btn-primary btn-shadow font-weight-bold rounded-lg btnactsavedata\"><span class=\"htmx-indicator spinner-border spinner-border-sm formloading\" role=\"status\" aria-hidden=\"true\"></span> Simpan\r</button></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 CloseFormGantiPassword() 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_Var9 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var9 == nil {
|
||||
templ_7745c5c3_Var9 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, JSHideModal("#modal-ganti-pass"))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<button type=\"button\" hx-on::after-request=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var10 templ.ComponentScript = JSHideModal("#modal-ganti-pass")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var10.Call)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-post=\"/corp/dashboard_pic/tutupgantipassword\" hx-target=\"#body-ganti-pass\" hx-swap=\"outerHTML\" class=\"close btnactcancel\" data-dismiss=\"modal\" aria-label=\"Close\"><i aria-hidden=\"true\" class=\"ki ki-close\"></i></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 JSHideModal(modalID string) templ.ComponentScript {
|
||||
return templ.ComponentScript{
|
||||
Name: `__templ_JSHideModal_4530`,
|
||||
Function: `function __templ_JSHideModal_4530(modalID){$(modalID).modal('hide')
|
||||
}`,
|
||||
Call: templ.SafeScript(`__templ_JSHideModal_4530`, modalID),
|
||||
CallInline: templ.SafeScriptInline(`__templ_JSHideModal_4530`, modalID),
|
||||
}
|
||||
}
|
||||
|
||||
func JSShowModal(modalID string) templ.ComponentScript {
|
||||
return templ.ComponentScript{
|
||||
Name: `__templ_JSShowModal_658d`,
|
||||
Function: `function __templ_JSShowModal_658d(modalID){$(modalID).modal('show')
|
||||
const btnActCancel = document.querySelectorAll('.btnactcancel');
|
||||
const btnActSaveData = document.querySelectorAll('.btnactsavedata');
|
||||
|
||||
for (let i = 0; i < btnActCancel.length; i++) {
|
||||
btnActCancel[i].removeAttribute('disabled');
|
||||
}
|
||||
for (let i = 0; i < btnActSaveData.length; i++) {
|
||||
btnActSaveData[i].removeAttribute('disabled');
|
||||
}
|
||||
}`,
|
||||
Call: templ.SafeScript(`__templ_JSShowModal_658d`, modalID),
|
||||
CallInline: templ.SafeScriptInline(`__templ_JSShowModal_658d`, modalID),
|
||||
}
|
||||
}
|
||||
|
||||
func HandleFormBeforeRequest() templ.ComponentScript {
|
||||
return templ.ComponentScript{
|
||||
Name: `__templ_HandleFormBeforeRequest_7bdf`,
|
||||
Function: `function __templ_HandleFormBeforeRequest_7bdf(){const btnActCancel = document.querySelectorAll('.btnactcancel');
|
||||
const btnActSaveData = document.querySelectorAll('.btnactsavedata');
|
||||
|
||||
for (let i = 0; i < btnActCancel.length; i++) {
|
||||
btnActCancel[i].setAttribute('disabled', 'true');
|
||||
}
|
||||
for (let i = 0; i < btnActSaveData.length; i++) {
|
||||
btnActSaveData[i].setAttribute('disabled', 'true');
|
||||
}
|
||||
}`,
|
||||
Call: templ.SafeScript(`__templ_HandleFormBeforeRequest_7bdf`),
|
||||
CallInline: templ.SafeScriptInline(`__templ_HandleFormBeforeRequest_7bdf`),
|
||||
}
|
||||
}
|
||||
|
||||
func HandleFormAfterGantiPass() templ.ComponentScript {
|
||||
return templ.ComponentScript{
|
||||
Name: `__templ_HandleFormAfterGantiPass_cc6f`,
|
||||
Function: `function __templ_HandleFormAfterGantiPass_cc6f(){const btnActCancel = document.querySelectorAll('.btnactcancel');
|
||||
const btnActSaveData = document.querySelectorAll('.btnactsavedata');
|
||||
|
||||
for (let i = 0; i < btnActCancel.length; i++) {
|
||||
btnActCancel[i].removeAttribute('disabled');
|
||||
}
|
||||
for (let i = 0; i < btnActSaveData.length; i++) {
|
||||
btnActSaveData[i].removeAttribute('disabled');
|
||||
}
|
||||
}`,
|
||||
Call: templ.SafeScript(`__templ_HandleFormAfterGantiPass_cc6f`),
|
||||
CallInline: templ.SafeScriptInline(`__templ_HandleFormAfterGantiPass_cc6f`),
|
||||
}
|
||||
}
|
||||
@@ -22,26 +22,35 @@ templ Navbaruserprofile(dataUser models.User) {
|
||||
<!--end::Header-->
|
||||
<!--begin::Separator-->
|
||||
<div class="separator separator-dashed my-7"></div>
|
||||
<!--end::Separator-->
|
||||
<!--begin::Notifications-->
|
||||
// <div>
|
||||
// <!--begin:Heading-->
|
||||
// <h5 class="mb-5">
|
||||
// Recent Notifications
|
||||
// </h5>
|
||||
// <!--end:Heading-->
|
||||
// <!--begin::Item-->
|
||||
// @NotificationCard()
|
||||
// <!--end::Item-->
|
||||
// </div>
|
||||
<!--end::Notifications-->
|
||||
<div class="navi mt-2">
|
||||
<a
|
||||
class="btn btn-sm btn-light-primary font-weight-bolder py-2 px-5 block"
|
||||
style="width: 100%"
|
||||
data-toggle="modal"
|
||||
data-target="#modal-ganti-pass"
|
||||
>
|
||||
Change Password
|
||||
</a>
|
||||
</div>
|
||||
<div class="navi mt-2">
|
||||
<a
|
||||
class="btn btn-sm btn-light-primary font-weight-bolder py-2 px-5 block"
|
||||
hx-get="/login/signout"
|
||||
hx-indicator=".logoutloading"
|
||||
style="width: 100%"
|
||||
>
|
||||
<span class="htmx-indicator spinner-border spinner-border-sm logoutloading" role="status" aria-hidden="true"></span>
|
||||
Sign Out
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Content-->
|
||||
</div>
|
||||
@SidebarForm()
|
||||
}
|
||||
|
||||
templ ProfileHeader(dataUser models.User) {
|
||||
<div class="d-flex align-items-center mt-5">
|
||||
<div class="d-flex mt-5">
|
||||
<div class="symbol symbol-100 mr-5 p-2 bg-primary-transparent">
|
||||
// <div class="symbol-label" style="background-image:url('/assets/media/users/300_21.jpg')"></div>
|
||||
// <i class="symbol-badge bg-success"></i>
|
||||
@@ -54,14 +63,6 @@ templ ProfileHeader(dataUser models.User) {
|
||||
<div class="text-muted mt-1">
|
||||
{ dataUser.UserPosition }
|
||||
</div>
|
||||
<div class="navi mt-2">
|
||||
<a
|
||||
class="btn btn-sm btn-light-primary font-weight-bolder py-2 px-5"
|
||||
hx-get="/login/signout"
|
||||
>
|
||||
Sign Out
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
@@ -33,7 +33,11 @@ func Navbaruserprofile(dataUser models.User) templ.Component {
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!--end::Header--><!--begin::Separator--><div class=\"separator separator-dashed my-7\"></div><!--end::Separator--><!--begin::Notifications--><!--end::Notifications--></div><!--end::Content--></div>")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!--end::Header--><!--begin::Separator--><div class=\"separator separator-dashed my-7\"></div><div class=\"navi mt-2\"><a class=\"btn btn-sm btn-light-primary font-weight-bolder py-2 px-5 block\" style=\"width: 100%\" data-toggle=\"modal\" data-target=\"#modal-ganti-pass\">Change Password\r</a></div><div class=\"navi mt-2\"><a class=\"btn btn-sm btn-light-primary font-weight-bolder py-2 px-5 block\" hx-get=\"/login/signout\" hx-indicator=\".logoutloading\" style=\"width: 100%\"><span class=\"htmx-indicator spinner-border spinner-border-sm logoutloading\" role=\"status\" aria-hidden=\"true\"></span> Sign Out\r</a></div></div><!--end::Content--></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = SidebarForm().Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -57,14 +61,14 @@ func ProfileHeader(dataUser models.User) templ.Component {
|
||||
templ_7745c5c3_Var2 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"d-flex align-items-center mt-5\"><div class=\"symbol symbol-100 mr-5 p-2 bg-primary-transparent\"><span class=\"iconify symbol-label bg-primary-transparent text-primary\" data-icon=\"gravity-ui:person\"></span></div><div class=\"d-flex flex-column\"><a href=\"#\" class=\"font-weight-bold font-size-h5 text-dark-75 text-hover-primary\">")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"d-flex mt-5\"><div class=\"symbol symbol-100 mr-5 p-2 bg-primary-transparent\"><span class=\"iconify symbol-label bg-primary-transparent text-primary\" data-icon=\"gravity-ui:person\"></span></div><div class=\"d-flex flex-column\"><a href=\"#\" class=\"font-weight-bold font-size-h5 text-dark-75 text-hover-primary\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var3 string
|
||||
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(dataUser.UserFullName)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\sidebar_user_profile\sidebar_user_profile.templ`, Line: 52, Col: 27}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\sidebar_user_profile\sidebar_user_profile.templ`, Line: 61, Col: 27}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -77,13 +81,13 @@ func ProfileHeader(dataUser models.User) templ.Component {
|
||||
var templ_7745c5c3_Var4 string
|
||||
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(dataUser.UserPosition)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\sidebar_user_profile\sidebar_user_profile.templ`, Line: 55, Col: 27}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `component\sidebar_user_profile\sidebar_user_profile.templ`, Line: 64, Col: 27}
|
||||
}
|
||||
_, 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("</div><div class=\"navi mt-2\"><a class=\"btn btn-sm btn-light-primary font-weight-bolder py-2 px-5\" hx-get=\"/login/signout\">Sign Out\r</a></div></div></div>")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div></div></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ templ CustomToastV2Show(title string, message string, typeToast string) {
|
||||
aria-atomic="true"
|
||||
id="notification-001"
|
||||
hx-swap-oob="true"
|
||||
hx-get="/dev/hidetoast"
|
||||
hx-get="/home/hidetoast"
|
||||
hx-trigger="load delay:3s"
|
||||
hx-target="this"
|
||||
style="border-radius: 8px 8px 8px 8px;"
|
||||
|
||||
@@ -56,7 +56,7 @@ func CustomToastV2Show(title string, message string, typeToast string) templ.Com
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"toast toast-top-right fade show\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" id=\"notification-001\" hx-swap-oob=\"true\" hx-get=\"/dev/hidetoast\" hx-trigger=\"load delay:3s\" hx-target=\"this\" style=\"border-radius: 8px 8px 8px 8px;\">")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"toast toast-top-right fade show\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" id=\"notification-001\" hx-swap-oob=\"true\" hx-get=\"/home/hidetoast\" hx-trigger=\"load delay:3s\" hx-target=\"this\" style=\"border-radius: 8px 8px 8px 8px;\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
||||
156
handlers/corporate/account.handlers.go
Normal file
156
handlers/corporate/account.handlers.go
Normal file
@@ -0,0 +1,156 @@
|
||||
package corporate_handlers
|
||||
|
||||
import (
|
||||
sidebaruserprofile "cpone/component/sidebar_user_profile"
|
||||
customtoastv2 "cpone/component/toastbootstrap"
|
||||
"cpone/models"
|
||||
"cpone/utils"
|
||||
"net/http"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/a-h/templ"
|
||||
"github.com/golang-jwt/jwt/v5"
|
||||
"github.com/labstack/echo/v4"
|
||||
)
|
||||
|
||||
type AccountService interface {
|
||||
ChangePasswordPIC(host string, token string, currPassword string, newPassword string) (models.ResponseStatus, error)
|
||||
ChangePasswordPAT(token string, currPassword string, newPassword string) (models.ResponseStatus, error)
|
||||
}
|
||||
|
||||
func NewAccountHandler(as AccountService) *AccountHandler {
|
||||
return &AccountHandler{
|
||||
AccountService: as,
|
||||
}
|
||||
}
|
||||
|
||||
type AccountHandler struct {
|
||||
AccountService AccountService
|
||||
}
|
||||
|
||||
func (as *AccountHandler) HandleChangePassword(c echo.Context) error {
|
||||
var response models.ResponseStatus
|
||||
userToken := c.Get("user").(*jwt.Token)
|
||||
token := userToken.Raw
|
||||
claims := userToken.Claims.(jwt.MapClaims)
|
||||
userGroup := claims["M_UserGroupDashboard"].(string)
|
||||
h := c.Request().Host
|
||||
|
||||
old_pass := c.FormValue("oldpassid")
|
||||
new_pass := c.FormValue("newpassid")
|
||||
re_new_pass := c.FormValue("renewpassid")
|
||||
// logger.Info("params", zap.Any("old", old_pass), zap.Any("new", new_pass), zap.Any("re-new", re_new_pass))
|
||||
|
||||
old_validation := ""
|
||||
new_validation := ""
|
||||
renew_validation := ""
|
||||
errorPop := ""
|
||||
|
||||
if strings.TrimSpace(old_pass) == "" {
|
||||
old_validation = "Tidak boleh kosong"
|
||||
errorPop = "Tidak boleh kosong"
|
||||
}
|
||||
if strings.TrimSpace(new_pass) == "" {
|
||||
new_validation = "Tidak boleh kosong"
|
||||
errorPop = "Tidak boleh kosong"
|
||||
}
|
||||
if strings.TrimSpace(re_new_pass) == "" {
|
||||
renew_validation = "Tidak boleh kosong"
|
||||
errorPop = "Tidak boleh kosong"
|
||||
}
|
||||
if strings.TrimSpace(new_pass) != strings.TrimSpace(re_new_pass) {
|
||||
new_validation = "Password tidak sama"
|
||||
renew_validation = "Password tidak sama"
|
||||
errorPop = "Password tidak sama"
|
||||
}
|
||||
|
||||
if old_validation != "" || new_validation != "" || renew_validation != "" {
|
||||
newBody := sidebaruserprofile.RetModalGantiPassword(
|
||||
models.CustomTextFieldv2Prm{
|
||||
ID: "oldPassID",
|
||||
Name: "oldpassid",
|
||||
Type: "password",
|
||||
Placeholder: "Masukan password lama",
|
||||
Label: "Password Lama",
|
||||
ErrorMsg: old_validation,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
ID: "newPassID",
|
||||
Name: "newpassid",
|
||||
Type: "password",
|
||||
Placeholder: "Masukan password baru",
|
||||
Label: "Password Baru",
|
||||
ErrorMsg: new_validation,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
ID: "reNewPassID",
|
||||
Name: "renewpassid",
|
||||
Type: "password",
|
||||
Placeholder: "Masukan ulang password baru",
|
||||
Label: "Ulangi Password Baru",
|
||||
ErrorMsg: renew_validation,
|
||||
},
|
||||
sidebaruserprofile.JSHideModal(""),
|
||||
)
|
||||
toast := customtoastv2.CustomToastV2Show("Warning", errorPop, "warning")
|
||||
return utils.ViewMulti(c, []templ.Component{toast, newBody})
|
||||
}
|
||||
|
||||
if userGroup == "pic" {
|
||||
resp, err := as.AccountService.ChangePasswordPIC(h, token, old_pass, new_pass)
|
||||
if err != nil {
|
||||
newBody := sidebaruserprofile.ModalGantiPassword()
|
||||
toast := customtoastv2.CustomToastV2Show("Warning", err.Error(), "warning")
|
||||
return utils.ViewMulti(c, []templ.Component{toast, newBody})
|
||||
}
|
||||
response = resp
|
||||
}
|
||||
|
||||
if userGroup == "patient" {
|
||||
resp, err := as.AccountService.ChangePasswordPAT(token, old_pass, new_pass)
|
||||
if err != nil {
|
||||
newBody := sidebaruserprofile.ModalGantiPassword()
|
||||
toast := customtoastv2.CustomToastV2Show("Warning", "Error ganti password pat", "warning")
|
||||
return utils.ViewMulti(c, []templ.Component{toast, newBody})
|
||||
}
|
||||
response = resp
|
||||
}
|
||||
|
||||
if response.Status == "ERR" {
|
||||
newBody := sidebaruserprofile.ModalGantiPassword()
|
||||
toast := customtoastv2.CustomToastV2Show("Warning", response.Message, "warning")
|
||||
return utils.ViewMulti(c, []templ.Component{toast, newBody})
|
||||
}
|
||||
|
||||
expire := time.Now().Add(-7 * 24 * time.Hour)
|
||||
cookie := new(http.Cookie)
|
||||
cookie.Name = "token"
|
||||
cookie.Value = ""
|
||||
cookie.Path = "/"
|
||||
cookie.Expires = expire
|
||||
cookie.HttpOnly = true
|
||||
c.SetCookie(cookie)
|
||||
|
||||
ret := `
|
||||
<script>
|
||||
$("#body-ganti-pass").modal('hide')
|
||||
console.log("signout")
|
||||
localStorage.removeItem("token")
|
||||
localStorage.removeItem("user")
|
||||
|
||||
setTimeout(() => {
|
||||
window.location.replace("/login");
|
||||
}, 200)
|
||||
</script>
|
||||
`
|
||||
|
||||
c.Response().Header().Set("HX-Trigger", "script")
|
||||
return c.String(http.StatusOK, ret)
|
||||
}
|
||||
|
||||
func (as *AccountHandler) HandleCloseChangePassword(c echo.Context) error {
|
||||
newBody := sidebaruserprofile.ModalGantiPassword()
|
||||
|
||||
return utils.View(c, newBody)
|
||||
}
|
||||
@@ -21,7 +21,7 @@ type DashboardPicServices interface {
|
||||
GetEmployeeAnalyticBreadcrumb(title string) (models.BreadCrumbV1, error)
|
||||
GetCorporateName(userID string) (string, error)
|
||||
DummyDataTest() ([]models.DashboardPic, error)
|
||||
ListingDashboardPic(search string, startdate string, enddate string, currentpage int, rowperpage int) ([]models.DashboardPic, int, error)
|
||||
ListingDashboardPic(email string, search string, startdate string, enddate string, currentpage int, rowperpage int) ([]models.DashboardPic, int, error)
|
||||
}
|
||||
|
||||
type DashboardPicHandler struct {
|
||||
@@ -45,7 +45,7 @@ func (ea *DashboardPicHandler) HandleShowEmployeeAnalyticScreen(c echo.Context)
|
||||
userID := claims["M_UserID"].(string)
|
||||
name := claims["M_StaffName"].(string)
|
||||
position := claims["M_UserGroupDashboard"].(string)
|
||||
logger.Info("jwt", zap.Any("name", name))
|
||||
email := claims["M_UserEmail"].(string)
|
||||
|
||||
title, err := ea.DashboardPicServices.GetCorporateName(userID)
|
||||
if err != nil {
|
||||
@@ -75,7 +75,7 @@ func (ea *DashboardPicHandler) HandleShowEmployeeAnalyticScreen(c echo.Context)
|
||||
sidbaruser := sidebaruserprofile.Navbaruserprofile(user)
|
||||
breadcrumb := breadcrumadmin.MainBreadcrumbAdminV1(dataBreadcrumb)
|
||||
|
||||
listingData, totalPage, err := ea.DashboardPicServices.ListingDashboardPic("", "", "", 1, 10)
|
||||
listingData, totalPage, err := ea.DashboardPicServices.ListingDashboardPic(email, "", "", "", 1, 10)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Info("Error get listing data", zap.Any("error", err), zap.Any("total", totalPage))
|
||||
@@ -129,6 +129,10 @@ func (ea *DashboardPicHandler) HandlePagination(c echo.Context) error {
|
||||
startdate := c.QueryParam("startdate")
|
||||
enddate := c.QueryParam("enddate")
|
||||
|
||||
userCok := c.Get("user").(*jwt.Token)
|
||||
claims := userCok.Claims.(jwt.MapClaims)
|
||||
email := claims["M_UserEmail"].(string)
|
||||
|
||||
var retVal []templ.Component
|
||||
logger, _ := zap.NewProduction()
|
||||
page, err := strconv.Atoi(pageparam)
|
||||
@@ -138,7 +142,7 @@ func (ea *DashboardPicHandler) HandlePagination(c echo.Context) error {
|
||||
return err
|
||||
}
|
||||
|
||||
listdata, totalPage, err := ea.DashboardPicServices.ListingDashboardPic(search, startdate, enddate, page, 10)
|
||||
listdata, totalPage, err := ea.DashboardPicServices.ListingDashboardPic(email, search, startdate, enddate, page, 10)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Info("Error convert page param")
|
||||
@@ -172,7 +176,11 @@ func (ea *DashboardPicHandler) HandleFilter(c echo.Context) error {
|
||||
listID := c.QueryParam("listID")
|
||||
paginationID := c.QueryParam("paginationID")
|
||||
|
||||
dataList, totalPage, err := ea.DashboardPicServices.ListingDashboardPic(search, startdate, enddate, 1, 5)
|
||||
userCok := c.Get("user").(*jwt.Token)
|
||||
claims := userCok.Claims.(jwt.MapClaims)
|
||||
email := claims["M_UserEmail"].(string)
|
||||
|
||||
dataList, totalPage, err := ea.DashboardPicServices.ListingDashboardPic(email, search, startdate, enddate, 1, 10)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Info("Error Get Listing Data", zap.Any("error", err))
|
||||
|
||||
@@ -16,6 +16,7 @@ import (
|
||||
|
||||
type McuDetailServices interface {
|
||||
GetBreadcrumb(id string) (models.BreadCrumbV1, error)
|
||||
GetTabNameList(id string) ([]models.McuTabModels, error)
|
||||
}
|
||||
|
||||
type McuDetailHandler struct {
|
||||
@@ -38,7 +39,7 @@ func (mcud *McuDetailHandler) HandlerShowMcuDetailScreen(c echo.Context) error {
|
||||
claims := userCok.Claims.(jwt.MapClaims)
|
||||
name := claims["M_StaffName"].(string)
|
||||
position := claims["M_UserGroupDashboard"].(string)
|
||||
logger.Info("jwt", zap.Any("name", name))
|
||||
// logger.Info("jwt", zap.Any("name", name))
|
||||
|
||||
user := models.User{
|
||||
UserID: 1,
|
||||
@@ -58,9 +59,17 @@ func (mcud *McuDetailHandler) HandlerShowMcuDetailScreen(c echo.Context) error {
|
||||
navbaruser := navbarmenu.NavbarWithLogo(user)
|
||||
sidbaruser := sidebaruserprofile.Navbaruserprofile(user)
|
||||
|
||||
// test := []models.McuTabModels{}
|
||||
tabname, err := mcud.McuDetailServices.GetTabNameList(id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// logger.Info("List tab name", zap.Any("tav", tabname))
|
||||
|
||||
content := corporate_mcudetail.McuDetailScreen(
|
||||
breadcrumb,
|
||||
corporate_mcudetail.TabViewMcuDetail(id),
|
||||
// corporate_mcudetail.TabViewMcuDetail(id),
|
||||
corporate_mcudetail.McuDetailTabView(id, tabname),
|
||||
)
|
||||
css := corporate_mcudetail.CSSMcuDetail(
|
||||
corporate_tabmcudetail.CssKesimpulan(),
|
||||
|
||||
@@ -2,18 +2,26 @@ package mcu_corporate_handlers
|
||||
|
||||
import (
|
||||
"cpone/component/pagination"
|
||||
customtoastv2 "cpone/component/toastbootstrap"
|
||||
"cpone/models"
|
||||
"cpone/utils"
|
||||
corporate_mcudetail "cpone/views/corporate/mcu/mcutab"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/a-h/templ"
|
||||
"github.com/golang-jwt/jwt/v5"
|
||||
"github.com/labstack/echo/v4"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
type TabDaftarPesertaServices interface {
|
||||
GetListMcuDaftarPeserta(id string, currentpage int, rowperpage int) ([]models.ModelMcuDaftarPeserta, int, error)
|
||||
GetReportMcu(orderheaderID string) ([]models.TabViewReportMcu, error)
|
||||
GetListDaftarPesertaMCU(id string, currentpage int, rowperpage int) ([]models.ModelMcuDaftarPeserta, int, error)
|
||||
GenerataPasswordMCU(mgmMCUID string, host string) (models.GeneratePasswordResponse, error)
|
||||
GetAkunPeserta(patientID string) (models.AuthPatient, error)
|
||||
GetListReportPesertaV4(orderheaderID string, staffname string) ([]models.TabViewReportMcu, error)
|
||||
ResetPasswordPeserta(token string, newPassword string, email string, authuserid string) (models.ResponseStatus, error)
|
||||
DetailTestdanPaket(orderheaderID string) ([]models.TableTestPaket, error)
|
||||
}
|
||||
|
||||
type TabDaftarPesertaHandlers struct {
|
||||
@@ -31,24 +39,41 @@ func (tdp *TabDaftarPesertaHandlers) HandleShowTabDaftarPeserta(c echo.Context)
|
||||
title := "Daftar Report"
|
||||
tableID := utils.GenerateRandomID("tableid")
|
||||
paginationID := utils.GenerateRandomID("paginationID")
|
||||
|
||||
dialogReportID := utils.GenerateRandomID("dialogreportid")
|
||||
dialogReportBodyID := utils.GenerateRandomID("dialogreportbodyid")
|
||||
|
||||
dialogGeneratePassID := utils.GenerateRandomID("generatepasswordID")
|
||||
dialogGeneratePassBodyID := utils.GenerateRandomID("generatepasswordBodyID")
|
||||
|
||||
dialogAkunID := utils.GenerateRandomID("dialogakunID")
|
||||
dialogAkunBodyID := utils.GenerateRandomID("dialogakunbodyID")
|
||||
|
||||
dialogDetailID := utils.GenerateRandomID("dialogdetailID")
|
||||
dialogDetailBodyID := utils.GenerateRandomID("dialogdetailBodyID")
|
||||
|
||||
id := c.Param("id")
|
||||
logger.Info("Params", zap.Any("id", id))
|
||||
|
||||
dataTable, totalPage, err := tdp.TabDaftarPesertaServices.GetListMcuDaftarPeserta(id, 1, 10)
|
||||
dataTable, totalPage, err := tdp.TabDaftarPesertaServices.GetListDaftarPesertaMCU(id, 1, 10)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
logger.Info("totalPage", zap.Any("total", totalPage))
|
||||
|
||||
table := corporate_mcudetail.TableDaftarPeserta(
|
||||
dataTable,
|
||||
tableID,
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/openreport",
|
||||
"#"+dialogReportBodyID,
|
||||
"#tableID, #paginationID, #dialogReportID, #dialogReportBodyID",
|
||||
"#tableID, #paginationID, #dialogReportID, #dialogReportBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID",
|
||||
"outerHTML",
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/openviewakun",
|
||||
"#"+dialogAkunBodyID,
|
||||
"#tableID, #paginationID, #dialogReportID, #dialogReportBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID",
|
||||
"outerHTML",
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/opendetail",
|
||||
"#"+dialogDetailBodyID,
|
||||
"#tableID, #paginationID, #dialogReportID, #dialogReportBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID, #dialogDetailID, #dialogDetailBodyID",
|
||||
"outerHTML",
|
||||
)
|
||||
|
||||
@@ -57,7 +82,7 @@ func (tdp *TabDaftarPesertaHandlers) HandleShowTabDaftarPeserta(c echo.Context)
|
||||
1,
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/changepage",
|
||||
paginationID,
|
||||
"#tableID, #paginationID, #loading-parent, #loading-child, #loading-spinner, #loadingcontent, #dialogReportID, #dialogReportBodyID",
|
||||
"#tableID, #paginationID, #loading-parent, #loading-child, #loading-spinner, #loadingcontent, #dialogReportID, #dialogReportBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID",
|
||||
"#contentlayout",
|
||||
"outerHTML", "", "",
|
||||
corporate_mcudetail.BeforeRequestContent(),
|
||||
@@ -69,10 +94,11 @@ func (tdp *TabDaftarPesertaHandlers) HandleShowTabDaftarPeserta(c echo.Context)
|
||||
pagination,
|
||||
)
|
||||
|
||||
// modal dialog tab rpt
|
||||
tabData := []models.TabViewReportMcu{}
|
||||
tabview := corporate_mcudetail.TabReportView(tabData)
|
||||
|
||||
bodymodal := corporate_mcudetail.ModalBody(
|
||||
bodymodal := corporate_mcudetail.ModalRptBody(
|
||||
dialogReportBodyID,
|
||||
tabview,
|
||||
corporate_mcudetail.JsShowModal(""),
|
||||
@@ -86,34 +112,160 @@ func (tdp *TabDaftarPesertaHandlers) HandleShowTabDaftarPeserta(c echo.Context)
|
||||
)
|
||||
|
||||
modaldialog := corporate_mcudetail.DialogReport(
|
||||
"",
|
||||
"generatepasswordform",
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/dialogreport",
|
||||
"#"+dialogReportBodyID,
|
||||
"outerHTML",
|
||||
"#tableID, #paginationID, #dialogReportID, #dialogReportBodyID"+paginationID,
|
||||
"#tableID, #paginationID, #dialogAkunID, #dialogAkunBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogReportID, #dialogReportBodyID"+paginationID,
|
||||
dialogReportID,
|
||||
title,
|
||||
bodymodal,
|
||||
closemodal,
|
||||
)
|
||||
|
||||
// dialog generate password
|
||||
modalGenPassBody := corporate_mcudetail.ModalGenPassBody(
|
||||
dialogGeneratePassBodyID,
|
||||
"Apakah anda yakin untuk men-generate password untuk seluruh karyawan",
|
||||
corporate_mcudetail.JsShowModal(""),
|
||||
)
|
||||
|
||||
closeGenPass := corporate_mcudetail.ModalClose(
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/closegenpass",
|
||||
"#"+dialogGeneratePassBodyID,
|
||||
"outerHTML",
|
||||
"#"+dialogGeneratePassID,
|
||||
)
|
||||
|
||||
actionGenPass := corporate_mcudetail.ModalGenPassAction(
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/closegenpass",
|
||||
"#"+dialogGeneratePassBodyID,
|
||||
"outerHTML",
|
||||
"#"+dialogGeneratePassID,
|
||||
)
|
||||
|
||||
modalGenPass := corporate_mcudetail.DialogGeneratePass(
|
||||
"",
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/dialoggenpass",
|
||||
"#"+dialogGeneratePassBodyID,
|
||||
"outerHTML",
|
||||
"#tableID, #paginationID, #contentlayout, #dialogAkunID, #dialogAkunBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogReportID, #dialogReportBodyID, #currpage"+paginationID,
|
||||
dialogGeneratePassID,
|
||||
"Generate Password MCU",
|
||||
modalGenPassBody,
|
||||
closeGenPass,
|
||||
actionGenPass,
|
||||
)
|
||||
|
||||
// dialog view akun
|
||||
dialogAkunBody := corporate_mcudetail.ModalViewAkunBody(
|
||||
dialogAkunBodyID,
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "ID Akun Peserta",
|
||||
Name: "akunpesertaid",
|
||||
Placeholder: "ID Akun Peserta",
|
||||
Type: "hidden",
|
||||
ID: "akunpesertaidid",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Email",
|
||||
Name: "akunpesertaemail",
|
||||
Type: "text",
|
||||
ID: "akunpesertaemailid",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Password baru",
|
||||
Name: "akunpesertapassnew",
|
||||
Type: "password",
|
||||
ID: "akunpesertapassnewid",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Ulangi password baru",
|
||||
Name: "akunpesertapasscek",
|
||||
Type: "password",
|
||||
ID: "akunpesertapasscekid",
|
||||
},
|
||||
corporate_mcudetail.JsShowModal(""),
|
||||
)
|
||||
|
||||
dialogAkunClose := corporate_mcudetail.ModalClose(
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/closeviewakun",
|
||||
"#"+dialogAkunBodyID,
|
||||
"outerHTML",
|
||||
"#"+dialogAkunID,
|
||||
)
|
||||
|
||||
dialogAkunAction := corporate_mcudetail.ModalGenPassAction(
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/closeviewakun",
|
||||
"#"+dialogAkunBodyID,
|
||||
"outerHTML",
|
||||
"#"+dialogAkunID,
|
||||
)
|
||||
|
||||
dialogAkunView := corporate_mcudetail.DialogGeneratePass(
|
||||
"viewakunform",
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/viewakun",
|
||||
"#"+dialogAkunBodyID,
|
||||
"outerHTML",
|
||||
"#tableID, #paginationID, #dialogAkunID, #contentlayout, #dialogAkunBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogReportID, #dialogReportBodyID, #currpage"+paginationID,
|
||||
dialogAkunID,
|
||||
"Reset Password Akun Peserta",
|
||||
dialogAkunBody,
|
||||
dialogAkunClose,
|
||||
dialogAkunAction,
|
||||
)
|
||||
|
||||
// dialog detali pemeriksaan
|
||||
|
||||
detailData, err := tdp.TabDaftarPesertaServices.DetailTestdanPaket("")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
detailTable := corporate_mcudetail.TableDetailMCU(detailData)
|
||||
|
||||
dialodDetailBody := corporate_mcudetail.ModalRptBody(
|
||||
dialogDetailBodyID,
|
||||
detailTable,
|
||||
corporate_mcudetail.JsShowModal(""),
|
||||
)
|
||||
|
||||
closeDetail := corporate_mcudetail.ModalClose(
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/closedetail",
|
||||
"#"+dialogDetailBodyID,
|
||||
"outerHTML",
|
||||
"#"+dialogDetailID,
|
||||
)
|
||||
|
||||
modalDetail := corporate_mcudetail.DialogReport(
|
||||
"detailmcu",
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/dialogdetail",
|
||||
"#"+dialogDetailBodyID,
|
||||
"outerHTML",
|
||||
"#tableID, #paginationID, #dialogAkunID, #dialogAkunBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogReportID, #dialogReportBodyID"+paginationID,
|
||||
dialogDetailID,
|
||||
"Detail Pemeriksaan",
|
||||
dialodDetailBody,
|
||||
closeDetail,
|
||||
)
|
||||
|
||||
content := corporate_mcudetail.TabDaftarPesertaScreen(
|
||||
tableID,
|
||||
paginationID,
|
||||
dialogReportID,
|
||||
dialogReportBodyID,
|
||||
dialogGeneratePassID,
|
||||
dialogGeneratePassBodyID,
|
||||
dialogAkunID,
|
||||
dialogAkunBodyID,
|
||||
dialogDetailID,
|
||||
dialogDetailBodyID,
|
||||
clayout,
|
||||
modaldialog,
|
||||
modalGenPass,
|
||||
dialogAkunView,
|
||||
modalDetail,
|
||||
)
|
||||
// css := corporate_mcudetail.CSSTabDaftarPeserta()
|
||||
// js := corporate_mcudetail.JsTabDaftarPeserta()
|
||||
|
||||
// view := corporate_mcudetail.ShowTabDafterPeserta(
|
||||
// title,
|
||||
// content,
|
||||
// css,
|
||||
// js,
|
||||
// )
|
||||
|
||||
return utils.View(c, content)
|
||||
}
|
||||
@@ -122,8 +274,10 @@ func (tdp *TabDaftarPesertaHandlers) HandlePagination(c echo.Context) error {
|
||||
pageparam := c.QueryParam("page")
|
||||
tableID := c.QueryParam("tableID")
|
||||
paginationID := c.QueryParam("paginationID")
|
||||
// dialogReportID := c.QueryParam("dialogReportID")
|
||||
|
||||
dialogReportBodyID := c.QueryParam("dialogReportBodyID")
|
||||
dialogAkunBodyID := c.QueryParam("dialogAkunBodyID")
|
||||
dialogDetailBodyID := c.QueryParam("dialogDetailBodyID")
|
||||
|
||||
id := c.Param("id")
|
||||
|
||||
@@ -133,7 +287,7 @@ func (tdp *TabDaftarPesertaHandlers) HandlePagination(c echo.Context) error {
|
||||
return err
|
||||
}
|
||||
|
||||
tableData, totalPage, err := tdp.TabDaftarPesertaServices.GetListMcuDaftarPeserta(id, page, 10)
|
||||
tableData, totalPage, err := tdp.TabDaftarPesertaServices.GetListDaftarPesertaMCU(id, page, 10)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -142,7 +296,15 @@ func (tdp *TabDaftarPesertaHandlers) HandlePagination(c echo.Context) error {
|
||||
tableID,
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/openreport",
|
||||
"#"+dialogReportBodyID,
|
||||
"#tableID, #paginationID, #dialogReportID, #dialogReportBodyID",
|
||||
"#tableID, #paginationID, #dialogReportID, #dialogReportBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID",
|
||||
"outerHTML",
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/openviewakun",
|
||||
"#"+dialogAkunBodyID,
|
||||
"#tableID, #paginationID, #dialogReportID, #dialogReportBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID",
|
||||
"outerHTML",
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/opendetail",
|
||||
"#"+dialogDetailBodyID,
|
||||
"#tableID, #paginationID, #dialogReportID, #dialogReportBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID, #dialogDetailID, #dialogDetailBodyID",
|
||||
"outerHTML",
|
||||
)
|
||||
|
||||
@@ -151,19 +313,13 @@ func (tdp *TabDaftarPesertaHandlers) HandlePagination(c echo.Context) error {
|
||||
page,
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/changepage",
|
||||
paginationID,
|
||||
"#tableID, #paginationID, #loading-parent, #loading-child, #loading-spinner, #loadingcontent, #dialogReportID, #dialogReportBodyID, #currPage"+paginationID,
|
||||
"#tableID, #paginationID, #loading-parent, #loading-child, #loading-spinner, #loadingcontent, #dialogDetailID, #dialogDetailBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID, #dialogReportID, #dialogReportBodyID, #currPage"+paginationID,
|
||||
"#contentlayout",
|
||||
"outerHTML", "", "",
|
||||
corporate_mcudetail.BeforeRequestContent(),
|
||||
corporate_mcudetail.AfterRequestContent(),
|
||||
)
|
||||
|
||||
// content := corporate_mcudetail.TabDaftarPesertaScreen(tableID, paginationID, table, pagination)
|
||||
// retval = append(retval, table)
|
||||
// retval = append(retval, pagination)
|
||||
// return utils.ViewMulti(c, retval)
|
||||
|
||||
// return utils.View(c, content)
|
||||
clayout := corporate_mcudetail.ContentLayout(table, pagination)
|
||||
return utils.View(c, clayout)
|
||||
}
|
||||
@@ -171,15 +327,20 @@ func (tdp *TabDaftarPesertaHandlers) HandlePagination(c echo.Context) error {
|
||||
func (tdp *TabDaftarPesertaHandlers) HandleOpenReportDialog(c echo.Context) error {
|
||||
logger, _ := zap.NewProduction()
|
||||
|
||||
userCok := c.Get("user").(*jwt.Token)
|
||||
claims := userCok.Claims.(jwt.MapClaims)
|
||||
staffname := claims["M_StaffName"].(string)
|
||||
|
||||
idx := c.QueryParam("idx")
|
||||
dialogReportID := c.QueryParam("dialogReportID")
|
||||
dialogReportBodyID := c.QueryParam("dialogReportBodyID")
|
||||
logger.Info("params", zap.Any("idx", idx))
|
||||
|
||||
tabData, err := tdp.TabDaftarPesertaServices.GetReportMcu(idx)
|
||||
tabdatav3, err := tdp.TabDaftarPesertaServices.GetListReportPesertaV4(idx, staffname)
|
||||
if err != nil {
|
||||
logger.Info("error", zap.Any("err", err))
|
||||
tab := corporate_mcudetail.TabReportView([]models.TabViewReportMcu{})
|
||||
mod := corporate_mcudetail.ModalBody(
|
||||
mod := corporate_mcudetail.ModalRptBody(
|
||||
dialogReportBodyID,
|
||||
tab,
|
||||
corporate_mcudetail.JsShowModal(""),
|
||||
@@ -187,9 +348,11 @@ func (tdp *TabDaftarPesertaHandlers) HandleOpenReportDialog(c echo.Context) erro
|
||||
return utils.View(c, mod)
|
||||
}
|
||||
|
||||
tabcomponent := corporate_mcudetail.TabReportView(tabData)
|
||||
logger.Info("resp new data", zap.Any("data", tabdatav3))
|
||||
|
||||
modalbody := corporate_mcudetail.ModalBody(
|
||||
tabcomponent := corporate_mcudetail.TabReportView(tabdatav3)
|
||||
|
||||
modalbody := corporate_mcudetail.ModalRptBody(
|
||||
dialogReportBodyID,
|
||||
tabcomponent,
|
||||
corporate_mcudetail.JsShowModal("#"+dialogReportID),
|
||||
@@ -197,3 +360,446 @@ func (tdp *TabDaftarPesertaHandlers) HandleOpenReportDialog(c echo.Context) erro
|
||||
|
||||
return utils.View(c, modalbody)
|
||||
}
|
||||
|
||||
func (tdp *TabDaftarPesertaHandlers) HandleCloseDialogGenPass(c echo.Context) error {
|
||||
logger, _ := zap.NewProduction()
|
||||
|
||||
id := c.Param("id")
|
||||
dialogGenPassID := c.FormValue("dialogGenPassID")
|
||||
dialogGenPassBodyID := c.FormValue("dialogGenPassBodyID")
|
||||
logger.Info("param", zap.Any("id", id))
|
||||
|
||||
modalDialogGenPass := corporate_mcudetail.ModalGenPassBody(
|
||||
dialogGenPassBodyID,
|
||||
"Apakah anda yakin untuk men-generate password untuk seluruh karyawan",
|
||||
corporate_mcudetail.JsHideModal("#"+dialogGenPassID),
|
||||
)
|
||||
|
||||
return utils.View(c, modalDialogGenPass)
|
||||
}
|
||||
|
||||
func (tdp *TabDaftarPesertaHandlers) HandleDialogGenPass(c echo.Context) error {
|
||||
// logger, _ := zap.NewProduction()
|
||||
host := c.Request().Host
|
||||
id := c.Param("id")
|
||||
|
||||
dialogGenPassID := c.FormValue("dialogGenPassID")
|
||||
dialogGenPassBodyID := c.FormValue("dialogGenPassBodyID")
|
||||
dialogReportID := c.FormValue("dialogReportID")
|
||||
dialogReportBodyID := c.FormValue("dialogReportBodyID")
|
||||
dialogAkunID := c.FormValue("dialogAkunID")
|
||||
dialogAkunBodyID := c.FormValue("dialogAkunBodyID")
|
||||
|
||||
tableID := c.FormValue("tableID")
|
||||
paginationID := c.FormValue("paginationID")
|
||||
pageparam := c.FormValue("currpage" + paginationID)
|
||||
|
||||
// generate pasword
|
||||
resp, err := tdp.TabDaftarPesertaServices.GenerataPasswordMCU(id, host)
|
||||
if err != nil {
|
||||
modalDialogGenPass := corporate_mcudetail.ModalGenPassBody(
|
||||
dialogGenPassBodyID,
|
||||
"Apakah anda yakin untuk men-generate password untuk seluruh karyawan",
|
||||
corporate_mcudetail.JsShowModal(""),
|
||||
)
|
||||
toastwarning := customtoastv2.CustomToastV2Show("Warning", "Gagal generate password", "warning")
|
||||
retVal := []templ.Component{toastwarning, modalDialogGenPass}
|
||||
return utils.ViewMulti(c, retVal)
|
||||
}
|
||||
|
||||
if resp.Status != "OK" {
|
||||
modalDialogGenPass := corporate_mcudetail.ModalGenPassBody(
|
||||
dialogGenPassBodyID,
|
||||
"Apakah anda yakin untuk men-generate password untuk seluruh karyawan",
|
||||
corporate_mcudetail.JsShowModal(""),
|
||||
)
|
||||
toastwarning := customtoastv2.CustomToastV2Show("Warning", "Gagal generate password MCU", "warning")
|
||||
retVal := []templ.Component{toastwarning, modalDialogGenPass}
|
||||
return utils.ViewMulti(c, retVal)
|
||||
}
|
||||
|
||||
aa := "/corp/dashboard_pic/detail/" + id + "/tabdaftarpeserta/reload?page=" + pageparam
|
||||
bb := "&tableID=" + tableID
|
||||
cc := "&paginationID=" + paginationID
|
||||
dd := "&dialogReportID=" + dialogReportID
|
||||
ee := "&dialogReportBodyID=" + dialogReportBodyID
|
||||
ff := "&dialogGenPassID=" + dialogGenPassID
|
||||
gg := "&dialogGenPassBodyID=" + dialogGenPassBodyID
|
||||
hh := "&dialogAkunID=" + dialogAkunID
|
||||
ii := "&dialogAkunBodyID=" + dialogAkunBodyID
|
||||
jj := "&currpage" + paginationID + "=" + pageparam
|
||||
link := aa + bb + cc + dd + ee + ff + gg + hh + ii + jj
|
||||
|
||||
modalDialogGenPass := corporate_mcudetail.ModalGenPassBody(
|
||||
dialogGenPassBodyID,
|
||||
"Apakah anda yakin untuk men-generate password untuk seluruh karyawan",
|
||||
// corporate_mcudetail.JsHideModal("#"+dialogGenPassID),
|
||||
corporate_mcudetail.JsGenPassReload("#"+dialogGenPassID, link),
|
||||
)
|
||||
|
||||
message := "Success generate password.\n" + "resp.Message" + " password, telah dikirim melalui email peserta"
|
||||
toastSuccess := customtoastv2.CustomToastV2Show("Success", message, "success")
|
||||
retVal := []templ.Component{toastSuccess, modalDialogGenPass}
|
||||
return utils.ViewMulti(c, retVal)
|
||||
}
|
||||
|
||||
func (tdp *TabDaftarPesertaHandlers) HandleOpenViewAkun(c echo.Context) error {
|
||||
logger, _ := zap.NewProduction()
|
||||
|
||||
patientID := c.QueryParam("patid")
|
||||
dialogAkunID := c.QueryParam("dialogAkunID")
|
||||
dialogAkunBodyID := c.QueryParam("dialogAkunBodyID")
|
||||
logger.Info("params", zap.Any("patid", patientID))
|
||||
|
||||
akun, err := tdp.TabDaftarPesertaServices.GetAkunPeserta(patientID)
|
||||
if err != nil {
|
||||
dialogAkunBody := corporate_mcudetail.ModalViewAkunBody(
|
||||
dialogAkunBodyID,
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "ID Akun Peserta",
|
||||
Name: "akunpesertaid",
|
||||
Placeholder: "ID Akun Peserta",
|
||||
Type: "hidden",
|
||||
ID: "akunpesertaidid",
|
||||
Value: patientID,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Email Akun",
|
||||
Name: "akunpesertaemail",
|
||||
Type: "text",
|
||||
ID: "akunpesertaemailid",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Password baru",
|
||||
Name: "akunpesertapassnew",
|
||||
Type: "password",
|
||||
ID: "akunpesertapassnewid",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Ulangi password baru",
|
||||
Name: "akunpesertapasscek",
|
||||
Type: "password",
|
||||
ID: "akunpesertapasscekid",
|
||||
},
|
||||
corporate_mcudetail.JsShowModal("#"+dialogAkunID),
|
||||
)
|
||||
toastwarning := customtoastv2.CustomToastV2Show("Warning", "Gagal generate password MCU", "warning")
|
||||
retval := []templ.Component{toastwarning, dialogAkunBody}
|
||||
return utils.ViewMulti(c, retval)
|
||||
}
|
||||
|
||||
dialogAkunBody := corporate_mcudetail.ModalViewAkunBody(
|
||||
dialogAkunBodyID,
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "ID Akun Peserta",
|
||||
Name: "akunpesertaid",
|
||||
Placeholder: "ID Akun Peserta",
|
||||
Type: "hidden",
|
||||
ID: "akunpesertaidid",
|
||||
Value: strconv.Itoa(akun.AuthPatientID),
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Email Akun",
|
||||
Name: "akunpesertaemail",
|
||||
Type: "text",
|
||||
ID: "akunpesertaemailid",
|
||||
Value: akun.AuthPatientEmail,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Password baru",
|
||||
Name: "akunpesertapassnew",
|
||||
Type: "password",
|
||||
ID: "akunpesertapassnewid",
|
||||
Placeholder: "Masukan password baru",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Ulangi password baru",
|
||||
Name: "akunpesertapasscek",
|
||||
Type: "password",
|
||||
ID: "akunpesertapasscekid",
|
||||
Placeholder: "Masukan ulang password baru",
|
||||
},
|
||||
corporate_mcudetail.JsShowModal("#"+dialogAkunID),
|
||||
)
|
||||
return utils.View(c, dialogAkunBody)
|
||||
}
|
||||
|
||||
func (tdp *TabDaftarPesertaHandlers) HandleCloseViewAkun(c echo.Context) error {
|
||||
logger, _ := zap.NewProduction()
|
||||
|
||||
patientID := c.FormValue("akunpesertaid")
|
||||
dialogAkunID := c.FormValue("dialogAkunID")
|
||||
dialogAkunBodyID := c.FormValue("dialogAkunBodyID")
|
||||
logger.Info("params", zap.Any("patid", patientID))
|
||||
|
||||
dialogAkunBody := corporate_mcudetail.ModalViewAkunBody(
|
||||
dialogAkunBodyID,
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "ID Akun Peserta",
|
||||
Name: "akunpesertaid",
|
||||
Placeholder: "ID Akun Peserta",
|
||||
Type: "hidden",
|
||||
ID: "akunpesertaidid",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Email Akun",
|
||||
Name: "akunpesertaemail",
|
||||
Type: "text",
|
||||
ID: "akunpesertaemailid",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Password baru",
|
||||
Name: "akunpesertapassnew",
|
||||
Type: "password",
|
||||
ID: "akunpesertapassnewid",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Ulangi password baru",
|
||||
Name: "akunpesertapasscek",
|
||||
Type: "password",
|
||||
ID: "akunpesertapasscekid",
|
||||
},
|
||||
corporate_mcudetail.JsHideModal("#"+dialogAkunID),
|
||||
)
|
||||
return utils.View(c, dialogAkunBody)
|
||||
}
|
||||
|
||||
func (tdp *TabDaftarPesertaHandlers) HandleAkun(c echo.Context) error {
|
||||
logger, _ := zap.NewProduction()
|
||||
|
||||
userToken := c.Get("user").(*jwt.Token)
|
||||
token := userToken.Raw
|
||||
|
||||
patientID := c.FormValue("akunpesertaid")
|
||||
dialogAkunID := c.FormValue("dialogAkunID")
|
||||
dialogAkunBodyID := c.FormValue("dialogAkunBodyID")
|
||||
logger.Info("params", zap.Any("patid", patientID))
|
||||
|
||||
akunID := c.FormValue("akunpesertaid")
|
||||
akunEmail := c.FormValue("akunpesertaemail")
|
||||
oldPass := c.FormValue("akunpesertapassold")
|
||||
newPass := c.FormValue("akunpesertapassnew")
|
||||
newPasscek := c.FormValue("akunpesertapasscek")
|
||||
|
||||
formValidation := ""
|
||||
newValidation := ""
|
||||
cekValidation := ""
|
||||
|
||||
if strings.TrimSpace(newPass) == "" {
|
||||
formValidation = "Password tidak boleh kosong"
|
||||
newValidation = "Password tidak boleh kosong"
|
||||
}
|
||||
if strings.TrimSpace(newPasscek) == "" {
|
||||
formValidation = "Password tidak boleh kosong"
|
||||
cekValidation = "Password tidak boleh kosong"
|
||||
}
|
||||
if strings.TrimSpace(oldPass) == "" && strings.TrimSpace(newPass) == "" && strings.TrimSpace(newPasscek) == "" {
|
||||
formValidation = "Password lama dan baru tidak boleh kosong"
|
||||
newValidation = "Password baru tidak boleh kosong"
|
||||
cekValidation = "Password baru tidak boleh kosong"
|
||||
}
|
||||
if strings.TrimSpace(newPass) != strings.TrimSpace(newPasscek) {
|
||||
formValidation = "Password tidak sama"
|
||||
newValidation = "Password tidak sama"
|
||||
cekValidation = "Password tidak sama"
|
||||
}
|
||||
|
||||
if formValidation != "" || newValidation != "" || cekValidation != "" {
|
||||
dialogAkunBody := corporate_mcudetail.ModalViewAkunBody(
|
||||
dialogAkunBodyID,
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "ID Akun Peserta",
|
||||
Name: "akunpesertaid",
|
||||
Placeholder: "ID Akun Peserta",
|
||||
Type: "hidden",
|
||||
ID: "akunpesertaidid",
|
||||
Value: akunID,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Email Akun",
|
||||
Name: "akunpesertaemail",
|
||||
Type: "text",
|
||||
ID: "akunpesertaemailid",
|
||||
Value: akunEmail,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Password baru",
|
||||
Name: "akunpesertapassnew",
|
||||
Type: "password",
|
||||
ID: "akunpesertapassnewid",
|
||||
Placeholder: "Masukan password baru",
|
||||
ErrorMsg: newValidation,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Ulangi password baru",
|
||||
Name: "akunpesertapasscek",
|
||||
Type: "password",
|
||||
ID: "akunpesertapasscekid",
|
||||
Placeholder: "Masukan ulang password baru",
|
||||
ErrorMsg: cekValidation,
|
||||
},
|
||||
corporate_mcudetail.JsShowModal(""),
|
||||
)
|
||||
toastwarning := customtoastv2.CustomToastV2Show("Warning", formValidation, "warning")
|
||||
retVal := []templ.Component{toastwarning, dialogAkunBody}
|
||||
return utils.ViewMulti(c, retVal)
|
||||
}
|
||||
|
||||
resp, err := tdp.TabDaftarPesertaServices.ResetPasswordPeserta(token, newPass, akunEmail, akunID)
|
||||
dialogAkunErr := corporate_mcudetail.ModalViewAkunBody(
|
||||
dialogAkunBodyID,
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "ID Akun Peserta",
|
||||
Name: "akunpesertaid",
|
||||
Placeholder: "ID Akun Peserta",
|
||||
Type: "hidden",
|
||||
ID: "akunpesertaidid",
|
||||
Value: akunID,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Email Akun",
|
||||
Name: "akunpesertaemail",
|
||||
Type: "text",
|
||||
ID: "akunpesertaemailid",
|
||||
Value: akunEmail,
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Password baru",
|
||||
Name: "akunpesertapassnew",
|
||||
Type: "password",
|
||||
ID: "akunpesertapassnewid",
|
||||
Placeholder: "Masukan password baru",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Ulangi password baru",
|
||||
Name: "akunpesertapasscek",
|
||||
Type: "password",
|
||||
ID: "akunpesertapasscekid",
|
||||
Placeholder: "Masukan ulang password baru",
|
||||
},
|
||||
corporate_mcudetail.JsHideModal(""),
|
||||
)
|
||||
|
||||
if err != nil {
|
||||
toastwarning := customtoastv2.CustomToastV2Show("Warning", err.Error(), "warning")
|
||||
return utils.ViewMulti(c, []templ.Component{toastwarning, dialogAkunErr})
|
||||
}
|
||||
|
||||
if resp.Status == "ERR" {
|
||||
toastwarning := customtoastv2.CustomToastV2Show("Warning", resp.Message, "warning")
|
||||
return utils.ViewMulti(c, []templ.Component{toastwarning, dialogAkunErr})
|
||||
}
|
||||
|
||||
dialogAkunBody := corporate_mcudetail.ModalViewAkunBody(
|
||||
dialogAkunBodyID,
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "ID Akun Peserta",
|
||||
Name: "akunpesertaid",
|
||||
Placeholder: "ID Akun Peserta",
|
||||
Type: "hidden",
|
||||
ID: "akunpesertaidid",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Email Akun",
|
||||
Name: "akunpesertaemail",
|
||||
Type: "text",
|
||||
ID: "akunpesertaemailid",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Password baru",
|
||||
Name: "akunpesertapassnew",
|
||||
Type: "password",
|
||||
ID: "akunpesertapassnewid",
|
||||
Placeholder: "Masukan password baru",
|
||||
},
|
||||
models.CustomTextFieldv2Prm{
|
||||
Label: "Ulangi password baru",
|
||||
Name: "akunpesertapasscek",
|
||||
Type: "password",
|
||||
ID: "akunpesertapasscekid",
|
||||
Placeholder: "Masukan ulang password baru",
|
||||
},
|
||||
corporate_mcudetail.JsHideModal("#"+dialogAkunID),
|
||||
)
|
||||
toastwarning := customtoastv2.CustomToastV2Show("Success", "Berhasil reset password peserta: "+akunEmail, "success")
|
||||
retVal := []templ.Component{toastwarning, dialogAkunBody}
|
||||
return utils.ViewMulti(c, retVal)
|
||||
}
|
||||
|
||||
func (tdp *TabDaftarPesertaHandlers) HandleContentReload(c echo.Context) error {
|
||||
id := c.Param("id")
|
||||
dialogReportBodyID := c.FormValue("dialogReportBodyID")
|
||||
dialogAkunBodyID := c.FormValue("dialogAkunBodyID")
|
||||
dialogDetailBodyID := c.FormValue("dialogDetailBodyID")
|
||||
|
||||
tableID := c.FormValue("tableID")
|
||||
paginationID := c.FormValue("paginationID")
|
||||
pageparam := c.FormValue("currpage" + paginationID)
|
||||
currpage, err := strconv.Atoi(pageparam)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
tableData, totalPage, err := tdp.TabDaftarPesertaServices.GetListDaftarPesertaMCU(id, currpage, 10)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
table := corporate_mcudetail.TableDaftarPeserta(
|
||||
tableData,
|
||||
tableID,
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/openreport",
|
||||
"#"+dialogReportBodyID,
|
||||
"#tableID, #paginationID, #dialogReportID, #dialogReportBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID",
|
||||
"outerHTML",
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/openviewakun",
|
||||
"#"+dialogAkunBodyID,
|
||||
"#tableID, #paginationID, #dialogReportID, #dialogReportBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID",
|
||||
"outerHTML",
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/opendetail",
|
||||
"#"+dialogDetailBodyID,
|
||||
"#tableID, #paginationID, #dialogReportID, #dialogReportBodyID, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID, #dialogDetailID, #dialogDetailBodyID",
|
||||
"outerHTML",
|
||||
)
|
||||
|
||||
pagination := pagination.PaginationV3(
|
||||
totalPage,
|
||||
currpage,
|
||||
"/corp/dashboard_pic/detail/"+id+"/tabdaftarpeserta/changepage",
|
||||
paginationID,
|
||||
"#tableID, #paginationID, #loading-parent, #loading-child, #loading-spinner, #loadingcontent, #dialogGenPassID, #dialogGenPassBodyID, #dialogAkunID, #dialogAkunBodyID, #dialogReportID, #dialogReportBodyID, #dialogDetailID, #dialogDetailBodyID, #currPage"+paginationID,
|
||||
"#contentlayout",
|
||||
"outerHTML", "", "",
|
||||
corporate_mcudetail.BeforeRequestContent(),
|
||||
corporate_mcudetail.AfterRequestContent(),
|
||||
)
|
||||
|
||||
clayout := corporate_mcudetail.ContentLayout(table, pagination)
|
||||
return utils.View(c, clayout)
|
||||
}
|
||||
|
||||
func (tdp *TabDaftarPesertaHandlers) HandleOpenDetail(c echo.Context) error {
|
||||
idx := c.QueryParam("idx")
|
||||
dialogDetailID := c.QueryParam("dialogDetailID")
|
||||
dialogDetailBodyID := c.QueryParam("dialogDetailBodyID")
|
||||
|
||||
detailData, err := tdp.TabDaftarPesertaServices.DetailTestdanPaket(idx)
|
||||
if err != nil {
|
||||
tab := corporate_mcudetail.TableDetailMCU([]models.TableTestPaket{})
|
||||
mod := corporate_mcudetail.ModalRptBody(
|
||||
dialogDetailBodyID,
|
||||
tab,
|
||||
corporate_mcudetail.JsShowModal("#"+dialogDetailID),
|
||||
)
|
||||
return utils.View(c, mod)
|
||||
}
|
||||
|
||||
tablecomponent := corporate_mcudetail.TableDetailMCU(detailData)
|
||||
detailBody := corporate_mcudetail.ModalRptBody(
|
||||
dialogDetailBodyID,
|
||||
tablecomponent,
|
||||
corporate_mcudetail.JsShowModal("#"+dialogDetailID),
|
||||
)
|
||||
|
||||
return utils.View(c, detailBody)
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"cpone/models"
|
||||
"cpone/utils"
|
||||
corporate_mcudetail "cpone/views/corporate/mcu/mcutab"
|
||||
"encoding/json"
|
||||
"strings"
|
||||
|
||||
"github.com/a-h/templ"
|
||||
"github.com/labstack/echo/v4"
|
||||
@@ -15,6 +15,12 @@ import (
|
||||
type TabKelainanFisikServices interface {
|
||||
GetKelainanFisikBMI(mcuID string) (models.Piechart, error)
|
||||
GetKelainanFisikHipertensi(mcuID string) (models.Piechart, error)
|
||||
GetKelainanFisikRefraksi(mcuID string) (models.Piechart, error)
|
||||
GetKelainanFisikPresentase(mcuID string) (models.Barchart, error)
|
||||
GetKelFisikAlkohol(mcuID string) (models.Piechart, error)
|
||||
GetKelFisikMerokok(mcuID string) (models.Piechart, error)
|
||||
GetKelFisikOlahraga(mcuID string) (models.Piechart, error)
|
||||
GetChartRenderFisik(mcuID string) ([]models.McuTabModels, error)
|
||||
}
|
||||
|
||||
type TabKelainanFisikHandler struct {
|
||||
@@ -32,41 +38,32 @@ func (tkf *TabKelainanFisikHandler) HandleShowTabKelainanFisik(c echo.Context) e
|
||||
logger.Info("Tab Kelainan Fisik")
|
||||
|
||||
id := c.Param("id")
|
||||
logger.Info("Params", zap.Any("id", id))
|
||||
|
||||
bmi, err := tkf.TabKelainanFisikServices.GetKelainanFisikBMI(id)
|
||||
chartsxs := []templ.Component{}
|
||||
chartsmd := []templ.Component{}
|
||||
chartslg := []templ.Component{}
|
||||
|
||||
tablist, err := tkf.TabKelainanFisikServices.GetChartRenderFisik(id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
hiper, err := tkf.TabKelainanFisikServices.GetKelainanFisikHipertensi(id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
bmijson, err := json.MarshalIndent(bmi, "", " ")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
hiperjson, err := json.MarshalIndent(hiper, "", " ")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
chartsxs := []templ.Component{
|
||||
chart.ShowChartFixed("bmixs", string(bmijson), "400px", "450px"),
|
||||
chart.ShowChartFixed("hprxs", string(hiperjson), "400px", "450px"),
|
||||
}
|
||||
|
||||
chartsmd := []templ.Component{
|
||||
chart.ShowChartFixed("bmimd", string(bmijson), "450px", "450px"),
|
||||
chart.ShowChartFixed("hprmd", string(hiperjson), "450px", "450px"),
|
||||
}
|
||||
|
||||
chartslg := []templ.Component{
|
||||
chart.ShowChartFixed("bmilg", string(bmijson), "600px", "450px"),
|
||||
chart.ShowChartFixed("hprlg", string(hiperjson), "600px", "450px"),
|
||||
for _, d := range tablist {
|
||||
chartsxs = append(chartsxs, chart.ShowChartResponsiveWidth(
|
||||
strings.ToLower(strings.ReplaceAll(d.Mcu_ImageGrafikName+"xs", " ", "")),
|
||||
d.Mcu_ImageGrafikJsonRender,
|
||||
"450px",
|
||||
))
|
||||
chartsmd = append(chartsmd, chart.ShowChartResponsiveWidth(
|
||||
strings.ToLower(strings.ReplaceAll(d.Mcu_ImageGrafikName+"md", " ", "")),
|
||||
d.Mcu_ImageGrafikJsonRender,
|
||||
"450px",
|
||||
))
|
||||
chartslg = append(chartslg, chart.ShowChartResponsiveWidth(
|
||||
strings.ToLower(strings.ReplaceAll(d.Mcu_ImageGrafikName+"lg", " ", "")),
|
||||
d.Mcu_ImageGrafikJsonRender,
|
||||
"450px",
|
||||
))
|
||||
}
|
||||
|
||||
content := corporate_mcudetail.Tabkelainanfisik(
|
||||
|
||||
@@ -5,16 +5,16 @@ import (
|
||||
"cpone/models"
|
||||
"cpone/utils"
|
||||
corporate_mcudetail "cpone/views/corporate/mcu/mcutab"
|
||||
"encoding/json"
|
||||
"strings"
|
||||
|
||||
"github.com/a-h/templ"
|
||||
"github.com/labstack/echo/v4"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
type TabKelainanGlobalServices interface {
|
||||
GetKelainanGlobalMCU(mcuID string) (models.Barchart, error)
|
||||
GetKelainanFisik(mcuID string) (models.Barchart, error)
|
||||
GetKelainanGlobalV2(mcuID string) (models.Barchart, error)
|
||||
GetChartRenderGlobal(mcuID string) ([]models.McuTabModels, error)
|
||||
}
|
||||
|
||||
type TabKelainanGlobalHandler struct {
|
||||
@@ -28,44 +28,33 @@ func NewTabKelainanGlobalHandler(tkg TabKelainanGlobalServices) *TabKelainanGlob
|
||||
}
|
||||
|
||||
func (tkg *TabKelainanGlobalHandler) HandleShowTabKelainanGlobal(c echo.Context) error {
|
||||
logger, _ := zap.NewProduction()
|
||||
id := c.Param("id")
|
||||
|
||||
logger.Info("params", zap.Any("id", id))
|
||||
chartsxs := []templ.Component{}
|
||||
chartsmd := []templ.Component{}
|
||||
chartslg := []templ.Component{}
|
||||
|
||||
kelmcu, err := tkg.TabKelainanGlobalServices.GetKelainanGlobalMCU(id)
|
||||
tablist, err := tkg.TabKelainanGlobalServices.GetChartRenderGlobal(id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
kelfisik, err := tkg.TabKelainanGlobalServices.GetKelainanFisik(id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
klmcujson, err := json.MarshalIndent(kelmcu, "", " ")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
klfisjson, err := json.MarshalIndent(kelfisik, "", " ")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
chartsxs := []templ.Component{
|
||||
chart.ShowChartFixed("chartmcuxs", string(klmcujson), "400px", "450px"),
|
||||
chart.ShowChartFixed("chartfisikxs", string(klfisjson), "400px", "450px"),
|
||||
}
|
||||
|
||||
chartsmd := []templ.Component{
|
||||
chart.ShowChartFixed("chartmcumd", string(klmcujson), "500px", "450px"),
|
||||
chart.ShowChartFixed("chartfisikmd", string(klfisjson), "500px", "450px"),
|
||||
}
|
||||
|
||||
chartslg := []templ.Component{
|
||||
chart.ShowChartFixed("chartmculg", string(klmcujson), "1000px", "450px"),
|
||||
chart.ShowChartFixed("chartfisiklg", string(klfisjson), "1000px", "450px"),
|
||||
for _, d := range tablist {
|
||||
chartsxs = append(chartsxs, chart.ShowChartResponsiveWidth(
|
||||
strings.ToLower(strings.ReplaceAll(d.Mcu_ImageGrafikName+"xs", " ", "")),
|
||||
d.Mcu_ImageGrafikJsonRender,
|
||||
"450px",
|
||||
))
|
||||
chartsmd = append(chartsmd, chart.ShowChartResponsiveWidth(
|
||||
strings.ToLower(strings.ReplaceAll(d.Mcu_ImageGrafikName+"md", " ", "")),
|
||||
d.Mcu_ImageGrafikJsonRender,
|
||||
"450px",
|
||||
))
|
||||
chartslg = append(chartslg, chart.ShowChartResponsiveWidth(
|
||||
strings.ToLower(strings.ReplaceAll(d.Mcu_ImageGrafikName+"lg", " ", "")),
|
||||
d.Mcu_ImageGrafikJsonRender,
|
||||
"450px",
|
||||
))
|
||||
}
|
||||
|
||||
content := corporate_mcudetail.TabKelainanGlobal(
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"cpone/models"
|
||||
"cpone/utils"
|
||||
corporate_mcudetail "cpone/views/corporate/mcu/mcutab"
|
||||
"encoding/json"
|
||||
"strings"
|
||||
|
||||
"github.com/a-h/templ"
|
||||
"github.com/labstack/echo/v4"
|
||||
@@ -18,6 +18,7 @@ type TabKelainanLabServices interface {
|
||||
GetGangguanFungsiHati(mcuID string) (models.BarchartV2, error)
|
||||
GetGangguanMetabolismeLemak(mcuID string) (models.BarchartV2, error)
|
||||
GetPeningkatanGlukosa(mcuID string) (models.BarchartV2, error)
|
||||
GetChartRenderLab(mcuID string) ([]models.McuTabModels, error)
|
||||
}
|
||||
|
||||
type TabKelainanLabHandler struct {
|
||||
@@ -33,94 +34,34 @@ func NewTabKelainanLabHandler(tkl TabKelainanLabServices) *TabKelainanLabHandler
|
||||
func (tkl *TabKelainanLabHandler) HandleShowTabKelainanLab(c echo.Context) error {
|
||||
id := c.Param("id")
|
||||
|
||||
datapre, err := tkl.TabKelainanLabServices.GetDataPresentaseKelainanLab(id)
|
||||
tablist, err := tkl.TabKelainanLabServices.GetChartRenderLab(id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
hematologi, err := tkl.TabKelainanLabServices.GetHematologi(id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
chartsxs := []templ.Component{}
|
||||
chartsmd := []templ.Component{}
|
||||
chartslg := []templ.Component{}
|
||||
|
||||
urinalisa, err := tkl.TabKelainanLabServices.GetUrinalisa(id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
hati, err := tkl.TabKelainanLabServices.GetGangguanFungsiHati(id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
lemak, err := tkl.TabKelainanLabServices.GetGangguanMetabolismeLemak(id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
glukosa, err := tkl.TabKelainanLabServices.GetPeningkatanGlukosa(id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
dataprejson, err := json.MarshalIndent(datapre, "", " ")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
hemajson, err := json.MarshalIndent(hematologi, "", " ")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
urinjson, err := json.MarshalIndent(urinalisa, "", " ")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
hatijson, err := json.MarshalIndent(hati, "", " ")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
lemakjson, err := json.MarshalIndent(lemak, "", " ")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
glukosjson, err := json.MarshalIndent(glukosa, "", " ")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
chartsxs := []templ.Component{
|
||||
chart.ShowChartFixed("dataprexs", string(dataprejson), "400px", "450px"),
|
||||
chart.ShowChartFixed("hemaxs", string(hemajson), "400px", "450px"),
|
||||
chart.ShowChartFixed("urinxs", string(urinjson), "400px", "450px"),
|
||||
chart.ShowChartFixed("hatixs", string(hatijson), "400px", "450px"),
|
||||
chart.ShowChartFixed("lemakxs", string(lemakjson), "400px", "450px"),
|
||||
chart.ShowChartFixed("glukosxs", string(glukosjson), "400px", "450px"),
|
||||
}
|
||||
|
||||
chartsmd := []templ.Component{
|
||||
chart.ShowChartFixed("datapremd", string(dataprejson), "500px", "450px"),
|
||||
chart.ShowChartFixed("hemamd", string(hemajson), "500px", "450px"),
|
||||
chart.ShowChartFixed("urinmd", string(urinjson), "500px", "450px"),
|
||||
chart.ShowChartFixed("hatimd", string(hatijson), "500px", "450px"),
|
||||
chart.ShowChartFixed("lemakmd", string(lemakjson), "500px", "450px"),
|
||||
chart.ShowChartFixed("glukosmd", string(glukosjson), "500px", "450px"),
|
||||
}
|
||||
|
||||
chartslg := []templ.Component{
|
||||
chart.ShowChartFixed("hemalg", string(hemajson), "600px", "450px"),
|
||||
chart.ShowChartFixed("urinlg", string(urinjson), "600px", "450px"),
|
||||
chart.ShowChartFixed("hatilg", string(hatijson), "600px", "450px"),
|
||||
chart.ShowChartFixed("lemaklg", string(lemakjson), "600px", "450px"),
|
||||
chart.ShowChartFixed("glukoslg", string(glukosjson), "600px", "450px"),
|
||||
for _, d := range tablist {
|
||||
chartsxs = append(chartsxs, chart.ShowChartResponsiveWidth(
|
||||
strings.ToLower(strings.ReplaceAll(d.Mcu_ImageGrafikName+"xs", " ", "")),
|
||||
d.Mcu_ImageGrafikJsonRender,
|
||||
"450px",
|
||||
))
|
||||
chartsmd = append(chartsmd, chart.ShowChartResponsiveWidth(
|
||||
strings.ToLower(strings.ReplaceAll(d.Mcu_ImageGrafikName+"md", " ", "")),
|
||||
d.Mcu_ImageGrafikJsonRender,
|
||||
"450px",
|
||||
))
|
||||
chartslg = append(chartslg, chart.ShowChartResponsiveWidth(
|
||||
strings.ToLower(strings.ReplaceAll(d.Mcu_ImageGrafikName+"lg", " ", "")),
|
||||
d.Mcu_ImageGrafikJsonRender,
|
||||
"450px",
|
||||
))
|
||||
}
|
||||
|
||||
content := corporate_mcudetail.TabKelainanLab(
|
||||
chart.ShowChartFixed("dataprelg", string(dataprejson), "1000px", "450px"),
|
||||
chartsxs,
|
||||
chartsmd,
|
||||
chartslg,
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"cpone/models"
|
||||
"cpone/utils"
|
||||
corporate_mcudetail "cpone/views/corporate/mcu/mcutab"
|
||||
"encoding/json"
|
||||
"strings"
|
||||
|
||||
"github.com/a-h/templ"
|
||||
"github.com/labstack/echo/v4"
|
||||
@@ -14,6 +14,10 @@ import (
|
||||
type TabKelainanNonLabServices interface {
|
||||
GetDataKelNonLab(mcuID string) (models.Barchart, error)
|
||||
GetThoraxPA(mcuID string) (models.BarchartV2, error)
|
||||
GetGangguanJantung(mcuID string) (models.BarchartV2, error)
|
||||
GetAutospirometri(mcuID string) (models.BarchartV2, error)
|
||||
GetPendengaran(mcuID string) (models.BarchartV2, error)
|
||||
GetChartRenderNonLab(mcuID string) ([]models.McuTabModels, error)
|
||||
}
|
||||
|
||||
type TabKelainanNonLabHandler struct {
|
||||
@@ -29,39 +33,31 @@ func NewTabKelainanNonLabHandler(tknl TabKelainanNonLabServices) *TabKelainanNon
|
||||
func (tknl *TabKelainanNonLabHandler) HandleShowTabKelainanNonLab(c echo.Context) error {
|
||||
id := c.Param("id")
|
||||
|
||||
datapre, err := tknl.TabKelainanNonLabServices.GetDataKelNonLab(id)
|
||||
chartsxs := []templ.Component{}
|
||||
chartsmd := []templ.Component{}
|
||||
chartslg := []templ.Component{}
|
||||
|
||||
tablist, err := tknl.TabKelainanNonLabServices.GetChartRenderNonLab(id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
thorax, err := tknl.TabKelainanNonLabServices.GetThoraxPA(id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
dataprejson, err := json.MarshalIndent(datapre, "", " ")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
thrxjson, err := json.MarshalIndent(thorax, "", " ")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
chartsxs := []templ.Component{
|
||||
chart.ShowChartFixed("datanonxs", string(dataprejson), "400px", "450px"),
|
||||
chart.ShowChartFixed("thoraxxs", string(thrxjson), "400px", "450px"),
|
||||
}
|
||||
|
||||
chartsmd := []templ.Component{
|
||||
chart.ShowChartFixed("datanonmd", string(dataprejson), "500px", "450px"),
|
||||
chart.ShowChartFixed("thoraxmd", string(thrxjson), "500px", "450px"),
|
||||
}
|
||||
|
||||
chartslg := []templ.Component{
|
||||
chart.ShowChartFixed("datanonlg", string(dataprejson), "1000px", "450px"),
|
||||
chart.ShowChartFixed("thoraxlg", string(thrxjson), "600px", "450px"),
|
||||
for _, d := range tablist {
|
||||
chartsxs = append(chartsxs, chart.ShowChartResponsiveWidth(
|
||||
strings.ToLower(strings.ReplaceAll(d.Mcu_ImageGrafikName+"xs", " ", "")),
|
||||
d.Mcu_ImageGrafikJsonRender,
|
||||
"450px",
|
||||
))
|
||||
chartsmd = append(chartsmd, chart.ShowChartResponsiveWidth(
|
||||
strings.ToLower(strings.ReplaceAll(d.Mcu_ImageGrafikName+"md", " ", "")),
|
||||
d.Mcu_ImageGrafikJsonRender,
|
||||
"450px",
|
||||
))
|
||||
chartslg = append(chartslg, chart.ShowChartResponsiveWidth(
|
||||
strings.ToLower(strings.ReplaceAll(d.Mcu_ImageGrafikName+"lg", " ", "")),
|
||||
d.Mcu_ImageGrafikJsonRender,
|
||||
"450px",
|
||||
))
|
||||
}
|
||||
|
||||
content := corporate_mcudetail.TabKelainanNonLab(
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"cpone/models"
|
||||
"cpone/utils"
|
||||
corporate_mcudetail "cpone/views/corporate/mcu/mcutab"
|
||||
"encoding/json"
|
||||
"strings"
|
||||
|
||||
"github.com/a-h/templ"
|
||||
"github.com/labstack/echo/v4"
|
||||
@@ -16,6 +16,7 @@ type TabKepersertaanServices interface {
|
||||
GetTotalKepesertaanMCU(mcuID string) (models.Piechart, error)
|
||||
GetKepesertaanByGender(mcuID string) (models.Piechart, error)
|
||||
GetKepesertaanByUmur(mcuID string) (models.Piechart, error)
|
||||
GetChartRenderPeserta(mcuID string) ([]models.McuTabModels, error)
|
||||
}
|
||||
|
||||
type TabKepersertaanHandler struct {
|
||||
@@ -35,52 +36,31 @@ func (tkh *TabKepersertaanHandler) HandleShowTabKepesertaan(c echo.Context) erro
|
||||
id := c.Param("id")
|
||||
logger.Info("Params", zap.Any("id", id))
|
||||
|
||||
peserta, err := tkh.TabKepersertaanServices.GetTotalKepesertaanMCU(id)
|
||||
tablist, err := tkh.TabKepersertaanServices.GetChartRenderPeserta(id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
gender, err := tkh.TabKepersertaanServices.GetKepesertaanByGender(id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
chartsxs := []templ.Component{}
|
||||
chartsmd := []templ.Component{}
|
||||
chartslg := []templ.Component{}
|
||||
|
||||
umur, err := tkh.TabKepersertaanServices.GetKepesertaanByUmur(id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
totaljson, err := json.MarshalIndent(peserta, "", " ")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
genderjson, err := json.MarshalIndent(gender, "", " ")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
umurjson, err := json.MarshalIndent(umur, "", " ")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
chartsxs := []templ.Component{
|
||||
chart.ShowChartFixed("charttotalxs", string(totaljson), "400px", "450px"),
|
||||
chart.ShowChartFixed("chartgenderxs", string(genderjson), "400px", "450px"),
|
||||
chart.ShowChartFixed("chartumurxs", string(umurjson), "400px", "450px"),
|
||||
}
|
||||
|
||||
chartsmd := []templ.Component{
|
||||
chart.ShowChartFixed("charttotalmd", string(totaljson), "450px", "450px"),
|
||||
chart.ShowChartFixed("chartgendermd", string(genderjson), "450px", "450px"),
|
||||
chart.ShowChartFixed("chartumurmd", string(umurjson), "450px", "450px"),
|
||||
}
|
||||
|
||||
chartslg := []templ.Component{
|
||||
chart.ShowChartFixed("charttotal", string(totaljson), "600px", "450px"),
|
||||
chart.ShowChartFixed("chartgender", string(genderjson), "600px", "450px"),
|
||||
chart.ShowChartFixed("chartumur", string(umurjson), "600px", "450px"),
|
||||
for _, d := range tablist {
|
||||
chartsxs = append(chartsxs, chart.ShowChartResponsiveWidth(
|
||||
strings.ToLower(strings.ReplaceAll(d.Mcu_ImageGrafikName+"xs", " ", "")),
|
||||
d.Mcu_ImageGrafikJsonRender,
|
||||
"450px",
|
||||
))
|
||||
chartsmd = append(chartsmd, chart.ShowChartResponsiveWidth(
|
||||
strings.ToLower(strings.ReplaceAll(d.Mcu_ImageGrafikName+"md", " ", "")),
|
||||
d.Mcu_ImageGrafikJsonRender,
|
||||
"450px",
|
||||
))
|
||||
chartslg = append(chartslg, chart.ShowChartResponsiveWidth(
|
||||
strings.ToLower(strings.ReplaceAll(d.Mcu_ImageGrafikName+"lg", " ", "")),
|
||||
d.Mcu_ImageGrafikJsonRender,
|
||||
"450px",
|
||||
))
|
||||
}
|
||||
|
||||
content := corporate_mcudetail.TabKepesertaan(
|
||||
|
||||
@@ -14,6 +14,9 @@ type TabKesimpulanServices interface {
|
||||
GetListKesimpulanLab(id string) ([]models.ModelKesimpulanLab, error)
|
||||
GetListKesimpulanNonLab(id string) ([]models.ModelKesimpulanLab, error)
|
||||
GetListKesimpulanFisik(id string) ([]models.ModelKesimpulanLab, error)
|
||||
GetListKesimpulanLabV2(id string) ([]models.ModelKesimpulanLab, error)
|
||||
GetListKesimpulanNonLabV2(id string) ([]models.ModelKesimpulanLab, error)
|
||||
GetListKesimpulanFisikV2(id string) ([]models.ModelKesimpulanLab, error)
|
||||
}
|
||||
|
||||
type TabKesimpulanHandler struct {
|
||||
@@ -32,7 +35,7 @@ func (tkh *TabKesimpulanHandler) HandleShowTabKesimpulanScreen(c echo.Context) e
|
||||
tableID := utils.GenerateRandomID("tablebody")
|
||||
id := c.Param("id")
|
||||
|
||||
dataLab, err := tkh.TabKesimpulanServices.GetListKesimpulanLab(id)
|
||||
dataLab, err := tkh.TabKesimpulanServices.GetListKesimpulanLabV2(id)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Info("ERROR GET LIST LAB",
|
||||
@@ -43,7 +46,7 @@ func (tkh *TabKesimpulanHandler) HandleShowTabKesimpulanScreen(c echo.Context) e
|
||||
}
|
||||
tableComponentLab := corporate_mcudetail.CardTableKesimpulan("3 Kelainan Pemeriksaan Lab terbesar :", dataLab, tableID)
|
||||
|
||||
dataNonLab, err := tkh.TabKesimpulanServices.GetListKesimpulanNonLab(id)
|
||||
dataNonLab, err := tkh.TabKesimpulanServices.GetListKesimpulanNonLabV2(id)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Info("ERROR GET LIST NON LAB",
|
||||
@@ -54,7 +57,7 @@ func (tkh *TabKesimpulanHandler) HandleShowTabKesimpulanScreen(c echo.Context) e
|
||||
}
|
||||
tableComponentNonLab := corporate_mcudetail.CardTableKesimpulan("3 Kelainan Pemeriksaan Non Lab terbesar :", dataNonLab, tableID)
|
||||
|
||||
dataFisik, err := tkh.TabKesimpulanServices.GetListKesimpulanFisik(id)
|
||||
dataFisik, err := tkh.TabKesimpulanServices.GetListKesimpulanFisikV2(id)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Info("ERROR GET LIST FISIK",
|
||||
|
||||
@@ -17,10 +17,9 @@ import (
|
||||
|
||||
type PatientService interface {
|
||||
GetDashboardPatientBreadcrumb(title string) (models.BreadCrumbV1, error)
|
||||
ListingData(search string, date string, patID string, corpId string, currentpage int, rowperpage int) ([]models.DashboardPatient, int, error)
|
||||
GetListtingData(email string, currentpage int, rowperpage int) ([]models.DashboardPatient, int, error)
|
||||
GetPatientData(email string) (string, error)
|
||||
GetReportMcu(orderheaderID string) ([]models.TabViewReportMcu, error)
|
||||
GetListReportPesertaV4(orderheaderID string, staffname string) ([]models.TabViewReportMcu, error)
|
||||
}
|
||||
|
||||
func NewPatientHandler(us PatientService) *PatientHandler {
|
||||
@@ -220,7 +219,11 @@ func (ph *PatientHandler) HandleOpenReport(c echo.Context) error {
|
||||
dialogBodyID := c.QueryParam("dialogBodyID")
|
||||
logger.Info("params", zap.Any("id", id))
|
||||
|
||||
tabData, err := ph.PatientService.GetReportMcu(id)
|
||||
userCok := c.Get("user").(*jwt.Token)
|
||||
claims := userCok.Claims.(jwt.MapClaims)
|
||||
staffname := claims["M_StaffName"].(string)
|
||||
|
||||
newtabdata, err := ph.PatientService.GetListReportPesertaV4(id, staffname)
|
||||
if err != nil {
|
||||
tab := corporate_patient.TabReportView([]models.TabViewReportMcu{})
|
||||
mod := corporate_patient.ModalBody(
|
||||
@@ -231,7 +234,7 @@ func (ph *PatientHandler) HandleOpenReport(c echo.Context) error {
|
||||
return utils.View(c, mod)
|
||||
}
|
||||
|
||||
tabcomponent := corporate_patient.TabReportView(tabData)
|
||||
tabcomponent := corporate_patient.TabReportView(newtabdata)
|
||||
modalBody := corporate_patient.ModalBody(
|
||||
dialogBodyID,
|
||||
tabcomponent,
|
||||
|
||||
@@ -8,13 +8,13 @@ import (
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"github.com/golang-jwt/jwt/v5"
|
||||
"github.com/labstack/echo/v4"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
type LoginService interface {
|
||||
Login(username string, password string) (models.ResponseApi, error)
|
||||
MultiSignIn(username string, password string) (models.Response, error)
|
||||
MultiSignIn(username string, password string, host string) (models.Response, error)
|
||||
}
|
||||
|
||||
func NewLoginHandler(us LoginService) *LoginHandler {
|
||||
@@ -36,31 +36,26 @@ func (lh *LoginHandler) HandlerShowLogin(c echo.Context) error {
|
||||
|
||||
func (lh *LoginHandler) HandleSignIn(c echo.Context) error {
|
||||
logger, _ := zap.NewProduction()
|
||||
|
||||
host := c.Request().Host
|
||||
username := c.FormValue("username")
|
||||
password := c.FormValue("password")
|
||||
defer logger.Sync()
|
||||
logger.Info("Params", zap.Any("username", username), zap.Any("pass", password))
|
||||
|
||||
resp, err := lh.LoginService.MultiSignIn(username, password)
|
||||
resp, err := lh.LoginService.MultiSignIn(username, password, host)
|
||||
if err != nil {
|
||||
defer logger.Sync()
|
||||
logger.Info("Error", zap.Any("error multi signin", err))
|
||||
|
||||
si := public_login.ShowLogin("Login ", public_login.MainLogin(false), public_login.CssLogin(), public_login.JsLogin())
|
||||
si := public_login.ShowLogin("Login", public_login.MainLogin(false), public_login.CssLogin(), public_login.JsLogin())
|
||||
return utils.View(c, si)
|
||||
|
||||
// loginform := public_login.FormSignin(false)
|
||||
// return utils.View(c, loginform)
|
||||
}
|
||||
if resp.Status == "ERR" {
|
||||
defer logger.Sync()
|
||||
logger.Info("Error", zap.Any("ERR", resp.Status))
|
||||
|
||||
si := public_login.ShowLogin("Login ", public_login.MainLogin(false), public_login.CssLogin(), public_login.JsLogin())
|
||||
si := public_login.ShowLogin("Login", public_login.MainLogin(false), public_login.CssLogin(), public_login.JsLogin())
|
||||
return utils.View(c, si)
|
||||
// loginform := public_login.FormSignin(false)
|
||||
// return utils.View(c, loginform)
|
||||
}
|
||||
|
||||
defer logger.Sync()
|
||||
@@ -85,9 +80,6 @@ func (lh *LoginHandler) HandleSignIn(c echo.Context) error {
|
||||
|
||||
si := public_login.ShowLogin("Login ", public_login.MainLogin(false), public_login.CssLogin(), public_login.JsLogin())
|
||||
return utils.View(c, si)
|
||||
|
||||
// loginform := public_login.FormSignin(false)
|
||||
// return utils.View(c, loginform)
|
||||
}
|
||||
|
||||
cookie := new(http.Cookie)
|
||||
@@ -108,7 +100,7 @@ func (lh *LoginHandler) HandleSignIn(c echo.Context) error {
|
||||
localStorage.setItem("user", user);
|
||||
|
||||
htmx.on("htmx:configRequest", (e)=> {
|
||||
e.detail.headers["Authentication"] = "Bearer ` + resp.Data.Token + `"
|
||||
e.detail.headers["Authorization"] = "Bearer ` + resp.Data.Token + `"
|
||||
})
|
||||
|
||||
setTimeout(() => {
|
||||
@@ -123,7 +115,7 @@ func (lh *LoginHandler) HandleSignIn(c echo.Context) error {
|
||||
func (lh *LoginHandler) HandleRedirect(c echo.Context) error {
|
||||
logger, _ := zap.NewProduction()
|
||||
url := c.QueryParam("url")
|
||||
token := c.Request().Header.Get("Authentication")
|
||||
token := c.Request().Header.Get("Authorization")
|
||||
logger.Info("params", zap.Any("url", url), zap.Any("token", token))
|
||||
|
||||
c.Response().Header().Set("HX-Redirect", url)
|
||||
@@ -157,3 +149,43 @@ func (lh *LoginHandler) HandleSignOut(c echo.Context) error {
|
||||
c.Response().Header().Set("HX-Trigger", "script")
|
||||
return c.String(http.StatusOK, ret)
|
||||
}
|
||||
|
||||
func (lh *LoginHandler) HandleAutoLoginPage(c echo.Context) error {
|
||||
userToken := c.Get("user").(*jwt.Token)
|
||||
token := userToken.Raw
|
||||
claims := userToken.Claims.(jwt.MapClaims)
|
||||
userGroup := claims["M_UserGroupDashboard"].(string)
|
||||
|
||||
cookie := new(http.Cookie)
|
||||
cookie.Name = "token"
|
||||
cookie.Value = token
|
||||
cookie.Path = "/"
|
||||
cookie.HttpOnly = true
|
||||
c.SetCookie(cookie)
|
||||
|
||||
var url string
|
||||
switch userGroup {
|
||||
case "cpone":
|
||||
url = "/one-ui"
|
||||
case "pic":
|
||||
url = "/corp/dashboard_pic"
|
||||
case "patient":
|
||||
url = "/corp/dashboard_pat"
|
||||
default:
|
||||
url = "/one-ui"
|
||||
}
|
||||
|
||||
redirect := `
|
||||
<script>
|
||||
setTimeout(() => {
|
||||
htmx.ajax('GET', '/login/redirect?url=` + url + `', {
|
||||
headers: {
|
||||
Authorization: 'Bearer ` + token + `'
|
||||
}
|
||||
})
|
||||
}, 200)
|
||||
</script>
|
||||
`
|
||||
c.Response().Header().Set("HX-Trigger", "script")
|
||||
return c.String(http.StatusOK, redirect)
|
||||
}
|
||||
|
||||
16
handlers/public/toast.handlers.go
Normal file
16
handlers/public/toast.handlers.go
Normal file
@@ -0,0 +1,16 @@
|
||||
package public_handlers
|
||||
|
||||
import (
|
||||
customtoastv2 "cpone/component/toastbootstrap"
|
||||
"cpone/utils"
|
||||
|
||||
"github.com/labstack/echo/v4"
|
||||
)
|
||||
|
||||
func HandlerHideToast(c echo.Context) error {
|
||||
toastComponent := customtoastv2.CustomToastV2Hide()
|
||||
|
||||
si := toastComponent
|
||||
|
||||
return utils.View(c, si)
|
||||
}
|
||||
@@ -64,6 +64,7 @@ func SetupRoutesEmployee(app *echo.Echo, e *dev_handlers.EmployeeHandler) {
|
||||
func SetupRoutesProject(app *echo.Echo) {
|
||||
|
||||
}
|
||||
|
||||
func SetupRoutesPublic(app *echo.Echo, appStore db.AppStore) {
|
||||
public := app.Group("/")
|
||||
l := public_services.NewServicesLandingPage(public_services.LandingPage{}, appStore)
|
||||
@@ -71,8 +72,8 @@ func SetupRoutesPublic(app *echo.Echo, appStore db.AppStore) {
|
||||
public.GET("landingpage", lh.ShowLandingPage)
|
||||
public.GET("home", lh.ShowLandingPage)
|
||||
public.GET("home/login", lh.HandleBtnLogin)
|
||||
// loginHdr := public_handlers.NewLoginHandler(l)
|
||||
// public.GET("login", loginHdr.HandlerShowLogin)
|
||||
|
||||
public.GET("home/hidetoast", public_handlers.HandlerHideToast)
|
||||
|
||||
loginServ := public_services.NewServicesLogin(appStore)
|
||||
loginHadlr := public_handlers.NewLoginHandler(loginServ)
|
||||
@@ -80,6 +81,7 @@ func SetupRoutesPublic(app *echo.Echo, appStore db.AppStore) {
|
||||
public.POST("login/signin", loginHadlr.HandleSignIn)
|
||||
public.GET("login/redirect", loginHadlr.HandleRedirect)
|
||||
public.GET("login/signout", loginHadlr.HandleSignOut)
|
||||
public.POST("login/autologin", loginHadlr.HandleAutoLoginPage, auth.IsAlreadyLogin)
|
||||
|
||||
// kartu kontrol
|
||||
publicKartuKontrolServices := public_services.NewServicesKartuKontrol(appStore)
|
||||
@@ -101,6 +103,7 @@ func SetupRoutesPublic(app *echo.Echo, appStore db.AppStore) {
|
||||
// redirect to survey mcu page
|
||||
public.GET("redirectsurveymcu", publicKartuKontrolhandlers.HandlerRedirectToSurveyMcu)
|
||||
}
|
||||
|
||||
func SetupRoutesCorporate(app *echo.Echo, appStore db.AppStore) {
|
||||
corp := app.Group("/corp", auth.IsLoggedIn)
|
||||
// corp := app.Group("/corp")
|
||||
@@ -108,6 +111,12 @@ func SetupRoutesCorporate(app *echo.Echo, appStore db.AppStore) {
|
||||
lh := corporate_handlers.NewCompanyHandler(l)
|
||||
corp.GET("/company", lh.ShowCompany)
|
||||
|
||||
// ganti password
|
||||
accountService := corporate_services.NewAccountService(appStore)
|
||||
accountHandler := corporate_handlers.NewAccountHandler(accountService)
|
||||
corp.POST("/dashboard_pic/tutupgantipassword", accountHandler.HandleCloseChangePassword)
|
||||
corp.POST("/dashboard_pic/gantipassword", accountHandler.HandleChangePassword)
|
||||
|
||||
// dashboard_pic
|
||||
dashbrdPicServ := corporate_services.NewDashboardPicServices(appStore)
|
||||
dashbrdPicHandl := corporate_handlers.NewDashboardPicHandler(dashbrdPicServ)
|
||||
@@ -157,6 +166,13 @@ func SetupRoutesCorporate(app *echo.Echo, appStore db.AppStore) {
|
||||
corp.GET("/dashboard_pic/detail/:id/tabdaftarpeserta", daftarpesertaHandl.HandleShowTabDaftarPeserta)
|
||||
corp.GET("/dashboard_pic/detail/:id/tabdaftarpeserta/changepage", daftarpesertaHandl.HandlePagination)
|
||||
corp.GET("/dashboard_pic/detail/:id/tabdaftarpeserta/openreport", daftarpesertaHandl.HandleOpenReportDialog)
|
||||
corp.POST("/dashboard_pic/detail/:id/tabdaftarpeserta/dialoggenpass", daftarpesertaHandl.HandleDialogGenPass)
|
||||
corp.POST("/dashboard_pic/detail/:id/tabdaftarpeserta/closegenpass", daftarpesertaHandl.HandleCloseDialogGenPass)
|
||||
corp.GET("/dashboard_pic/detail/:id/tabdaftarpeserta/openviewakun", daftarpesertaHandl.HandleOpenViewAkun)
|
||||
corp.POST("/dashboard_pic/detail/:id/tabdaftarpeserta/closeviewakun", daftarpesertaHandl.HandleCloseViewAkun)
|
||||
corp.POST("/dashboard_pic/detail/:id/tabdaftarpeserta/viewakun", daftarpesertaHandl.HandleAkun)
|
||||
corp.POST("/dashboard_pic/detail/:id/tabdaftarpeserta/reload", daftarpesertaHandl.HandleContentReload)
|
||||
corp.GET("/dashboard_pic/detail/:id/tabdaftarpeserta/opendetail", daftarpesertaHandl.HandleOpenDetail)
|
||||
|
||||
// tab keuangan
|
||||
keuanganService := mcu_corporate_services.NewTabKeuanganServices(appStore)
|
||||
|
||||
@@ -151,6 +151,29 @@ templ DashboardLayout(
|
||||
@navbaruser
|
||||
</div>
|
||||
<div class="mt-16">
|
||||
// toast
|
||||
<div class="toast-top-right" id="container-system-notification" style="position: absolute; top: 1vh; right: 0vw; z-index: 999;">
|
||||
<!-- toast success -->
|
||||
<div
|
||||
id="notification-001"
|
||||
class="toast fade hide"
|
||||
role="alert"
|
||||
aria-live="assertive"
|
||||
aria-atomic="true"
|
||||
>
|
||||
<div class="toast-header bg-success text-white">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--ep mr-2 icon-xl" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 1024 1024" data-icon="ep:success-filled"><path fill="currentColor" d="M512 64a448 448 0 1 1 0 896a448 448 0 0 1 0-896m-55.808 536.384l-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.27 38.27 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"></path></svg>
|
||||
<strong class="mr-auto">Success</strong>
|
||||
<small class="text-muted text-white">just now</small>
|
||||
<button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="toast-body bg-success-transparent">
|
||||
This is a success toast.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{ children... }
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -58,7 +58,7 @@ func DashboardLayout(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"mt-16\">")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"mt-16\"><div class=\"toast-top-right\" id=\"container-system-notification\" style=\"position: absolute; top: 1vh; right: 0vw; z-index: 999;\"><!-- toast success --><div id=\"notification-001\" class=\"toast fade hide\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\"><div class=\"toast-header bg-success text-white\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" class=\"iconify iconify--ep mr-2 icon-xl\" width=\"1em\" height=\"1em\" preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 1024 1024\" data-icon=\"ep:success-filled\"><path fill=\"currentColor\" d=\"M512 64a448 448 0 1 1 0 896a448 448 0 0 1 0-896m-55.808 536.384l-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.27 38.27 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z\"></path></svg> <strong class=\"mr-auto\">Success</strong> <small class=\"text-muted text-white\">just now</small> <button type=\"button\" class=\"ml-2 mb-1 close\" data-dismiss=\"toast\" aria-label=\"Close\"><span aria-hidden=\"true\">×</span></button></div><div class=\"toast-body bg-success-transparent\">This is a success toast.\r</div></div></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
||||
6
models/account.models.go
Normal file
6
models/account.models.go
Normal file
@@ -0,0 +1,6 @@
|
||||
package models
|
||||
|
||||
type ResponseStatus struct {
|
||||
Status string `json:"status"`
|
||||
Message string `json:"message"`
|
||||
}
|
||||
@@ -49,6 +49,7 @@ type Piechart struct {
|
||||
type Barchart struct {
|
||||
Title struct {
|
||||
Text string `json:"text"`
|
||||
Left string `json:"left"`
|
||||
} `json:"title"`
|
||||
Dataset struct {
|
||||
Source [][]interface{} `json:"source"`
|
||||
@@ -91,6 +92,16 @@ type Barchart struct {
|
||||
Type string `json:"type"`
|
||||
} `json:"axisPointer"`
|
||||
} `json:"tooltip"`
|
||||
Graphic struct {
|
||||
Type string `json:"type"`
|
||||
Left string `json:"left"`
|
||||
Top string `json:"top"`
|
||||
Style struct {
|
||||
Text string `json:"text"`
|
||||
FontSize string `json:"fontSize"`
|
||||
FontWeight string `json:"fontWeight"`
|
||||
} `json:"style"`
|
||||
} `json:"graphic"`
|
||||
}
|
||||
|
||||
type BarDataset struct {
|
||||
@@ -100,6 +111,7 @@ type BarDataset struct {
|
||||
type BarchartV2 struct {
|
||||
Title struct {
|
||||
Text string `json:"text"`
|
||||
Left string `json:"left"`
|
||||
} `json:"title"`
|
||||
Dataset struct {
|
||||
Source [][]interface{} `json:"source"`
|
||||
@@ -152,4 +164,14 @@ type BarchartV2 struct {
|
||||
Type string `json:"type"`
|
||||
} `json:"axisPointer"`
|
||||
} `json:"tooltip"`
|
||||
Graphic struct {
|
||||
Type string `json:"type"`
|
||||
Left string `json:"left"`
|
||||
Top string `json:"top"`
|
||||
Style struct {
|
||||
Text string `json:"text"`
|
||||
FontSize string `json:"fontSize"`
|
||||
FontWeight string `json:"fontWeight"`
|
||||
} `json:"style"`
|
||||
} `json:"graphic"`
|
||||
}
|
||||
|
||||
@@ -12,16 +12,93 @@ type ModelMcuDaftarPeserta struct {
|
||||
JenisKelamin string `db:"jenisKelamin"`
|
||||
M_PatientDOB string `db:"M_PatientDOB"`
|
||||
Age string `db:"age"`
|
||||
AuthPatientEmail string `db:"authPatientEmail"`
|
||||
AuthPatientIsActive string `db:"authPatientIsActive"`
|
||||
Test_Paket string `db:"test_paket"`
|
||||
List_Paket string `db:"list_paket"`
|
||||
}
|
||||
|
||||
type ModelMcuPesertaReport struct {
|
||||
type SoResultEntryReportModel struct {
|
||||
So_ResultEntryID int `db:"So_ResultEntryID"`
|
||||
So_ResultEntryT_OrderHeaderID int `db:"So_ResultEntryT_OrderHeaderID"`
|
||||
So_ResultEntryT_OrderDetailID int `db:"So_ResultEntryT_OrderDetailID"`
|
||||
So_ResultEntryNonlab_TemplateID int `db:"So_ResultEntryNonlab_TemplateID"`
|
||||
So_ResultEntryNonlab_TemplateName string `db:"So_ResultEntryNonlab_TemplateName"`
|
||||
Datetime string `db:"Datetime"`
|
||||
}
|
||||
|
||||
type TabViewReportMcu struct {
|
||||
Name string
|
||||
Link string
|
||||
}
|
||||
|
||||
type OrderReport struct {
|
||||
M_OrderReportID int `db:"M_OrderReportID"`
|
||||
M_OrderReportName string `db:"M_OrderReportName"`
|
||||
M_OrderReportOrdering int `db:"M_OrderReportOrdering"`
|
||||
M_OrderReportUrl string `db:"M_OrderReportUrl"`
|
||||
M_OrderReportIsOrderHeader string `db:"M_OrderReportIsOrderHeader"`
|
||||
M_OrderReportIsFisikUmum string `db:"M_OrderReportIsFisikUmum"`
|
||||
M_OrderReportIsActive string `db:"M_OrderReportIsActive"`
|
||||
Datetime string `db:"Datetime"`
|
||||
}
|
||||
|
||||
type GeneratePasswordResponse struct {
|
||||
Status string `json:"status"`
|
||||
Message string `json:"message"`
|
||||
}
|
||||
|
||||
type AuthPatient struct {
|
||||
AuthPatientID int `db:"authPatientID"`
|
||||
AuthPatientM_PatientID int `db:"authPatientM_PatientID"`
|
||||
AuthPatientEmail string `db:"authPatientEmail"`
|
||||
AuthPatientPassword string `db:"authPatientPassword"`
|
||||
AuthPatientIsActive string `db:"authPatientIsActive"`
|
||||
}
|
||||
|
||||
type GroupResultOrderModel struct {
|
||||
Group_ResultID string `db:"Group_ResultID"`
|
||||
Group_ResultName string `db:"Group_ResultName"`
|
||||
Group_ResultResumeMcu string `db:"Group_ResultResumeMcu"`
|
||||
Group_ResultOrderOrder string `db:"Group_ResultOrderOrder"`
|
||||
Group_ResultUrl string `db:"Group_ResultUrl"`
|
||||
Group_ResultIsOrderHeader string `db:"Group_ResultIsOrderHeader"`
|
||||
Datetime string `db:"Datetime"`
|
||||
}
|
||||
|
||||
type PatientMCU struct {
|
||||
T_OrderHeaderID string `db:"T_OrderHeaderID"`
|
||||
T_OrderHeaderLabNumber string `db:"T_OrderHeaderLabNumber"`
|
||||
M_PatientID string `db:"M_PatientID"`
|
||||
M_PatientName string `db:"M_PatientName"`
|
||||
Datetime string `db:"Datetime"`
|
||||
}
|
||||
|
||||
type SoRptData struct {
|
||||
Rpt_name string `db:"rpt_name"`
|
||||
So_id string `db:"so_id"`
|
||||
Order_id string `db:"order_id"`
|
||||
Datetime string `db:"Datetime"`
|
||||
}
|
||||
|
||||
type ResumeMCU struct {
|
||||
Mcu_ResumeID string `db:"Mcu_ResumeID"`
|
||||
Datetime string `db:"Datetime"`
|
||||
}
|
||||
|
||||
type DetailPaketMCU struct {
|
||||
T_OrderDetailOrderT_PacketID string `db:"T_OrderDetailOrderT_PacketID"`
|
||||
T_OrderDetailOrderT_PacketName string `db:"T_OrderDetailOrderT_PacketName"`
|
||||
T_TestName string `db:"T_TestName"`
|
||||
}
|
||||
|
||||
type DetailTestMCU struct {
|
||||
T_OrderDetailOrderT_TestID string `db:"T_OrderDetailOrderT_TestID"`
|
||||
T_OrderDetailOrderT_TestName string `db:"T_OrderDetailOrderT_TestName"`
|
||||
}
|
||||
|
||||
type TableTestPaket struct {
|
||||
Nomor int
|
||||
NamaTest string
|
||||
NamaPaket string
|
||||
}
|
||||
|
||||
10
models/mcutab.models.go
Normal file
10
models/mcutab.models.go
Normal file
@@ -0,0 +1,10 @@
|
||||
package models
|
||||
|
||||
type McuTabModels struct {
|
||||
Mcu_ImageGrafikGroupResult string `db:"Mcu_ImageGrafikGroupResult"`
|
||||
Mcu_ImageGrafikGroupMenu string `db:"Mcu_ImageGrafikGroupMenu"`
|
||||
Mcu_ImageGrafikName string `db:"Mcu_ImageGrafikName"`
|
||||
Mcu_ImageGrafikJsonRender string `db:"Mcu_ImageGrafikJsonRender"`
|
||||
TabID string
|
||||
TabName string
|
||||
}
|
||||
@@ -9,3 +9,9 @@ type KelainanGlobalFisikModel struct {
|
||||
Mcu_KelainanName string `db:"Mcu_KelainanName"`
|
||||
Total int `db:"total"`
|
||||
}
|
||||
|
||||
type KelainanGlobalModel struct {
|
||||
Mcu_KelainanID string `db:"Mcu_KelainanID"`
|
||||
Test string `db:"Test"`
|
||||
Total int `db:"Total"`
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package models
|
||||
|
||||
type KelainanLabModel struct {
|
||||
Mcu_KelainanName string `db:"Mcu_KelainanName"`
|
||||
Mcu_KelainanID string `db:"Mcu_KelainanID"`
|
||||
Mcu_KelainanName string `db:"Test"`
|
||||
Total int `db:"total"`
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package models
|
||||
|
||||
type KelNonLabModel struct {
|
||||
Kelainan string `db:"kelainan"`
|
||||
Total int `db:"total"`
|
||||
Mcu_KelainanID string `db:"Mcu_KelainanID"`
|
||||
Test string `db:"Test"`
|
||||
Total int `db:"total"`
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package models
|
||||
|
||||
type TotalPesertaModel struct {
|
||||
Peserta int `db:"peserta"`
|
||||
Mgm_McuTotalParticipant int `db:"Mgm_McuTotalParticipant"`
|
||||
Peserta int `db:"peserta"`
|
||||
Total int `db:"total"`
|
||||
}
|
||||
|
||||
type GenderPesertaModel struct {
|
||||
|
||||
103
services/corporate/account.services.go
Normal file
103
services/corporate/account.services.go
Normal file
@@ -0,0 +1,103 @@
|
||||
package corporate_services
|
||||
|
||||
import (
|
||||
"cpone/db"
|
||||
"cpone/models"
|
||||
"cpone/package/config"
|
||||
"encoding/json"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/url"
|
||||
)
|
||||
|
||||
type AccountService struct {
|
||||
AccountStore db.AppStore
|
||||
}
|
||||
|
||||
func NewAccountService(aStore db.AppStore) *AccountService {
|
||||
return &AccountService{
|
||||
AccountStore: aStore,
|
||||
}
|
||||
}
|
||||
|
||||
func (as *AccountService) ChangePasswordPIC(host string, token string, currPassword string, newPassword string) (models.ResponseStatus, error) {
|
||||
var ret models.ResponseStatus
|
||||
|
||||
uri := "https://" + config.Data.Get("servername") + "/one-api/mockup/system/menu/change_password_pic"
|
||||
|
||||
params := url.Values{}
|
||||
params.Add("new", newPassword)
|
||||
params.Add("old", currPassword)
|
||||
params.Add("token", token)
|
||||
|
||||
req, err := http.PostForm(uri, params)
|
||||
if err != nil {
|
||||
ret = models.ResponseStatus{
|
||||
Status: "ERR",
|
||||
Message: "error request change password",
|
||||
}
|
||||
return ret, err
|
||||
}
|
||||
defer req.Body.Close()
|
||||
|
||||
resp, err := io.ReadAll(req.Body)
|
||||
if err != nil {
|
||||
ret = models.ResponseStatus{
|
||||
Status: "ERR",
|
||||
Message: "error read response",
|
||||
}
|
||||
return ret, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(resp, &ret)
|
||||
if err != nil {
|
||||
ret = models.ResponseStatus{
|
||||
Status: "ERR",
|
||||
Message: "error unmarshal response",
|
||||
}
|
||||
return ret, err
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
func (as *AccountService) ChangePasswordPAT(token string, currPassword string, newPassword string) (models.ResponseStatus, error) {
|
||||
var ret models.ResponseStatus
|
||||
|
||||
uri := "https://" + config.Data.Get("servername") + "/one-api/mockup/system/menu/change_password_pat"
|
||||
|
||||
params := url.Values{}
|
||||
params.Add("new", newPassword)
|
||||
params.Add("old", currPassword)
|
||||
params.Add("token", token)
|
||||
|
||||
req, err := http.PostForm(uri, params)
|
||||
if err != nil {
|
||||
ret = models.ResponseStatus{
|
||||
Status: "ERR",
|
||||
Message: "error request change password",
|
||||
}
|
||||
return ret, err
|
||||
}
|
||||
defer req.Body.Close()
|
||||
|
||||
resp, err := io.ReadAll(req.Body)
|
||||
if err != nil {
|
||||
ret = models.ResponseStatus{
|
||||
Status: "ERR",
|
||||
Message: "error read response",
|
||||
}
|
||||
return ret, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(resp, &ret)
|
||||
if err != nil {
|
||||
ret = models.ResponseStatus{
|
||||
Status: "ERR",
|
||||
Message: "error unmarshal response",
|
||||
}
|
||||
return ret, err
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
@@ -76,21 +76,24 @@ func (ea *DashboardPicServices) GetCorporateName(userID string) (string, error)
|
||||
|
||||
q := `
|
||||
SELECT
|
||||
c.CorporateName
|
||||
FROM mgm_mcu mm
|
||||
JOIN corporate c ON c.CorporateID = mm.Mgm_McuCorporateID
|
||||
AND CorporateIsActive = 'Y'
|
||||
WHERE mm.Mgm_McuID = ?
|
||||
AND mm.Mgm_McuIsActive = 'Y'
|
||||
CorporateName
|
||||
FROM mgm_mcuuser
|
||||
JOIN mgm_mcu ON Mgm_McuID = Mgm_McuUserMgm_McuID
|
||||
JOIN corporate ON CorporateID = Mgm_McuCorporateID
|
||||
WHERE Mgm_McuUserID = ?
|
||||
`
|
||||
if err := dbx.Handlex.Get(&corpName, q, userID); err != nil {
|
||||
return "PT. ABC", err
|
||||
}
|
||||
|
||||
if corpName == "" {
|
||||
corpName = "Perusahaan A"
|
||||
}
|
||||
|
||||
return corpName, nil
|
||||
}
|
||||
|
||||
func (ea *DashboardPicServices) ListingDashboardPic(search string, startdate string, enddate string, currentpage int, rowperpage int) ([]models.DashboardPic, int, error) {
|
||||
func (ea *DashboardPicServices) ListingDashboardPic(email string, search string, startdate string, enddate string, currentpage int, rowperpage int) ([]models.DashboardPic, int, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
var ret []models.DashboardPic
|
||||
var totalData int
|
||||
@@ -104,19 +107,19 @@ func (ea *DashboardPicServices) ListingDashboardPic(search string, startdate str
|
||||
|
||||
prmLabel := "%" + search + "%"
|
||||
offset := (currentpage - 1) * rowperpage
|
||||
// q := `
|
||||
// SELECT COUNT(*)
|
||||
// FROM mgm_mcu
|
||||
// WHERE Mgm_McuIsActive = 'Y'
|
||||
// AND Mgm_McuLabel LIKE ?
|
||||
// AND Mgm_McuStartDate >= ?
|
||||
// AND Mgm_McuEndDate <= ?
|
||||
// `
|
||||
// if err := dbx.Handlex.Get(&totalData, q, prmLabel, startdate, enddate); err != nil {
|
||||
// return nil, 0, fmt.Errorf("error query get total data: %v", err)
|
||||
// }
|
||||
logger.Info("Params", zap.Any("email", email))
|
||||
q := `
|
||||
SELECT COUNT(*)
|
||||
FROM mgm_mcu
|
||||
WHERE Mgm_McuIsActive = 'Y'
|
||||
AND Mgm_McuLabel LIKE ?
|
||||
AND Mgm_McuStartDate >= ?
|
||||
AND Mgm_McuEndDate <= ?
|
||||
`
|
||||
if err := dbx.Handlex.Get(&totalData, q, prmLabel, startdate, enddate); err != nil {
|
||||
return nil, 0, fmt.Errorf("error query get total data: %v", err)
|
||||
}
|
||||
|
||||
q = `
|
||||
SELECT
|
||||
Mgm_McuID,
|
||||
Mgm_McuLabel,
|
||||
@@ -130,17 +133,20 @@ func (ea *DashboardPicServices) ListingDashboardPic(search string, startdate str
|
||||
DATE_FORMAT(Mgm_McuEndDate, '%d-%m-%Y') AS Mgm_McuEndDate,
|
||||
Mgm_McuIsActive
|
||||
FROM mgm_mcu
|
||||
WHERE Mgm_McuIsActive = 'Y'
|
||||
JOIN mgm_mcuuser ON Mgm_McuUserMgm_McuID = Mgm_McuID
|
||||
WHERE Mgm_McuUserEmail = ?
|
||||
AND Mgm_McuIsActive = 'Y'
|
||||
AND Mgm_McuLabel LIKE ?
|
||||
AND Mgm_McuStartDate >= ?
|
||||
AND Mgm_McuEndDate <= ?
|
||||
ORDER BY Mgm_McuID ASC
|
||||
LIMIT ? OFFSET ?
|
||||
`
|
||||
if err := dbx.Handlex.Select(&ret, q, prmLabel, startdate, enddate, rowperpage, offset); err != nil {
|
||||
if err := dbx.Handlex.Select(&ret, q, email, prmLabel, startdate, enddate, rowperpage, offset); err != nil {
|
||||
return nil, 0, fmt.Errorf("error query get data: %v", err)
|
||||
}
|
||||
logger.Info("Resp", zap.Any("Respsone", ret))
|
||||
totalData = len(ret)
|
||||
logger.Info("Response", zap.Any("data", ret), zap.Any("total data", totalData))
|
||||
|
||||
totalPage := int(math.Ceil(float64(totalData) / float64(rowperpage)))
|
||||
return ret, totalPage, nil
|
||||
|
||||
@@ -4,6 +4,7 @@ import (
|
||||
"cpone/db"
|
||||
"cpone/models"
|
||||
dbx "cpone/package/database"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
type McuDetailServices struct {
|
||||
@@ -63,3 +64,48 @@ func (mcud *McuDetailServices) GetBreadcrumb(id string) (models.BreadCrumbV1, er
|
||||
|
||||
return breadcrumb, nil
|
||||
}
|
||||
|
||||
func (mcud *McuDetailServices) GetTabNameList(id string) ([]models.McuTabModels, error) {
|
||||
var ret []models.McuTabModels
|
||||
|
||||
q := `
|
||||
SELECT
|
||||
Mcu_ImageGrafikGroupResult,
|
||||
Mcu_ImageGrafikGroupMenu,
|
||||
Mcu_ImageGrafikName,
|
||||
Mcu_ImageGrafikJsonRender
|
||||
FROM mgm_mcugrafik
|
||||
JOIN mcu_image_grafik ON Mcu_ImageGrafikID = Mgm_McuGrafikMcu_ImageGrafikID
|
||||
WHERE Mgm_McuGrafikMgm_McuID = ?
|
||||
AND Mgm_McuGrafikIsActive = 'Y'
|
||||
GROUP BY Mcu_ImageGrafikGroupMenu, Mcu_ImageGrafikGroupResult
|
||||
ORDER BY Mcu_ImageGrafikID
|
||||
`
|
||||
if err := dbx.Handlex.Select(&ret, q, id); err != nil {
|
||||
return ret, fmt.Errorf("error get data tab name: %v", err)
|
||||
}
|
||||
|
||||
for i, d := range ret {
|
||||
switch d.Mcu_ImageGrafikGroupMenu {
|
||||
case "SUMMARY":
|
||||
if d.Mcu_ImageGrafikGroupResult == "LAB" {
|
||||
ret[i].TabID = "tabkelainanlab"
|
||||
ret[i].TabName = "Kelainan Lab"
|
||||
} else if d.Mcu_ImageGrafikGroupResult == "NONLAB" {
|
||||
ret[i].TabID = "tabkelainannonlab"
|
||||
ret[i].TabName = "Kelainan Non Lab"
|
||||
} else {
|
||||
ret[i].TabID = "tabkelainanfisik"
|
||||
ret[i].TabName = "Kelainan Fisik"
|
||||
}
|
||||
case "GLOBAL":
|
||||
ret[i].TabID = "tabkelainanglobal"
|
||||
ret[i].TabName = "Kelainan Global"
|
||||
case "PESERTA":
|
||||
ret[i].TabID = "tabkepesertaan"
|
||||
ret[i].TabName = "Peserta"
|
||||
}
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
@@ -1,11 +1,17 @@
|
||||
package mcu_corporate_services
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"cpone/db"
|
||||
"cpone/models"
|
||||
"cpone/package/config"
|
||||
dbx "cpone/package/database"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"math"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"strconv"
|
||||
|
||||
"go.uber.org/zap"
|
||||
@@ -21,8 +27,7 @@ func NewTabDaftarPesertaServices(uStore db.AppStore) *TabDaftarPesertaServices {
|
||||
}
|
||||
}
|
||||
|
||||
func (tdps *TabDaftarPesertaServices) GetListMcuDaftarPeserta(id string, currentpage int, rowperpage int) ([]models.ModelMcuDaftarPeserta, int, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
func (tdps *TabDaftarPesertaServices) GetListDaftarPesertaMCU(id string, currentpage int, rowperpage int) ([]models.ModelMcuDaftarPeserta, int, error) {
|
||||
var listDaftarPeserta []models.ModelMcuDaftarPeserta
|
||||
var totalData int
|
||||
offset := (currentpage - 1) * rowperpage
|
||||
@@ -37,110 +42,560 @@ func (tdps *TabDaftarPesertaServices) GetListMcuDaftarPeserta(id string, current
|
||||
return nil, 0, fmt.Errorf("error querying database: %v", err)
|
||||
}
|
||||
|
||||
query := `SELECT T_OrderHeaderID,
|
||||
T_OrderHeaderDate,
|
||||
T_OrderHeaderLabNumber,
|
||||
T_OrderHeaderM_PatientAge,
|
||||
M_PatientID,
|
||||
M_PatientNoReg,
|
||||
M_PatientName,
|
||||
M_PatientGender,
|
||||
CASE
|
||||
WHEN M_PatientGender = 'male' THEN 'Laki - Laki'
|
||||
WHEN M_PatientGender = 'female' THEN 'Perempuan'
|
||||
ELSE ' '
|
||||
END AS jenisKelamin,
|
||||
M_PatientDOB,
|
||||
FLOOR(DATEDIFF(CURDATE(), M_PatientDOB)/ 365.25) AS age
|
||||
FROM t_orderheader
|
||||
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
|
||||
AND M_PatientIsActive = 'Y'
|
||||
WHERE T_OrderHeaderIsActive = 'Y' AND T_OrderHeaderMgm_McuID = ?
|
||||
query := `
|
||||
SELECT *,
|
||||
GROUP_CONCAT(test_paket) as list_paket
|
||||
FROM (
|
||||
SELECT
|
||||
T_OrderHeaderID,
|
||||
T_OrderHeaderDate,
|
||||
IFNULL(T_OrderHeaderLabNumber, 0) AS T_OrderHeaderLabNumber,
|
||||
T_OrderHeaderM_PatientAge,
|
||||
M_PatientID,
|
||||
M_PatientNoReg,
|
||||
M_PatientName,
|
||||
M_PatientGender,
|
||||
CASE
|
||||
WHEN M_PatientGender = 'male' THEN 'Laki - Laki'
|
||||
WHEN M_PatientGender = 'female' THEN 'Perempuan'
|
||||
ELSE ' '
|
||||
END AS jenisKelamin,
|
||||
M_PatientDOB,
|
||||
FLOOR(DATEDIFF(CURDATE(), M_PatientDOB)/ 365.25) AS age,
|
||||
IFNULL(authPatientEmail, "none") AS authPatientEmail,
|
||||
IFNULL(authPatientIsActive, "N") AS authPatientIsActive,
|
||||
CASE
|
||||
WHEN T_OrderDetailOrderIsPacket = 'Y' THEN T_OrderDetailOrderT_PacketName
|
||||
ELSE T_OrderDetailOrderT_TestName
|
||||
END AS test_paket
|
||||
FROM t_orderheader
|
||||
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
|
||||
JOIN t_orderdetailorder ON T_OrderDetailOrderT_OrderHeaderID = T_OrderHeaderID
|
||||
AND T_OrderDetailOrderIsActive = 'Y'
|
||||
LEFT JOIN auth_patient ON M_PatientID = authPatientM_PatientID AND authPatientIsActive = 'Y'
|
||||
WHERE T_OrderHeaderIsActive = 'Y' AND T_OrderHeaderMgm_McuID = ?
|
||||
) x
|
||||
GROUP BY T_OrderHeaderID
|
||||
ORDER BY T_OrderHeaderLabNumber ASC
|
||||
LIMIT ? OFFSET ?`
|
||||
LIMIT ? OFFSET ?
|
||||
`
|
||||
|
||||
if err := dbx.Handlex.Select(&listDaftarPeserta, query, id, rowperpage, offset); err != nil {
|
||||
return nil, 0, fmt.Errorf("error querying database: %v", err)
|
||||
}
|
||||
totalPage := int(math.Ceil(float64(totalData) / float64(rowperpage)))
|
||||
|
||||
defer logger.Sync()
|
||||
logger.Info("GET DATA PESERTA",
|
||||
zap.Any("id", id),
|
||||
zap.Any("total data", totalData),
|
||||
zap.Any("peserta", listDaftarPeserta),
|
||||
)
|
||||
|
||||
return listDaftarPeserta, totalPage, nil
|
||||
}
|
||||
|
||||
func (tdps *TabDaftarPesertaServices) GetReportMcu(orderheaderID string) ([]models.TabViewReportMcu, error) {
|
||||
var ret []models.TabViewReportMcu
|
||||
var data []models.ModelMcuPesertaReport
|
||||
var totalData int
|
||||
func (tdps *TabDaftarPesertaServices) DetailTestdanPaket(orderheaderID string) ([]models.TableTestPaket, error) {
|
||||
var listPaket []models.DetailPaketMCU
|
||||
var listTest []models.DetailTestMCU
|
||||
var ret []models.TableTestPaket
|
||||
|
||||
q := `
|
||||
SELECT COUNT(*)
|
||||
FROM so_resultentry
|
||||
WHERE So_ResultEntryT_OrderHeaderID = ?
|
||||
AND So_ResultEntryIsActive = 'Y'
|
||||
`
|
||||
if err := dbx.Handlex.Get(&totalData, q, orderheaderID); err != nil {
|
||||
return ret, fmt.Errorf("error get total mcu report: %v", err)
|
||||
}
|
||||
|
||||
q = `
|
||||
// get list test name
|
||||
qr := `
|
||||
SELECT
|
||||
So_ResultEntryID,
|
||||
So_ResultEntryT_OrderHeaderID,
|
||||
So_ResultEntryNonlab_TemplateID,
|
||||
So_ResultEntryNonlab_TemplateName
|
||||
FROM so_resultentry
|
||||
WHERE So_ResultEntryT_OrderHeaderID = ?
|
||||
AND So_ResultEntryIsActive = 'Y'
|
||||
ORDER BY So_ResultEntryNonlab_TemplateID
|
||||
T_OrderDetailOrderT_TestID,
|
||||
T_OrderDetailOrderT_TestName
|
||||
FROM t_orderdetailorder
|
||||
WHERE T_OrderDetailOrderT_OrderHeaderID = ?
|
||||
AND T_OrderDetailOrderIsActive = 'Y'
|
||||
AND T_OrderDetailOrderIsPacket = 'N'
|
||||
`
|
||||
if err := dbx.Handlex.Select(&data, q, orderheaderID); err != nil {
|
||||
if err := dbx.Handlex.Select(&listTest, qr, orderheaderID); err != nil {
|
||||
return ret, err
|
||||
}
|
||||
|
||||
// Lab
|
||||
ret = append(ret, models.TabViewReportMcu{Name: "Hasil Laboratorium", Link: "https://devcpone.aplikasi.web.id/birt/run?__report=report/one/lab/rpt_test.rptdesign&__format=pdf&PID=" + orderheaderID + "&username=adhi&tm=1717726294764"})
|
||||
|
||||
// Non-lab
|
||||
for _, n := range data {
|
||||
var link models.TabViewReportMcu
|
||||
|
||||
switch n.So_ResultEntryNonlab_TemplateName {
|
||||
case "ECG":
|
||||
link.Name = "Elektromedis"
|
||||
link.Link = "https://devcpone.aplikasi.web.id/birt/run?__report=report/one/lab/rpt_hasil_so_elmd.rptdesign&__format=pdf&PID=" + strconv.Itoa(n.So_ResultEntryID) + "&username=adhi&tm=1717726294764"
|
||||
case "Thorax PA":
|
||||
link.Name = "Radiologi"
|
||||
link.Link = "https://devcpone.aplikasi.web.id/birt/run?__report=report/one/lab/rpt_hasil_so_xray.rptdesign&__format=pdf&PID=" + strconv.Itoa(n.So_ResultEntryID) + "&username=adhi&tm=1717726294764"
|
||||
case "Audiometri":
|
||||
link.Name = "Audiometri"
|
||||
link.Link = "https://devcpone.aplikasi.web.id/birt/run?__report=report/one/lab/rpt_hasil_so_audiometri.rptdesign&__format=pdf&PID=" + strconv.Itoa(n.So_ResultEntryID) + "&username=adhi&tm=1717726294764"
|
||||
case "Spirometri":
|
||||
link.Name = "Spirometri"
|
||||
link.Link = "https://devcpone.aplikasi.web.id/birt/run?__report=report/one/lab/rpt_hasil_so_spirometri.rptdesign&__format=pdf&PID=" + strconv.Itoa(n.So_ResultEntryID) + "&username=adhi&tm=1717726294764"
|
||||
case "Fisik Umum":
|
||||
namaFisik := []string{"Hasil Fisik", "Hasil Pajanan", "Riwayat"}
|
||||
linkFisik := []string{
|
||||
"https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/mcu_fisik.rptdesign&__format=pdf&PID=" + strconv.Itoa(n.So_ResultEntryID) + "&PType=fisik&username=adhi&tm=1717726294764",
|
||||
"https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/mcu_pajanan.rptdesign&__format=pdf&PID=" + strconv.Itoa(n.So_ResultEntryID) + "&PType=fisik&username=adhi&tm=1717726294764",
|
||||
"https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/mcu_riwayat.rptdesign&__format=pdf&PID=" + strconv.Itoa(n.So_ResultEntryID) + "&PType=riwayat&username=adhi&tm=1717726294764",
|
||||
}
|
||||
for i := 0; i < 3; i++ {
|
||||
ret = append(ret, models.TabViewReportMcu{Name: namaFisik[i], Link: linkFisik[i]})
|
||||
}
|
||||
continue
|
||||
}
|
||||
|
||||
ret = append(ret, link)
|
||||
// get detail paket
|
||||
q := `
|
||||
SELECT
|
||||
T_OrderDetailOrderT_PacketID,
|
||||
T_OrderDetailOrderT_PacketName,
|
||||
T_TestName
|
||||
FROM t_orderdetailorder
|
||||
JOIN t_packetdetail ON T_PacketDetailT_PacketID = T_OrderDetailOrderT_PacketID AND T_PacketDetailIsActive = 'Y'
|
||||
JOIN t_test ON T_TestName = T_PacketDetailT_TestID AND T_TestIsActive = 'Y'
|
||||
WHERE T_OrderDetailOrderT_OrderHeaderID = ? AND T_OrderDetailOrderIsActive = 'Y'
|
||||
`
|
||||
if err := dbx.Handlex.Select(&listPaket, q, orderheaderID); err != nil {
|
||||
return ret, err
|
||||
}
|
||||
|
||||
ret = append(ret, models.TabViewReportMcu{Name: "Resume Individu", Link: "https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/rpt_mcu_resume.rptdesign&__format=pdf&PID=" + orderheaderID + "&username=adhi&tm=1717726294764"})
|
||||
nomor := 1
|
||||
for _, d := range listTest {
|
||||
ret = append(ret, models.TableTestPaket{
|
||||
Nomor: nomor,
|
||||
NamaTest: d.T_OrderDetailOrderT_TestName,
|
||||
NamaPaket: d.T_OrderDetailOrderT_TestName,
|
||||
})
|
||||
nomor++
|
||||
}
|
||||
|
||||
for _, d := range listPaket {
|
||||
ret = append(ret, models.TableTestPaket{
|
||||
Nomor: nomor,
|
||||
NamaTest: d.T_TestName,
|
||||
NamaPaket: d.T_OrderDetailOrderT_PacketName,
|
||||
})
|
||||
nomor++
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
func (tdps *TabDaftarPesertaServices) GenerataPasswordMCU(mgmMCUID string, host string) (models.GeneratePasswordResponse, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
var ret models.GeneratePasswordResponse
|
||||
uri := "https://" + config.Data.Get("servername") + "/one-api/tools/auth_patient/generate/" + mgmMCUID
|
||||
|
||||
payload := []byte{}
|
||||
resp, err := http.Post(uri, "application/json", bytes.NewBuffer(payload))
|
||||
if err != nil {
|
||||
return ret, fmt.Errorf("error request generate password: %v", err)
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return ret, fmt.Errorf("error read body respoonse")
|
||||
}
|
||||
|
||||
if err := json.Unmarshal(body, &ret); err != nil {
|
||||
return ret, fmt.Errorf("error unmarshal json respoonse")
|
||||
}
|
||||
defer logger.Sync()
|
||||
logger.Info("response", zap.Any("data", ret))
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
func (tdps *TabDaftarPesertaServices) GetAkunPeserta(patientID string) (models.AuthPatient, error) {
|
||||
// logger, _ := zap.NewProduction()
|
||||
var ret models.AuthPatient
|
||||
|
||||
q := `
|
||||
SELECT
|
||||
authPatientID,
|
||||
authPatientM_PatientID,
|
||||
authPatientEmail,
|
||||
authPatientPassword,
|
||||
authPatientIsActive
|
||||
FROM auth_patient
|
||||
WHERE authPatientM_PatientID = ?
|
||||
AND authPatientIsActive = 'Y'
|
||||
`
|
||||
if err := dbx.Handlex.Get(&ret, q, patientID); err != nil {
|
||||
return ret, fmt.Errorf("error get akun peserta")
|
||||
}
|
||||
// logger.Info("response", zap.Any("data", ret))
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
func (tdps *TabDaftarPesertaServices) ResetPasswordPeserta(token string, newPassword string, email string, authuserid string) (models.ResponseStatus, error) {
|
||||
var ret models.ResponseStatus
|
||||
|
||||
uri := "https://" + config.Data.Get("servername") + "/one-api/mockup/system/menu/reset_password_pat"
|
||||
|
||||
params := url.Values{}
|
||||
params.Add("new", newPassword)
|
||||
params.Add("email", email)
|
||||
params.Add("authuserid", authuserid)
|
||||
params.Add("token", token)
|
||||
|
||||
req, err := http.PostForm(uri, params)
|
||||
if err != nil {
|
||||
ret = models.ResponseStatus{
|
||||
Status: "ERR",
|
||||
Message: "error request change password",
|
||||
}
|
||||
return ret, err
|
||||
}
|
||||
defer req.Body.Close()
|
||||
|
||||
resp, err := io.ReadAll(req.Body)
|
||||
if err != nil {
|
||||
ret = models.ResponseStatus{
|
||||
Status: "ERR",
|
||||
Message: "error read response",
|
||||
}
|
||||
return ret, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(resp, &ret)
|
||||
if err != nil {
|
||||
ret = models.ResponseStatus{
|
||||
Status: "ERR",
|
||||
Message: "error unmarshal response",
|
||||
}
|
||||
return ret, err
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
func (tdps *TabDaftarPesertaServices) GetListReportPesertaV2(orderheaderID string, host string) ([]models.TabViewReportMcu, error) {
|
||||
var returnTabRpt []models.TabViewReportMcu
|
||||
var SoResultData []models.SoResultEntryReportModel
|
||||
|
||||
q := `
|
||||
SELECT
|
||||
So_ResultEntryID,
|
||||
So_ResultEntryT_OrderHeaderID,
|
||||
So_ResultEntryNonlab_TemplateID,
|
||||
So_ResultEntryNonlab_TemplateName,
|
||||
DATE_FORMAT(NOW(), '%y%m%d%H%i%s') AS Datetime
|
||||
FROM so_resultentry
|
||||
WHERE So_ResultEntryT_OrderHeaderID = ?
|
||||
AND So_ResultEntryIsActive = 'Y'
|
||||
ORDER BY So_ResultEntryNonlab_TemplateID
|
||||
`
|
||||
if err := dbx.Handlex.Select(&SoResultData, q, orderheaderID); err != nil {
|
||||
return returnTabRpt, fmt.Errorf("error get so result data non lab: %v", err)
|
||||
}
|
||||
|
||||
mapSoResult := map[string]int{}
|
||||
for _, so := range SoResultData {
|
||||
switch so.So_ResultEntryNonlab_TemplateName {
|
||||
case "ECG":
|
||||
mapSoResult["Elektromedik"] = so.So_ResultEntryID
|
||||
case "Thorax PA":
|
||||
mapSoResult["Radiologi"] = so.So_ResultEntryID
|
||||
case "Fisik Umum", "Fisik Umum K3":
|
||||
mapSoResult["Fisik"] = so.So_ResultEntryID
|
||||
default:
|
||||
mapSoResult[so.So_ResultEntryNonlab_TemplateName] = so.So_ResultEntryID
|
||||
}
|
||||
}
|
||||
|
||||
var GroupResultOrder []models.GroupResultOrderModel
|
||||
q = `
|
||||
SELECT
|
||||
gr.Group_ResultID,
|
||||
gr.Group_ResultName,
|
||||
gr.Group_ResultResumeMcu,
|
||||
gr.Group_ResultUrl,
|
||||
gr.Group_ResultIsOrderHeader,
|
||||
gro.Group_ResultOrderOrder,
|
||||
DATE_FORMAT(NOW(), '%y%m%d%H%i%s') AS Datetime
|
||||
FROM t_orderdetail todtl
|
||||
JOIN t_test tt ON todtl.T_OrderDetailT_TestID = tt.T_TestID
|
||||
AND tt.T_TestIsActive = 'Y'
|
||||
JOIN group_resultdetail grd ON tt.T_TestID = grd.Group_ResultDetailT_TestID
|
||||
AND grd.Group_ResultDetailIsActive = 'Y'
|
||||
JOIN group_result gr ON grd.Group_ResultDetailGroup_ResultID = gr.Group_ResultID
|
||||
AND gr.Group_ResultIsActive = 'Y'
|
||||
JOIN group_resultorder gro ON gro.Group_ResultOrderGroup_ResultID = gr.Group_ResultID
|
||||
AND Group_ResultOrderIsActive = 'Y'
|
||||
WHERE todtl.T_OrderDetailT_OrderHeaderID = ?
|
||||
AND todtl.T_OrderDetailIsActive = 'Y'
|
||||
GROUP BY gr.Group_ResultID
|
||||
ORDER BY gro.Group_ResultOrderOrder
|
||||
`
|
||||
if err := dbx.Handlex.Select(&GroupResultOrder, q, orderheaderID); err != nil {
|
||||
return returnTabRpt, fmt.Errorf("error get group result order: %v", err)
|
||||
}
|
||||
|
||||
for _, d := range GroupResultOrder {
|
||||
var urlMap map[string]string
|
||||
if err := json.Unmarshal([]byte(d.Group_ResultUrl), &urlMap); err != nil {
|
||||
return returnTabRpt, fmt.Errorf("error parsing json: %v", err)
|
||||
}
|
||||
|
||||
if d.Group_ResultIsOrderHeader == "N" {
|
||||
if d.Group_ResultResumeMcu == "FISIK" {
|
||||
soResultID := strconv.Itoa(mapSoResult["Fisik"])
|
||||
for key, value := range urlMap {
|
||||
returnTabRpt = append(returnTabRpt, models.TabViewReportMcu{
|
||||
Name: key,
|
||||
Link: value + soResultID + "&tm=" + d.Datetime,
|
||||
})
|
||||
}
|
||||
}
|
||||
if d.Group_ResultResumeMcu == "NONLAB" {
|
||||
soResultID := strconv.Itoa(mapSoResult[d.Group_ResultName])
|
||||
for key, value := range urlMap {
|
||||
returnTabRpt = append(returnTabRpt, models.TabViewReportMcu{
|
||||
Name: key,
|
||||
Link: value + soResultID + "&tm=" + d.Datetime,
|
||||
})
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for _, value := range urlMap {
|
||||
returnTabRpt = append(returnTabRpt, models.TabViewReportMcu{
|
||||
Name: d.Group_ResultName,
|
||||
Link: value + orderheaderID + "&tm=" + d.Datetime,
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return returnTabRpt, nil
|
||||
}
|
||||
|
||||
func (tdps *TabDaftarPesertaServices) GetListReportPesertaV3(orderheaderID string, staffname string) ([]models.TabViewReportMcu, error) {
|
||||
var returnTab []models.TabViewReportMcu
|
||||
var GroupResultOrder []models.GroupResultOrderModel
|
||||
var SoResultData []models.SoResultEntryReportModel
|
||||
|
||||
q := `
|
||||
SELECT
|
||||
gr.Group_ResultID,
|
||||
gr.Group_ResultName,
|
||||
gr.Group_ResultResumeMcu,
|
||||
gr.Group_ResultUrl,
|
||||
gr.Group_ResultIsOrderHeader,
|
||||
gro.Group_ResultOrderOrder,
|
||||
DATE_FORMAT(NOW(), '%y%m%d%H%i%s') AS Datetime
|
||||
FROM t_orderdetail todtl
|
||||
JOIN t_test tt ON todtl.T_OrderDetailT_TestID = tt.T_TestID
|
||||
AND tt.T_TestIsActive = 'Y'
|
||||
JOIN group_resultdetail grd ON tt.T_TestID = grd.Group_ResultDetailT_TestID
|
||||
AND grd.Group_ResultDetailIsActive = 'Y'
|
||||
JOIN group_result gr ON grd.Group_ResultDetailGroup_ResultID = gr.Group_ResultID
|
||||
AND gr.Group_ResultIsActive = 'Y'
|
||||
JOIN group_resultorder gro ON gro.Group_ResultOrderGroup_ResultID = gr.Group_ResultID
|
||||
AND Group_ResultOrderIsActive = 'Y'
|
||||
WHERE todtl.T_OrderDetailT_OrderHeaderID = ?
|
||||
AND todtl.T_OrderDetailIsActive = 'Y'
|
||||
GROUP BY gr.Group_ResultID
|
||||
ORDER BY gro.Group_ResultOrderOrder
|
||||
`
|
||||
if err := dbx.Handlex.Select(&GroupResultOrder, q, orderheaderID); err != nil {
|
||||
return returnTab, fmt.Errorf("error get group result order: %v", err)
|
||||
}
|
||||
|
||||
q = `
|
||||
SELECT
|
||||
sre.So_ResultEntryID,
|
||||
sre.So_ResultEntryT_OrderHeaderID,
|
||||
sre.So_ResultEntryT_OrderDetailID,
|
||||
sre.So_ResultEntryNonlab_TemplateID,
|
||||
sre.So_ResultEntryNonlab_TemplateName
|
||||
FROM t_orderdetail tdet
|
||||
JOIN t_test tt ON tdet.T_OrderDetailT_TestID = tt.T_TestID
|
||||
AND tt.T_TestIsActive = 'Y'
|
||||
JOIN so_resultentry sre ON sre.So_ResultEntryT_OrderDetailID = tdet.T_OrderDetailID
|
||||
AND sre.So_ResultEntryIsActive = 'Y'
|
||||
WHERE tdet.T_OrderDetailT_OrderHeaderID = ?
|
||||
AND tdet.T_OrderDetailIsActive = 'Y'
|
||||
`
|
||||
if err := dbx.Handlex.Select(&SoResultData, q, orderheaderID); err != nil {
|
||||
return returnTab, fmt.Errorf("error get so result data non lab: %v", err)
|
||||
}
|
||||
|
||||
mapSoResultData := map[string]int{}
|
||||
for _, so := range SoResultData {
|
||||
switch so.So_ResultEntryNonlab_TemplateName {
|
||||
case "ECG":
|
||||
mapSoResultData["Elektromedik"] = so.So_ResultEntryID
|
||||
case "Thorax PA":
|
||||
mapSoResultData["Rontgen"] = so.So_ResultEntryID
|
||||
case "Fisik Umum", "Fisik Umum K3":
|
||||
mapSoResultData["FISIK"] = so.So_ResultEntryID
|
||||
default:
|
||||
mapSoResultData[so.So_ResultEntryNonlab_TemplateName] = so.So_ResultEntryID
|
||||
}
|
||||
}
|
||||
|
||||
for _, group := range GroupResultOrder {
|
||||
var urlMap map[string]string
|
||||
if err := json.Unmarshal([]byte(group.Group_ResultUrl), &urlMap); err != nil {
|
||||
return returnTab, fmt.Errorf("error parsing json: %v", err)
|
||||
}
|
||||
|
||||
switch group.Group_ResultResumeMcu {
|
||||
case "FISIK":
|
||||
soResultID := strconv.Itoa(mapSoResultData["FISIK"])
|
||||
if soResultID != "0" {
|
||||
for key, value := range urlMap {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{
|
||||
Name: key,
|
||||
Link: value + "&username=" + staffname + "&PID=" + soResultID + "&tm=" + group.Datetime,
|
||||
})
|
||||
}
|
||||
}
|
||||
case "NONLAB":
|
||||
soResultID := strconv.Itoa(mapSoResultData[group.Group_ResultName])
|
||||
if soResultID != "0" {
|
||||
for _, value := range urlMap {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{
|
||||
Name: group.Group_ResultName,
|
||||
Link: value + "&username=" + staffname + "&PID=" + soResultID + "&tm=" + group.Datetime,
|
||||
})
|
||||
}
|
||||
}
|
||||
case "LAB":
|
||||
for _, value := range urlMap {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{
|
||||
Name: group.Group_ResultName,
|
||||
Link: value + "&username=" + staffname + "&PID=" + orderheaderID + "&tm=" + group.Datetime,
|
||||
})
|
||||
}
|
||||
default:
|
||||
for _, value := range urlMap {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{
|
||||
Name: group.Group_ResultName,
|
||||
Link: value + "&username=" + staffname + "&PID=" + orderheaderID + "&tm=" + group.Datetime,
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return returnTab, nil
|
||||
}
|
||||
|
||||
func (tdps *TabDaftarPesertaServices) GetListReportPesertaV4(orderheaderID string, staffname string) ([]models.TabViewReportMcu, error) {
|
||||
var returnTab []models.TabViewReportMcu
|
||||
|
||||
var profile_patient models.PatientMCU
|
||||
lab_rpt := ""
|
||||
|
||||
sql := `
|
||||
SELECT
|
||||
toh.T_OrderHeaderID,
|
||||
toh.T_OrderHeaderLabNumber,
|
||||
mp.M_PatientID,
|
||||
mp.M_PatientName,
|
||||
DATE_FORMAT(NOW(), '%y%m%d%H%i%s') AS Datetime
|
||||
FROM t_orderheader toh
|
||||
JOIN m_patient mp ON toh.T_OrderHeaderM_PatientID = mp.M_PatientID
|
||||
AND mp.M_PatientIsActive = 'Y'
|
||||
WHERE toh.T_OrderHeaderID = ? AND toh.T_OrderHeaderIsActive = 'Y'
|
||||
`
|
||||
if err := dbx.Handlex.Get(&profile_patient, sql, orderheaderID); err != nil {
|
||||
return returnTab, fmt.Errorf("error get group result order: %v", err)
|
||||
}
|
||||
if profile_patient.T_OrderHeaderLabNumber != "" {
|
||||
lab_rpt = "/birt/frameset?__report=report/one/lab/rpt_test_portal.rptdesign&__format=pdf&PID=" + profile_patient.T_OrderHeaderID + "&tm=" + profile_patient.Datetime + "&username=" + staffname
|
||||
}
|
||||
|
||||
var so_data_rpt []models.SoRptData
|
||||
fisik := ""
|
||||
rontgen := ""
|
||||
ekg := ""
|
||||
audiometri := ""
|
||||
spirometri := ""
|
||||
treadmill := ""
|
||||
papsmear := ""
|
||||
|
||||
sql_rpt := `
|
||||
SELECT DISTINCT group_resultName as rpt_name,
|
||||
IFNULL(So_ResultEntryID,0) as so_id,
|
||||
T_OrderDetailT_OrderHeaderID as order_id,
|
||||
DATE_FORMAT(NOW(), '%y%m%d%H%i%s') AS Datetime
|
||||
FROM t_orderdetail
|
||||
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
|
||||
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
|
||||
JOIN group_result ON Group_ResultID = Group_ResultDetailGroup_ResultID AND
|
||||
Group_ResultFlagPerTest = 'N' AND Group_ResultName <> 'LAB' AND Group_ResultFlagNonLab = 'N'
|
||||
LEFT JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y'
|
||||
WHERE
|
||||
T_OrderDetailT_OrderHeaderID = ? AND Group_ResultName <> 'Tanpa Hasil'
|
||||
UNION
|
||||
SELECT DISTINCT group_resultName as rpt_name,
|
||||
IFNULL(So_ResultEntryID,0) as so_id,
|
||||
T_OrderDetailT_OrderHeaderID as order_id,
|
||||
DATE_FORMAT(NOW(), '%y%m%d%H%i%s') AS Datetime
|
||||
FROM t_orderdetail
|
||||
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
|
||||
JOIN t_samplingso ON T_SamplingSoT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND
|
||||
T_SamplingSoT_TestID = T_TestID
|
||||
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
|
||||
JOIN group_result ON Group_ResultID = Group_ResultDetailGroup_ResultID AND
|
||||
Group_ResultFlagPerTest = 'N' AND Group_ResultName <> 'LAB' AND Group_ResultFlagNonLab = 'Y'
|
||||
LEFT JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y'
|
||||
WHERE
|
||||
T_OrderDetailT_OrderHeaderID = ? AND Group_ResultName <> 'Tanpa Hasil'
|
||||
UNION
|
||||
SELECT DISTINCT T_TestName as rpt_name,
|
||||
IFNULL(So_ResultEntryID,0) as so_id,
|
||||
T_OrderDetailT_OrderHeaderID as order_id,
|
||||
DATE_FORMAT(NOW(), '%y%m%d%H%i%s') AS Datetime
|
||||
FROM t_orderdetail
|
||||
JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestName NOT IN ('Visus Mata','Buta Warna','Pemeriksaan Lapang Pandang')
|
||||
JOIN t_samplingso ON T_SamplingSoT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND
|
||||
T_SamplingSoT_TestID = T_TestID
|
||||
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
|
||||
JOIN group_result ON Group_ResultID = Group_ResultDetailGroup_ResultID AND
|
||||
Group_ResultFlagPerTest = 'Y' AND Group_ResultFlagNonLab = 'Y'
|
||||
LEFT JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y'
|
||||
WHERE
|
||||
T_OrderDetailT_OrderHeaderID = ? AND Group_ResultName <> 'Tanpa Hasil'
|
||||
`
|
||||
if err := dbx.Handlex.Select(&so_data_rpt, sql_rpt, orderheaderID, orderheaderID, orderheaderID); err != nil {
|
||||
return returnTab, fmt.Errorf("error get data so_id: %v", err)
|
||||
}
|
||||
|
||||
for _, d := range so_data_rpt {
|
||||
switch d.Rpt_name {
|
||||
case "Pemeriksaan Fisik":
|
||||
fisik = "/birt/frameset?__report=report/one/mcu/mcu_fisik_history_v2_portal.rptdesign&__format=pdf&PType=fisik&PLang=1&username=" + staffname + "&PID=" + d.So_id + "&tm=" + d.Datetime
|
||||
case "Rontgen":
|
||||
rontgen = "/birt/frameset?__report=report/one/lab/rpt_hasil_so_xray_portal.rptdesign&__format=pdf&username=" + staffname + "&PID=" + d.So_id + "&tm=" + d.Datetime
|
||||
case "Audiometri":
|
||||
audiometri = "/birt/frameset?__report=report/one/lab/rpt_hasil_so_audiometri_portal.rptdesign&__format=pdf&username=" + staffname + "&PID=" + d.So_id + "&tm=" + d.Datetime
|
||||
case "Spirometri":
|
||||
spirometri = "/birt/frameset?__report=report/one/lab/rpt_hasil_so_spirometri_portal.rptdesign&__format=pdf&username=" + staffname + "&PID=" + d.So_id + "&tm=" + d.Datetime
|
||||
case "ECG":
|
||||
ekg = "/birt/frameset?__report=report/one/lab/rpt_hasil_so_ecg_portal.rptdesign&__format=pdf&username=" + staffname + "&PID=" + d.So_id + "&tm=" + d.Datetime
|
||||
case "Treadmill":
|
||||
treadmill = "/birt/frameset?__report=report/one/lab/rpt_hasil_so_treadmill_portal.rptdesign&__format=pdf&username=" + staffname + "&PID=" + d.So_id + "&tm=" + d.Datetime
|
||||
case "Papsmear":
|
||||
papsmear = "/birt/frameset?__report=report/one/lab/rpt_test_papsmear_portal.rptdesign&__format=pdf&username=" + staffname + "&PID=" + d.So_id + "&tm=" + d.Datetime
|
||||
}
|
||||
}
|
||||
|
||||
var ResumeData models.ResumeMCU
|
||||
kesimpulan := ""
|
||||
// cover := ""
|
||||
|
||||
sql_resume := `
|
||||
SELECT
|
||||
Mcu_ResumeID,
|
||||
DATE_FORMAT(NOW(), '%y%m%d%H%i%s') AS Datetime
|
||||
FROM mcu_resume
|
||||
WHERE Mcu_ResumeT_OrderHeaderID = ?
|
||||
AND Mcu_ResumeIsActive = 'Y' AND Mcu_ResumeStatus = 'VAL'
|
||||
`
|
||||
if err := dbx.Handlex.Get(&ResumeData, sql_resume, orderheaderID); err != nil {
|
||||
return returnTab, fmt.Errorf("error get data resume id: %v", err)
|
||||
}
|
||||
|
||||
if ResumeData.Mcu_ResumeID != "" {
|
||||
// cover = "/birt/frameset?__report=report/one/mcu/rpt_mcu_resume_cover_portal.rptdesign&__format=pdf&username=" + staffname + "&PID=" + ResumeData.Mcu_ResumeID + "&tm=" + ResumeData.Datetime
|
||||
kesimpulan = "/birt/frameset?__report=report/one/mcu/rpt_mcu_saran_kesimpulan_v2_portal.rptdesign&__format=pdf&username=" + staffname + "&PID=" + ResumeData.Mcu_ResumeID + "&tm=" + ResumeData.Datetime
|
||||
}
|
||||
|
||||
if fisik != "" {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{Name: "Fisik", Link: fisik})
|
||||
}
|
||||
if rontgen != "" {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{Name: "Rontgen", Link: rontgen})
|
||||
}
|
||||
if ekg != "" {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{Name: "Elektromedik", Link: ekg})
|
||||
}
|
||||
if audiometri != "" {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{Name: "Audiometri", Link: audiometri})
|
||||
}
|
||||
if spirometri != "" {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{Name: "Spirometri", Link: spirometri})
|
||||
}
|
||||
if treadmill != "" {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{Name: "Treadmill", Link: treadmill})
|
||||
}
|
||||
if kesimpulan != "" {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{Name: "Kesimpulan", Link: kesimpulan})
|
||||
}
|
||||
if lab_rpt != "" {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{Name: "Lab", Link: lab_rpt})
|
||||
}
|
||||
if papsmear != "" {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{Name: "Papsmear", Link: papsmear})
|
||||
}
|
||||
|
||||
return returnTab, nil
|
||||
}
|
||||
|
||||
@@ -4,7 +4,9 @@ import (
|
||||
"cpone/db"
|
||||
"cpone/models"
|
||||
dbx "cpone/package/database"
|
||||
"cpone/utils"
|
||||
"fmt"
|
||||
"math"
|
||||
"strconv"
|
||||
|
||||
"go.uber.org/zap"
|
||||
@@ -93,35 +95,196 @@ func (tkf *TabKelainanFisikServices) GetPieChartConf(title string, subtext strin
|
||||
return option, nil
|
||||
}
|
||||
|
||||
func (tkf *TabKelainanFisikServices) GetBarChartConf(title string, data models.BarDataset) (models.Barchart, error) {
|
||||
isEmpty := ""
|
||||
if len(data.Source) <= 1 {
|
||||
isEmpty = "Data tidak ditemukan"
|
||||
}
|
||||
|
||||
option := models.Barchart{}
|
||||
option.Title = struct {
|
||||
Text string "json:\"text\""
|
||||
Left string `json:"left"`
|
||||
}{
|
||||
Text: title,
|
||||
Left: "center",
|
||||
}
|
||||
option.Dataset = data
|
||||
option.Grid.ContainLabel = true
|
||||
option.XAxis.Name = "person"
|
||||
option.YAxis.Type = "category"
|
||||
option.VisualMap.Orient = "horizontal"
|
||||
option.VisualMap.Left = "center"
|
||||
option.VisualMap.Min = 0
|
||||
option.VisualMap.Max = 10
|
||||
option.VisualMap.Show = false
|
||||
option.VisualMap.Dimension = 0
|
||||
option.VisualMap.InRange.Color = []string{"#035bff", "#42aaf5", "#00eaf2"}
|
||||
option.Series = []struct {
|
||||
Label struct {
|
||||
Position string "json:\"position\""
|
||||
Show bool "json:\"show\""
|
||||
Formatter string "json:\"formatter\""
|
||||
} "json:\"label\""
|
||||
Type string "json:\"type\""
|
||||
Encode struct {
|
||||
X string "json:\"x\""
|
||||
Y string "json:\"y\""
|
||||
} "json:\"encode\""
|
||||
}{
|
||||
{
|
||||
Label: struct {
|
||||
Position string "json:\"position\""
|
||||
Show bool "json:\"show\""
|
||||
Formatter string "json:\"formatter\""
|
||||
}{
|
||||
Position: "right",
|
||||
Show: true,
|
||||
Formatter: "{@[3]} %",
|
||||
},
|
||||
Type: "bar",
|
||||
Encode: struct {
|
||||
X string "json:\"x\""
|
||||
Y string "json:\"y\""
|
||||
}{
|
||||
X: "amount",
|
||||
Y: "product",
|
||||
},
|
||||
},
|
||||
}
|
||||
option.Tooltip = struct {
|
||||
Trigger string "json:\"trigger\""
|
||||
AxisPointer struct {
|
||||
Type string "json:\"type\""
|
||||
} "json:\"axisPointer\""
|
||||
}{
|
||||
Trigger: "axis",
|
||||
AxisPointer: struct {
|
||||
Type string "json:\"type\""
|
||||
}{
|
||||
Type: "shadow",
|
||||
},
|
||||
}
|
||||
option.Graphic = struct {
|
||||
Type string "json:\"type\""
|
||||
Left string "json:\"left\""
|
||||
Top string "json:\"top\""
|
||||
Style struct {
|
||||
Text string "json:\"text\""
|
||||
FontSize string "json:\"fontSize\""
|
||||
FontWeight string "json:\"fontWeight\""
|
||||
} "json:\"style\""
|
||||
}{
|
||||
Type: "text",
|
||||
Left: "center",
|
||||
Top: "middle",
|
||||
Style: struct {
|
||||
Text string "json:\"text\""
|
||||
FontSize string "json:\"fontSize\""
|
||||
FontWeight string "json:\"fontWeight\""
|
||||
}{
|
||||
Text: isEmpty,
|
||||
FontSize: "15",
|
||||
FontWeight: "bold",
|
||||
},
|
||||
}
|
||||
|
||||
return option, nil
|
||||
}
|
||||
|
||||
func (tkf *TabKelainanFisikServices) GetKelainanFisikPresentase(mcuID string) (models.Barchart, error) {
|
||||
var option models.Barchart
|
||||
var data []models.KelainanGlobalFisikModel
|
||||
|
||||
q := `
|
||||
SELECT Mcu_KelainanName,
|
||||
count(distinct T_OrderHeaderID) as total
|
||||
FROM t_kelainan_fisik
|
||||
JOIN t_orderheader ON T_KelainanFiskT_OrderHeaderID = T_OrderHeaderID
|
||||
JOIN mcu_summaryfisik ON T_KelainanFiskMcu_SummaryFisikID = Mcu_SummaryFisikID AND
|
||||
Mcu_SummaryFisikID NOT IN (63,67,68,69,70,71,72,73)
|
||||
join mcu_kelainan on Mcu_SummaryFisikMcu_KelainanID = Mcu_KelainanID
|
||||
join mcu_kelainangroup on Mcu_KelainanMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
where T_KelainanFiskIsActive = 'Y' and T_OrderHeaderMgm_McuID = ? AND
|
||||
Mcu_KelainanClasification NOT IN ('who','kemenkes','JNC-VIII','ESC/ESH')
|
||||
group by Mcu_KelainanID
|
||||
ORDER BY total DESC
|
||||
LIMIT 10
|
||||
`
|
||||
if err := dbx.Handlex.Select(&data, q, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get data kelainan fisik: %v", err)
|
||||
}
|
||||
|
||||
var jumlahPeserta models.TotalPesertaModel
|
||||
q = `
|
||||
SELECT
|
||||
COUNT(distinct(T_OrderHeaderID)) as peserta,
|
||||
COUNT( distinct(Mcu_PreregisterPatientsM_PatientID)) as total
|
||||
FROM mcu_preregister_patients
|
||||
LEFT JOIN t_orderheader ON Mcu_PreregisterPatientsT_OrderHeaderID = T_OrderHeaderID AND
|
||||
T_OrderHeaderIsActive = 'Y'
|
||||
WHERE
|
||||
Mcu_PreregisterPatientsMgm_McuID = ? AND
|
||||
Mcu_PreregisterPatientsIsActive = 'Y'
|
||||
`
|
||||
if err := dbx.Handlex.Get(&jumlahPeserta, q, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get jumlah peserta %v", err)
|
||||
}
|
||||
|
||||
title := "Kelainan Fisik (10 Terbesar)"
|
||||
chartData := models.BarDataset{
|
||||
Source: [][]interface{}{
|
||||
{"score", "amount", "product", "percentage"},
|
||||
},
|
||||
}
|
||||
|
||||
for i, d := range data {
|
||||
percentage := float64(d.Total) / float64(jumlahPeserta.Peserta) * 100
|
||||
roundedPercentage := math.Round(percentage*100) / 100
|
||||
percentStr := strconv.FormatFloat(roundedPercentage, 'f', -1, 64)
|
||||
newText := utils.SplitStrings(d.Mcu_KelainanName, 2)
|
||||
chartData.Source = append(chartData.Source, []interface{}{
|
||||
i, d.Total, newText, percentStr,
|
||||
})
|
||||
}
|
||||
|
||||
option, err := tkf.GetBarChartConf(title, chartData)
|
||||
if err != nil {
|
||||
return option, fmt.Errorf("error insert data to barchart %v", err)
|
||||
}
|
||||
return option, nil
|
||||
}
|
||||
|
||||
func (tkf *TabKelainanFisikServices) GetKelainanFisikBMI(mcuID string) (models.Piechart, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
var option models.Piechart
|
||||
var data []models.KelainanFisikDataModel
|
||||
|
||||
q := `
|
||||
SELECT
|
||||
CASE
|
||||
WHEN Mgm_HeaderIsNormal = "Y" THEN "Normal"
|
||||
WHEN Mgm_HeaderIsNormal = "N" THEN Mcu_KelainanName
|
||||
ELSE "Tidak diperiksa" END AS test,
|
||||
COUNT(Mgm_HeaderT_OrderHeaderID) AS total,
|
||||
IFNULL(Mcu_KelainanClasification, "") AS Mcu_KelainanClasification
|
||||
FROM mgm_header
|
||||
LEFT JOIN mgm_detail ON Mgm_DetailMgm_HeaderID = Mgm_HeaderID AND Mgm_DetailIsActive = 'Y'
|
||||
LEFT JOIN mcu_kelainan ON Mgm_DetailMcu_KelainanID = Mcu_KelainanID
|
||||
LEFT JOIN mcu_kelainangroup ON Mgm_DetailMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
LEFT JOIN nat_test ON Nat_TestCode = Mgm_HeaderNat_TestCode
|
||||
WHERE Mgm_HeaderIsActive = 'Y' AND Mgm_HeaderMgm_McuID = ?
|
||||
AND Mgm_HeaderNat_TestCode = 'STATUS GIZI'
|
||||
GROUP BY
|
||||
CASE
|
||||
WHEN Mgm_HeaderIsNormal = "Y" THEN "Normal"
|
||||
WHEN Mgm_HeaderIsNormal = "N" THEN Mcu_KelainanName ELSE
|
||||
"Tidak diperiksa" END
|
||||
ORDER BY COUNT(Mgm_HeaderT_OrderHeaderID) DESC
|
||||
SELECT Mcu_KelainanName as test,
|
||||
Mcu_KelainanClasification,
|
||||
count(distinct orderkel.T_OrderHeaderID) as total
|
||||
FROM mcu_kelainan
|
||||
JOIN mcu_summaryfisik ON Mcu_SummaryFisikMcu_KelainanID = Mcu_KelainanID AND
|
||||
Mcu_SummaryFisikIsActive = 'Y'
|
||||
LEFT JOIN t_kelainan_fisik ON T_KelainanFiskMcu_SummaryFisikID = Mcu_SummaryFisikID AND
|
||||
T_KelainanFiskIsActive= 'Y'
|
||||
LEFT JOIN t_orderheader orderkel ON T_KelainanFiskT_OrderHeaderID = orderkel.T_OrderHeaderID AND
|
||||
orderkel.T_OrderHeaderIsActive = 'Y' AND orderkel.T_OrderHeaderMgm_McuID = ?
|
||||
WHERE
|
||||
Mcu_KelainanIsActive = 'Y' AND Mcu_KelainanClasification = 'asia_pacific'
|
||||
group by Mcu_KelainanID
|
||||
UNION
|
||||
SELECT 'Normal' as test,
|
||||
'asia_pacific' as Mcu_KelainanClasification,
|
||||
ifnull(count(distinct T_OrderHeaderID) - summary_total_kelainan_bmi(?), 0) as total
|
||||
FROM t_orderheader
|
||||
WHERE
|
||||
T_OrderHeaderMgm_McuID = ? AND T_OrderHeaderIsActive = 'Y'
|
||||
group by T_OrderHeaderMgm_McuID
|
||||
`
|
||||
|
||||
if err := dbx.Handlex.Select(&data, q, mcuID); err != nil {
|
||||
if err := dbx.Handlex.Select(&data, q, mcuID, mcuID, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get data kel fisik bmi %v", err)
|
||||
}
|
||||
defer logger.Sync()
|
||||
@@ -156,28 +319,30 @@ func (tkf *TabKelainanFisikServices) GetKelainanFisikHipertensi(mcuID string) (m
|
||||
var data []models.KelainanFisikDataModel
|
||||
|
||||
q := `
|
||||
SELECT
|
||||
CASE
|
||||
WHEN Mgm_HeaderIsNormal = "Y" THEN "Normal"
|
||||
WHEN Mgm_HeaderIsNormal = "N" THEN Mcu_KelainanName
|
||||
ELSE "Tidak diperiksa" END AS test,
|
||||
COUNT(Mgm_HeaderT_OrderHeaderID) AS total,
|
||||
IFNULL(Mcu_KelainanClasification, "") AS Mcu_KelainanClasification
|
||||
FROM mgm_header
|
||||
LEFT JOIN mgm_detail ON Mgm_DetailMgm_HeaderID = Mgm_HeaderID AND Mgm_DetailIsActive = 'Y'
|
||||
LEFT JOIN mcu_kelainan ON Mgm_DetailMcu_KelainanID = Mcu_KelainanID
|
||||
LEFT JOIN mcu_kelainangroup ON Mgm_DetailMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
LEFT JOIN nat_test ON Nat_TestCode = Mgm_HeaderNat_TestCode
|
||||
WHERE Mgm_HeaderIsActive = 'Y' AND Mgm_HeaderMgm_McuID = ?
|
||||
AND Mgm_HeaderNat_TestCode = 'TANDA VITAL'
|
||||
GROUP BY
|
||||
CASE
|
||||
WHEN Mgm_HeaderIsNormal = "Y" THEN "Normal"
|
||||
WHEN Mgm_HeaderIsNormal = "N" THEN Mcu_KelainanName
|
||||
ELSE "Tidak diperiksa" END
|
||||
ORDER BY count(Mgm_HeaderT_OrderHeaderID) DESC
|
||||
SELECT Mcu_KelainanName as test,
|
||||
Mcu_KelainanClasification,
|
||||
count(distinct orderkel.T_OrderHeaderID) as total
|
||||
FROM mcu_kelainan
|
||||
JOIN mcu_summaryfisik ON Mcu_SummaryFisikMcu_KelainanID = Mcu_KelainanID AND
|
||||
Mcu_SummaryFisikIsActive = 'Y'
|
||||
LEFT JOIN t_kelainan_fisik ON T_KelainanFiskMcu_SummaryFisikID = Mcu_SummaryFisikID AND
|
||||
T_KelainanFiskIsActive= 'Y'
|
||||
LEFT JOIN t_orderheader orderkel ON T_KelainanFiskT_OrderHeaderID = orderkel.T_OrderHeaderID AND
|
||||
orderkel.T_OrderHeaderIsActive = 'Y' AND orderkel.T_OrderHeaderMgm_McuID = ?
|
||||
WHERE
|
||||
Mcu_KelainanIsActive = 'Y' AND Mcu_KelainanClasification = 'JNC-VII'
|
||||
group by Mcu_KelainanID
|
||||
UNION
|
||||
SELECT 'Normal' as test,
|
||||
'JNC-VII' as Mcu_KelainanClasification,
|
||||
IFNULL(COUNT(T_OrderHeaderID) - summary_total_kelainan_hipertensi(?), 0) as total
|
||||
FROM t_orderheader
|
||||
WHERE
|
||||
T_OrderHeaderMgm_McuID = ? AND T_OrderHeaderIsActive = 'Y'
|
||||
group by T_OrderHeaderMgm_McuID
|
||||
`
|
||||
if err := dbx.Handlex.Select(&data, q, mcuID); err != nil {
|
||||
|
||||
if err := dbx.Handlex.Select(&data, q, mcuID, mcuID, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get data kel fisik hipertensi: %v", err)
|
||||
}
|
||||
defer logger.Sync()
|
||||
@@ -205,3 +370,220 @@ func (tkf *TabKelainanFisikServices) GetKelainanFisikHipertensi(mcuID string) (m
|
||||
|
||||
return option, nil
|
||||
}
|
||||
|
||||
func (tkf *TabKelainanFisikServices) GetKelainanFisikRefraksi(mcuID string) (models.Piechart, error) {
|
||||
var option models.Piechart
|
||||
var data []models.KelainanFisikDataModel
|
||||
|
||||
q := `
|
||||
SELECT Mcu_KelainanName as test,
|
||||
count(distinct orderkel.T_OrderHeaderID) as total
|
||||
FROM mcu_kelainan
|
||||
JOIN mcu_summaryfisik ON Mcu_SummaryFisikMcu_KelainanID = Mcu_KelainanID AND
|
||||
Mcu_SummaryFisikIsActive = 'Y'
|
||||
LEFT JOIN t_kelainan_fisik ON T_KelainanFiskMcu_SummaryFisikID = Mcu_SummaryFisikID AND
|
||||
T_KelainanFiskIsActive= 'Y'
|
||||
LEFT JOIN t_orderheader orderkel ON T_KelainanFiskT_OrderHeaderID = orderkel.T_OrderHeaderID AND
|
||||
orderkel.T_OrderHeaderIsActive = 'Y' AND orderkel.T_OrderHeaderMgm_McuID = ?
|
||||
WHERE
|
||||
Mcu_KelainanIsActive = 'Y' AND Mcu_KelainanID IN (24,25)
|
||||
group by Mcu_KelainanID
|
||||
UNION
|
||||
SELECT 'Normal' as test,
|
||||
IFNULL(count(distinct T_OrderHeaderID) - summary_total_kelainan_visus(?), 0) as total
|
||||
FROM t_orderheader
|
||||
WHERE
|
||||
T_OrderHeaderMgm_McuID = ? AND T_OrderHeaderIsActive = 'Y'
|
||||
group by T_OrderHeaderMgm_McuID
|
||||
`
|
||||
|
||||
if err := dbx.Handlex.Select(&data, q, mcuID, mcuID, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get data kel fisik refraksi: %v", err)
|
||||
}
|
||||
|
||||
title := "Refraksi"
|
||||
subtext := ""
|
||||
chartData := []models.SeriesData{}
|
||||
|
||||
if data != nil {
|
||||
for _, d := range data {
|
||||
chartData = append(chartData, models.SeriesData{
|
||||
Value: d.Total,
|
||||
Name: d.Test + ": " + strconv.Itoa(d.Total) + " Peserta",
|
||||
})
|
||||
}
|
||||
} else {
|
||||
chartData = append(chartData, models.SeriesData{Value: 0, Name: "No Data"})
|
||||
}
|
||||
|
||||
option, err := tkf.GetPieChartConf(title, subtext, chartData)
|
||||
if err != nil {
|
||||
return option, fmt.Errorf("error get and insert data to chart: %v", err)
|
||||
}
|
||||
|
||||
return option, nil
|
||||
}
|
||||
|
||||
func (tkf *TabKelainanFisikServices) GetKelFisikAlkohol(mcuID string) (models.Piechart, error) {
|
||||
var option models.Piechart
|
||||
var data []models.KelainanFisikDataModel
|
||||
|
||||
q := `
|
||||
SELECT
|
||||
Mcu_KelainanName as test,
|
||||
COUNT( distinct T_OrderHeaderID) as total
|
||||
FROM mcu_kelainan
|
||||
JOIN mcu_summaryfisik ON Mcu_SummaryFisikMcu_KelainanID = Mcu_KelainanID AND
|
||||
Mcu_KelainanIsActive = 'Y' AND Mcu_KelainanID IN (117,118,119)
|
||||
LEFT JOIN t_kelainan_fisik ON T_KelainanFiskMcu_SummaryFisikID = Mcu_SummaryFisikID AND
|
||||
T_KelainanFiskIsActive = 'Y'
|
||||
LEFT JOIN so_resultentry ON T_KelainanFiskSo_ResultEntryID = So_ResultEntryID AND
|
||||
So_ResultEntryIsActive = 'Y'
|
||||
LEFT JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumSo_ResultEntryID = So_ResultEntryID AND
|
||||
So_ResultEntryFisikUmumIsActive = 'Y'
|
||||
LEFT JOIN t_orderheader ON So_ResultEntryT_OrderHeaderID = T_OrderHeaderID AND
|
||||
T_OrderHeaderMgm_McuID = ?
|
||||
group by Mcu_KelainanID
|
||||
`
|
||||
|
||||
if err := dbx.Handlex.Select(&data, q, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get data kel fisik konsumsi alkohol: %v", err)
|
||||
}
|
||||
|
||||
title := "Konsumsi Alkohol"
|
||||
subtext := ""
|
||||
chartData := []models.SeriesData{}
|
||||
|
||||
if data != nil {
|
||||
for _, d := range data {
|
||||
chartData = append(chartData, models.SeriesData{
|
||||
Value: d.Total,
|
||||
Name: d.Test + ": " + strconv.Itoa(d.Total) + " Peserta",
|
||||
})
|
||||
}
|
||||
} else {
|
||||
chartData = append(chartData, models.SeriesData{Value: 0, Name: "No Data"})
|
||||
}
|
||||
|
||||
option, err := tkf.GetPieChartConf(title, subtext, chartData)
|
||||
if err != nil {
|
||||
return option, fmt.Errorf("error get and insert data to chart: %v", err)
|
||||
}
|
||||
|
||||
return option, nil
|
||||
}
|
||||
|
||||
func (tkf *TabKelainanFisikServices) GetKelFisikMerokok(mcuID string) (models.Piechart, error) {
|
||||
var option models.Piechart
|
||||
var data []models.KelainanFisikDataModel
|
||||
|
||||
q := `
|
||||
SELECT Mcu_KelainanName as test, COUNT( distinct T_OrderHeaderID) as total
|
||||
FROM mcu_kelainan
|
||||
JOIN mcu_summaryfisik ON Mcu_SummaryFisikMcu_KelainanID = Mcu_KelainanID AND
|
||||
Mcu_KelainanIsActive = 'Y' AND Mcu_KelainanID IN (120,121,122)
|
||||
LEFT JOIN t_kelainan_fisik ON T_KelainanFiskMcu_SummaryFisikID = Mcu_SummaryFisikID AND
|
||||
T_KelainanFiskIsActive = 'Y'
|
||||
LEFT JOIN so_resultentry ON T_KelainanFiskSo_ResultEntryID = So_ResultEntryID AND
|
||||
So_ResultEntryIsActive = 'Y'
|
||||
LEFT JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumSo_ResultEntryID = So_ResultEntryID AND
|
||||
So_ResultEntryFisikUmumIsActive = 'Y'
|
||||
LEFT JOIN t_orderheader ON So_ResultEntryT_OrderHeaderID = T_OrderHeaderID AND
|
||||
T_OrderHeaderMgm_McuID = ?
|
||||
group by Mcu_KelainanID
|
||||
`
|
||||
if err := dbx.Handlex.Select(&data, q, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get data kel fisik merokok %v", err)
|
||||
}
|
||||
|
||||
title := "Merokok"
|
||||
subtext := ""
|
||||
chartData := []models.SeriesData{}
|
||||
|
||||
if data != nil {
|
||||
for _, d := range data {
|
||||
chartData = append(chartData, models.SeriesData{
|
||||
Value: d.Total,
|
||||
Name: d.Test + ": " + strconv.Itoa(d.Total) + " Peserta",
|
||||
})
|
||||
}
|
||||
} else {
|
||||
chartData = append(chartData, models.SeriesData{Value: 0, Name: "No Data"})
|
||||
}
|
||||
|
||||
option, err := tkf.GetPieChartConf(title, subtext, chartData)
|
||||
if err != nil {
|
||||
return option, fmt.Errorf("error get and insert data into chart %v", err)
|
||||
}
|
||||
|
||||
return option, nil
|
||||
}
|
||||
|
||||
func (tkf *TabKelainanFisikServices) GetKelFisikOlahraga(mcuID string) (models.Piechart, error) {
|
||||
var option models.Piechart
|
||||
var data []models.KelainanFisikDataModel
|
||||
|
||||
q := `
|
||||
SELECT Mcu_KelainanName as test, COUNT( distinct T_OrderHeaderID) as total
|
||||
FROM mcu_kelainan
|
||||
JOIN mcu_summaryfisik ON Mcu_SummaryFisikMcu_KelainanID = Mcu_KelainanID AND
|
||||
Mcu_KelainanIsActive = 'Y' AND Mcu_KelainanID IN (123,124)
|
||||
LEFT JOIN t_kelainan_fisik ON T_KelainanFiskMcu_SummaryFisikID = Mcu_SummaryFisikID AND
|
||||
T_KelainanFiskIsActive = 'Y'
|
||||
LEFT JOIN so_resultentry ON T_KelainanFiskSo_ResultEntryID = So_ResultEntryID AND
|
||||
So_ResultEntryIsActive = 'Y'
|
||||
LEFT JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumSo_ResultEntryID = So_ResultEntryID AND
|
||||
So_ResultEntryFisikUmumIsActive = 'Y'
|
||||
LEFT JOIN t_orderheader ON So_ResultEntryT_OrderHeaderID = T_OrderHeaderID AND
|
||||
T_OrderHeaderMgm_McuID = ?
|
||||
group by Mcu_KelainanID
|
||||
`
|
||||
if err := dbx.Handlex.Select(&data, q, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get data kel fisik olahraga %v", err)
|
||||
}
|
||||
|
||||
title := "Olahraga"
|
||||
subtext := ""
|
||||
chartData := []models.SeriesData{}
|
||||
|
||||
if data != nil {
|
||||
for _, d := range data {
|
||||
chartData = append(chartData, models.SeriesData{
|
||||
Value: d.Total,
|
||||
Name: d.Test + ": " + strconv.Itoa(d.Total) + " Peserta",
|
||||
})
|
||||
}
|
||||
} else {
|
||||
chartData = append(chartData, models.SeriesData{Value: 0, Name: "No Data"})
|
||||
}
|
||||
|
||||
option, err := tkf.GetPieChartConf(title, subtext, chartData)
|
||||
if err != nil {
|
||||
return option, fmt.Errorf("error get and insert data to chart %v", err)
|
||||
}
|
||||
|
||||
return option, nil
|
||||
}
|
||||
|
||||
func (tkf *TabKelainanFisikServices) GetChartRenderFisik(mcuID string) ([]models.McuTabModels, error) {
|
||||
var ret []models.McuTabModels
|
||||
|
||||
q := `
|
||||
SELECT
|
||||
Mcu_ImageGrafikGroupResult,
|
||||
Mcu_ImageGrafikGroupMenu,
|
||||
Mcu_ImageGrafikName,
|
||||
Mcu_ImageGrafikJsonRender
|
||||
FROM mgm_mcugrafik
|
||||
JOIN mcu_image_grafik ON Mcu_ImageGrafikID = Mgm_McuGrafikMcu_ImageGrafikID
|
||||
WHERE Mgm_McuGrafikMgm_McuID = ?
|
||||
AND Mcu_ImageGrafikGroupResult = "FISIK"
|
||||
AND Mgm_McuGrafikIsActive = 'Y'
|
||||
ORDER BY Mcu_ImageGrafikID
|
||||
`
|
||||
if err := dbx.Handlex.Select(&ret, q, mcuID); err != nil {
|
||||
return ret, fmt.Errorf("error get data tab peserta: %v", err)
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import (
|
||||
"cpone/db"
|
||||
"cpone/models"
|
||||
dbx "cpone/package/database"
|
||||
"cpone/utils"
|
||||
"fmt"
|
||||
"math"
|
||||
"strconv"
|
||||
@@ -22,21 +23,30 @@ func NewTabKelainanGlobalServices(store db.AppStore) *TabKelainanGlobalServices
|
||||
}
|
||||
|
||||
func (tkg *TabKelainanGlobalServices) GetBarChartConf(title string, data models.BarDataset) (models.Barchart, error) {
|
||||
isEmpty := ""
|
||||
if len(data.Source) <= 1 {
|
||||
isEmpty = "Data tidak ditemukan"
|
||||
}
|
||||
|
||||
option := models.Barchart{}
|
||||
option.Title = struct {
|
||||
Text string "json:\"text\""
|
||||
}{title}
|
||||
Left string `json:"left"`
|
||||
}{
|
||||
Text: title,
|
||||
Left: "center",
|
||||
}
|
||||
option.Dataset = data
|
||||
option.Grid.ContainLabel = true
|
||||
option.XAxis.Name = "amount"
|
||||
option.XAxis.Name = "person"
|
||||
option.YAxis.Type = "category"
|
||||
option.VisualMap.Orient = "horizontal"
|
||||
option.VisualMap.Left = "center"
|
||||
option.VisualMap.Min = 10
|
||||
option.VisualMap.Max = 100
|
||||
option.VisualMap.Min = 0
|
||||
option.VisualMap.Max = 10
|
||||
option.VisualMap.Show = false
|
||||
option.VisualMap.Dimension = 0
|
||||
option.VisualMap.InRange.Color = []string{"#42aaf5", "#00eaf2", "#035bff"}
|
||||
option.VisualMap.InRange.Color = []string{"#035bff", "#42aaf5", "#00eaf2"}
|
||||
option.Series = []struct {
|
||||
Label struct {
|
||||
Position string "json:\"position\""
|
||||
@@ -64,7 +74,7 @@ func (tkg *TabKelainanGlobalServices) GetBarChartConf(title string, data models.
|
||||
X string "json:\"x\""
|
||||
Y string "json:\"y\""
|
||||
}{
|
||||
X: "score",
|
||||
X: "amount",
|
||||
Y: "product",
|
||||
},
|
||||
},
|
||||
@@ -82,6 +92,29 @@ func (tkg *TabKelainanGlobalServices) GetBarChartConf(title string, data models.
|
||||
Type: "shadow",
|
||||
},
|
||||
}
|
||||
option.Graphic = struct {
|
||||
Type string "json:\"type\""
|
||||
Left string "json:\"left\""
|
||||
Top string "json:\"top\""
|
||||
Style struct {
|
||||
Text string "json:\"text\""
|
||||
FontSize string "json:\"fontSize\""
|
||||
FontWeight string "json:\"fontWeight\""
|
||||
} "json:\"style\""
|
||||
}{
|
||||
Type: "text",
|
||||
Left: "center",
|
||||
Top: "middle",
|
||||
Style: struct {
|
||||
Text string "json:\"text\""
|
||||
FontSize string "json:\"fontSize\""
|
||||
FontWeight string "json:\"fontWeight\""
|
||||
}{
|
||||
Text: isEmpty,
|
||||
FontSize: "15",
|
||||
FontWeight: "bold",
|
||||
},
|
||||
}
|
||||
|
||||
return option, nil
|
||||
}
|
||||
@@ -126,12 +159,12 @@ func (tkg *TabKelainanGlobalServices) GetKelainanGlobalMCU(mcuID string) (models
|
||||
}
|
||||
}
|
||||
|
||||
for _, d := range data {
|
||||
for i, d := range data {
|
||||
percentage := float64(d.Total) / float64(max) * 100
|
||||
roundedPercentage := math.Round(percentage*100) / 100
|
||||
percentStr := strconv.FormatFloat(roundedPercentage, 'f', -1, 64)
|
||||
chartData.Source = append(chartData.Source, []interface{}{
|
||||
d.Total, d.Total, d.Test, percentStr,
|
||||
i, d.Total, d.Test, percentStr,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -199,3 +232,118 @@ func (tkg *TabKelainanGlobalServices) GetKelainanFisik(mcuID string) (models.Bar
|
||||
|
||||
return option, nil
|
||||
}
|
||||
|
||||
func (tkg *TabKelainanGlobalServices) GetKelainanGlobalV2(mcuID string) (models.Barchart, error) {
|
||||
var option models.Barchart
|
||||
var data []models.KelainanGlobalModel
|
||||
|
||||
q := `
|
||||
SELECT * FROM (
|
||||
SELECT Mcu_KelainanID,
|
||||
Mcu_KelainanName as Test,
|
||||
count(distinct T_OrderHeaderID) as Total
|
||||
FROM t_kelainan_lab
|
||||
JOIN t_orderheader ON T_KelainanLabT_OrderHeaderID = T_OrderHeaderID
|
||||
JOIN mcu_summarylab ON T_KelainanLabMcu_SummaryLabID = Mcu_SummaryLabID
|
||||
join mcu_kelainan on Mcu_summaryLabMcu_KelainanID = Mcu_KelainanID
|
||||
join mcu_kelainangroup on Mcu_KelainanMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
JOIN nat_test ON Mcu_SummaryLabNat_TestID = Nat_TestID AND T_KelainanLabNat_TestID = Mcu_SummaryLabNat_TestID
|
||||
where T_KelainanLabIsActive = 'Y' and T_OrderHeaderMgm_McuID = ?
|
||||
group by Mcu_KelainanID
|
||||
UNION
|
||||
SELECT Mcu_KelainanID, Mcu_KelainanName as Test,
|
||||
count(distinct T_OrderHeaderID) as Total
|
||||
FROM t_kelainan_nonlab
|
||||
JOIN t_orderheader ON T_KelainanNonLabT_OrderHeaderID = T_OrderHeaderID
|
||||
JOIN mcu_summarynonlab ON T_KelainanNonLabMcu_SummaryNonlabID = Mcu_SummaryNonlabID
|
||||
join mcu_kelainan on Mcu_SummaryNonlabMcu_KelainanID = Mcu_KelainanID
|
||||
join mcu_kelainangroup on Mcu_KelainanMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
JOIN nat_test ON Mcu_SummaryNonlabNat_TestID = Nat_TestID AND
|
||||
T_KelainanNonLabNat_TestID = Mcu_SummaryNonlabNat_TestID
|
||||
where T_KelainanNonLabIsActive = 'Y' and T_OrderHeaderMgm_McuID = ?
|
||||
group by Mcu_KelainanID
|
||||
UNION
|
||||
SELECT Mcu_KelainanID, Mcu_KelainanName as Test,
|
||||
count(distinct T_OrderHeaderID) as Total
|
||||
FROM t_kelainan_fisik
|
||||
JOIN t_orderheader ON T_KelainanFiskT_OrderHeaderID = T_OrderHeaderID
|
||||
JOIN mcu_summaryfisik ON T_KelainanFiskMcu_SummaryFisikID = Mcu_SummaryFisikID AND
|
||||
Mcu_SummaryFisikID NOT IN (63,67,68,69,70,71,72,73)
|
||||
join mcu_kelainan on Mcu_SummaryFisikMcu_KelainanID = Mcu_KelainanID
|
||||
join mcu_kelainangroup on Mcu_KelainanMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
where T_KelainanFiskIsActive = 'Y' and T_OrderHeaderMgm_McuID = ? AND
|
||||
Mcu_KelainanClasification NOT IN ('who','kemenkes','JNC-VIII','ESC/ESH')
|
||||
group by Mcu_KelainanID
|
||||
) a
|
||||
|
||||
ORDER BY total DESC
|
||||
LIMIT 10
|
||||
`
|
||||
if err := dbx.Handlex.Select(&data, q, mcuID, mcuID, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get data kelainan global %v", err)
|
||||
}
|
||||
|
||||
var jumlahPeserta models.TotalPesertaModel
|
||||
|
||||
q = `
|
||||
SELECT
|
||||
COUNT(distinct(T_OrderHeaderID)) as peserta,
|
||||
COUNT( distinct(Mcu_PreregisterPatientsM_PatientID)) as total
|
||||
FROM mcu_preregister_patients
|
||||
LEFT JOIN t_orderheader ON Mcu_PreregisterPatientsT_OrderHeaderID = T_OrderHeaderID AND
|
||||
T_OrderHeaderIsActive = 'Y'
|
||||
WHERE
|
||||
Mcu_PreregisterPatientsMgm_McuID = ? AND
|
||||
Mcu_PreregisterPatientsIsActive = 'Y'
|
||||
`
|
||||
if err := dbx.Handlex.Get(&jumlahPeserta, q, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get jumlah peserta %v", err)
|
||||
}
|
||||
|
||||
title := "Kelainan Global (10 Terbesar)"
|
||||
chartData := models.BarDataset{
|
||||
Source: [][]interface{}{
|
||||
{"score", "amount", "product", "percentage"},
|
||||
},
|
||||
}
|
||||
|
||||
for i, d := range data {
|
||||
percentage := float64(d.Total) / float64(jumlahPeserta.Peserta) * 100
|
||||
roundedPercentage := math.Round(percentage*100) / 100
|
||||
percentStr := strconv.FormatFloat(roundedPercentage, 'f', -1, 64)
|
||||
newText := utils.SplitStrings(d.Test, 2)
|
||||
chartData.Source = append(chartData.Source, []interface{}{
|
||||
i, d.Total, newText, percentStr,
|
||||
})
|
||||
}
|
||||
|
||||
option, err := tkg.GetBarChartConf(title, chartData)
|
||||
if err != nil {
|
||||
return option, fmt.Errorf("error insert data to barchart %v", err)
|
||||
}
|
||||
|
||||
return option, nil
|
||||
}
|
||||
|
||||
func (tkg *TabKelainanGlobalServices) GetChartRenderGlobal(mcuID string) ([]models.McuTabModels, error) {
|
||||
var ret []models.McuTabModels
|
||||
|
||||
q := `
|
||||
SELECT
|
||||
Mcu_ImageGrafikGroupResult,
|
||||
Mcu_ImageGrafikGroupMenu,
|
||||
Mcu_ImageGrafikName,
|
||||
Mcu_ImageGrafikJsonRender
|
||||
FROM mgm_mcugrafik
|
||||
JOIN mcu_image_grafik ON Mcu_ImageGrafikID = Mgm_McuGrafikMcu_ImageGrafikID
|
||||
WHERE Mgm_McuGrafikMgm_McuID = ?
|
||||
AND Mcu_ImageGrafikGroupMenu = "GLOBAL"
|
||||
AND Mgm_McuGrafikIsActive = 'Y'
|
||||
ORDER BY Mcu_ImageGrafikID
|
||||
`
|
||||
if err := dbx.Handlex.Select(&ret, q, mcuID); err != nil {
|
||||
return ret, fmt.Errorf("error get data tab peserta: %v", err)
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import (
|
||||
"cpone/db"
|
||||
"cpone/models"
|
||||
dbx "cpone/package/database"
|
||||
"cpone/utils"
|
||||
"fmt"
|
||||
"math"
|
||||
"strconv"
|
||||
@@ -22,22 +23,30 @@ func NewTabKelainanLabServices(store db.AppStore) *TabKelainanLabServices {
|
||||
}
|
||||
|
||||
func (tkl *TabKelainanLabServices) ConfBarchart(title string, data models.BarDataset) (models.Barchart, error) {
|
||||
option := models.Barchart{}
|
||||
isEmpty := ""
|
||||
if len(data.Source) <= 1 {
|
||||
isEmpty = "Data tidak ditemukan"
|
||||
}
|
||||
|
||||
option := models.Barchart{}
|
||||
option.Title = struct {
|
||||
Text string "json:\"text\""
|
||||
}{title}
|
||||
Left string `json:"left"`
|
||||
}{
|
||||
Text: title,
|
||||
Left: "center",
|
||||
}
|
||||
option.Dataset = data
|
||||
option.Grid.ContainLabel = true
|
||||
option.XAxis.Name = "amount"
|
||||
option.XAxis.Name = "person"
|
||||
option.YAxis.Type = "category"
|
||||
option.VisualMap.Orient = "horizontal"
|
||||
option.VisualMap.Left = "center"
|
||||
option.VisualMap.Min = 1
|
||||
option.VisualMap.Max = 100
|
||||
option.VisualMap.Min = 0
|
||||
option.VisualMap.Max = 10
|
||||
option.VisualMap.Show = false
|
||||
option.VisualMap.Dimension = 0
|
||||
option.VisualMap.InRange.Color = []string{"#42aaf5", "#00eaf2", "#035bff"}
|
||||
option.VisualMap.InRange.Color = []string{"#035bff", "#42aaf5", "#00eaf2"}
|
||||
option.Series = []struct {
|
||||
Label struct {
|
||||
Position string "json:\"position\""
|
||||
@@ -65,7 +74,7 @@ func (tkl *TabKelainanLabServices) ConfBarchart(title string, data models.BarDat
|
||||
X string "json:\"x\""
|
||||
Y string "json:\"y\""
|
||||
}{
|
||||
X: "score",
|
||||
X: "amount",
|
||||
Y: "product",
|
||||
},
|
||||
},
|
||||
@@ -83,29 +92,61 @@ func (tkl *TabKelainanLabServices) ConfBarchart(title string, data models.BarDat
|
||||
Type: "shadow",
|
||||
},
|
||||
}
|
||||
option.Graphic = struct {
|
||||
Type string "json:\"type\""
|
||||
Left string "json:\"left\""
|
||||
Top string "json:\"top\""
|
||||
Style struct {
|
||||
Text string "json:\"text\""
|
||||
FontSize string "json:\"fontSize\""
|
||||
FontWeight string "json:\"fontWeight\""
|
||||
} "json:\"style\""
|
||||
}{
|
||||
Type: "text",
|
||||
Left: "center",
|
||||
Top: "middle",
|
||||
Style: struct {
|
||||
Text string "json:\"text\""
|
||||
FontSize string "json:\"fontSize\""
|
||||
FontWeight string "json:\"fontWeight\""
|
||||
}{
|
||||
Text: isEmpty,
|
||||
FontSize: "15",
|
||||
FontWeight: "bold",
|
||||
},
|
||||
}
|
||||
|
||||
return option, nil
|
||||
}
|
||||
|
||||
func (tkl *TabKelainanLabServices) ConfBarchartVertical(title string, data []models.KelainanLabModel) (models.BarchartV2, error) {
|
||||
|
||||
chartData := models.BarDataset{
|
||||
Source: [][]interface{}{
|
||||
{"score", "amount", "product"},
|
||||
},
|
||||
}
|
||||
|
||||
isEmpty := ""
|
||||
if len(data) == 0 {
|
||||
isEmpty = "Data tidak ditemukan"
|
||||
}
|
||||
|
||||
cnt := len(data)
|
||||
for idx, d := range data {
|
||||
newText := utils.SplitStrings(d.Mcu_KelainanName, 2)
|
||||
chartData.Source = append(chartData.Source, []interface{}{
|
||||
idx, d.Total, d.Mcu_KelainanName,
|
||||
idx, d.Total, newText,
|
||||
})
|
||||
}
|
||||
|
||||
option := models.BarchartV2{
|
||||
Title: struct {
|
||||
Text string "json:\"text\""
|
||||
}{title},
|
||||
Left string `json:"left"`
|
||||
}{
|
||||
Text: title,
|
||||
Left: "center",
|
||||
},
|
||||
Dataset: struct {
|
||||
Source [][]interface{} "json:\"source\""
|
||||
}{chartData.Source},
|
||||
@@ -167,7 +208,7 @@ func (tkl *TabKelainanLabServices) ConfBarchartVertical(title string, data []mod
|
||||
InRange: struct {
|
||||
Color []string "json:\"color\""
|
||||
}{
|
||||
Color: []string{"#42aaf5", "#00eaf2", "#035bff"},
|
||||
Color: []string{"#035bff", "#42aaf5", "#00eaf2"},
|
||||
},
|
||||
},
|
||||
Series: []struct {
|
||||
@@ -215,6 +256,29 @@ func (tkl *TabKelainanLabServices) ConfBarchartVertical(title string, data []mod
|
||||
Type: "shadow",
|
||||
},
|
||||
},
|
||||
Graphic: struct {
|
||||
Type string "json:\"type\""
|
||||
Left string "json:\"left\""
|
||||
Top string "json:\"top\""
|
||||
Style struct {
|
||||
Text string "json:\"text\""
|
||||
FontSize string "json:\"fontSize\""
|
||||
FontWeight string "json:\"fontWeight\""
|
||||
} "json:\"style\""
|
||||
}{
|
||||
Type: "text",
|
||||
Left: "center",
|
||||
Top: "middle",
|
||||
Style: struct {
|
||||
Text string "json:\"text\""
|
||||
FontSize string "json:\"fontSize\""
|
||||
FontWeight string "json:\"fontWeight\""
|
||||
}{
|
||||
Text: isEmpty,
|
||||
FontSize: "15",
|
||||
FontWeight: "bold",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
return option, nil
|
||||
@@ -226,46 +290,57 @@ func (tkl *TabKelainanLabServices) GetDataPresentaseKelainanLab(mcuID string) (m
|
||||
var data []models.KelainanLabModel
|
||||
|
||||
q := `
|
||||
SELECT
|
||||
Mcu_KelainanName,
|
||||
COUNT(Mgm_HeaderT_OrderHeaderID) AS total
|
||||
FROM mgm_header
|
||||
JOIN mgm_detail ON Mgm_DetailMgm_HeaderID = Mgm_HeaderID
|
||||
AND Mgm_DetailIsActive = 'Y'
|
||||
JOIN mcu_kelainan ON Mgm_DetailMcu_KelainanID = Mcu_KelainanID
|
||||
JOIN mcu_kelainangroup ON Mgm_DetailMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
WHERE Mgm_HeaderIsActive = 'Y' AND Mgm_HeaderMgm_McuID = ?
|
||||
AND Mgm_HeaderType = 'L'
|
||||
AND Mgm_HeaderIsNormal = 'N'
|
||||
GROUP BY Mcu_KelainanID ORDER BY COUNT(Mgm_HeaderT_OrderHeaderID) DESC
|
||||
SELECT Mcu_KelainanID,
|
||||
Mcu_KelainanName as Test,
|
||||
count(distinct T_OrderHeaderID) as total
|
||||
FROM t_kelainan_lab
|
||||
JOIN t_orderheader ON T_KelainanLabT_OrderHeaderID = T_OrderHeaderID
|
||||
JOIN mcu_summarylab ON T_KelainanLabMcu_SummaryLabID = Mcu_SummaryLabID
|
||||
join mcu_kelainan on Mcu_summaryLabMcu_KelainanID = Mcu_KelainanID
|
||||
join mcu_kelainangroup on Mcu_KelainanMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
JOIN nat_test ON Mcu_SummaryLabNat_TestID = Nat_TestID AND T_KelainanLabNat_TestID = Mcu_SummaryLabNat_TestID
|
||||
where T_KelainanLabIsActive = 'Y' and T_OrderHeaderMgm_McuID = ?
|
||||
group by Mcu_KelainanID
|
||||
ORDER BY total DESC
|
||||
LIMIT 10
|
||||
`
|
||||
|
||||
if err := dbx.Handlex.Select(&data, q, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get total presentase fisik %v", err)
|
||||
return option, fmt.Errorf("error get kelainan lab %v", err)
|
||||
}
|
||||
defer logger.Sync()
|
||||
logger.Info("resp data", zap.Any("data", data))
|
||||
|
||||
title := "Data Presentase Kelainan Lab"
|
||||
title := "Kelainan Lab (10 Terbesar)"
|
||||
chartData := models.BarDataset{
|
||||
Source: [][]interface{}{
|
||||
{"score", "amount", "product", "percentage"},
|
||||
},
|
||||
}
|
||||
|
||||
max := 1
|
||||
for _, d := range data {
|
||||
if d.Total >= max {
|
||||
max = d.Total
|
||||
}
|
||||
var jumlahPeserta models.TotalPesertaModel
|
||||
q = `
|
||||
SELECT
|
||||
COUNT(distinct(T_OrderHeaderID)) as peserta,
|
||||
COUNT( distinct(Mcu_PreregisterPatientsM_PatientID)) as total
|
||||
FROM mcu_preregister_patients
|
||||
LEFT JOIN t_orderheader ON Mcu_PreregisterPatientsT_OrderHeaderID = T_OrderHeaderID AND
|
||||
T_OrderHeaderIsActive = 'Y'
|
||||
WHERE
|
||||
Mcu_PreregisterPatientsMgm_McuID = ? AND
|
||||
Mcu_PreregisterPatientsIsActive = 'Y'
|
||||
`
|
||||
if err := dbx.Handlex.Get(&jumlahPeserta, q, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get jumlah peserta %v", err)
|
||||
}
|
||||
|
||||
for _, d := range data {
|
||||
percentage := float64(d.Total) / float64(max) * 100
|
||||
for i, d := range data {
|
||||
percentage := float64(d.Total) / float64(jumlahPeserta.Peserta) * 100
|
||||
roundedPercentage := math.Round(percentage*100) / 100
|
||||
percentStr := strconv.FormatFloat(roundedPercentage, 'f', -1, 64)
|
||||
newText := utils.SplitStrings(d.Mcu_KelainanName, 2)
|
||||
chartData.Source = append(chartData.Source, []interface{}{
|
||||
d.Total, d.Total, d.Mcu_KelainanName, percentStr,
|
||||
i, d.Total, newText, percentStr,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -283,18 +358,18 @@ func (tkl *TabKelainanLabServices) GetHematologi(mcuID string) (models.BarchartV
|
||||
var data []models.KelainanLabModel
|
||||
|
||||
q := `
|
||||
SELECT Mcu_KelainanName,
|
||||
COUNT(Mgm_HeaderT_OrderHeaderID) AS total
|
||||
FROM mgm_header
|
||||
JOIN mgm_detail ON Mgm_DetailMgm_HeaderID = Mgm_HeaderID AND Mgm_DetailIsActive = 'Y'
|
||||
JOIN mcu_kelainan ON Mgm_DetailMcu_KelainanID = Mcu_KelainanID
|
||||
JOIN mcu_kelainangroup ON Mgm_DetailMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
WHERE Mgm_HeaderIsActive = 'Y' AND Mgm_HeaderMgm_McuID = ?
|
||||
AND Mgm_HeaderType = 'L'
|
||||
AND Mgm_HeaderIsNormal = 'N'
|
||||
AND Mcu_KelainanGroupID = 14
|
||||
GROUP BY Mcu_KelainanID
|
||||
ORDER BY COUNT(Mgm_HeaderT_OrderHeaderID) DESC
|
||||
SELECT Mcu_KelainanID,
|
||||
Mcu_KelainanName as Test,
|
||||
count(distinct T_OrderHeaderID) as total
|
||||
FROM t_kelainan_lab
|
||||
JOIN t_orderheader ON T_KelainanLabT_OrderHeaderID = T_OrderHeaderID
|
||||
JOIN mcu_summarylab ON T_KelainanLabMcu_SummaryLabID = Mcu_SummaryLabID
|
||||
join mcu_kelainan on Mcu_summaryLabMcu_KelainanID = Mcu_KelainanID
|
||||
join mcu_kelainangroup on Mcu_KelainanMcu_KelainanGroupID = Mcu_KelainanGroupID AND Mcu_KelainanGroupID = 14
|
||||
JOIN nat_test ON Mcu_SummaryLabNat_TestID = Nat_TestID AND T_KelainanLabNat_TestID = Mcu_SummaryLabNat_TestID
|
||||
where T_KelainanLabIsActive = 'Y' and T_OrderHeaderMgm_McuID = ?
|
||||
group by Mcu_KelainanID
|
||||
ORDER BY total DESC
|
||||
`
|
||||
if err := dbx.Handlex.Select(&data, q, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get hematologi %v", err)
|
||||
@@ -317,20 +392,20 @@ func (tkl *TabKelainanLabServices) GetUrinalisa(mcuID string) (models.BarchartV2
|
||||
var data []models.KelainanLabModel
|
||||
|
||||
q := `
|
||||
SELECT
|
||||
Mcu_KelainanName,
|
||||
COUNT(Mgm_HeaderT_OrderHeaderID) AS total
|
||||
FROM mgm_header
|
||||
JOIN mgm_detail ON Mgm_DetailMgm_HeaderID = Mgm_HeaderID
|
||||
AND Mgm_DetailIsActive = 'Y'
|
||||
JOIN mcu_kelainan ON Mgm_DetailMcu_KelainanID = Mcu_KelainanID
|
||||
JOIN mcu_kelainangroup ON Mgm_DetailMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
WHERE Mgm_HeaderIsActive = 'Y' AND Mgm_HeaderMgm_McuID = ?
|
||||
AND Mgm_HeaderType = 'L'
|
||||
AND Mgm_HeaderIsNormal = 'N'
|
||||
AND Mcu_KelainanGroupID = 15
|
||||
GROUP BY Mcu_KelainanID
|
||||
ORDER BY COUNT(Mgm_HeaderT_OrderHeaderID) DESC
|
||||
SELECT Mcu_KelainanID,
|
||||
Mcu_KelainanName as Test,
|
||||
count(distinct T_OrderHeaderID) as total
|
||||
FROM t_kelainan_lab
|
||||
JOIN t_orderheader ON T_KelainanLabT_OrderHeaderID = T_OrderHeaderID
|
||||
JOIN mcu_summarylab ON T_KelainanLabMcu_SummaryLabID = Mcu_SummaryLabID
|
||||
join mcu_kelainan on Mcu_summaryLabMcu_KelainanID = Mcu_KelainanID
|
||||
join mcu_kelainangroup on Mcu_KelainanMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
AND Mcu_KelainanGroupID = 15
|
||||
JOIN nat_test ON Mcu_SummaryLabNat_TestID = Nat_TestID
|
||||
AND T_KelainanLabNat_TestID = Mcu_SummaryLabNat_TestID
|
||||
where T_KelainanLabIsActive = 'Y' and T_OrderHeaderMgm_McuID = ?
|
||||
group by Mcu_KelainanID
|
||||
ORDER BY total DESC
|
||||
`
|
||||
if err := dbx.Handlex.Select(&data, q, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get urinalisa %v", err)
|
||||
@@ -353,19 +428,18 @@ func (tkl *TabKelainanLabServices) GetGangguanFungsiHati(mcuID string) (models.B
|
||||
var data []models.KelainanLabModel
|
||||
|
||||
q := `
|
||||
SELECT Mcu_KelainanName,
|
||||
COUNT(Mgm_HeaderT_OrderHeaderID) AS total
|
||||
FROM mgm_header
|
||||
JOIN mgm_detail ON Mgm_DetailMgm_HeaderID = Mgm_HeaderID
|
||||
AND Mgm_DetailIsActive = 'Y'
|
||||
JOIN mcu_kelainan ON Mgm_DetailMcu_KelainanID = Mcu_KelainanID
|
||||
JOIN mcu_kelainangroup ON Mgm_DetailMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
WHERE Mgm_HeaderIsActive = 'Y' AND Mgm_HeaderMgm_McuID = ?
|
||||
AND Mgm_HeaderType = 'L'
|
||||
AND Mgm_HeaderIsNormal = 'N'
|
||||
AND Mcu_KelainanGroupID = 16
|
||||
GROUP BY Mcu_KelainanID
|
||||
ORDER BY COUNT(Mgm_HeaderT_OrderHeaderID) DESC
|
||||
SELECT Mcu_KelainanID,
|
||||
Mcu_KelainanName as Test,
|
||||
count(distinct T_OrderHeaderID) as total
|
||||
FROM t_kelainan_lab
|
||||
JOIN t_orderheader ON T_KelainanLabT_OrderHeaderID = T_OrderHeaderID
|
||||
JOIN mcu_summarylab ON T_KelainanLabMcu_SummaryLabID = Mcu_SummaryLabID
|
||||
join mcu_kelainan on Mcu_summaryLabMcu_KelainanID = Mcu_KelainanID
|
||||
join mcu_kelainangroup on Mcu_KelainanMcu_KelainanGroupID = Mcu_KelainanGroupID AND Mcu_KelainanGroupID = 16
|
||||
JOIN nat_test ON Mcu_SummaryLabNat_TestID = Nat_TestID AND T_KelainanLabNat_TestID = Mcu_SummaryLabNat_TestID
|
||||
where T_KelainanLabIsActive = 'Y' and T_OrderHeaderMgm_McuID = ?
|
||||
group by Mcu_KelainanID
|
||||
ORDER BY total DESC
|
||||
`
|
||||
if err := dbx.Handlex.Select(&data, q, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get gangguan fungsi hati %v", err)
|
||||
@@ -388,17 +462,19 @@ func (tkl *TabKelainanLabServices) GetGangguanMetabolismeLemak(mcuID string) (mo
|
||||
var data []models.KelainanLabModel
|
||||
|
||||
q := `
|
||||
SELECT
|
||||
IFNULL(Mcu_KelainanName,'Normal') AS Mcu_KelainanName,
|
||||
COUNT(Mgm_HeaderT_OrderHeaderID) AS total
|
||||
FROM mgm_header
|
||||
LEFT JOIN mgm_detail ON Mgm_DetailMgm_HeaderID = Mgm_HeaderID AND Mgm_DetailIsActive = 'Y'
|
||||
LEFT JOIN mcu_kelainan ON Mgm_DetailMcu_KelainanID = Mcu_KelainanID
|
||||
LEFT JOIN mcu_kelainangroup ON Mgm_DetailMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
WHERE Mgm_HeaderIsActive = 'Y' AND Mgm_HeaderNat_TestCode IN ( '10520300','10520400')
|
||||
AND Mgm_HeaderMgm_McuID = ?
|
||||
GROUP BY Mcu_KelainanID
|
||||
ORDER BY total DESC
|
||||
SELECT Mcu_KelainanID,
|
||||
Mcu_KelainanName as Test,
|
||||
count(distinct T_OrderHeaderID) as total
|
||||
FROM t_kelainan_lab
|
||||
JOIN t_orderheader ON T_KelainanLabT_OrderHeaderID = T_OrderHeaderID
|
||||
JOIN mcu_summarylab ON T_KelainanLabMcu_SummaryLabID = Mcu_SummaryLabID
|
||||
join mcu_kelainan on Mcu_summaryLabMcu_KelainanID = Mcu_KelainanID
|
||||
join mcu_kelainangroup on Mcu_KelainanMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
JOIN nat_test ON Mcu_SummaryLabNat_TestID = Nat_TestID AND
|
||||
T_KelainanLabNat_TestID = Mcu_SummaryLabNat_TestID AND Nat_TestCode IN ( '10520300','10520400')
|
||||
where T_KelainanLabIsActive = 'Y' and T_OrderHeaderMgm_McuID = ?
|
||||
group by Mcu_KelainanID
|
||||
ORDER BY total DESC
|
||||
`
|
||||
if err := dbx.Handlex.Select(&data, q, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get gangguan metabolisme lemak %v", err)
|
||||
@@ -421,16 +497,19 @@ func (tkl *TabKelainanLabServices) GetPeningkatanGlukosa(mcuID string) (models.B
|
||||
var data []models.KelainanLabModel
|
||||
|
||||
q := `
|
||||
SELECT IFNULL(Mcu_KelainanName,'Normal') AS Mcu_KelainanName,
|
||||
COUNT(Mgm_HeaderT_OrderHeaderID) AS total
|
||||
FROM mgm_header
|
||||
LEFT JOIN mgm_detail ON Mgm_DetailMgm_HeaderID = Mgm_HeaderID AND Mgm_DetailIsActive = 'Y'
|
||||
LEFT JOIN mcu_kelainan ON Mgm_DetailMcu_KelainanID = Mcu_KelainanID
|
||||
LEFT JOIN mcu_kelainangroup ON Mgm_DetailMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
WHERE Mgm_HeaderIsActive = 'Y' AND Mgm_HeaderNat_TestCode = 10540200
|
||||
AND Mgm_HeaderMgm_McuID = ?
|
||||
GROUP BY Mcu_KelainanID
|
||||
ORDER BY total DESC
|
||||
SELECT Mcu_KelainanID,
|
||||
Mcu_KelainanName as Test,
|
||||
count(distinct T_OrderHeaderID) as total
|
||||
FROM t_kelainan_lab
|
||||
JOIN t_orderheader ON T_KelainanLabT_OrderHeaderID = T_OrderHeaderID
|
||||
JOIN mcu_summarylab ON T_KelainanLabMcu_SummaryLabID = Mcu_SummaryLabID
|
||||
join mcu_kelainan on Mcu_summaryLabMcu_KelainanID = Mcu_KelainanID
|
||||
join mcu_kelainangroup on Mcu_KelainanMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
JOIN nat_test ON Mcu_SummaryLabNat_TestID = Nat_TestID AND
|
||||
T_KelainanLabNat_TestID = Mcu_SummaryLabNat_TestID AND Nat_TestCode IN ( '10540200')
|
||||
where T_KelainanLabIsActive = 'Y' and T_OrderHeaderMgm_McuID = ?
|
||||
group by Mcu_KelainanID
|
||||
ORDER BY total DESC
|
||||
`
|
||||
if err := dbx.Handlex.Select(&data, q, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get peningkatan glukosa %v", err)
|
||||
@@ -446,3 +525,26 @@ func (tkl *TabKelainanLabServices) GetPeningkatanGlukosa(mcuID string) (models.B
|
||||
|
||||
return option, nil
|
||||
}
|
||||
|
||||
func (tkl *TabKelainanLabServices) GetChartRenderLab(mcuID string) ([]models.McuTabModels, error) {
|
||||
var ret []models.McuTabModels
|
||||
|
||||
q := `
|
||||
SELECT
|
||||
Mcu_ImageGrafikGroupResult,
|
||||
Mcu_ImageGrafikGroupMenu,
|
||||
Mcu_ImageGrafikName,
|
||||
Mcu_ImageGrafikJsonRender
|
||||
FROM mgm_mcugrafik
|
||||
JOIN mcu_image_grafik ON Mcu_ImageGrafikID = Mgm_McuGrafikMcu_ImageGrafikID
|
||||
WHERE Mgm_McuGrafikMgm_McuID = ?
|
||||
AND Mcu_ImageGrafikGroupResult = "LAB"
|
||||
AND Mgm_McuGrafikIsActive = 'Y'
|
||||
ORDER BY Mcu_ImageGrafikID
|
||||
`
|
||||
if err := dbx.Handlex.Select(&ret, q, mcuID); err != nil {
|
||||
return ret, fmt.Errorf("error get data tab peserta: %v", err)
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import (
|
||||
"cpone/db"
|
||||
"cpone/models"
|
||||
dbx "cpone/package/database"
|
||||
"cpone/utils"
|
||||
"fmt"
|
||||
"math"
|
||||
"strconv"
|
||||
@@ -22,21 +23,30 @@ func NewTabKelainanNonLabServices(store db.AppStore) *TabKelainanNonLabServices
|
||||
}
|
||||
|
||||
func (tknl *TabKelainanNonLabServices) GetBarChartConf(title string, data models.BarDataset) (models.Barchart, error) {
|
||||
isEmpty := ""
|
||||
if len(data.Source) <= 1 {
|
||||
isEmpty = "Data tidak ditemukan"
|
||||
}
|
||||
|
||||
option := models.Barchart{}
|
||||
option.Title = struct {
|
||||
Text string "json:\"text\""
|
||||
}{title}
|
||||
Left string `json:"left"`
|
||||
}{
|
||||
Text: title,
|
||||
Left: "center",
|
||||
}
|
||||
option.Dataset = data
|
||||
option.Grid.ContainLabel = true
|
||||
option.XAxis.Name = "amount"
|
||||
option.XAxis.Name = "person"
|
||||
option.YAxis.Type = "category"
|
||||
option.VisualMap.Orient = "horizontal"
|
||||
option.VisualMap.Left = "center"
|
||||
option.VisualMap.Min = 10
|
||||
option.VisualMap.Max = 100
|
||||
option.VisualMap.Min = 0
|
||||
option.VisualMap.Max = 4
|
||||
option.VisualMap.Show = false
|
||||
option.VisualMap.Dimension = 0
|
||||
option.VisualMap.InRange.Color = []string{"#42aaf5", "#00eaf2", "#035bff"}
|
||||
option.VisualMap.InRange.Color = []string{"#035bff", "#42aaf5", "#00eaf2"}
|
||||
option.Series = []struct {
|
||||
Label struct {
|
||||
Position string "json:\"position\""
|
||||
@@ -82,6 +92,29 @@ func (tknl *TabKelainanNonLabServices) GetBarChartConf(title string, data models
|
||||
Type: "shadow",
|
||||
},
|
||||
}
|
||||
option.Graphic = struct {
|
||||
Type string "json:\"type\""
|
||||
Left string "json:\"left\""
|
||||
Top string "json:\"top\""
|
||||
Style struct {
|
||||
Text string "json:\"text\""
|
||||
FontSize string "json:\"fontSize\""
|
||||
FontWeight string "json:\"fontWeight\""
|
||||
} "json:\"style\""
|
||||
}{
|
||||
Type: "text",
|
||||
Left: "center",
|
||||
Top: "middle",
|
||||
Style: struct {
|
||||
Text string "json:\"text\""
|
||||
FontSize string "json:\"fontSize\""
|
||||
FontWeight string "json:\"fontWeight\""
|
||||
}{
|
||||
Text: isEmpty,
|
||||
FontSize: "15",
|
||||
FontWeight: "bold",
|
||||
},
|
||||
}
|
||||
|
||||
return option, nil
|
||||
}
|
||||
@@ -93,17 +126,34 @@ func (tknl *TabKelainanNonLabServices) ConfBarchartVertical(title string, data [
|
||||
},
|
||||
}
|
||||
|
||||
isEmpty := ""
|
||||
if len(data) == 0 {
|
||||
isEmpty = "Data tidak ditemukan"
|
||||
}
|
||||
|
||||
cnt := len(data)
|
||||
for idx, d := range data {
|
||||
// if len(d.Test) > 30 {
|
||||
// var newText = d.Test[:30] + "- \n" + d.Test[30:]
|
||||
// chartData.Source = append(chartData.Source, []interface{}{
|
||||
// idx, d.Total, newText,
|
||||
// })
|
||||
// continue
|
||||
// }
|
||||
newText := utils.SplitStrings(d.Test, 2)
|
||||
chartData.Source = append(chartData.Source, []interface{}{
|
||||
idx, d.Total, d.Kelainan,
|
||||
idx, d.Total, newText,
|
||||
})
|
||||
}
|
||||
|
||||
option := models.BarchartV2{
|
||||
Title: struct {
|
||||
Text string "json:\"text\""
|
||||
}{title},
|
||||
Left string `json:"left"`
|
||||
}{
|
||||
Text: title,
|
||||
Left: "center",
|
||||
},
|
||||
Dataset: struct {
|
||||
Source [][]interface{} "json:\"source\""
|
||||
}{chartData.Source},
|
||||
@@ -165,7 +215,7 @@ func (tknl *TabKelainanNonLabServices) ConfBarchartVertical(title string, data [
|
||||
InRange: struct {
|
||||
Color []string "json:\"color\""
|
||||
}{
|
||||
Color: []string{"#42aaf5", "#00eaf2", "#035bff"},
|
||||
Color: []string{"#035bff", "#42aaf5", "#00eaf2"},
|
||||
},
|
||||
},
|
||||
Series: []struct {
|
||||
@@ -213,6 +263,29 @@ func (tknl *TabKelainanNonLabServices) ConfBarchartVertical(title string, data [
|
||||
Type: "shadow",
|
||||
},
|
||||
},
|
||||
Graphic: struct {
|
||||
Type string "json:\"type\""
|
||||
Left string "json:\"left\""
|
||||
Top string "json:\"top\""
|
||||
Style struct {
|
||||
Text string "json:\"text\""
|
||||
FontSize string "json:\"fontSize\""
|
||||
FontWeight string "json:\"fontWeight\""
|
||||
} "json:\"style\""
|
||||
}{
|
||||
Type: "text",
|
||||
Left: "center",
|
||||
Top: "middle",
|
||||
Style: struct {
|
||||
Text string "json:\"text\""
|
||||
FontSize string "json:\"fontSize\""
|
||||
FontWeight string "json:\"fontWeight\""
|
||||
}{
|
||||
Text: isEmpty,
|
||||
FontSize: "15",
|
||||
FontWeight: "bold",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
return option, nil
|
||||
@@ -224,45 +297,57 @@ func (tknl *TabKelainanNonLabServices) GetDataKelNonLab(mcuID string) (models.Ba
|
||||
var data []models.KelNonLabModel
|
||||
|
||||
q := `
|
||||
SELECT concat(Nat_TestName,"/",Mcu_KelainanName) AS kelainan,
|
||||
COUNT(Mgm_HeaderT_OrderHeaderID) AS total
|
||||
FROM mgm_header
|
||||
LEFT JOIN mgm_detail ON Mgm_DetailMgm_HeaderID = Mgm_HeaderID AND Mgm_DetailIsActive = 'Y'
|
||||
LEFT JOIN mcu_kelainan ON Mgm_DetailMcu_KelainanID = Mcu_KelainanID
|
||||
LEFT JOIN mcu_kelainangroup ON Mgm_DetailMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
LEFT JOIN nat_test ON Nat_TestCode = Mgm_HeaderNat_TestCode
|
||||
WHERE Mgm_HeaderIsActive = 'Y' AND Mgm_HeaderMgm_McuID = ?
|
||||
AND Mgm_HeaderType = 'NL'
|
||||
AND Mgm_HeaderIsNormal = 'N'
|
||||
GROUP BY Mcu_KelainanID
|
||||
ORDER BY COUNT(Mgm_HeaderT_OrderHeaderID) DESC
|
||||
SELECT Mcu_KelainanID, Mcu_KelainanName as Test,
|
||||
count(distinct T_OrderHeaderID) as total
|
||||
FROM t_kelainan_nonlab
|
||||
JOIN t_orderheader ON T_KelainanNonLabT_OrderHeaderID = T_OrderHeaderID
|
||||
JOIN mcu_summarynonlab ON T_KelainanNonLabMcu_SummaryNonlabID = Mcu_SummaryNonlabID
|
||||
join mcu_kelainan on Mcu_SummaryNonlabMcu_KelainanID = Mcu_KelainanID
|
||||
join mcu_kelainangroup on Mcu_KelainanMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
JOIN nat_test ON Mcu_SummaryNonlabNat_TestID = Nat_TestID AND
|
||||
T_KelainanNonLabNat_TestID = Mcu_SummaryNonlabNat_TestID
|
||||
where T_KelainanNonLabIsActive = 'Y' and T_OrderHeaderMgm_McuID = ?
|
||||
group by Mcu_KelainanID
|
||||
ORDER BY total DESC
|
||||
LIMIT 10
|
||||
`
|
||||
|
||||
if err := dbx.Handlex.Select(&data, q, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get data kelainan global mcu %v", err)
|
||||
}
|
||||
defer logger.Sync()
|
||||
logger.Info("resp data", zap.Any("data", data))
|
||||
|
||||
title := "Data Presentase Kelainan Non Lab"
|
||||
title := "Kelainan Non Lab (10 Terbesar)"
|
||||
chartData := models.BarDataset{
|
||||
Source: [][]interface{}{
|
||||
{"score", "amount", "product", "percentage"},
|
||||
},
|
||||
}
|
||||
|
||||
max := 1
|
||||
for _, d := range data {
|
||||
if d.Total >= max {
|
||||
max = d.Total
|
||||
}
|
||||
var jumlahPeserta models.TotalPesertaModel
|
||||
q = `
|
||||
SELECT
|
||||
COUNT(distinct(T_OrderHeaderID)) as peserta,
|
||||
COUNT( distinct(Mcu_PreregisterPatientsM_PatientID)) as total
|
||||
FROM mcu_preregister_patients
|
||||
LEFT JOIN t_orderheader ON Mcu_PreregisterPatientsT_OrderHeaderID = T_OrderHeaderID AND
|
||||
T_OrderHeaderIsActive = 'Y'
|
||||
WHERE
|
||||
Mcu_PreregisterPatientsMgm_McuID = ? AND
|
||||
Mcu_PreregisterPatientsIsActive = 'Y'
|
||||
`
|
||||
if err := dbx.Handlex.Get(&jumlahPeserta, q, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get jumlah peserta %v", err)
|
||||
}
|
||||
|
||||
for _, d := range data {
|
||||
percentage := float64(d.Total) / float64(max) * 100
|
||||
for i, d := range data {
|
||||
percentage := float64(d.Total) / float64(jumlahPeserta.Peserta) * 100
|
||||
roundedPercentage := math.Round(percentage*100) / 100
|
||||
percentStr := strconv.FormatFloat(roundedPercentage, 'f', -1, 64)
|
||||
newText := utils.SplitStrings(d.Test, 2)
|
||||
chartData.Source = append(chartData.Source, []interface{}{
|
||||
d.Total, d.Total, d.Kelainan, percentStr,
|
||||
i, d.Total, newText, percentStr,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -280,21 +365,23 @@ func (tknl *TabKelainanNonLabServices) GetThoraxPA(mcuID string) (models.Barchar
|
||||
var data []models.KelNonLabModel
|
||||
|
||||
q := `
|
||||
SELECT
|
||||
IFNULL(Mcu_KelainanName,'Normal') AS kelainan,
|
||||
COUNT(Mgm_HeaderT_OrderHeaderID) AS total
|
||||
FROM mgm_header
|
||||
LEFT JOIN mgm_detail ON Mgm_DetailMgm_HeaderID = Mgm_HeaderID AND Mgm_DetailIsActive = 'Y'
|
||||
LEFT JOIN mcu_kelainan ON Mgm_DetailMcu_KelainanID = Mcu_KelainanID
|
||||
LEFT JOIN mcu_kelainangroup ON Mgm_DetailMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
WHERE Mgm_HeaderIsActive = 'Y' AND Mgm_HeaderNat_TestCode = 30150100
|
||||
AND Mgm_HeaderIsNormal = 'N' AND Mgm_HeaderMgm_McuID = ?
|
||||
GROUP BY Mcu_KelainanID
|
||||
ORDER BY total DESC
|
||||
SELECT Mcu_KelainanID, Mcu_KelainanName as Test,
|
||||
count(distinct T_OrderHeaderID) as total
|
||||
FROM t_kelainan_nonlab
|
||||
JOIN t_orderheader ON T_KelainanNonLabT_OrderHeaderID = T_OrderHeaderID
|
||||
JOIN mcu_summarynonlab ON T_KelainanNonLabMcu_SummaryNonlabID = Mcu_SummaryNonlabID
|
||||
join mcu_kelainan on Mcu_SummaryNonlabMcu_KelainanID = Mcu_KelainanID
|
||||
join mcu_kelainangroup on Mcu_KelainanMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
JOIN nat_test ON Mcu_SummaryNonlabNat_TestID = Nat_TestID AND
|
||||
T_KelainanNonLabNat_TestID = Mcu_SummaryNonlabNat_TestID AND Nat_TestID = 5798
|
||||
where T_KelainanNonLabIsActive = 'Y' and T_OrderHeaderMgm_McuID = ?
|
||||
group by Mcu_KelainanID
|
||||
ORDER BY total DESC
|
||||
LIMIT 10
|
||||
`
|
||||
|
||||
if err := dbx.Handlex.Select(&data, q, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get data kelainan global mcu %v", err)
|
||||
return option, fmt.Errorf("error get data thorax pa %v", err)
|
||||
}
|
||||
defer logger.Sync()
|
||||
logger.Info("resp data", zap.Any("data", data))
|
||||
@@ -307,3 +394,123 @@ func (tknl *TabKelainanNonLabServices) GetThoraxPA(mcuID string) (models.Barchar
|
||||
|
||||
return option, nil
|
||||
}
|
||||
|
||||
func (tknl *TabKelainanNonLabServices) GetGangguanJantung(mcuID string) (models.BarchartV2, error) {
|
||||
var option models.BarchartV2
|
||||
var data []models.KelNonLabModel
|
||||
|
||||
q := `
|
||||
SELECT Mcu_KelainanID, Mcu_KelainanName as Test,
|
||||
count(distinct T_OrderHeaderID) as total
|
||||
FROM t_kelainan_nonlab
|
||||
JOIN t_orderheader ON T_KelainanNonLabT_OrderHeaderID = T_OrderHeaderID
|
||||
JOIN mcu_summarynonlab ON T_KelainanNonLabMcu_SummaryNonlabID = Mcu_SummaryNonlabID
|
||||
join mcu_kelainan on Mcu_SummaryNonlabMcu_KelainanID = Mcu_KelainanID
|
||||
join mcu_kelainangroup on Mcu_KelainanMcu_KelainanGroupID = Mcu_KelainanGroupID AND
|
||||
Mcu_KelainanGroupID = 10
|
||||
JOIN nat_test ON Mcu_SummaryNonlabNat_TestID = Nat_TestID AND
|
||||
T_KelainanNonLabNat_TestID = Mcu_SummaryNonlabNat_TestID
|
||||
where T_KelainanNonLabIsActive = 'Y' and T_OrderHeaderMgm_McuID = ?
|
||||
group by Mcu_KelainanID
|
||||
ORDER BY total DESC
|
||||
LIMIT 10
|
||||
`
|
||||
if err := dbx.Handlex.Select(&data, q, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get data gangguan jantung %v", err)
|
||||
}
|
||||
|
||||
title := "Gangguan Jantung"
|
||||
option, err := tknl.ConfBarchartVertical(title, data)
|
||||
if err != nil {
|
||||
return option, fmt.Errorf("error insert data into chart %v", err)
|
||||
}
|
||||
|
||||
return option, nil
|
||||
}
|
||||
|
||||
func (tknl *TabKelainanNonLabServices) GetAutospirometri(mcuID string) (models.BarchartV2, error) {
|
||||
var option models.BarchartV2
|
||||
var data []models.KelNonLabModel
|
||||
|
||||
q := `
|
||||
SELECT Mcu_KelainanID, Mcu_KelainanName as Test,
|
||||
count(distinct T_OrderHeaderID) as total
|
||||
FROM t_kelainan_nonlab
|
||||
JOIN t_orderheader ON T_KelainanNonLabT_OrderHeaderID = T_OrderHeaderID
|
||||
JOIN mcu_summarynonlab ON T_KelainanNonLabMcu_SummaryNonlabID = Mcu_SummaryNonlabID
|
||||
join mcu_kelainan on Mcu_SummaryNonlabMcu_KelainanID = Mcu_KelainanID
|
||||
join mcu_kelainangroup on Mcu_KelainanMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
JOIN nat_test ON Mcu_SummaryNonlabNat_TestID = Nat_TestID AND
|
||||
T_KelainanNonLabNat_TestID = Mcu_SummaryNonlabNat_TestID AND Nat_TestID = 5321
|
||||
where T_KelainanNonLabIsActive = 'Y' and T_OrderHeaderMgm_McuID = ?
|
||||
group by Mcu_KelainanID
|
||||
ORDER BY total DESC
|
||||
LIMIT 10
|
||||
`
|
||||
if err := dbx.Handlex.Select(&data, q, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get data autspirometri %v", err)
|
||||
}
|
||||
|
||||
title := "Spirometri"
|
||||
option, err := tknl.ConfBarchartVertical(title, data)
|
||||
if err != nil {
|
||||
return option, fmt.Errorf("error insert data into chart %v", err)
|
||||
}
|
||||
|
||||
return option, nil
|
||||
}
|
||||
|
||||
func (tknl *TabKelainanNonLabServices) GetPendengaran(mcuID string) (models.BarchartV2, error) {
|
||||
var option models.BarchartV2
|
||||
var data []models.KelNonLabModel
|
||||
|
||||
q := `
|
||||
SELECT Mcu_KelainanID, Mcu_KelainanName as Test,
|
||||
count(distinct T_OrderHeaderID) as total
|
||||
FROM t_kelainan_nonlab
|
||||
JOIN t_orderheader ON T_KelainanNonLabT_OrderHeaderID = T_OrderHeaderID
|
||||
JOIN mcu_summarynonlab ON T_KelainanNonLabMcu_SummaryNonlabID = Mcu_SummaryNonlabID
|
||||
join mcu_kelainan on Mcu_SummaryNonlabMcu_KelainanID = Mcu_KelainanID
|
||||
join mcu_kelainangroup on Mcu_KelainanMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
JOIN nat_test ON Mcu_SummaryNonlabNat_TestID = Nat_TestID AND
|
||||
T_KelainanNonLabNat_TestID = Mcu_SummaryNonlabNat_TestID AND Nat_TestID = 5308
|
||||
where T_KelainanNonLabIsActive = 'Y' and T_OrderHeaderMgm_McuID = ?
|
||||
group by Mcu_KelainanID
|
||||
ORDER BY total DESC
|
||||
LIMIT 10
|
||||
`
|
||||
if err := dbx.Handlex.Select(&data, q, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get data gangguan pendengaran %v", err)
|
||||
}
|
||||
|
||||
title := "Gangguan Pendengaran"
|
||||
option, err := tknl.ConfBarchartVertical(title, data)
|
||||
if err != nil {
|
||||
return option, fmt.Errorf("error insert data into chart %v", err)
|
||||
}
|
||||
|
||||
return option, nil
|
||||
}
|
||||
|
||||
func (tknl *TabKelainanNonLabServices) GetChartRenderNonLab(mcuID string) ([]models.McuTabModels, error) {
|
||||
var ret []models.McuTabModels
|
||||
|
||||
q := `
|
||||
SELECT
|
||||
Mcu_ImageGrafikGroupResult,
|
||||
Mcu_ImageGrafikGroupMenu,
|
||||
Mcu_ImageGrafikName,
|
||||
Mcu_ImageGrafikJsonRender
|
||||
FROM mgm_mcugrafik
|
||||
JOIN mcu_image_grafik ON Mcu_ImageGrafikID = Mgm_McuGrafikMcu_ImageGrafikID
|
||||
WHERE Mgm_McuGrafikMgm_McuID = ?
|
||||
AND Mcu_ImageGrafikGroupResult = "NONLAB"
|
||||
AND Mgm_McuGrafikIsActive = 'Y'
|
||||
ORDER BY Mcu_ImageGrafikID
|
||||
`
|
||||
if err := dbx.Handlex.Select(&ret, q, mcuID); err != nil {
|
||||
return ret, fmt.Errorf("error get data tab peserta: %v", err)
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
@@ -101,14 +101,16 @@ func (tkp *TabKepersertaanServices) GetTotalKepesertaanMCU(mcuID string) (models
|
||||
|
||||
q := `
|
||||
SELECT
|
||||
COUNT(mo.Mcu_OrderID) AS peserta,
|
||||
mm.Mgm_McuTotalParticipant
|
||||
FROM mgm_mcu mm
|
||||
LEFT JOIN t_orderheader toh ON toh.T_OrderHeaderMgm_McuID = mm.Mgm_McuID
|
||||
AND T_OrderHeaderIsActive = 'Y'
|
||||
LEFT JOIN mcu_order mo ON mo.Mcu_OrderT_OrderHeaderID = toh.T_OrderHeaderID
|
||||
WHERE mm.Mgm_McuID = ? AND mm.Mgm_McuIsActive = 'Y'
|
||||
COUNT(distinct(T_OrderHeaderID)) as peserta,
|
||||
COUNT( distinct(Mcu_PreregisterPatientsM_PatientID)) as total
|
||||
FROM mcu_preregister_patients
|
||||
LEFT JOIN t_orderheader ON Mcu_PreregisterPatientsT_OrderHeaderID = T_OrderHeaderID AND
|
||||
T_OrderHeaderIsActive = 'Y'
|
||||
WHERE
|
||||
Mcu_PreregisterPatientsMgm_McuID = ? AND
|
||||
Mcu_PreregisterPatientsIsActive = 'Y'
|
||||
`
|
||||
|
||||
if err := dbx.Handlex.Get(&data, q, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get total participant %v", err)
|
||||
}
|
||||
@@ -116,10 +118,10 @@ func (tkp *TabKepersertaanServices) GetTotalKepesertaanMCU(mcuID string) (models
|
||||
logger.Info("resp data", zap.Any("data", data))
|
||||
|
||||
title := "Peserta MCU"
|
||||
subtext := "Total Peserta " + strconv.Itoa(data.Mgm_McuTotalParticipant)
|
||||
subtext := "Total Peserta " + strconv.Itoa(data.Total)
|
||||
chartData := []models.SeriesData{}
|
||||
|
||||
if data.Mgm_McuTotalParticipant == 0 {
|
||||
if data.Total == 0 {
|
||||
chartData = append(chartData, models.SeriesData{Value: 0, Name: "No Data"})
|
||||
} else {
|
||||
chartData = []models.SeriesData{
|
||||
@@ -128,8 +130,8 @@ func (tkp *TabKepersertaanServices) GetTotalKepesertaanMCU(mcuID string) (models
|
||||
Name: "Sudah MCU: " + strconv.Itoa(data.Peserta) + " peserta",
|
||||
},
|
||||
{
|
||||
Value: data.Mgm_McuTotalParticipant - data.Peserta,
|
||||
Name: "Belum MCU: " + strconv.Itoa(data.Mgm_McuTotalParticipant-data.Peserta) + " peserta",
|
||||
Value: data.Total - data.Peserta,
|
||||
Name: "Belum MCU: " + strconv.Itoa(data.Total-data.Peserta) + " peserta",
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -152,21 +154,14 @@ func (tkp *TabKepersertaanServices) GetKepesertaanByGender(mcuID string) (models
|
||||
chartData := []models.SeriesData{}
|
||||
|
||||
q := `
|
||||
SELECT
|
||||
CASE
|
||||
WHEN M_PatientGender = 'male' THEN 'Laki-laki'
|
||||
WHEN M_PatientGender = 'female' THEN 'Perempuan'
|
||||
ELSE M_PatientGender
|
||||
END AS M_PatientGender,
|
||||
COUNT(*) AS Jumlah
|
||||
FROM mcu_order
|
||||
JOIN t_orderheader ON Mcu_OrderT_OrderHeaderID = T_OrderHeaderID
|
||||
AND T_OrderHeaderIsActive = 'Y'
|
||||
LEFT JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
|
||||
AND M_PatientIsActive = 'Y'
|
||||
WHERE Mcu_OrderMgm_McuID = ?
|
||||
SELECT IF(M_PatientGender = 'male','Laki-laki','Perempuan') as M_PatientGender,
|
||||
COUNT(T_OrderHeaderID) as Jumlah
|
||||
FROM t_orderheader
|
||||
LEFT JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
|
||||
WHERE T_OrderHeaderMgm_McuID = ? AND T_OrderHeaderIsActive = 'Y'
|
||||
GROUP BY M_PatientGender
|
||||
`
|
||||
|
||||
if err := dbx.Handlex.Select(&data, q, mcuID); err != nil {
|
||||
return option, fmt.Errorf("error get total gender %v", err)
|
||||
}
|
||||
@@ -202,24 +197,23 @@ func (tkp *TabKepersertaanServices) GetKepesertaanByUmur(mcuID string) (models.P
|
||||
chartData := []models.SeriesData{}
|
||||
|
||||
q := `
|
||||
SELECT
|
||||
SELECT
|
||||
CASE
|
||||
WHEN LEFT(T_OrderHeaderM_PatientAge,2) < '30' then "1. < 30 tahun"
|
||||
WHEN LEFT(T_OrderHeaderM_PatientAge,2) >= '30' AND LEFT(T_OrderHeaderM_PatientAge,2) < '40' then "2. 30 -< 40 tahun"
|
||||
WHEN LEFT(T_OrderHeaderM_PatientAge,2) >= '40' AND LEFT(T_OrderHeaderM_PatientAge,2) < '50' then "3. 40 - < 50 tahun"
|
||||
WHEN LEFT(T_OrderHeaderM_PatientAge,2) >= '50' then "4. > 50 tahun" else ""
|
||||
WHEN LEFT(T_OrderHeaderM_PatientAge,2) < '30' THEN "1. < 30 tahun"
|
||||
WHEN LEFT(T_OrderHeaderM_PatientAge,2) >= '30' AND left(T_OrderHeaderM_PatientAge,2) < '40' THEN "2. 30 -< 40 tahun"
|
||||
WHEN LEFT(T_OrderHeaderM_PatientAge,2) >= '40' AND left(T_OrderHeaderM_PatientAge,2) < '50' THEN "3. 40 - < 50 tahun"
|
||||
WHEN LEFT(T_OrderHeaderM_PatientAge,2) >= '50' THEN "4. > 50 tahun" ELSE ""
|
||||
END AS umur,
|
||||
COUNT(Mcu_OrderT_OrderHeaderID) AS total
|
||||
FROM mcu_order
|
||||
JOIN t_orderheader ON Mcu_OrderT_OrderHeaderID = T_OrderHeaderID AND T_OrderHeaderIsActive = 'Y'
|
||||
COUNT(T_OrderHeaderID) as total
|
||||
FROM t_orderheader
|
||||
LEFT JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
|
||||
WHERE Mcu_OrderMgm_McuID = ?
|
||||
GROUP BY
|
||||
WHERE t_orderheaderMgm_McuID = ? AND T_OrderHeaderIsActive = 'Y'
|
||||
GROUP BY
|
||||
CASE
|
||||
WHEN LEFT(T_OrderHeaderM_PatientAge,2) < '30' then "1. < 30 tahun"
|
||||
WHEN LEFT(T_OrderHeaderM_PatientAge,2) >= '30' AND LEFT(T_OrderHeaderM_PatientAge,2) < '40' then "2. 30 -< 40 tahun"
|
||||
WHEN LEFT(T_OrderHeaderM_PatientAge,2) >= '40' AND LEFT(T_OrderHeaderM_PatientAge,2) < '50' then "3. 40 - < 50 tahun"
|
||||
WHEN LEFT(T_OrderHeaderM_PatientAge,2) >= '50' then "4. > 50 tahun" else ""
|
||||
WHEN LEFT(T_OrderHeaderM_PatientAge,2) < '30' THEN "1. < 30 tahun"
|
||||
WHEN LEFT(T_OrderHeaderM_PatientAge,2) >= '30' AND left(T_OrderHeaderM_PatientAge,2) < '40' THEN "2. 30 -< 40 tahun"
|
||||
WHEN LEFT(T_OrderHeaderM_PatientAge,2) >= '40' AND left(T_OrderHeaderM_PatientAge,2) < '50' THEN "3. 40 - < 50 tahun"
|
||||
WHEN LEFT(T_OrderHeaderM_PatientAge,2) >= '50' THEN "4. > 50 tahun" ELSE ""
|
||||
END
|
||||
ORDER BY umur
|
||||
`
|
||||
@@ -248,3 +242,26 @@ func (tkp *TabKepersertaanServices) GetKepesertaanByUmur(mcuID string) (models.P
|
||||
|
||||
return option, nil
|
||||
}
|
||||
|
||||
func (tkp *TabKepersertaanServices) GetChartRenderPeserta(mcuID string) ([]models.McuTabModels, error) {
|
||||
var ret []models.McuTabModels
|
||||
|
||||
q := `
|
||||
SELECT
|
||||
Mcu_ImageGrafikGroupResult,
|
||||
Mcu_ImageGrafikGroupMenu,
|
||||
Mcu_ImageGrafikName,
|
||||
Mcu_ImageGrafikJsonRender
|
||||
FROM mgm_mcugrafik
|
||||
JOIN mcu_image_grafik ON Mcu_ImageGrafikID = Mgm_McuGrafikMcu_ImageGrafikID
|
||||
WHERE Mgm_McuGrafikMgm_McuID = ?
|
||||
AND Mcu_ImageGrafikGroupMenu = "PESERTA"
|
||||
AND Mgm_McuGrafikIsActive = 'Y'
|
||||
ORDER BY Mcu_ImageGrafikID
|
||||
`
|
||||
if err := dbx.Handlex.Select(&ret, q, mcuID); err != nil {
|
||||
return ret, fmt.Errorf("error get data tab peserta: %v", err)
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
@@ -230,3 +230,78 @@ func (tks *TabKesimpulanServices) GetListKesimpulanFisik(id string) ([]models.Mo
|
||||
|
||||
return listFisik, nil
|
||||
}
|
||||
|
||||
func (tks *TabKesimpulanServices) GetListKesimpulanLabV2(id string) ([]models.ModelKesimpulanLab, error) {
|
||||
var data []models.ModelKesimpulanLab
|
||||
|
||||
q := `
|
||||
SELECT Mcu_KelainanID as nomor,
|
||||
Mcu_KelainanName as Test,
|
||||
count(distinct T_OrderHeaderID) as total
|
||||
FROM t_kelainan_lab
|
||||
JOIN t_orderheader ON T_KelainanLabT_OrderHeaderID = T_OrderHeaderID
|
||||
JOIN mcu_summarylab ON T_KelainanLabMcu_SummaryLabID = Mcu_SummaryLabID
|
||||
join mcu_kelainan on Mcu_summaryLabMcu_KelainanID = Mcu_KelainanID
|
||||
join mcu_kelainangroup on Mcu_KelainanMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
JOIN nat_test ON Mcu_SummaryLabNat_TestID = Nat_TestID AND T_KelainanLabNat_TestID = Mcu_SummaryLabNat_TestID
|
||||
where T_KelainanLabIsActive = 'Y' and T_OrderHeaderMgm_McuID = ?
|
||||
group by Mcu_KelainanID
|
||||
ORDER BY total DESC
|
||||
LIMIT 3
|
||||
`
|
||||
if err := dbx.Handlex.Select(&data, q, id); err != nil {
|
||||
return data, fmt.Errorf("error get data top 3 kelainan lab %v", err)
|
||||
}
|
||||
|
||||
return data, nil
|
||||
}
|
||||
|
||||
func (tks *TabKesimpulanServices) GetListKesimpulanNonLabV2(id string) ([]models.ModelKesimpulanLab, error) {
|
||||
var data []models.ModelKesimpulanLab
|
||||
|
||||
q := `
|
||||
SELECT Mcu_KelainanID as nomor, Mcu_KelainanName as Test,
|
||||
count(distinct T_OrderHeaderID) as total
|
||||
FROM t_kelainan_nonlab
|
||||
JOIN t_orderheader ON T_KelainanNonLabT_OrderHeaderID = T_OrderHeaderID
|
||||
JOIN mcu_summarynonlab ON T_KelainanNonLabMcu_SummaryNonlabID = Mcu_SummaryNonlabID
|
||||
join mcu_kelainan on Mcu_SummaryNonlabMcu_KelainanID = Mcu_KelainanID
|
||||
join mcu_kelainangroup on Mcu_KelainanMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
JOIN nat_test ON Mcu_SummaryNonlabNat_TestID = Nat_TestID AND
|
||||
T_KelainanNonLabNat_TestID = Mcu_SummaryNonlabNat_TestID
|
||||
where T_KelainanNonLabIsActive = 'Y' and T_OrderHeaderMgm_McuID = ?
|
||||
group by Mcu_KelainanID
|
||||
ORDER BY total DESC
|
||||
LIMIT 3
|
||||
`
|
||||
if err := dbx.Handlex.Select(&data, q, id); err != nil {
|
||||
return data, fmt.Errorf("error get data top 3 kelainan non lab %v", err)
|
||||
}
|
||||
|
||||
return data, nil
|
||||
}
|
||||
|
||||
func (tks *TabKesimpulanServices) GetListKesimpulanFisikV2(id string) ([]models.ModelKesimpulanLab, error) {
|
||||
var data []models.ModelKesimpulanLab
|
||||
|
||||
q := `
|
||||
SELECT Mcu_KelainanID as nomor, Mcu_KelainanName as Test,
|
||||
count(distinct T_OrderHeaderID) as total
|
||||
FROM t_kelainan_fisik
|
||||
JOIN t_orderheader ON T_KelainanFiskT_OrderHeaderID = T_OrderHeaderID
|
||||
JOIN mcu_summaryfisik ON T_KelainanFiskMcu_SummaryFisikID = Mcu_SummaryFisikID AND
|
||||
Mcu_SummaryFisikID NOT IN (63,67,68,69,70,71,72,73)
|
||||
join mcu_kelainan on Mcu_SummaryFisikMcu_KelainanID = Mcu_KelainanID
|
||||
join mcu_kelainangroup on Mcu_KelainanMcu_KelainanGroupID = Mcu_KelainanGroupID
|
||||
where T_KelainanFiskIsActive = 'Y' and T_OrderHeaderMgm_McuID = ? AND
|
||||
Mcu_KelainanClasification NOT IN ('who','kemenkes','JNC-VIII','ESC/ESH')
|
||||
group by Mcu_KelainanID
|
||||
ORDER BY total DESC
|
||||
LIMIT 3
|
||||
`
|
||||
if err := dbx.Handlex.Select(&data, q, id); err != nil {
|
||||
return data, fmt.Errorf("error get data top 3 kelainan fisik %v", err)
|
||||
}
|
||||
|
||||
return data, nil
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import (
|
||||
"cpone/db"
|
||||
"cpone/models"
|
||||
dbx "cpone/package/database"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"math"
|
||||
"strconv"
|
||||
@@ -62,52 +63,6 @@ func (sp *PatientServices) GetDashboardPatientBreadcrumb(title string) (models.B
|
||||
return breadcrumb, nil
|
||||
}
|
||||
|
||||
func (sp *PatientServices) ListingData(search string, date string, patID string, corpId string, currentpage int, rowperpage int) ([]models.DashboardPatient, int, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
var ret []models.DashboardPatient
|
||||
var totalData int
|
||||
|
||||
if len(date) == 0 {
|
||||
date = ""
|
||||
}
|
||||
|
||||
prmSearch := "%" + search + "%"
|
||||
offset := (currentpage - 1) * rowperpage
|
||||
q := `
|
||||
SELECT COUNT(*)
|
||||
FROM t_orderheader
|
||||
WHERE T_OrderHeaderIsActive = 'Y'
|
||||
AND T_OrderHeaderLabNumber LIKE ?
|
||||
AND T_OrderHeaderM_PatientID = ?
|
||||
`
|
||||
if err := dbx.Handlex.Get(&totalData, q, prmSearch, patID); err != nil {
|
||||
return nil, 0, fmt.Errorf("error query get total data: %v", err)
|
||||
}
|
||||
|
||||
q = `
|
||||
SELECT
|
||||
T_OrderHeaderID,
|
||||
DATE_FORMAT(T_OrderHeaderDate, '%d/%m/%Y') AS T_OrderHeaderDate,
|
||||
T_OrderHeaderLabNumber,
|
||||
T_OrderHeaderM_PatientID,
|
||||
T_OrderHeaderCorporateID,
|
||||
T_OrderHeaderMgm_McuID,
|
||||
T_OrderHeaderIsActive
|
||||
FROM t_orderheader
|
||||
WHERE T_OrderHeaderIsActive = 'Y'
|
||||
AND T_OrderHeaderLabNumber LIKE ?
|
||||
AND T_OrderHeaderM_PatientID = ?
|
||||
LIMIT ? OFFSET ?
|
||||
`
|
||||
if err := dbx.Handlex.Select(&ret, q, prmSearch, patID, rowperpage, offset); err != nil {
|
||||
return nil, 0, fmt.Errorf("error query get data: %v", err)
|
||||
}
|
||||
logger.Info("response", zap.Any("data", ret))
|
||||
|
||||
totalPage := int(math.Ceil(float64(totalData) / float64(rowperpage)))
|
||||
return ret, totalPage, nil
|
||||
}
|
||||
|
||||
func (sp *PatientServices) GetListtingData(email string, currentpage int, rowperpage int) ([]models.DashboardPatient, int, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
var ret []models.DashboardPatient
|
||||
@@ -150,72 +105,267 @@ func (sp *PatientServices) GetListtingData(email string, currentpage int, rowper
|
||||
return ret, totalPage, nil
|
||||
}
|
||||
|
||||
func (sp *PatientServices) GetReportMcu(orderheaderID string) ([]models.TabViewReportMcu, error) {
|
||||
var ret []models.TabViewReportMcu
|
||||
var data []models.ModelMcuPesertaReport
|
||||
var totalData int
|
||||
func (sp *PatientServices) GetListReportPesertaV3(orderheaderID string, staffname string) ([]models.TabViewReportMcu, error) {
|
||||
var returnTab []models.TabViewReportMcu
|
||||
var GroupResultOrder []models.GroupResultOrderModel
|
||||
var SoResultData []models.SoResultEntryReportModel
|
||||
|
||||
q := `
|
||||
SELECT COUNT(*)
|
||||
FROM so_resultentry
|
||||
WHERE So_ResultEntryT_OrderHeaderID = ?
|
||||
AND So_ResultEntryIsActive = 'Y'
|
||||
SELECT
|
||||
gr.Group_ResultID,
|
||||
gr.Group_ResultName,
|
||||
gr.Group_ResultResumeMcu,
|
||||
gr.Group_ResultUrl,
|
||||
gr.Group_ResultIsOrderHeader,
|
||||
gro.Group_ResultOrderOrder,
|
||||
DATE_FORMAT(NOW(), '%y%m%d%H%i%s') AS Datetime
|
||||
FROM t_orderdetail todtl
|
||||
JOIN t_test tt ON todtl.T_OrderDetailT_TestID = tt.T_TestID
|
||||
AND tt.T_TestIsActive = 'Y'
|
||||
JOIN group_resultdetail grd ON tt.T_TestID = grd.Group_ResultDetailT_TestID
|
||||
AND grd.Group_ResultDetailIsActive = 'Y'
|
||||
JOIN group_result gr ON grd.Group_ResultDetailGroup_ResultID = gr.Group_ResultID
|
||||
AND gr.Group_ResultIsActive = 'Y'
|
||||
JOIN group_resultorder gro ON gro.Group_ResultOrderGroup_ResultID = gr.Group_ResultID
|
||||
AND Group_ResultOrderIsActive = 'Y'
|
||||
WHERE todtl.T_OrderDetailT_OrderHeaderID = ?
|
||||
AND todtl.T_OrderDetailIsActive = 'Y'
|
||||
GROUP BY gr.Group_ResultID
|
||||
ORDER BY gro.Group_ResultOrderOrder
|
||||
`
|
||||
if err := dbx.Handlex.Get(&totalData, q, orderheaderID); err != nil {
|
||||
return ret, fmt.Errorf("error get total mcu report: %v", err)
|
||||
if err := dbx.Handlex.Select(&GroupResultOrder, q, orderheaderID); err != nil {
|
||||
return returnTab, fmt.Errorf("error get group result order: %v", err)
|
||||
}
|
||||
|
||||
q = `
|
||||
SELECT
|
||||
So_ResultEntryID,
|
||||
So_ResultEntryT_OrderHeaderID,
|
||||
So_ResultEntryNonlab_TemplateID,
|
||||
So_ResultEntryNonlab_TemplateName
|
||||
FROM so_resultentry
|
||||
WHERE So_ResultEntryT_OrderHeaderID = ?
|
||||
AND So_ResultEntryIsActive = 'Y'
|
||||
ORDER BY So_ResultEntryNonlab_TemplateID
|
||||
SELECT
|
||||
sre.So_ResultEntryID,
|
||||
sre.So_ResultEntryT_OrderHeaderID,
|
||||
sre.So_ResultEntryT_OrderDetailID,
|
||||
sre.So_ResultEntryNonlab_TemplateID,
|
||||
sre.So_ResultEntryNonlab_TemplateName
|
||||
FROM t_orderdetail tdet
|
||||
JOIN t_test tt ON tdet.T_OrderDetailT_TestID = tt.T_TestID
|
||||
AND tt.T_TestIsActive = 'Y'
|
||||
JOIN so_resultentry sre ON sre.So_ResultEntryT_OrderDetailID = tdet.T_OrderDetailID
|
||||
AND sre.So_ResultEntryIsActive = 'Y'
|
||||
WHERE tdet.T_OrderDetailT_OrderHeaderID = ?
|
||||
AND tdet.T_OrderDetailIsActive = 'Y'
|
||||
`
|
||||
if err := dbx.Handlex.Select(&data, q, orderheaderID); err != nil {
|
||||
return ret, err
|
||||
if err := dbx.Handlex.Select(&SoResultData, q, orderheaderID); err != nil {
|
||||
return returnTab, fmt.Errorf("error get so result data non lab: %v", err)
|
||||
}
|
||||
|
||||
// Lab
|
||||
ret = append(ret, models.TabViewReportMcu{Name: "Hasil Laboratorium", Link: "https://devcpone.aplikasi.web.id/birt/run?__report=report/one/lab/rpt_test.rptdesign&__format=pdf&PID=" + orderheaderID + "&username=adhi&tm=1717726294764"})
|
||||
|
||||
// Non-lab
|
||||
for _, n := range data {
|
||||
var link models.TabViewReportMcu
|
||||
|
||||
switch n.So_ResultEntryNonlab_TemplateName {
|
||||
mapSoResultData := map[string]int{}
|
||||
for _, so := range SoResultData {
|
||||
switch so.So_ResultEntryNonlab_TemplateName {
|
||||
case "ECG":
|
||||
link.Name = "Elektromedis"
|
||||
link.Link = "https://devcpone.aplikasi.web.id/birt/run?__report=report/one/lab/rpt_hasil_so_elmd.rptdesign&__format=pdf&PID=" + strconv.Itoa(n.So_ResultEntryID) + "&username=adhi&tm=1717726294764"
|
||||
mapSoResultData["Elektromedik"] = so.So_ResultEntryID
|
||||
case "Thorax PA":
|
||||
link.Name = "Radiologi"
|
||||
link.Link = "https://devcpone.aplikasi.web.id/birt/run?__report=report/one/lab/rpt_hasil_so_xray.rptdesign&__format=pdf&PID=" + strconv.Itoa(n.So_ResultEntryID) + "&username=adhi&tm=1717726294764"
|
||||
case "Audiometri":
|
||||
link.Name = "Audiometri"
|
||||
link.Link = "https://devcpone.aplikasi.web.id/birt/run?__report=report/one/lab/rpt_hasil_so_audiometri.rptdesign&__format=pdf&PID=" + strconv.Itoa(n.So_ResultEntryID) + "&username=adhi&tm=1717726294764"
|
||||
case "Spirometri":
|
||||
link.Name = "Spirometri"
|
||||
link.Link = "https://devcpone.aplikasi.web.id/birt/run?__report=report/one/lab/rpt_hasil_so_spirometri.rptdesign&__format=pdf&PID=" + strconv.Itoa(n.So_ResultEntryID) + "&username=adhi&tm=1717726294764"
|
||||
case "Fisik Umum":
|
||||
namaFisik := []string{"Hasil Fisik", "Hasil Pajanan", "Riwayat"}
|
||||
linkFisik := []string{
|
||||
"https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/mcu_fisik.rptdesign&__format=pdf&PID=" + strconv.Itoa(n.So_ResultEntryID) + "&PType=fisik&username=adhi&tm=1717726294764",
|
||||
"https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/mcu_pajanan.rptdesign&__format=pdf&PID=" + strconv.Itoa(n.So_ResultEntryID) + "&PType=fisik&username=adhi&tm=1717726294764",
|
||||
"https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/mcu_riwayat.rptdesign&__format=pdf&PID=" + strconv.Itoa(n.So_ResultEntryID) + "&PType=riwayat&username=adhi&tm=1717726294764",
|
||||
}
|
||||
for i := 0; i < 3; i++ {
|
||||
ret = append(ret, models.TabViewReportMcu{Name: namaFisik[i], Link: linkFisik[i]})
|
||||
}
|
||||
continue
|
||||
mapSoResultData["Rontgen"] = so.So_ResultEntryID
|
||||
case "Fisik Umum", "Fisik Umum K3":
|
||||
mapSoResultData["FISIK"] = so.So_ResultEntryID
|
||||
default:
|
||||
mapSoResultData[so.So_ResultEntryNonlab_TemplateName] = so.So_ResultEntryID
|
||||
}
|
||||
}
|
||||
|
||||
for _, group := range GroupResultOrder {
|
||||
var urlMap map[string]string
|
||||
if err := json.Unmarshal([]byte(group.Group_ResultUrl), &urlMap); err != nil {
|
||||
return returnTab, fmt.Errorf("error parsing json: %v", err)
|
||||
}
|
||||
|
||||
ret = append(ret, link)
|
||||
switch group.Group_ResultResumeMcu {
|
||||
case "FISIK":
|
||||
soResultID := strconv.Itoa(mapSoResultData["FISIK"])
|
||||
if soResultID != "0" {
|
||||
for key, value := range urlMap {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{
|
||||
Name: key,
|
||||
Link: value + "&username=" + staffname + "&PID=" + soResultID + "&tm=" + group.Datetime,
|
||||
})
|
||||
}
|
||||
}
|
||||
case "NONLAB":
|
||||
soResultID := strconv.Itoa(mapSoResultData[group.Group_ResultName])
|
||||
if soResultID != "0" {
|
||||
for _, value := range urlMap {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{
|
||||
Name: group.Group_ResultName,
|
||||
Link: value + "&username=" + staffname + "&PID=" + soResultID + "&tm=" + group.Datetime,
|
||||
})
|
||||
}
|
||||
}
|
||||
case "LAB":
|
||||
for _, value := range urlMap {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{
|
||||
Name: group.Group_ResultName,
|
||||
Link: value + "&username=" + staffname + "&PID=" + orderheaderID + "&tm=" + group.Datetime,
|
||||
})
|
||||
}
|
||||
default:
|
||||
for _, value := range urlMap {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{
|
||||
Name: group.Group_ResultName,
|
||||
Link: value + "&username=" + staffname + "&PID=" + orderheaderID + "&tm=" + group.Datetime,
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
ret = append(ret, models.TabViewReportMcu{Name: "Resume Individu", Link: "https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/rpt_mcu_resume.rptdesign&__format=pdf&PID=" + orderheaderID + "&username=adhi&tm=1717726294764"})
|
||||
|
||||
return ret, nil
|
||||
return returnTab, nil
|
||||
}
|
||||
|
||||
func (sp *PatientServices) GetListReportPesertaV4(orderheaderID string, staffname string) ([]models.TabViewReportMcu, error) {
|
||||
var returnTab []models.TabViewReportMcu
|
||||
|
||||
var profile_patient models.PatientMCU
|
||||
lab_rpt := ""
|
||||
|
||||
sql := `
|
||||
SELECT
|
||||
toh.T_OrderHeaderID,
|
||||
toh.T_OrderHeaderLabNumber,
|
||||
mp.M_PatientID,
|
||||
mp.M_PatientName,
|
||||
DATE_FORMAT(NOW(), '%y%m%d%H%i%s') AS Datetime
|
||||
FROM t_orderheader toh
|
||||
JOIN m_patient mp ON toh.T_OrderHeaderM_PatientID = mp.M_PatientID
|
||||
AND mp.M_PatientIsActive = 'Y'
|
||||
WHERE toh.T_OrderHeaderID = ? AND toh.T_OrderHeaderIsActive = 'Y'
|
||||
`
|
||||
if err := dbx.Handlex.Get(&profile_patient, sql, orderheaderID); err != nil {
|
||||
return returnTab, fmt.Errorf("error get group result order: %v", err)
|
||||
}
|
||||
if profile_patient.T_OrderHeaderLabNumber != "" {
|
||||
lab_rpt = "/birt/frameset?__report=report/one/lab/rpt_test_portal.rptdesign&__format=pdf&PID=" + profile_patient.T_OrderHeaderID + "&tm=" + profile_patient.Datetime + "&username=" + staffname
|
||||
}
|
||||
|
||||
var so_data_rpt []models.SoRptData
|
||||
fisik := ""
|
||||
rontgen := ""
|
||||
ekg := ""
|
||||
audiometri := ""
|
||||
spirometri := ""
|
||||
treadmill := ""
|
||||
papsmear := ""
|
||||
|
||||
sql_rpt := `
|
||||
SELECT DISTINCT group_resultName as rpt_name,
|
||||
IFNULL(So_ResultEntryID,0) as so_id,
|
||||
T_OrderDetailT_OrderHeaderID as order_id,
|
||||
DATE_FORMAT(NOW(), '%y%m%d%H%i%s') AS Datetime
|
||||
FROM t_orderdetail
|
||||
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
|
||||
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
|
||||
JOIN group_result ON Group_ResultID = Group_ResultDetailGroup_ResultID AND
|
||||
Group_ResultFlagPerTest = 'N' AND Group_ResultName <> 'LAB' AND Group_ResultFlagNonLab = 'N'
|
||||
LEFT JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y'
|
||||
WHERE
|
||||
T_OrderDetailT_OrderHeaderID = ? AND Group_ResultName <> 'Tanpa Hasil'
|
||||
UNION
|
||||
SELECT DISTINCT group_resultName as rpt_name,
|
||||
IFNULL(So_ResultEntryID,0) as so_id,
|
||||
T_OrderDetailT_OrderHeaderID as order_id,
|
||||
DATE_FORMAT(NOW(), '%y%m%d%H%i%s') AS Datetime
|
||||
FROM t_orderdetail
|
||||
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
|
||||
JOIN t_samplingso ON T_SamplingSoT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND
|
||||
T_SamplingSoT_TestID = T_TestID
|
||||
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
|
||||
JOIN group_result ON Group_ResultID = Group_ResultDetailGroup_ResultID AND
|
||||
Group_ResultFlagPerTest = 'N' AND Group_ResultName <> 'LAB' AND Group_ResultFlagNonLab = 'Y'
|
||||
LEFT JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y'
|
||||
WHERE
|
||||
T_OrderDetailT_OrderHeaderID = ? AND Group_ResultName <> 'Tanpa Hasil'
|
||||
UNION
|
||||
SELECT DISTINCT T_TestName as rpt_name,
|
||||
IFNULL(So_ResultEntryID,0) as so_id,
|
||||
T_OrderDetailT_OrderHeaderID as order_id,
|
||||
DATE_FORMAT(NOW(), '%y%m%d%H%i%s') AS Datetime
|
||||
FROM t_orderdetail
|
||||
JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestName NOT IN ('Visus Mata','Buta Warna','Pemeriksaan Lapang Pandang')
|
||||
JOIN t_samplingso ON T_SamplingSoT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND
|
||||
T_SamplingSoT_TestID = T_TestID
|
||||
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
|
||||
JOIN group_result ON Group_ResultID = Group_ResultDetailGroup_ResultID AND
|
||||
Group_ResultFlagPerTest = 'Y' AND Group_ResultFlagNonLab = 'Y'
|
||||
LEFT JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y'
|
||||
WHERE
|
||||
T_OrderDetailT_OrderHeaderID = ? AND Group_ResultName <> 'Tanpa Hasil'
|
||||
`
|
||||
if err := dbx.Handlex.Select(&so_data_rpt, sql_rpt, orderheaderID, orderheaderID, orderheaderID); err != nil {
|
||||
return returnTab, fmt.Errorf("error get data so_id: %v", err)
|
||||
}
|
||||
|
||||
for _, d := range so_data_rpt {
|
||||
switch d.Rpt_name {
|
||||
case "Pemeriksaan Fisik":
|
||||
fisik = "/birt/frameset?__report=report/one/mcu/mcu_fisik_history_v2_portal.rptdesign&__format=pdf&PType=fisik&PLang=1&username=" + staffname + "&PID=" + d.So_id + "&tm=" + d.Datetime
|
||||
case "Rontgen":
|
||||
rontgen = "/birt/frameset?__report=report/one/lab/rpt_hasil_so_xray_portal.rptdesign&__format=pdf&username=" + staffname + "&PID=" + d.So_id + "&tm=" + d.Datetime
|
||||
case "Audiometri":
|
||||
audiometri = "/birt/frameset?__report=report/one/lab/rpt_hasil_so_audiometri_portal.rptdesign&__format=pdf&username=" + staffname + "&PID=" + d.So_id + "&tm=" + d.Datetime
|
||||
case "Spirometri":
|
||||
spirometri = "/birt/frameset?__report=report/one/lab/rpt_hasil_so_spirometri_portal.rptdesign&__format=pdf&username=" + staffname + "&PID=" + d.So_id + "&tm=" + d.Datetime
|
||||
case "ECG":
|
||||
ekg = "/birt/frameset?__report=report/one/lab/rpt_hasil_so_ecg_portal.rptdesign&__format=pdf&username=" + staffname + "&PID=" + d.So_id + "&tm=" + d.Datetime
|
||||
case "Treadmill":
|
||||
treadmill = "/birt/frameset?__report=report/one/lab/rpt_hasil_so_treadmill_portal.rptdesign&__format=pdf&username=" + staffname + "&PID=" + d.So_id + "&tm=" + d.Datetime
|
||||
case "Papsmear":
|
||||
papsmear = "/birt/frameset?__report=report/one/lab/rpt_test_papsmear_portal.rptdesign&__format=pdf&username=" + staffname + "&PID=" + d.So_id + "&tm=" + d.Datetime
|
||||
}
|
||||
}
|
||||
|
||||
var ResumeData models.ResumeMCU
|
||||
kesimpulan := ""
|
||||
// cover := ""
|
||||
|
||||
sql_resume := `
|
||||
SELECT
|
||||
Mcu_ResumeID,
|
||||
DATE_FORMAT(NOW(), '%y%m%d%H%i%s') AS Datetime
|
||||
FROM mcu_resume
|
||||
WHERE Mcu_ResumeT_OrderHeaderID = ?
|
||||
AND Mcu_ResumeIsActive = 'Y' AND Mcu_ResumeStatus = 'VAL'
|
||||
`
|
||||
if err := dbx.Handlex.Get(&ResumeData, sql_resume, orderheaderID); err != nil {
|
||||
return returnTab, fmt.Errorf("error get data resume id: %v", err)
|
||||
}
|
||||
|
||||
if ResumeData.Mcu_ResumeID != "" {
|
||||
// cover = "/birt/frameset?__report=report/one/mcu/rpt_mcu_resume_cover_portal.rptdesign&__format=pdf&username=" + staffname + "&PID=" + ResumeData.Mcu_ResumeID + "&tm=" + ResumeData.Datetime
|
||||
kesimpulan = "/birt/frameset?__report=report/one/mcu/rpt_mcu_saran_kesimpulan_v2_portal.rptdesign&__format=pdf&username=" + staffname + "&PID=" + ResumeData.Mcu_ResumeID + "&tm=" + ResumeData.Datetime
|
||||
}
|
||||
|
||||
if fisik != "" {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{Name: "Fisik", Link: fisik})
|
||||
}
|
||||
if rontgen != "" {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{Name: "Rontgen", Link: rontgen})
|
||||
}
|
||||
if ekg != "" {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{Name: "Elektromedik", Link: ekg})
|
||||
}
|
||||
if audiometri != "" {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{Name: "Audiometri", Link: audiometri})
|
||||
}
|
||||
if spirometri != "" {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{Name: "Spirometri", Link: spirometri})
|
||||
}
|
||||
if treadmill != "" {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{Name: "Treadmill", Link: treadmill})
|
||||
}
|
||||
if kesimpulan != "" {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{Name: "Kesimpulan", Link: kesimpulan})
|
||||
}
|
||||
if lab_rpt != "" {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{Name: "Lab", Link: lab_rpt})
|
||||
}
|
||||
if papsmear != "" {
|
||||
returnTab = append(returnTab, models.TabViewReportMcu{Name: "Papsmear", Link: papsmear})
|
||||
}
|
||||
|
||||
return returnTab, nil
|
||||
}
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
package public_services
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"cpone/db"
|
||||
"cpone/models"
|
||||
"cpone/package/config"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/url"
|
||||
@@ -24,53 +23,11 @@ func NewServicesLogin(uStore db.AppStore) *ServicesLogin {
|
||||
}
|
||||
}
|
||||
|
||||
func (ls *ServicesLogin) Login(username string, password string) (models.ResponseApi, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
url := "https://devcpone.aplikasi.web.id/one-api/v1/system/auth/login"
|
||||
|
||||
var resp models.ResponseApi
|
||||
|
||||
// Create a JSON payload with the username and password
|
||||
payload := []byte(fmt.Sprintf(`{"username": "%s", "password": "%s"}`, username, password))
|
||||
logger.Info("payload", zap.Any("data", payload))
|
||||
|
||||
// Make the POST request
|
||||
request, err := http.Post(url, "application/json", bytes.NewBuffer(payload))
|
||||
if err != nil {
|
||||
logger.Info("requser", zap.Any("err", err))
|
||||
return resp, err
|
||||
}
|
||||
if request.StatusCode != http.StatusOK {
|
||||
logger.Info("status", zap.Any("err", request.StatusCode))
|
||||
return resp, fmt.Errorf("server returned non-OK status: %d", request.StatusCode)
|
||||
}
|
||||
defer request.Body.Close()
|
||||
|
||||
// Read the response body
|
||||
body, err := io.ReadAll(request.Body)
|
||||
if err != nil {
|
||||
logger.Info("body", zap.Any("data", body))
|
||||
return resp, err
|
||||
}
|
||||
|
||||
if err := json.Unmarshal(body, &resp); err != nil {
|
||||
logger.Info("json", zap.Any("data", err))
|
||||
return resp, err
|
||||
}
|
||||
|
||||
// Check if status is "ERR"
|
||||
if resp.Status == "ERR" {
|
||||
logger.Info("status", zap.Any("data", resp.Message))
|
||||
return resp, fmt.Errorf("login failed: %s", resp.Message)
|
||||
}
|
||||
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
func (ls *ServicesLogin) MultiSignIn(username string, password string) (models.Response, error) {
|
||||
func (ls *ServicesLogin) MultiSignIn(username string, password string, host string) (models.Response, error) {
|
||||
logger, _ := zap.NewProduction()
|
||||
var ret models.Response
|
||||
uri := "https://devcpone.aplikasi.web.id/one-api/v1/system/auth/multi_login"
|
||||
|
||||
uri := "https://" + config.Data.Get("servername") + "/one-api/v1/system/auth/multi_login"
|
||||
|
||||
params := url.Values{}
|
||||
params.Add("username", username)
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math"
|
||||
)
|
||||
|
||||
// InterpolateColor calculates a color between two given colors based on progress (0 to 1)
|
||||
func InterpolateColor(start, end string, progress float64) string {
|
||||
r1, g1, b1 := HexToRGB(start)
|
||||
r2, g2, b2 := HexToRGB(end)
|
||||
|
||||
r := int(math.Round(float64(r1)*(1-progress) + float64(r2)*progress))
|
||||
g := int(math.Round(float64(g1)*(1-progress) + float64(g2)*progress))
|
||||
b := int(math.Round(float64(b1)*(1-progress) + float64(b2)*progress))
|
||||
|
||||
return fmt.Sprintf("#%02x%02x%02x", r, g, b)
|
||||
}
|
||||
|
||||
// Helper function to convert hex to RGB
|
||||
func HexToRGB(hex string) (int, int, int) {
|
||||
var r, g, b int
|
||||
_, err := fmt.Sscanf(hex, "#%02x%02x%02x", &r, &g, &b)
|
||||
if err != nil {
|
||||
return 0, 0, 0
|
||||
}
|
||||
return r, g, b
|
||||
}
|
||||
20
utils/splitStrings.utils.go
Normal file
20
utils/splitStrings.utils.go
Normal file
@@ -0,0 +1,20 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
func SplitStrings(text string, count int) string {
|
||||
words := strings.Split(text, " ")
|
||||
var result strings.Builder
|
||||
|
||||
for i := 0; i < len(words); i += count {
|
||||
if i+count < len(words) {
|
||||
result.WriteString(strings.Join(words[i:i+count], " ") + "\n")
|
||||
} else {
|
||||
result.WriteString(strings.Join(words[i:], " "))
|
||||
}
|
||||
}
|
||||
|
||||
return result.String()
|
||||
}
|
||||
@@ -11,7 +11,7 @@ templ FilterListing(
|
||||
) {
|
||||
<div class="row pt-8 align-items-center">
|
||||
<div class="col-12 col-sm-3 col-md-1 col-lg-1 col-xl-1 mb-2">
|
||||
<label class="text-black font-weight-bolder">Stard Date:</label>
|
||||
<label class="text-black font-weight-bolder">Start Date:</label>
|
||||
</div>
|
||||
<div class="col-12 col-sm-9 col-md-2 col-lg-2 col-xl-2 mb-2">
|
||||
<input
|
||||
@@ -54,7 +54,7 @@ templ FilterListing(
|
||||
name="search"
|
||||
class="form-control form-control-lg bg-field border-0 rounded-lg"
|
||||
type="text"
|
||||
placeholder="nama karyawan"
|
||||
placeholder="Nama MCU"
|
||||
hx-get={ hxGet }
|
||||
hx-trigger={ hxTrigger }
|
||||
hx-include={ hxInclude }
|
||||
|
||||
@@ -31,7 +31,7 @@ func FilterListing(
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"row pt-8 align-items-center\"><div class=\"col-12 col-sm-3 col-md-1 col-lg-1 col-xl-1 mb-2\"><label class=\"text-black font-weight-bolder\">Stard Date:</label></div><div class=\"col-12 col-sm-9 col-md-2 col-lg-2 col-xl-2 mb-2\">")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"row pt-8 align-items-center\"><div class=\"col-12 col-sm-3 col-md-1 col-lg-1 col-xl-1 mb-2\"><label class=\"text-black font-weight-bolder\">Start Date:</label></div><div class=\"col-12 col-sm-9 col-md-2 col-lg-2 col-xl-2 mb-2\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -221,7 +221,7 @@ func FilterListing(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<input id=\"searchID\" name=\"search\" class=\"form-control form-control-lg bg-field border-0 rounded-lg\" type=\"text\" placeholder=\"nama karyawan\" hx-get=\"")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<input id=\"searchID\" name=\"search\" class=\"form-control form-control-lg bg-field border-0 rounded-lg\" type=\"text\" placeholder=\"Nama MCU\" hx-get=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
||||
158
views/corporate/mcu/mcutab.templ
Normal file
158
views/corporate/mcu/mcutab.templ
Normal file
@@ -0,0 +1,158 @@
|
||||
package corporate_mcudetail
|
||||
|
||||
import "cpone/models"
|
||||
import "strconv"
|
||||
|
||||
templ McuDetailTabView(
|
||||
McuID string,
|
||||
McuTab []models.McuTabModels,
|
||||
) {
|
||||
<div>
|
||||
<ul class="nav nav-tabs nav-tabs-line">
|
||||
for i, d := range McuTab {
|
||||
if i == 0 {
|
||||
<li class="nav-item">
|
||||
<a
|
||||
class="nav-link active"
|
||||
data-toggle="tab"
|
||||
href={templ.URL("#mcu_tab_" + strconv.Itoa(i))}
|
||||
>{ d.TabName }</a>
|
||||
</li>
|
||||
} else {
|
||||
<li class="nav-item">
|
||||
<a
|
||||
class="nav-link"
|
||||
data-toggle="tab"
|
||||
href={templ.URL("#mcu_tab_" + strconv.Itoa(i))}
|
||||
>{ d.TabName }</a>
|
||||
</li>
|
||||
}
|
||||
}
|
||||
<li class="nav-item">
|
||||
<a
|
||||
if len(McuTab) == 0 {
|
||||
class="nav-link active"
|
||||
} else {
|
||||
class="nav-link"
|
||||
}
|
||||
data-toggle="tab"
|
||||
href={templ.URL("#mcu_tab_" + strconv.Itoa(len(McuTab) + 1))}
|
||||
>Kesimpulan</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a
|
||||
class="nav-link"
|
||||
data-toggle="tab"
|
||||
href={templ.URL("#mcu_tab_" + strconv.Itoa(len(McuTab) + 2))}
|
||||
>Daftar Peserta</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a
|
||||
class="nav-link"
|
||||
data-toggle="tab"
|
||||
href={templ.URL("#mcu_tab_" + strconv.Itoa(len(McuTab) + 3))}
|
||||
>Executive Summary</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a
|
||||
class="nav-link"
|
||||
data-toggle="tab"
|
||||
href={templ.URL("#mcu_tab_" + strconv.Itoa(len(McuTab) + 4))}
|
||||
>Keuangan</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tab-content mt-5" id="mcutabcontent">
|
||||
for i, d := range McuTab {
|
||||
if i == 0 {
|
||||
<div
|
||||
class="tab-pane fade show active" role="tabpanel"
|
||||
id={"mcu_tab_" + strconv.Itoa(i)}
|
||||
aria-labelledby={"mcu_tab_" + strconv.Itoa(i)}
|
||||
hx-get={"/corp/dashboard_pic/detail/" + McuID +"/" + d.TabID}
|
||||
hx-target={"#" + d.TabID}
|
||||
hx-trigger="load"
|
||||
hx-indicator={"." + d.TabID + d.Mcu_ImageGrafikGroupMenu}
|
||||
>
|
||||
<div id={d.TabID}></div>
|
||||
<div style="display: flex; justify-content: center; align-items: center;">
|
||||
<span class={"htmx-indicator spinner-border spinner-border-lg " + d.TabID + d.Mcu_ImageGrafikGroupMenu} role="status" aria-hidden="true"></span>
|
||||
</div>
|
||||
</div>
|
||||
} else {
|
||||
<div
|
||||
class="tab-pane fade" role="tabpanel"
|
||||
id={"mcu_tab_" + strconv.Itoa(i)}
|
||||
aria-labelledby={"mcu_tab_" + strconv.Itoa(i)}
|
||||
hx-get={"/corp/dashboard_pic/detail/" + McuID +"/" + d.TabID}
|
||||
hx-target={"#" + d.TabID}
|
||||
hx-trigger="load"
|
||||
hx-indicator={"." + d.TabID + d.Mcu_ImageGrafikGroupMenu}
|
||||
>
|
||||
<div id={d.TabID}></div>
|
||||
<div style="display: flex; justify-content: center; align-items: center;">
|
||||
<span class={"htmx-indicator spinner-border spinner-border-lg " + d.TabID + d.Mcu_ImageGrafikGroupMenu} role="status" aria-hidden="true"></span>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
<div
|
||||
if len(McuTab) == 0 {
|
||||
class="tab-pane fade show active"
|
||||
} else {
|
||||
class="tab-pane fade"
|
||||
}
|
||||
role="tabpanel"
|
||||
id={"mcu_tab_" + strconv.Itoa(len(McuTab) + 1)}
|
||||
aria-labelledby={"mcu_tab_" + strconv.Itoa(len(McuTab) + 1)}
|
||||
hx-get={"/corp/dashboard_pic/detail/" + McuID +"/tabkesimpulan"}
|
||||
hx-target="#tabkesimpulan"
|
||||
hx-trigger="load"
|
||||
hx-indicator=".kesimpulanloading"
|
||||
>
|
||||
<div id="tabkesimpulan"></div>
|
||||
<div style="display: flex; justify-content: center; align-items: center;">
|
||||
<span class="htmx-indicator spinner-border spinner-border-lg kesimpulanloading" role="status" aria-hidden="true"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="tab-pane fade" role="tabpanel"
|
||||
id={"mcu_tab_" + strconv.Itoa(len(McuTab) + 2)}
|
||||
aria-labelledby={"mcu_tab_" + strconv.Itoa(len(McuTab) + 2)}
|
||||
hx-get={"/corp/dashboard_pic/detail/" + McuID +"/tabdaftarpeserta"}
|
||||
hx-target="#tabdaftarpeserta"
|
||||
hx-trigger="load"
|
||||
hx-indicator=".tabdaftarpesertaload"
|
||||
>
|
||||
<div id="tabdaftarpeserta"></div>
|
||||
<div style="display: flex; justify-content: center; align-items: center;">
|
||||
<span class="htmx-indicator spinner-border spinner-border-lg tabdaftarpesertaload" role="status" aria-hidden="true"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="tab-pane fade" role="tabpanel"
|
||||
id={"mcu_tab_" + strconv.Itoa(len(McuTab) + 3)}
|
||||
aria-labelledby={"mcu_tab_" + strconv.Itoa(len(McuTab) + 3)}
|
||||
style="height: 700px;"
|
||||
>
|
||||
<object
|
||||
data={"/birt/run?__report=report/one/mcu/rpt_executive_summary_mcu_001.rptdesign&__format=pdf&PID="+McuID+"&username=admin&tm=1722914077866"}
|
||||
type="application/pdf" width="100%" height="100%"
|
||||
></object>
|
||||
</div>
|
||||
<div
|
||||
class="tab-pane fade" role="tabpanel"
|
||||
id={"mcu_tab_" + strconv.Itoa(len(McuTab) + 4)}
|
||||
aria-labelledby={"mcu_tab_" + strconv.Itoa(len(McuTab) + 4)}
|
||||
hx-get={"/corp/dashboard_pic/detail/" + McuID +"/tabkeuangan"}
|
||||
hx-target="#tabkeuangan"
|
||||
hx-trigger="load"
|
||||
hx-indicator=".uangloading"
|
||||
>
|
||||
<div id="tabkeuangan"></div>
|
||||
<div style="display: flex; justify-content: center; align-items: center;">
|
||||
<span class="htmx-indicator spinner-border spinner-border-lg uangloading" role="status" aria-hidden="true"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
@@ -29,7 +29,7 @@ templ DialogReport(
|
||||
</div>
|
||||
}
|
||||
|
||||
templ ModalBody(
|
||||
templ ModalRptBody(
|
||||
IDComponent string,
|
||||
tabComponent templ.Component,
|
||||
hxOnLoad templ.ComponentScript,
|
||||
@@ -62,7 +62,7 @@ templ ModalClose(LinkClose string, hxTarget string, hxSwap string, modalID strin
|
||||
templ TabReportView(
|
||||
datamcu []models.TabViewReportMcu,
|
||||
) {
|
||||
<div>
|
||||
<div class="container-rpt">
|
||||
<ul class="nav nav-tabs nav-tabs-line">
|
||||
for i, v := range datamcu {
|
||||
if i == 0 {
|
||||
@@ -90,35 +90,4 @@ templ TabReportView(
|
||||
}
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
// <div>
|
||||
// <ul class="nav nav-tabs nav-tabs-line">
|
||||
// <li class="nav-item">
|
||||
// <a class="nav-link active" data-toggle="tab" href="#kt_tab_pat_1">Hasil Lab</a>
|
||||
// </li>
|
||||
// <li class="nav-item">
|
||||
// <a class="nav-link" data-toggle="tab" href="#kt_tab_pat_2">Hasil Non Lab</a>
|
||||
// </li>
|
||||
// <li class="nav-item">
|
||||
// <a class="nav-link" data-toggle="tab" href="#kt_tab_pat_3">Hasil Fisik</a>
|
||||
// </li>
|
||||
// <li class="nav-item">
|
||||
// <a class="nav-link" data-toggle="tab" href="#kt_tab_pat_4">Resume Individu</a>
|
||||
// </li>
|
||||
// </ul>
|
||||
// </div>
|
||||
// <div class="tab-content mt-5" id="patTabContent">
|
||||
// <div class="tab-pane fade show active" id="kt_tab_pat_1" role="tabpanel" aria-labelledby="kt_tab_pat_1" style="height: 700px;">
|
||||
// <object data={"https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/rpt_mcu_history.rptdesign&__format=pdf&PID=5&PPatientID=112&username=adhi&tm=1717726294764"} type="application/pdf" width="100%" height="100%"></object>
|
||||
// </div>
|
||||
// <div class="tab-pane fade" id="kt_tab_pat_2" role="tabpanel" aria-labelledby="kt_tab_pat_2" style="height: 700px;">
|
||||
// <object data={"https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/mcu_pajanan.rptdesign&__format=pdf&PID=5&PType=fisik&username=adhi&tm=1717726294764"} type="application/pdf" width="100%" height="100%"></object>
|
||||
// </div>
|
||||
// <div class="tab-pane fade" id="kt_tab_pat_3" role="tabpanel" aria-labelledby="kt_tab_pat_3" style="height: 700px;">
|
||||
// <object data={"https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/mcu_fisik.rptdesign&__format=pdf&PID=5&PType=fisik&username=adhi&tm=1717726294764"} type="application/pdf" width="100%" height="100%"></object>
|
||||
// </div>
|
||||
// <div class="tab-pane fade" id="kt_tab_pat_4" role="tabpanel" aria-labelledby="kt_tab_pat_4" style="height: 700px;">
|
||||
// <object data={"https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/rpt_mcu_resume.rptdesign&__format=pdf&PID=1&username=adhi&tm=1717726294764"} type="application/pdf" width="100%" height="100%"></object>
|
||||
// </div>
|
||||
// </div>
|
||||
}
|
||||
@@ -86,7 +86,7 @@ func DialogReport(
|
||||
})
|
||||
}
|
||||
|
||||
func ModalBody(
|
||||
func ModalRptBody(
|
||||
IDComponent string,
|
||||
tabComponent templ.Component,
|
||||
hxOnLoad templ.ComponentScript,
|
||||
@@ -220,7 +220,7 @@ func TabReportView(
|
||||
templ_7745c5c3_Var9 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div><ul class=\"nav nav-tabs nav-tabs-line\">")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"container-rpt\"><ul class=\"nav nav-tabs nav-tabs-line\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -386,34 +386,3 @@ func TabReportView(
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
// <div>
|
||||
// <ul class="nav nav-tabs nav-tabs-line">
|
||||
// <li class="nav-item">
|
||||
// <a class="nav-link active" data-toggle="tab" href="#kt_tab_pat_1">Hasil Lab</a>
|
||||
// </li>
|
||||
// <li class="nav-item">
|
||||
// <a class="nav-link" data-toggle="tab" href="#kt_tab_pat_2">Hasil Non Lab</a>
|
||||
// </li>
|
||||
// <li class="nav-item">
|
||||
// <a class="nav-link" data-toggle="tab" href="#kt_tab_pat_3">Hasil Fisik</a>
|
||||
// </li>
|
||||
// <li class="nav-item">
|
||||
// <a class="nav-link" data-toggle="tab" href="#kt_tab_pat_4">Resume Individu</a>
|
||||
// </li>
|
||||
// </ul>
|
||||
// </div>
|
||||
// <div class="tab-content mt-5" id="patTabContent">
|
||||
// <div class="tab-pane fade show active" id="kt_tab_pat_1" role="tabpanel" aria-labelledby="kt_tab_pat_1" style="height: 700px;">
|
||||
// <object data={"https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/rpt_mcu_history.rptdesign&__format=pdf&PID=5&PPatientID=112&username=adhi&tm=1717726294764"} type="application/pdf" width="100%" height="100%"></object>
|
||||
// </div>
|
||||
// <div class="tab-pane fade" id="kt_tab_pat_2" role="tabpanel" aria-labelledby="kt_tab_pat_2" style="height: 700px;">
|
||||
// <object data={"https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/mcu_pajanan.rptdesign&__format=pdf&PID=5&PType=fisik&username=adhi&tm=1717726294764"} type="application/pdf" width="100%" height="100%"></object>
|
||||
// </div>
|
||||
// <div class="tab-pane fade" id="kt_tab_pat_3" role="tabpanel" aria-labelledby="kt_tab_pat_3" style="height: 700px;">
|
||||
// <object data={"https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/mcu_fisik.rptdesign&__format=pdf&PID=5&PType=fisik&username=adhi&tm=1717726294764"} type="application/pdf" width="100%" height="100%"></object>
|
||||
// </div>
|
||||
// <div class="tab-pane fade" id="kt_tab_pat_4" role="tabpanel" aria-labelledby="kt_tab_pat_4" style="height: 700px;">
|
||||
// <object data={"https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/rpt_mcu_resume.rptdesign&__format=pdf&PID=1&username=adhi&tm=1717726294764"} type="application/pdf" width="100%" height="100%"></object>
|
||||
// </div>
|
||||
// </div>
|
||||
|
||||
117
views/corporate/mcu/mcutab/modalgeneratepass.templ
Normal file
117
views/corporate/mcu/mcutab/modalgeneratepass.templ
Normal file
@@ -0,0 +1,117 @@
|
||||
package corporate_mcudetail
|
||||
|
||||
import "cpone/component/modal"
|
||||
import "cpone/models"
|
||||
import "cpone/component/customtextfield"
|
||||
|
||||
templ DialogGeneratePass(
|
||||
IDComponent string,
|
||||
postLink string,
|
||||
hxTarget string,
|
||||
hxSwap string,
|
||||
hxInclude string,
|
||||
modalID string,
|
||||
modalTitle string,
|
||||
modalBody templ.Component,
|
||||
modalClose templ.Component,
|
||||
modalAction templ.Component,
|
||||
) {
|
||||
<div>
|
||||
<form
|
||||
id={ IDComponent }
|
||||
class="form"
|
||||
hx-post={ postLink }
|
||||
hx-target={ hxTarget }
|
||||
hx-swap={ hxSwap }
|
||||
hx-include={ hxInclude }
|
||||
hx-indicator=".formloading"
|
||||
>
|
||||
@modalcomponent.Modal(modalID,
|
||||
modalTitle,
|
||||
modalBody,
|
||||
modalAction,
|
||||
modalClose,
|
||||
)
|
||||
</form>
|
||||
</div>
|
||||
}
|
||||
|
||||
script HandleFormBeforeRequest() {
|
||||
const btnCancel = document.querySelectorAll('.btncancel');
|
||||
const btnSimpan = document.querySelectorAll('.btnsimpan');
|
||||
|
||||
for (let i = 0; i < btnCancel.length; i++) {
|
||||
btnCancel[i].setAttribute('disabled', 'true');
|
||||
}
|
||||
for (let i = 0; i < btnSimpan.length; i++) {
|
||||
btnSimpan[i].setAttribute('disabled', 'true');
|
||||
}
|
||||
}
|
||||
|
||||
script HandleFormAfterRequest() {
|
||||
const btnCancel = document.querySelectorAll('.btncancel');
|
||||
const btnSimpan = document.querySelectorAll('.btnsimpan');
|
||||
|
||||
for (let i = 0; i < btnCancel.length; i++) {
|
||||
btnCancel[i].removeAttribute('disabled');
|
||||
}
|
||||
for (let i = 0; i < btnSimpan.length; i++) {
|
||||
btnSimpan[i].removeAttribute('disabled');
|
||||
}
|
||||
}
|
||||
|
||||
templ ModalGenPassBody(
|
||||
IDComponent string,
|
||||
message string,
|
||||
hxOnLoad templ.ComponentScript,
|
||||
) {
|
||||
<div id={ IDComponent } hx-on::load={ hxOnLoad }>
|
||||
<p>{ message }</p>
|
||||
</div>
|
||||
}
|
||||
|
||||
templ ModalGenPassAction(LinkClose string, targetClose string, hxSwapClose string, modalID string) {
|
||||
<div>
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-outline-secondary font-weight-bolder rounded-lg mr-4 btncancel"
|
||||
data-dismiss="modal"
|
||||
hx-on::after-request={ JsHideModal(modalID) }
|
||||
hx-post={ LinkClose }
|
||||
hx-target={ targetClose }
|
||||
hx-swap={ hxSwapClose }
|
||||
hx-indicator=".cancelloading"
|
||||
>
|
||||
<span class="htmx-indicator spinner-border spinner-border-sm cancelloading" role="status" aria-hidden="true"></span>
|
||||
Batal
|
||||
</button>
|
||||
<button
|
||||
type="submit"
|
||||
class="btn btn-primary btn-shadow font-weight-bold rounded-lg btnsimpan"
|
||||
>
|
||||
<span class="htmx-indicator spinner-border spinner-border-sm formloading" role="status" aria-hidden="true"></span>
|
||||
Yakin
|
||||
</button>
|
||||
</div>
|
||||
}
|
||||
|
||||
script JsGenPassReload(modalID string, link string) {
|
||||
$(modalID).modal('hide');
|
||||
htmx.ajax('POST', link, {target:'#contentlayout', swap:'outerHTML'});
|
||||
}
|
||||
|
||||
templ ModalViewAkunBody(
|
||||
IDComponent string,
|
||||
akunID models.CustomTextFieldv2Prm,
|
||||
akunEmail models.CustomTextFieldv2Prm,
|
||||
newPass models.CustomTextFieldv2Prm,
|
||||
newPassCek models.CustomTextFieldv2Prm,
|
||||
hxOnLoad templ.ComponentScript,
|
||||
) {
|
||||
<div id={ IDComponent } hx-on::load={ hxOnLoad }>
|
||||
@customtextfield.CustomTextFieldv2(akunID)
|
||||
@customtextfield.CustomTextFieldv2(akunEmail)
|
||||
@customtextfield.CustomTextFieldv2(newPass)
|
||||
@customtextfield.CustomTextFieldv2(newPassCek)
|
||||
</div>
|
||||
}
|
||||
399
views/corporate/mcu/mcutab/modalgeneratepass_templ.go
Normal file
399
views/corporate/mcu/mcutab/modalgeneratepass_templ.go
Normal file
@@ -0,0 +1,399 @@
|
||||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.2.663
|
||||
package corporate_mcudetail
|
||||
|
||||
//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/component/modal"
|
||||
import "cpone/models"
|
||||
import "cpone/component/customtextfield"
|
||||
|
||||
func DialogGeneratePass(
|
||||
IDComponent string,
|
||||
postLink string,
|
||||
hxTarget string,
|
||||
hxSwap string,
|
||||
hxInclude string,
|
||||
modalID string,
|
||||
modalTitle string,
|
||||
modalBody templ.Component,
|
||||
modalClose templ.Component,
|
||||
modalAction 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_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><form id=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var2 string
|
||||
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(IDComponent)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\modalgeneratepass.templ`, Line: 21, Col: 28}
|
||||
}
|
||||
_, 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("\" class=\"form\" hx-post=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var3 string
|
||||
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(postLink)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\modalgeneratepass.templ`, Line: 23, Col: 30}
|
||||
}
|
||||
_, 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("\" hx-target=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var4 string
|
||||
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(hxTarget)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\modalgeneratepass.templ`, Line: 24, Col: 32}
|
||||
}
|
||||
_, 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("\" hx-swap=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var5 string
|
||||
templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(hxSwap)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\modalgeneratepass.templ`, Line: 25, Col: 28}
|
||||
}
|
||||
_, 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("\" hx-include=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var6 string
|
||||
templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(hxInclude)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\modalgeneratepass.templ`, Line: 26, Col: 34}
|
||||
}
|
||||
_, 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("\" hx-indicator=\".formloading\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = modalcomponent.Modal(modalID,
|
||||
modalTitle,
|
||||
modalBody,
|
||||
modalAction,
|
||||
modalClose,
|
||||
).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</form></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 HandleFormBeforeRequest() templ.ComponentScript {
|
||||
return templ.ComponentScript{
|
||||
Name: `__templ_HandleFormBeforeRequest_21b5`,
|
||||
Function: `function __templ_HandleFormBeforeRequest_21b5(){const btnCancel = document.querySelectorAll('.btncancel');
|
||||
const btnSimpan = document.querySelectorAll('.btnsimpan');
|
||||
|
||||
for (let i = 0; i < btnCancel.length; i++) {
|
||||
btnCancel[i].setAttribute('disabled', 'true');
|
||||
}
|
||||
for (let i = 0; i < btnSimpan.length; i++) {
|
||||
btnSimpan[i].setAttribute('disabled', 'true');
|
||||
}
|
||||
}`,
|
||||
Call: templ.SafeScript(`__templ_HandleFormBeforeRequest_21b5`),
|
||||
CallInline: templ.SafeScriptInline(`__templ_HandleFormBeforeRequest_21b5`),
|
||||
}
|
||||
}
|
||||
|
||||
func HandleFormAfterRequest() templ.ComponentScript {
|
||||
return templ.ComponentScript{
|
||||
Name: `__templ_HandleFormAfterRequest_568b`,
|
||||
Function: `function __templ_HandleFormAfterRequest_568b(){const btnCancel = document.querySelectorAll('.btncancel');
|
||||
const btnSimpan = document.querySelectorAll('.btnsimpan');
|
||||
|
||||
for (let i = 0; i < btnCancel.length; i++) {
|
||||
btnCancel[i].removeAttribute('disabled');
|
||||
}
|
||||
for (let i = 0; i < btnSimpan.length; i++) {
|
||||
btnSimpan[i].removeAttribute('disabled');
|
||||
}
|
||||
}`,
|
||||
Call: templ.SafeScript(`__templ_HandleFormAfterRequest_568b`),
|
||||
CallInline: templ.SafeScriptInline(`__templ_HandleFormAfterRequest_568b`),
|
||||
}
|
||||
}
|
||||
|
||||
func ModalGenPassBody(
|
||||
IDComponent string,
|
||||
message string,
|
||||
hxOnLoad templ.ComponentScript,
|
||||
) 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_Var7 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var7 == nil {
|
||||
templ_7745c5c3_Var7 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, hxOnLoad)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div id=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var8 string
|
||||
templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(IDComponent)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\modalgeneratepass.templ`, Line: 68, Col: 25}
|
||||
}
|
||||
_, 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-on::load=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var9 templ.ComponentScript = hxOnLoad
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var9.Call)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\"><p>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var10 string
|
||||
templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(message)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\modalgeneratepass.templ`, Line: 69, Col: 20}
|
||||
}
|
||||
_, 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("</p></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 ModalGenPassAction(LinkClose string, targetClose string, hxSwapClose string, modalID 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_Var11 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var11 == nil {
|
||||
templ_7745c5c3_Var11 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, JsHideModal(modalID))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<button type=\"button\" class=\"btn btn-outline-secondary font-weight-bolder rounded-lg mr-4 btncancel\" data-dismiss=\"modal\" hx-on::after-request=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var12 templ.ComponentScript = JsHideModal(modalID)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var12.Call)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-post=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var13 string
|
||||
templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(LinkClose)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\modalgeneratepass.templ`, Line: 80, Col: 31}
|
||||
}
|
||||
_, 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-target=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var14 string
|
||||
templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(targetClose)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\modalgeneratepass.templ`, Line: 81, Col: 35}
|
||||
}
|
||||
_, 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("\" hx-swap=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var15 string
|
||||
templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(hxSwapClose)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\modalgeneratepass.templ`, Line: 82, Col: 33}
|
||||
}
|
||||
_, 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-indicator=\".cancelloading\"><span class=\"htmx-indicator spinner-border spinner-border-sm cancelloading\" role=\"status\" aria-hidden=\"true\"></span> Batal\r</button> <button type=\"submit\" class=\"btn btn-primary btn-shadow font-weight-bold rounded-lg btnsimpan\"><span class=\"htmx-indicator spinner-border spinner-border-sm formloading\" role=\"status\" aria-hidden=\"true\"></span> Yakin\r</button></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 JsGenPassReload(modalID string, link string) templ.ComponentScript {
|
||||
return templ.ComponentScript{
|
||||
Name: `__templ_JsGenPassReload_f5ca`,
|
||||
Function: `function __templ_JsGenPassReload_f5ca(modalID, link){$(modalID).modal('hide');
|
||||
htmx.ajax('POST', link, {target:'#contentlayout', swap:'outerHTML'});
|
||||
}`,
|
||||
Call: templ.SafeScript(`__templ_JsGenPassReload_f5ca`, modalID, link),
|
||||
CallInline: templ.SafeScriptInline(`__templ_JsGenPassReload_f5ca`, modalID, link),
|
||||
}
|
||||
}
|
||||
|
||||
func ModalViewAkunBody(
|
||||
IDComponent string,
|
||||
akunID models.CustomTextFieldv2Prm,
|
||||
akunEmail models.CustomTextFieldv2Prm,
|
||||
newPass models.CustomTextFieldv2Prm,
|
||||
newPassCek models.CustomTextFieldv2Prm,
|
||||
hxOnLoad templ.ComponentScript,
|
||||
) 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_Var16 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var16 == nil {
|
||||
templ_7745c5c3_Var16 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Err = templ.RenderScriptItems(ctx, templ_7745c5c3_Buffer, hxOnLoad)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div id=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var17 string
|
||||
templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.JoinStringErrs(IDComponent)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\modalgeneratepass.templ`, Line: 111, Col: 25}
|
||||
}
|
||||
_, 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-on::load=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var18 templ.ComponentScript = hxOnLoad
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var18.Call)
|
||||
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 = customtextfield.CustomTextFieldv2(akunID).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(akunEmail).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(newPass).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(newPassCek).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
|
||||
})
|
||||
}
|
||||
@@ -9,8 +9,17 @@ templ TabDaftarPesertaScreen(
|
||||
paginationID string,
|
||||
dialogReportID string,
|
||||
dialogReportBodyID string,
|
||||
dialogGenPassID string,
|
||||
dialogGenPassBodyID string,
|
||||
dialogAkunID string,
|
||||
dialogAkunBodyID string,
|
||||
dialogDetailID string,
|
||||
dialogDetailBodyID string,
|
||||
content templ.Component,
|
||||
dialogReport templ.Component,
|
||||
dialogGenPass templ.Component,
|
||||
dialogViewAkun templ.Component,
|
||||
dialogDetail templ.Component,
|
||||
) {
|
||||
<div class="container-fluid">
|
||||
@customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "tableID",
|
||||
@@ -29,12 +38,55 @@ templ TabDaftarPesertaScreen(
|
||||
Name: "dialogReportBodyID",
|
||||
Type: "hidden",
|
||||
Value: dialogReportBodyID})
|
||||
<div class="d-flex justify-content-center pt-10 pb-10">
|
||||
<h2 class="title text-black" style="margin-bottom: 0">Daftar Peserta</h2>
|
||||
@customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogGenPassID",
|
||||
Name: "dialogGenPassID",
|
||||
Type: "hidden",
|
||||
Value: dialogGenPassID})
|
||||
@customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogGenPassBodyID",
|
||||
Name: "dialogGenPassBodyID",
|
||||
Type: "hidden",
|
||||
Value: dialogGenPassBodyID})
|
||||
@customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogAkunID",
|
||||
Name: "dialogAkunID",
|
||||
Type: "hidden",
|
||||
Value: dialogAkunID})
|
||||
@customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogAkunBodyID",
|
||||
Name: "dialogAkunBodyID",
|
||||
Type: "hidden",
|
||||
Value: dialogAkunBodyID})
|
||||
@customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogDetailID",
|
||||
Name: "dialogDetailID",
|
||||
Type: "hidden",
|
||||
Value: dialogDetailID})
|
||||
@customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogDetailBodyID",
|
||||
Name: "dialogDetailBodyID",
|
||||
Type: "hidden",
|
||||
Value: dialogDetailBodyID})
|
||||
<div class="row align-items-center justify-content-center py-10">
|
||||
<div class="col-md-2 col-sm-12 p-0">
|
||||
</div>
|
||||
<div class="col-md-8 col-sm-12 p-0">
|
||||
<h2 class="title text-black" style="margin-bottom: 0; text-align: center;">Daftar Peserta</h2>
|
||||
</div>
|
||||
<div class="col-md-2 d-none d-lg-block d-xl-block d-md-block d-sm-none">
|
||||
<div class="d-flex justify-content-end">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-primary"
|
||||
data-toggle="modal"
|
||||
data-target={"#" + dialogGenPassID}
|
||||
>
|
||||
Generate Password
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="loading-parent" class="rounded">
|
||||
@content
|
||||
@dialogReport
|
||||
@dialogGenPass
|
||||
@dialogViewAkun
|
||||
@dialogDetail
|
||||
<div id="loading-child" class="rounded bg-transparent">
|
||||
<div id="loading-spinner" class="spinner-border text-primary d-none" style="width: 3rem; height: 3rem;" role="status">
|
||||
<span class="sr-only">Loading...</span>
|
||||
@@ -46,6 +98,13 @@ templ TabDaftarPesertaScreen(
|
||||
}
|
||||
|
||||
templ CSSTabDaftarPeserta() {
|
||||
<style>
|
||||
.container-rpt {
|
||||
width: 100%;
|
||||
overflow-x: auto;
|
||||
white-space: nowrap;
|
||||
}
|
||||
</style>
|
||||
}
|
||||
|
||||
templ JsTabDaftarPeserta() {
|
||||
|
||||
@@ -19,8 +19,17 @@ func TabDaftarPesertaScreen(
|
||||
paginationID string,
|
||||
dialogReportID string,
|
||||
dialogReportBodyID string,
|
||||
dialogGenPassID string,
|
||||
dialogGenPassBodyID string,
|
||||
dialogAkunID string,
|
||||
dialogAkunBodyID string,
|
||||
dialogDetailID string,
|
||||
dialogDetailBodyID string,
|
||||
content templ.Component,
|
||||
dialogReport templ.Component,
|
||||
dialogGenPass templ.Component,
|
||||
dialogViewAkun templ.Component,
|
||||
dialogDetail 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)
|
||||
@@ -66,7 +75,62 @@ func TabDaftarPesertaScreen(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"d-flex justify-content-center pt-10 pb-10\"><h2 class=\"title text-black\" style=\"margin-bottom: 0\">Daftar Peserta</h2></div><div id=\"loading-parent\" class=\"rounded\">")
|
||||
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogGenPassID",
|
||||
Name: "dialogGenPassID",
|
||||
Type: "hidden",
|
||||
Value: dialogGenPassID}).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogGenPassBodyID",
|
||||
Name: "dialogGenPassBodyID",
|
||||
Type: "hidden",
|
||||
Value: dialogGenPassBodyID}).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogAkunID",
|
||||
Name: "dialogAkunID",
|
||||
Type: "hidden",
|
||||
Value: dialogAkunID}).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogAkunBodyID",
|
||||
Name: "dialogAkunBodyID",
|
||||
Type: "hidden",
|
||||
Value: dialogAkunBodyID}).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogDetailID",
|
||||
Name: "dialogDetailID",
|
||||
Type: "hidden",
|
||||
Value: dialogDetailID}).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = customtextfield.CustomTextFieldv2(models.CustomTextFieldv2Prm{ID: "dialogDetailBodyID",
|
||||
Name: "dialogDetailBodyID",
|
||||
Type: "hidden",
|
||||
Value: dialogDetailBodyID}).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 justify-content-center py-10\"><div class=\"col-md-2 col-sm-12 p-0\"></div><div class=\"col-md-8 col-sm-12 p-0\"><h2 class=\"title text-black\" style=\"margin-bottom: 0; text-align: center;\">Daftar Peserta</h2></div><div class=\"col-md-2 d-none d-lg-block d-xl-block d-md-block d-sm-none\"><div class=\"d-flex justify-content-end\"><button type=\"button\" class=\"btn btn-primary\" data-toggle=\"modal\" data-target=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var2 string
|
||||
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs("#" + dialogGenPassID)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabdaftarpeserta.templ`, Line: 77, Col: 58}
|
||||
}
|
||||
_, 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("\">Generate Password\r</button></div></div></div><div id=\"loading-parent\" class=\"rounded\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -78,6 +142,18 @@ func TabDaftarPesertaScreen(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = dialogGenPass.Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = dialogViewAkun.Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = dialogDetail.Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div id=\"loading-child\" class=\"rounded bg-transparent\"><div id=\"loading-spinner\" class=\"spinner-border text-primary d-none\" style=\"width: 3rem; height: 3rem;\" role=\"status\"><span class=\"sr-only\">Loading...</span></div></div></div><div id=\"loadingcontent\"></div></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
@@ -97,11 +173,15 @@ func CSSTabDaftarPeserta() templ.Component {
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var2 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var2 == nil {
|
||||
templ_7745c5c3_Var2 = templ.NopComponent
|
||||
templ_7745c5c3_Var3 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var3 == nil {
|
||||
templ_7745c5c3_Var3 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<style>\r\n .container-rpt {\r\n width: 100%;\r\n overflow-x: auto;\r\n white-space: nowrap;\r\n }\r\n </style>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
@@ -117,9 +197,9 @@ func JsTabDaftarPeserta() templ.Component {
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var3 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var3 == nil {
|
||||
templ_7745c5c3_Var3 = templ.NopComponent
|
||||
templ_7745c5c3_Var4 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var4 == nil {
|
||||
templ_7745c5c3_Var4 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
@@ -176,12 +256,12 @@ func ShowTabDafterPeserta(
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var4 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var4 == nil {
|
||||
templ_7745c5c3_Var4 = templ.NopComponent
|
||||
templ_7745c5c3_Var5 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var5 == nil {
|
||||
templ_7745c5c3_Var5 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Var5 := templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Var6 := 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()
|
||||
@@ -196,7 +276,7 @@ func ShowTabDafterPeserta(
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
templ_7745c5c3_Err = layout.PlaygroundLayout(title, css, js).Render(templ.WithChildren(ctx, templ_7745c5c3_Var5), templ_7745c5c3_Buffer)
|
||||
templ_7745c5c3_Err = layout.PlaygroundLayout(title, css, js).Render(templ.WithChildren(ctx, templ_7745c5c3_Var6), templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
||||
@@ -3,11 +3,11 @@ package corporate_mcudetail
|
||||
templ Tabkelainanfisik(
|
||||
chartsxs []templ.Component,
|
||||
chartsmd []templ.Component,
|
||||
chartslg []templ.Component,
|
||||
chartslg []templ.Component,
|
||||
) {
|
||||
<div class="container-fluid">
|
||||
<div class="d-flex justify-content-center py-10">
|
||||
<h2 class="title text-black" style="margin-bottom: 0;">Data Presentase Kelainan Fisik</h2>
|
||||
<h2 class="title text-black" style="margin-bottom: 0;">Data Kelainan Fisik</h2>
|
||||
</div>
|
||||
|
||||
// xs
|
||||
@@ -28,7 +28,7 @@ templ Tabkelainanfisik(
|
||||
<div class="col-12 my-4">
|
||||
@ChartCard(c)
|
||||
</div>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -36,7 +36,7 @@ templ Tabkelainanfisik(
|
||||
<div class="d-none d-lg-block">
|
||||
<div class="row justify-content-center">
|
||||
for _, c := range chartslg {
|
||||
<div class="col-6 my-4">
|
||||
<div class="m-4" style="width: 47%;">
|
||||
@ChartCard(c)
|
||||
</div>
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ func Tabkelainanfisik(
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"container-fluid\"><div class=\"d-flex justify-content-center py-10\"><h2 class=\"title text-black\" style=\"margin-bottom: 0;\">Data Presentase Kelainan Fisik</h2></div><div class=\"d-xs-block d-sm-block d-md-none\"><div class=\"row justify-content-center\">")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"container-fluid\"><div class=\"d-flex justify-content-center py-10\"><h2 class=\"title text-black\" style=\"margin-bottom: 0;\">Data Kelainan Fisik</h2></div><div class=\"d-xs-block d-sm-block d-md-none\"><div class=\"row justify-content-center\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -68,7 +68,7 @@ func Tabkelainanfisik(
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
for _, c := range chartslg {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"col-6 my-4\">")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"m-4\" style=\"width: 47%;\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ templ TabKelainanGlobal(
|
||||
<div class="d-none d-lg-block">
|
||||
<div class="row justify-content-center">
|
||||
for _, c := range chartslg {
|
||||
<div class="col-12 my-4">
|
||||
<div class="m-4" style="width: 100%;">
|
||||
@ChartCard(c)
|
||||
</div>
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ func TabKelainanGlobal(
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
for _, c := range chartslg {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"col-12 my-4\">")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"m-4\" style=\"width: 100%;\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package corporate_mcudetail
|
||||
|
||||
templ TabKelainanLab(
|
||||
chartpresentaselg templ.Component,
|
||||
chartsxs []templ.Component,
|
||||
chartsmd []templ.Component,
|
||||
chartslg []templ.Component,
|
||||
@@ -36,11 +35,17 @@ templ TabKelainanLab(
|
||||
// lg
|
||||
<div class="d-none d-lg-block">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-12 my-4">
|
||||
@ChartCard(chartpresentaselg)
|
||||
</div>
|
||||
for _, c := range chartslg{
|
||||
<div class="col-6 my-4">
|
||||
for _, c := range chartslg {
|
||||
// if i == 0 {
|
||||
// <div class="col-12 my-4">
|
||||
// @ChartCard(c)
|
||||
// </div>
|
||||
// } else {
|
||||
// <div class="col-6 my-4">
|
||||
// @ChartCard(c)
|
||||
// </div>
|
||||
// }
|
||||
<div class="m-4" style="width: 47%;">
|
||||
@ChartCard(c)
|
||||
</div>
|
||||
}
|
||||
|
||||
@@ -11,7 +11,6 @@ import "io"
|
||||
import "bytes"
|
||||
|
||||
func TabKelainanLab(
|
||||
chartpresentaselg templ.Component,
|
||||
chartsxs []templ.Component,
|
||||
chartsmd []templ.Component,
|
||||
chartslg []templ.Component,
|
||||
@@ -64,20 +63,12 @@ func TabKelainanLab(
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div></div><div class=\"d-none d-lg-block\"><div class=\"row justify-content-center\"><div class=\"col-12 my-4\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = ChartCard(chartpresentaselg).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div>")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div></div><div class=\"d-none d-lg-block\"><div class=\"row justify-content-center\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
for _, c := range chartslg {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"col-6 my-4\">")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(" <div class=\"m-4\" style=\"width: 47%;\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
package corporate_mcudetail
|
||||
|
||||
templ TabKelainanNonLab(
|
||||
// chartpresentase templ.Component,
|
||||
// chartthorax templ.Component,
|
||||
chartsxs []templ.Component,
|
||||
chartsmd []templ.Component,
|
||||
chartslg []templ.Component,
|
||||
@@ -37,22 +35,8 @@ templ TabKelainanNonLab(
|
||||
// lg
|
||||
<div class="d-none d-lg-block">
|
||||
<div class="row justify-content-center">
|
||||
// <div class="col-12 my-4">
|
||||
// <div class="card shadow p-4" style="display: flex; justify-content: center; align-items: center; height: 100%;">
|
||||
// <div class="d-flex flex-column pt-8">
|
||||
// @chartpresentase
|
||||
// </div>
|
||||
// </div>
|
||||
// </div>
|
||||
// <div class="col-12 my-4">
|
||||
// <div class="card shadow p-4" style="display: flex; justify-content: center; align-items: center; height: 100%;">
|
||||
// <div class="d-flex flex-column pt-8">
|
||||
// @chartthorax
|
||||
// </div>
|
||||
// </div>
|
||||
// </div>
|
||||
for _, c := range chartslg {
|
||||
<div class="col-12 my-4">
|
||||
<div class="m-4" style="width: 47%;">
|
||||
@ChartCard(c)
|
||||
</div>
|
||||
}
|
||||
|
||||
@@ -11,8 +11,6 @@ import "io"
|
||||
import "bytes"
|
||||
|
||||
func TabKelainanNonLab(
|
||||
// chartpresentase templ.Component,
|
||||
// chartthorax templ.Component,
|
||||
chartsxs []templ.Component,
|
||||
chartsmd []templ.Component,
|
||||
chartslg []templ.Component,
|
||||
@@ -70,7 +68,7 @@ func TabKelainanNonLab(
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
for _, c := range chartslg {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"col-12 my-4\">")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"m-4\" style=\"width: 47%;\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ templ TabKepesertaan(
|
||||
<div class="d-none d-lg-block">
|
||||
<div class="row justify-content-center">
|
||||
for _, c := range chartslg {
|
||||
<div class="col-6 my-4">
|
||||
<div class="m-4" style="width: 47%;">
|
||||
@ChartCard(c)
|
||||
</div>
|
||||
}
|
||||
@@ -48,8 +48,8 @@ templ TabKepesertaan(
|
||||
templ ChartCard(
|
||||
charts templ.Component,
|
||||
) {
|
||||
<div class="card shadow p-4" style="display: flex; justify-content: center; align-items: center; height: 100%;">
|
||||
<div class="d-flex flex-column pt-8">
|
||||
<div class="card shadow p-4" style="display: flex; justify-content: center; align-items: center; height: 100%; width: 100%;">
|
||||
<div class="d-flex flex-column pt-8" style="width: 100%;">
|
||||
@charts
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -68,7 +68,7 @@ func TabKepesertaan(
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
for _, c := range chartslg {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"col-6 my-4\">")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"m-4\" style=\"width: 47%;\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -107,7 +107,7 @@ func ChartCard(
|
||||
templ_7745c5c3_Var2 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"card shadow p-4\" style=\"display: flex; justify-content: center; align-items: center; height: 100%;\"><div class=\"d-flex flex-column pt-8\">")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"card shadow p-4\" style=\"display: flex; justify-content: center; align-items: center; height: 100%; width: 100%;\"><div class=\"d-flex flex-column pt-8\" style=\"width: 100%;\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
||||
@@ -16,9 +16,9 @@ templ MainKesimpulan(
|
||||
Name: "tableID",
|
||||
Type: "hidden",
|
||||
Value: tableID})
|
||||
<div class="d-flex justify-content-center pt-10 pb-10">
|
||||
<h2 class="title text-black" style="margin-bottom: 0">Kesimpulan</h2>
|
||||
</div>
|
||||
<div class="d-flex justify-content-center py-10">
|
||||
<h2 class="title text-black" style="margin-bottom: 0;">Kesimpulan</h2>
|
||||
</div>
|
||||
@tablecontent
|
||||
@tablecontentnonlab
|
||||
@tablecontentfisik
|
||||
|
||||
@@ -44,7 +44,7 @@ func MainKesimpulan(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"d-flex justify-content-center pt-10 pb-10\"><h2 class=\"title text-black\" style=\"margin-bottom: 0\">Kesimpulan</h2></div>")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"d-flex justify-content-center py-10\"><h2 class=\"title text-black\" style=\"margin-bottom: 0;\">Kesimpulan</h2></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package corporate_mcudetail
|
||||
import (
|
||||
"cpone/component/table"
|
||||
"cpone/models"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
templ CardTableKesimpulan(title string, data []models.ModelKesimpulanLab, tableID string) {
|
||||
@@ -36,9 +37,9 @@ templ RowKesimpulan(data []models.ModelKesimpulanLab) {
|
||||
<td colspan="3" class="text-center">Data Tidak Ditemukan</td>
|
||||
</tr>
|
||||
}
|
||||
for _, v := range data {
|
||||
for idx, v := range data {
|
||||
<tr>
|
||||
<td>{ v.Nomor }</td>
|
||||
<td>{ strconv.Itoa(idx + 1) }</td>
|
||||
<td>{ v.Test }</td>
|
||||
<td>{ v.Total }</td>
|
||||
</tr>
|
||||
|
||||
@@ -13,6 +13,7 @@ import "bytes"
|
||||
import (
|
||||
"cpone/component/table"
|
||||
"cpone/models"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
func CardTableKesimpulan(title string, data []models.ModelKesimpulanLab, tableID string) templ.Component {
|
||||
@@ -35,7 +36,7 @@ func CardTableKesimpulan(title string, data []models.ModelKesimpulanLab, tableID
|
||||
var templ_7745c5c3_Var2 string
|
||||
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(title)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabkesimpulantable.templ`, Line: 12, Col: 11}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabkesimpulantable.templ`, Line: 13, Col: 11}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -81,7 +82,7 @@ func TableKesimpulan(data []models.ModelKesimpulanLab,
|
||||
var templ_7745c5c3_Var4 string
|
||||
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(tableID)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabkesimpulantable.templ`, Line: 25, Col: 18}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabkesimpulantable.templ`, Line: 26, Col: 18}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -128,15 +129,15 @@ func RowKesimpulan(data []models.ModelKesimpulanLab) templ.Component {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
for _, v := range data {
|
||||
for idx, v := range data {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<tr><td>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var6 string
|
||||
templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(v.Nomor)
|
||||
templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(strconv.Itoa(idx + 1))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabkesimpulantable.templ`, Line: 41, Col: 16}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabkesimpulantable.templ`, Line: 42, Col: 30}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -149,7 +150,7 @@ func RowKesimpulan(data []models.ModelKesimpulanLab) templ.Component {
|
||||
var templ_7745c5c3_Var7 string
|
||||
templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(v.Test)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabkesimpulantable.templ`, Line: 42, Col: 15}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabkesimpulantable.templ`, Line: 43, Col: 15}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -162,7 +163,7 @@ func RowKesimpulan(data []models.ModelKesimpulanLab) templ.Component {
|
||||
var templ_7745c5c3_Var8 string
|
||||
templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(v.Total)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabkesimpulantable.templ`, Line: 43, Col: 16}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabkesimpulantable.templ`, Line: 44, Col: 16}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
|
||||
@@ -2,6 +2,7 @@ package corporate_mcudetail
|
||||
|
||||
import "cpone/component/table"
|
||||
import "cpone/models"
|
||||
import "strconv"
|
||||
|
||||
|
||||
templ ContentLayout(
|
||||
@@ -17,29 +18,53 @@ templ ContentLayout(
|
||||
templ TableDaftarPeserta(
|
||||
data []models.ModelMcuDaftarPeserta,
|
||||
tableID string,
|
||||
hxGet string,
|
||||
hxTarget string,
|
||||
hxInclude string,
|
||||
hxSwap string,
|
||||
hxGetRpt string,
|
||||
hxTargetRpt string,
|
||||
hxIncludeRpt string,
|
||||
hxSwapRpt string,
|
||||
hxGetAcc string,
|
||||
hxTargetAcc string,
|
||||
hxIncludeAcc string,
|
||||
hxSwapAcc string,
|
||||
hxGetDetail string,
|
||||
hxTargetDetail string,
|
||||
hxIncludeDetail string,
|
||||
hxSwapDetail string,
|
||||
) {
|
||||
<div id={ tableID }>
|
||||
@tablecomponent.TableV3([]string{"NOLAB", "NAMA", "JENIS KELAMIN", "UMUR", "KESIMPULAN", "AKSI"},
|
||||
@tablecomponent.TableV3([]string{"NOMOR LAB", "NAMA", "JENIS KELAMIN", "UMUR", "NAMA PAKET", "AKSI"},
|
||||
[]string{"15%","20%","10%","10%","30%","15%"},
|
||||
ItemRow(data,
|
||||
hxGet,
|
||||
hxTarget,
|
||||
hxInclude,
|
||||
hxSwap,
|
||||
hxGetRpt,
|
||||
hxTargetRpt,
|
||||
hxIncludeRpt,
|
||||
hxSwapRpt,
|
||||
hxGetAcc,
|
||||
hxTargetAcc,
|
||||
hxIncludeAcc,
|
||||
hxSwapAcc,
|
||||
hxGetDetail,
|
||||
hxTargetDetail,
|
||||
hxIncludeDetail,
|
||||
hxSwapDetail,
|
||||
))
|
||||
</div>
|
||||
}
|
||||
|
||||
templ ItemRow(
|
||||
data []models.ModelMcuDaftarPeserta,
|
||||
hxGet string,
|
||||
hxTarget string,
|
||||
hxInclude string,
|
||||
hxSwap string,
|
||||
hxGetRpt string,
|
||||
hxTargetRpt string,
|
||||
hxIncludeRpt string,
|
||||
hxSwapRpt string,
|
||||
hxGetAcc string,
|
||||
hxTargetAcc string,
|
||||
hxIncludeAcc string,
|
||||
hxSwapAcc string,
|
||||
hxGetDetail string,
|
||||
hxTargetDetail string,
|
||||
hxIncludeDetail string,
|
||||
hxSwapDetail string,
|
||||
) {
|
||||
if len(data) == 0 {
|
||||
<tr>
|
||||
@@ -52,27 +77,21 @@ templ ItemRow(
|
||||
<td>{ v.M_PatientName }</td>
|
||||
<td>{ v.JenisKelamin }</td>
|
||||
<td>{ v.Age }</td>
|
||||
<td>{ v.List_Paket }</td>
|
||||
<td>
|
||||
// <div class="row align-items-center">
|
||||
// <div class="col-2 col-xl-2 col-lg-2 col-md-12 col-sm-12">
|
||||
// if v. == "Nanda Arisu" {
|
||||
// <span class="label label-xl label-rounded label-light-warning" style="width: 50px;">Unfit</span>
|
||||
// } else {
|
||||
// <span class="label label-xl label-rounded label-light-success" style="width: 50px;">Fit</span>
|
||||
// }
|
||||
// </div>
|
||||
// <div class="col-10 col-xl-10 col-lg-10 col-md-12 col-sm-12">
|
||||
// Lorem Ipsum In Dolor Ad Sasum Mara Naka Adhum In Horem
|
||||
// </div>
|
||||
// </div>
|
||||
-
|
||||
</td>
|
||||
<td>
|
||||
@ItemAction(v.T_OrderHeaderID,
|
||||
hxGet,
|
||||
hxTarget,
|
||||
hxInclude,
|
||||
hxSwap,
|
||||
@ItemAction(v,
|
||||
hxGetRpt,
|
||||
hxTargetRpt,
|
||||
hxIncludeRpt,
|
||||
hxSwapRpt,
|
||||
hxGetAcc,
|
||||
hxTargetAcc,
|
||||
hxIncludeAcc,
|
||||
hxSwapAcc,
|
||||
hxGetDetail,
|
||||
hxTargetDetail,
|
||||
hxIncludeDetail,
|
||||
hxSwapDetail,
|
||||
)
|
||||
</td>
|
||||
</tr>
|
||||
@@ -80,32 +99,95 @@ templ ItemRow(
|
||||
}
|
||||
|
||||
templ ItemAction(
|
||||
id string,
|
||||
hxGet string,
|
||||
hxTarget string,
|
||||
hxInclude string,
|
||||
hxSwap string,
|
||||
data models.ModelMcuDaftarPeserta,
|
||||
hxGetRpt string,
|
||||
hxTargetRpt string,
|
||||
hxIncludeRpt string,
|
||||
hxSwapRpt string,
|
||||
hxGetAcc string,
|
||||
hxTargetAcc string,
|
||||
hxIncludeAcc string,
|
||||
hxSwapAcc string,
|
||||
hxGetDetail string,
|
||||
hxTargetDetail string,
|
||||
hxIncludeDetail string,
|
||||
hxSwapDetail string,
|
||||
) {
|
||||
<div class="row px-5 d-flex justify-content-around">
|
||||
<a
|
||||
type="button"
|
||||
class="btn btn-icon"
|
||||
hx-get={ hxGet +"?idx=" + id }
|
||||
hx-target={ hxTarget }
|
||||
hx-swap={ hxSwap }
|
||||
hx-include={ hxInclude }
|
||||
title="Detail test dan paket"
|
||||
hx-get={ hxGetDetail +"?idx=" + data.T_OrderHeaderID }
|
||||
hx-target={ hxTargetDetail }
|
||||
hx-swap={ hxSwapDetail }
|
||||
hx-include={ hxIncludeDetail }
|
||||
>
|
||||
<i class="flaticon-doc"></i>
|
||||
<i class="flaticon2-list-1"></i>
|
||||
</a>
|
||||
// <a
|
||||
// class="btn btn-icon"
|
||||
// >
|
||||
// <i class="flaticon2-edit"></i>
|
||||
// </a>
|
||||
// <a
|
||||
// class="btn btn-icon"
|
||||
// >
|
||||
// <i class="la la-shield icon-xl"></i>
|
||||
// </a>
|
||||
<a
|
||||
type="button"
|
||||
class="btn btn-icon"
|
||||
hx-get={ hxGetRpt +"?idx=" + data.T_OrderHeaderID }
|
||||
hx-target={ hxTargetRpt }
|
||||
hx-swap={ hxSwapRpt }
|
||||
hx-include={ hxIncludeRpt }
|
||||
title="Laporan MCU"
|
||||
>
|
||||
<i class="flaticon2-file"></i>
|
||||
</a>
|
||||
if data.AuthPatientEmail != "none" {
|
||||
<a
|
||||
type="button"
|
||||
class="btn btn-icon"
|
||||
hx-get={ hxGetAcc + "?patid=" + data.M_PatientID }
|
||||
hx-target={ hxTargetAcc }
|
||||
hx-swap={ hxSwapAcc }
|
||||
hx-include={ hxIncludeAcc }
|
||||
title="Ganti password peserta"
|
||||
>
|
||||
<i class="flaticon2-edit"></i>
|
||||
</a>
|
||||
} else {
|
||||
<a
|
||||
type="button"
|
||||
class="btn btn-icon d-none"
|
||||
hx-get={ hxGetAcc + "?patid=" + data.M_PatientID }
|
||||
hx-target={ hxTargetAcc }
|
||||
hx-swap={ hxSwapAcc }
|
||||
hx-include={ hxIncludeAcc }
|
||||
>
|
||||
<i class="flaticon2-edit"></i>
|
||||
</a>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
|
||||
templ TableDetailMCU(
|
||||
data []models.TableTestPaket,
|
||||
) {
|
||||
<div id="table-detail-mcu" style="max-height: 700px; overflow-y: auto;">
|
||||
@tablecomponent.TableV3([]string{"NOMOR", "NAMA TEST", "NAMA PAKET"},
|
||||
[]string{"20%","40%","40%"},
|
||||
DetailRow(data),
|
||||
)
|
||||
</div>
|
||||
}
|
||||
|
||||
templ DetailRow(
|
||||
data []models.TableTestPaket,
|
||||
) {
|
||||
if len(data) == 0 {
|
||||
<tr>
|
||||
<td colspan="3" class="text-center">Data Tidak Ditemukan</td>
|
||||
</tr>
|
||||
}
|
||||
for _, v := range data {
|
||||
<tr>
|
||||
<td>{ strconv.Itoa(v.Nomor) }</td>
|
||||
<td>{ v.NamaTest }</td>
|
||||
<td>{ v.NamaPaket }</td>
|
||||
</tr>
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,7 @@ import "bytes"
|
||||
|
||||
import "cpone/component/table"
|
||||
import "cpone/models"
|
||||
import "strconv"
|
||||
|
||||
func ContentLayout(
|
||||
tablecomponent templ.Component,
|
||||
@@ -68,10 +69,18 @@ func ContentLayout(
|
||||
func TableDaftarPeserta(
|
||||
data []models.ModelMcuDaftarPeserta,
|
||||
tableID string,
|
||||
hxGet string,
|
||||
hxTarget string,
|
||||
hxInclude string,
|
||||
hxSwap string,
|
||||
hxGetRpt string,
|
||||
hxTargetRpt string,
|
||||
hxIncludeRpt string,
|
||||
hxSwapRpt string,
|
||||
hxGetAcc string,
|
||||
hxTargetAcc string,
|
||||
hxIncludeAcc string,
|
||||
hxSwapAcc string,
|
||||
hxGetDetail string,
|
||||
hxTargetDetail string,
|
||||
hxIncludeDetail string,
|
||||
hxSwapDetail 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)
|
||||
@@ -92,7 +101,7 @@ func TableDaftarPeserta(
|
||||
var templ_7745c5c3_Var4 string
|
||||
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(tableID)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 25, Col: 21}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 34, Col: 21}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -102,13 +111,21 @@ func TableDaftarPeserta(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = tablecomponent.TableV3([]string{"NOLAB", "NAMA", "JENIS KELAMIN", "UMUR", "KESIMPULAN", "AKSI"},
|
||||
templ_7745c5c3_Err = tablecomponent.TableV3([]string{"NOMOR LAB", "NAMA", "JENIS KELAMIN", "UMUR", "NAMA PAKET", "AKSI"},
|
||||
[]string{"15%", "20%", "10%", "10%", "30%", "15%"},
|
||||
ItemRow(data,
|
||||
hxGet,
|
||||
hxTarget,
|
||||
hxInclude,
|
||||
hxSwap,
|
||||
hxGetRpt,
|
||||
hxTargetRpt,
|
||||
hxIncludeRpt,
|
||||
hxSwapRpt,
|
||||
hxGetAcc,
|
||||
hxTargetAcc,
|
||||
hxIncludeAcc,
|
||||
hxSwapAcc,
|
||||
hxGetDetail,
|
||||
hxTargetDetail,
|
||||
hxIncludeDetail,
|
||||
hxSwapDetail,
|
||||
)).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
@@ -126,10 +143,18 @@ func TableDaftarPeserta(
|
||||
|
||||
func ItemRow(
|
||||
data []models.ModelMcuDaftarPeserta,
|
||||
hxGet string,
|
||||
hxTarget string,
|
||||
hxInclude string,
|
||||
hxSwap string,
|
||||
hxGetRpt string,
|
||||
hxTargetRpt string,
|
||||
hxIncludeRpt string,
|
||||
hxSwapRpt string,
|
||||
hxGetAcc string,
|
||||
hxTargetAcc string,
|
||||
hxIncludeAcc string,
|
||||
hxSwapAcc string,
|
||||
hxGetDetail string,
|
||||
hxTargetDetail string,
|
||||
hxIncludeDetail string,
|
||||
hxSwapDetail 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)
|
||||
@@ -157,7 +182,7 @@ func ItemRow(
|
||||
var templ_7745c5c3_Var6 string
|
||||
templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(v.T_OrderHeaderLabNumber)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 51, Col: 42}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 76, Col: 42}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -170,7 +195,7 @@ func ItemRow(
|
||||
var templ_7745c5c3_Var7 string
|
||||
templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(v.M_PatientName)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 52, Col: 33}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 77, Col: 33}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -183,7 +208,7 @@ func ItemRow(
|
||||
var templ_7745c5c3_Var8 string
|
||||
templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(v.JenisKelamin)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 53, Col: 32}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 78, Col: 32}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -196,21 +221,42 @@ func ItemRow(
|
||||
var templ_7745c5c3_Var9 string
|
||||
templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(v.Age)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 54, Col: 23}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 79, Col: 23}
|
||||
}
|
||||
_, 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("</td><td>-\r</td><td>")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</td><td>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = ItemAction(v.T_OrderHeaderID,
|
||||
hxGet,
|
||||
hxTarget,
|
||||
hxInclude,
|
||||
hxSwap,
|
||||
var templ_7745c5c3_Var10 string
|
||||
templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(v.List_Paket)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 80, Col: 30}
|
||||
}
|
||||
_, 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("</td><td>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = ItemAction(v,
|
||||
hxGetRpt,
|
||||
hxTargetRpt,
|
||||
hxIncludeRpt,
|
||||
hxSwapRpt,
|
||||
hxGetAcc,
|
||||
hxTargetAcc,
|
||||
hxIncludeAcc,
|
||||
hxSwapAcc,
|
||||
hxGetDetail,
|
||||
hxTargetDetail,
|
||||
hxIncludeDetail,
|
||||
hxSwapDetail,
|
||||
).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
@@ -228,11 +274,19 @@ func ItemRow(
|
||||
}
|
||||
|
||||
func ItemAction(
|
||||
id string,
|
||||
hxGet string,
|
||||
hxTarget string,
|
||||
hxInclude string,
|
||||
hxSwap string,
|
||||
data models.ModelMcuDaftarPeserta,
|
||||
hxGetRpt string,
|
||||
hxTargetRpt string,
|
||||
hxIncludeRpt string,
|
||||
hxSwapRpt string,
|
||||
hxGetAcc string,
|
||||
hxTargetAcc string,
|
||||
hxIncludeAcc string,
|
||||
hxSwapAcc string,
|
||||
hxGetDetail string,
|
||||
hxTargetDetail string,
|
||||
hxIncludeDetail string,
|
||||
hxSwapDetail 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)
|
||||
@@ -241,21 +295,21 @@ func ItemAction(
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var10 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var10 == nil {
|
||||
templ_7745c5c3_Var10 = templ.NopComponent
|
||||
templ_7745c5c3_Var11 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var11 == nil {
|
||||
templ_7745c5c3_Var11 = 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 btn-icon\" hx-get=\"")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"row px-5 d-flex justify-content-around\"><a type=\"button\" class=\"btn btn-icon\" title=\"Detail test dan paket\" hx-get=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var11 string
|
||||
templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(hxGet + "?idx=" + id)
|
||||
var templ_7745c5c3_Var12 string
|
||||
templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(hxGetDetail + "?idx=" + data.T_OrderHeaderID)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 93, Col: 40}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 121, Col: 64}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11))
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -263,12 +317,12 @@ func ItemAction(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var12 string
|
||||
templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(hxTarget)
|
||||
var templ_7745c5c3_Var13 string
|
||||
templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(hxTargetDetail)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 94, Col: 32}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 122, Col: 38}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -276,12 +330,12 @@ func ItemAction(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var13 string
|
||||
templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(hxSwap)
|
||||
var templ_7745c5c3_Var14 string
|
||||
templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(hxSwapDetail)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 95, Col: 28}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 123, Col: 34}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13))
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -289,16 +343,187 @@ func ItemAction(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var14 string
|
||||
templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(hxInclude)
|
||||
var templ_7745c5c3_Var15 string
|
||||
templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(hxIncludeDetail)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 96, Col: 34}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 124, Col: 40}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14))
|
||||
_, 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("\"><i class=\"flaticon-doc\"></i></a></div>")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\"><i class=\"flaticon2-list-1\"></i></a> <a type=\"button\" class=\"btn btn-icon\" hx-get=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var16 string
|
||||
templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.JoinStringErrs(hxGetRpt + "?idx=" + data.T_OrderHeaderID)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 131, Col: 61}
|
||||
}
|
||||
_, 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-target=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var17 string
|
||||
templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.JoinStringErrs(hxTargetRpt)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 132, Col: 35}
|
||||
}
|
||||
_, 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-swap=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var18 string
|
||||
templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.JoinStringErrs(hxSwapRpt)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 133, Col: 31}
|
||||
}
|
||||
_, 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("\" hx-include=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var19 string
|
||||
templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs(hxIncludeRpt)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 134, Col: 37}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" title=\"Laporan MCU\"><i class=\"flaticon2-file\"></i></a> ")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if data.AuthPatientEmail != "none" {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<a type=\"button\" class=\"btn btn-icon\" hx-get=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var20 string
|
||||
templ_7745c5c3_Var20, templ_7745c5c3_Err = templ.JoinStringErrs(hxGetAcc + "?patid=" + data.M_PatientID)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 143, Col: 64}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var20))
|
||||
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_Var21 string
|
||||
templ_7745c5c3_Var21, templ_7745c5c3_Err = templ.JoinStringErrs(hxTargetAcc)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 144, Col: 39}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var21))
|
||||
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_Var22 string
|
||||
templ_7745c5c3_Var22, templ_7745c5c3_Err = templ.JoinStringErrs(hxSwapAcc)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 145, Col: 35}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var22))
|
||||
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_Var23 string
|
||||
templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.JoinStringErrs(hxIncludeAcc)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 146, Col: 41}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var23))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" title=\"Ganti password peserta\"><i class=\"flaticon2-edit\"></i></a>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
} else {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<a type=\"button\" class=\"btn btn-icon d-none\" hx-get=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var24 string
|
||||
templ_7745c5c3_Var24, templ_7745c5c3_Err = templ.JoinStringErrs(hxGetAcc + "?patid=" + data.M_PatientID)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 155, Col: 64}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var24))
|
||||
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_Var25 string
|
||||
templ_7745c5c3_Var25, templ_7745c5c3_Err = templ.JoinStringErrs(hxTargetAcc)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 156, Col: 39}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var25))
|
||||
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_Var26 string
|
||||
templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.JoinStringErrs(hxSwapAcc)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 157, Col: 35}
|
||||
}
|
||||
_, 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("\" hx-include=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var27 string
|
||||
templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.JoinStringErrs(hxIncludeAcc)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 158, Col: 41}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var27))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\"><i class=\"flaticon2-edit\"></i></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
|
||||
}
|
||||
@@ -308,3 +533,113 @@ func ItemAction(
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func TableDetailMCU(
|
||||
data []models.TableTestPaket,
|
||||
) 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_Var28 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var28 == nil {
|
||||
templ_7745c5c3_Var28 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div id=\"table-detail-mcu\" style=\"max-height: 700px; overflow-y: auto;\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = tablecomponent.TableV3([]string{"NOMOR", "NAMA TEST", "NAMA PAKET"},
|
||||
[]string{"20%", "40%", "40%"},
|
||||
DetailRow(data),
|
||||
).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 DetailRow(
|
||||
data []models.TableTestPaket,
|
||||
) 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_Var29 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var29 == nil {
|
||||
templ_7745c5c3_Var29 = 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_Var30 string
|
||||
templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.JoinStringErrs(strconv.Itoa(v.Nomor))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 188, Col: 39}
|
||||
}
|
||||
_, 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("</td><td>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var31 string
|
||||
templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinStringErrs(v.NamaTest)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 189, Col: 28}
|
||||
}
|
||||
_, 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("</td><td>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var32 string
|
||||
templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.JoinStringErrs(v.NamaPaket)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab\tabledaftarpeserta.templ`, Line: 190, Col: 29}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var32))
|
||||
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
|
||||
})
|
||||
}
|
||||
|
||||
541
views/corporate/mcu/mcutab_templ.go
Normal file
541
views/corporate/mcu/mcutab_templ.go
Normal file
@@ -0,0 +1,541 @@
|
||||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.2.663
|
||||
package corporate_mcudetail
|
||||
|
||||
//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"
|
||||
|
||||
func McuDetailTabView(
|
||||
McuID string,
|
||||
McuTab []models.McuTabModels,
|
||||
) 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><ul class=\"nav nav-tabs nav-tabs-line\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
for i, d := range McuTab {
|
||||
if i == 0 {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<li class=\"nav-item\"><a class=\"nav-link active\" data-toggle=\"tab\" href=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var2 templ.SafeURL = templ.URL("#mcu_tab_" + strconv.Itoa(i))
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(string(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
|
||||
}
|
||||
var templ_7745c5c3_Var3 string
|
||||
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(d.TabName)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 19, Col: 36}
|
||||
}
|
||||
_, 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("</a></li>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
} else {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var4 templ.SafeURL = templ.URL("#mcu_tab_" + strconv.Itoa(i))
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(string(templ_7745c5c3_Var4)))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var5 string
|
||||
templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(d.TabName)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 27, Col: 36}
|
||||
}
|
||||
_, 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("</a></li>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<li class=\"nav-item\"><a")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if len(McuTab) == 0 {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(" class=\"nav-link active\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
} else {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(" class=\"nav-link\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(" data-toggle=\"tab\" href=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var6 templ.SafeURL = templ.URL("#mcu_tab_" + strconv.Itoa(len(McuTab)+1))
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(string(templ_7745c5c3_Var6)))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\">Kesimpulan</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var7 templ.SafeURL = templ.URL("#mcu_tab_" + strconv.Itoa(len(McuTab)+2))
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(string(templ_7745c5c3_Var7)))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\">Daftar Peserta</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var8 templ.SafeURL = templ.URL("#mcu_tab_" + strconv.Itoa(len(McuTab)+3))
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(string(templ_7745c5c3_Var8)))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\">Executive Summary</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var9 templ.SafeURL = templ.URL("#mcu_tab_" + strconv.Itoa(len(McuTab)+4))
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(string(templ_7745c5c3_Var9)))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\">Keuangan</a></li></ul></div><div class=\"tab-content mt-5\" id=\"mcutabcontent\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
for i, d := range McuTab {
|
||||
if i == 0 {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"tab-pane fade show active\" role=\"tabpanel\" id=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var10 string
|
||||
templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs("mcu_tab_" + strconv.Itoa(i))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 70, Col: 52}
|
||||
}
|
||||
_, 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("\" aria-labelledby=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var11 string
|
||||
templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs("mcu_tab_" + strconv.Itoa(i))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 71, Col: 65}
|
||||
}
|
||||
_, 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-get=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var12 string
|
||||
templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs("/corp/dashboard_pic/detail/" + McuID + "/" + d.TabID)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 72, Col: 80}
|
||||
}
|
||||
_, 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-target=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var13 string
|
||||
templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs("#" + d.TabID)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 73, Col: 44}
|
||||
}
|
||||
_, 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-trigger=\"load\" hx-indicator=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var14 string
|
||||
templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs("." + d.TabID + d.Mcu_ImageGrafikGroupMenu)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 75, Col: 76}
|
||||
}
|
||||
_, 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 id=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var15 string
|
||||
templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(d.TabID)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 77, Col: 36}
|
||||
}
|
||||
_, 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("\"></div><div style=\"display: flex; justify-content: center; align-items: center;\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var16 = []any{"htmx-indicator spinner-border spinner-border-lg " + d.TabID + d.Mcu_ImageGrafikGroupMenu}
|
||||
templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var16...)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<span class=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var17 string
|
||||
templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.JoinStringErrs(templ.CSSClasses(templ_7745c5c3_Var16).String())
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 1, Col: 0}
|
||||
}
|
||||
_, 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("\" role=\"status\" aria-hidden=\"true\"></span></div></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
} else {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"tab-pane fade\" role=\"tabpanel\" id=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var18 string
|
||||
templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.JoinStringErrs("mcu_tab_" + strconv.Itoa(i))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 85, Col: 52}
|
||||
}
|
||||
_, 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("\" aria-labelledby=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var19 string
|
||||
templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs("mcu_tab_" + strconv.Itoa(i))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 86, Col: 65}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-get=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var20 string
|
||||
templ_7745c5c3_Var20, templ_7745c5c3_Err = templ.JoinStringErrs("/corp/dashboard_pic/detail/" + McuID + "/" + d.TabID)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 87, Col: 80}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var20))
|
||||
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_Var21 string
|
||||
templ_7745c5c3_Var21, templ_7745c5c3_Err = templ.JoinStringErrs("#" + d.TabID)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 88, Col: 44}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var21))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-trigger=\"load\" hx-indicator=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var22 string
|
||||
templ_7745c5c3_Var22, templ_7745c5c3_Err = templ.JoinStringErrs("." + d.TabID + d.Mcu_ImageGrafikGroupMenu)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 90, Col: 76}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var22))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\"><div id=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var23 string
|
||||
templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.JoinStringErrs(d.TabID)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 92, Col: 36}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var23))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\"></div><div style=\"display: flex; justify-content: center; align-items: center;\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var24 = []any{"htmx-indicator spinner-border spinner-border-lg " + d.TabID + d.Mcu_ImageGrafikGroupMenu}
|
||||
templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var24...)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<span class=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var25 string
|
||||
templ_7745c5c3_Var25, templ_7745c5c3_Err = templ.JoinStringErrs(templ.CSSClasses(templ_7745c5c3_Var24).String())
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 1, Col: 0}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var25))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" role=\"status\" aria-hidden=\"true\"></span></div></div>")
|
||||
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 len(McuTab) == 0 {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(" class=\"tab-pane fade show active\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
} else {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(" class=\"tab-pane fade\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(" role=\"tabpanel\" id=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var26 string
|
||||
templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.JoinStringErrs("mcu_tab_" + strconv.Itoa(len(McuTab)+1))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 106, Col: 58}
|
||||
}
|
||||
_, 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("\" aria-labelledby=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var27 string
|
||||
templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.JoinStringErrs("mcu_tab_" + strconv.Itoa(len(McuTab)+1))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 107, Col: 71}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var27))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-get=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var28 string
|
||||
templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.JoinStringErrs("/corp/dashboard_pic/detail/" + McuID + "/tabkesimpulan")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 108, Col: 75}
|
||||
}
|
||||
_, 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=\"#tabkesimpulan\" hx-trigger=\"load\" hx-indicator=\".kesimpulanloading\"><div id=\"tabkesimpulan\"></div><div style=\"display: flex; justify-content: center; align-items: center;\"><span class=\"htmx-indicator spinner-border spinner-border-lg kesimpulanloading\" role=\"status\" aria-hidden=\"true\"></span></div></div><div class=\"tab-pane fade\" role=\"tabpanel\" id=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var29 string
|
||||
templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinStringErrs("mcu_tab_" + strconv.Itoa(len(McuTab)+2))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 120, Col: 58}
|
||||
}
|
||||
_, 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("\" aria-labelledby=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var30 string
|
||||
templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.JoinStringErrs("mcu_tab_" + strconv.Itoa(len(McuTab)+2))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 121, Col: 71}
|
||||
}
|
||||
_, 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-get=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var31 string
|
||||
templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinStringErrs("/corp/dashboard_pic/detail/" + McuID + "/tabdaftarpeserta")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 122, Col: 78}
|
||||
}
|
||||
_, 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("\" hx-target=\"#tabdaftarpeserta\" hx-trigger=\"load\" hx-indicator=\".tabdaftarpesertaload\"><div id=\"tabdaftarpeserta\"></div><div style=\"display: flex; justify-content: center; align-items: center;\"><span class=\"htmx-indicator spinner-border spinner-border-lg tabdaftarpesertaload\" role=\"status\" aria-hidden=\"true\"></span></div></div><div class=\"tab-pane fade\" role=\"tabpanel\" id=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var32 string
|
||||
templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.JoinStringErrs("mcu_tab_" + strconv.Itoa(len(McuTab)+3))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 134, Col: 58}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var32))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" aria-labelledby=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var33 string
|
||||
templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.JoinStringErrs("mcu_tab_" + strconv.Itoa(len(McuTab)+3))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 135, Col: 71}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var33))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" style=\"height: 700px;\"><object data=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var34 string
|
||||
templ_7745c5c3_Var34, templ_7745c5c3_Err = templ.JoinStringErrs("/birt/run?__report=report/one/mcu/rpt_executive_summary_mcu_001.rptdesign&__format=pdf&PID=" + McuID + "&username=admin&tm=1722914077866")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 139, Col: 156}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var34))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" type=\"application/pdf\" width=\"100%\" height=\"100%\"></object></div><div class=\"tab-pane fade\" role=\"tabpanel\" id=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var35 string
|
||||
templ_7745c5c3_Var35, templ_7745c5c3_Err = templ.JoinStringErrs("mcu_tab_" + strconv.Itoa(len(McuTab)+4))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 145, Col: 58}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var35))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" aria-labelledby=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var36 string
|
||||
templ_7745c5c3_Var36, templ_7745c5c3_Err = templ.JoinStringErrs("mcu_tab_" + strconv.Itoa(len(McuTab)+4))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 146, Col: 71}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var36))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-get=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var37 string
|
||||
templ_7745c5c3_Var37, templ_7745c5c3_Err = templ.JoinStringErrs("/corp/dashboard_pic/detail/" + McuID + "/tabkeuangan")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutab.templ`, Line: 147, Col: 73}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var37))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"#tabkeuangan\" hx-trigger=\"load\" hx-indicator=\".uangloading\"><div id=\"tabkeuangan\"></div><div style=\"display: flex; justify-content: center; align-items: center;\"><span class=\"htmx-indicator spinner-border spinner-border-lg uangloading\" role=\"status\" aria-hidden=\"true\"></span></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
|
||||
})
|
||||
}
|
||||
@@ -6,66 +6,85 @@ templ TabViewMcuDetail(
|
||||
<div>
|
||||
<ul class="nav nav-tabs nav-tabs-line">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" data-toggle="tab" href="#kt_tab_pane_1" hx-get={"/corp/dashboard_pic/detail/" + id +"/tabkepesertaan"} hx-target="#tabkepesertaan" hx-trigger="load">Peserta</a>
|
||||
<a class="nav-link active" data-toggle="tab" href="#kt_tab_pane_1" hx-get={"/corp/dashboard_pic/detail/" + id +"/tabkepesertaan"} hx-target="#tabkepesertaan" hx-trigger="load" hx-indicator=".kepesertaanloading">Peserta</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_2" hx-get={"/corp/dashboard_pic/detail/" + id +"/tabkelainanglobal"} hx-target="#tabkelainanglobal" hx-trigger="click">Kelainan global</a>
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_2" hx-get={"/corp/dashboard_pic/detail/" + id +"/tabkelainanglobal"} hx-target="#tabkelainanglobal" hx-trigger="load" hx-indicator=".globalloading">Kelainan global</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_3" hx-get={"/corp/dashboard_pic/detail/" + id +"/tabkelainanlab"} hx-target="#tabkelainanlab" hx-trigger="click">Kelainan Lab</a>
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_3" hx-get={"/corp/dashboard_pic/detail/" + id +"/tabkelainanlab"} hx-target="#tabkelainanlab" hx-trigger="load" hx-indicator=".labloading">Kelainan Lab</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_4" hx-get={"/corp/dashboard_pic/detail/" + id +"/tabkelainannonlab"} hx-target="#tabkelainannonlab" hx-trigger="click">kelainan Non Lab</a>
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_4" hx-get={"/corp/dashboard_pic/detail/" + id +"/tabkelainannonlab"} hx-target="#tabkelainannonlab" hx-trigger="load" hx-indicator=".nonlabloading">kelainan Non Lab</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_5" hx-get={"/corp/dashboard_pic/detail/" + id +"/tabkelainanfisik"} hx-target="#tabkelainanfisik" hx-trigger="click">kelainan Fisik</a>
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_5" hx-get={"/corp/dashboard_pic/detail/" + id +"/tabkelainanfisik"} hx-target="#tabkelainanfisik" hx-trigger="load" hx-indicator=".fisikloading">kelainan Fisik</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_6" hx-get={"/corp/dashboard_pic/detail/" + id +"/tabkesimpulan"} hx-target="#tabkesimpulan">Kesimpulan</a>
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_6" hx-get={"/corp/dashboard_pic/detail/" + id +"/tabkesimpulan"} hx-target="#tabkesimpulan" hx-indicator=".kesimpulanloading">Kesimpulan</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_7" hx-get={"/corp/dashboard_pic/detail/" + id +"/tabdaftarpeserta"} hx-target="#tabdaftarpeserta">Daftar Peserta</a>
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_7" hx-get={"/corp/dashboard_pic/detail/" + id +"/tabdaftarpeserta"} hx-target="#tabdaftarpeserta" hx-indicator=".daftperloading">Daftar Peserta</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_8">Executive Summary</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_9" hx-get={"/corp/dashboard_pic/detail/" + id +"/tabkeuangan"} hx-target="#tabkeuangan">Keuangan</a>
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_9" hx-get={"/corp/dashboard_pic/detail/" + id +"/tabkeuangan"} hx-target="#tabkeuangan" hx-indicator=".uangloading">Keuangan</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tab-content mt-5" id="myTabContent">
|
||||
<div class="tab-pane fade show active" id="kt_tab_pane_1" role="tabpanel" aria-labelledby="kt_tab_pane_1">
|
||||
// <object data={"https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/rpt_mcu_graph_001.rptdesign&__format=pdf&PID="+id+"&username=adhi&tm=1717726294764"} type="application/pdf" width="100%" height="100%"></object>
|
||||
<div id="tabkepesertaan"></div>
|
||||
<div style="display: flex; justify-content: center; align-items: center;">
|
||||
<span class="htmx-indicator spinner-border spinner-border-lg kepesertaanloading" role="status" aria-hidden="true"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="kt_tab_pane_2" role="tabpanel" aria-labelledby="kt_tab_pane_2">
|
||||
// <object data={"https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/rpt_mcu_graph_002.rptdesign&__format=pdf&PID="+id+"&username=adhi&tm=1717726294764"} type="application/pdf" width="100%" height="100%"></object>
|
||||
<div id="tabkelainanglobal"></div>
|
||||
<div style="display: flex; justify-content: center; align-items: center;">
|
||||
<span class="htmx-indicator spinner-border spinner-border-lg globalloading" role="status" aria-hidden="true"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="kt_tab_pane_3" role="tabpanel" aria-labelledby="kt_tab_pane_3">
|
||||
// <object data={"https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/rpt_mcu_graph_003.rptdesign&__format=pdf&PID="+id+"&username=adhi&tm=1717726294764"} type="application/pdf" width="100%" height="100%"></object>
|
||||
<div id="tabkelainanlab"></div>
|
||||
<div style="display: flex; justify-content: center; align-items: center;">
|
||||
<span class="htmx-indicator spinner-border spinner-border-lg labloading" role="status" aria-hidden="true"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="kt_tab_pane_4" role="tabpanel" aria-labelledby="kt_tab_pane_4" style="height: 800px;">
|
||||
// <object data={"https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/rpt_mcu_graph_004.rptdesign&__format=pdf&PID="+id+"&username=adhi&tm=1717726294764"} type="application/pdf" width="100%" height="100%"></object>
|
||||
<div id="tabkelainannonlab"></div>
|
||||
<div style="display: flex; justify-content: center; align-items: center;">
|
||||
<span class="htmx-indicator spinner-border spinner-border-lg nonlabloading" role="status" aria-hidden="true"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="kt_tab_pane_5" role="tabpanel" aria-labelledby="kt_tab_pane_5">
|
||||
// <object data={"https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/rpt_mcu_graph_005.rptdesign&__format=pdf&PID="+id+"&username=adhi&tm=1717726294764"} type="application/pdf" width="100%" height="100%"></object>
|
||||
<div id="tabkelainanfisik"></div>
|
||||
<div style="display: flex; justify-content: center; align-items: center;">
|
||||
<span class="htmx-indicator spinner-border spinner-border-lg fisikloading" role="status" aria-hidden="true"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="kt_tab_pane_6" role="tabpanel" aria-labelledby="kt_tab_pane_6">
|
||||
<div id="tabkesimpulan"></div>
|
||||
<div style="display: flex; justify-content: center; align-items: center;">
|
||||
<span class="htmx-indicator spinner-border spinner-border-lg kesimpulanloading" role="status" aria-hidden="true"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="kt_tab_pane_7" role="tabpanel" aria-labelledby="kt_tab_pane_7">
|
||||
<div id="tabdaftarpeserta"></div>
|
||||
<div style="display: flex; justify-content: center; align-items: center;">
|
||||
<span class="htmx-indicator spinner-border spinner-border-lg daftperloading" role="status" aria-hidden="true"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="kt_tab_pane_8" role="tabpanel" aria-labelledby="kt_tab_pane_8" style="height: 800px;">
|
||||
<object data={"https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/rpt_summary_executive.rptdesign&__format=pdf&PID="+id+"&username=adhi&tm=1717726294764"} type="application/pdf" width="100%" height="100%"></object>
|
||||
<object data={"/birt/run?__report=report/one/mcu/rpt_executive_summary_mcu_001.rptdesign&__format=pdf&PID="+id+"&username=admin&tm=1722914077866"} type="application/pdf" width="100%" height="100%"></object>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="kt_tab_pane_9" role="tabpanel" aria-labelledby="kt_tab_pane_9">
|
||||
<div id="tabkeuangan"></div>
|
||||
<div style="display: flex; justify-content: center; align-items: center;">
|
||||
<span class="htmx-indicator spinner-border spinner-border-lg uangloading" role="status" aria-hidden="true"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
@@ -38,7 +38,7 @@ func TabViewMcuDetail(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"#tabkepesertaan\" hx-trigger=\"load\">Peserta</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_2\" hx-get=\"")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"#tabkepesertaan\" hx-trigger=\"load\" hx-indicator=\".kepesertaanloading\">Peserta</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_2\" hx-get=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -51,7 +51,7 @@ func TabViewMcuDetail(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"#tabkelainanglobal\" hx-trigger=\"click\">Kelainan global</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_3\" hx-get=\"")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"#tabkelainanglobal\" hx-trigger=\"load\" hx-indicator=\".globalloading\">Kelainan global</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_3\" hx-get=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -64,7 +64,7 @@ func TabViewMcuDetail(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"#tabkelainanlab\" hx-trigger=\"click\">Kelainan Lab</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_4\" hx-get=\"")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"#tabkelainanlab\" hx-trigger=\"load\" hx-indicator=\".labloading\">Kelainan Lab</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_4\" hx-get=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -77,7 +77,7 @@ func TabViewMcuDetail(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"#tabkelainannonlab\" hx-trigger=\"click\">kelainan Non Lab</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_5\" hx-get=\"")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"#tabkelainannonlab\" hx-trigger=\"load\" hx-indicator=\".nonlabloading\">kelainan Non Lab</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_5\" hx-get=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -90,7 +90,7 @@ func TabViewMcuDetail(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"#tabkelainanfisik\" hx-trigger=\"click\">kelainan Fisik</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_6\" hx-get=\"")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"#tabkelainanfisik\" hx-trigger=\"load\" hx-indicator=\".fisikloading\">kelainan Fisik</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_6\" hx-get=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -103,7 +103,7 @@ func TabViewMcuDetail(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"#tabkesimpulan\">Kesimpulan</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_7\" hx-get=\"")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"#tabkesimpulan\" hx-indicator=\".kesimpulanloading\">Kesimpulan</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_7\" hx-get=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -116,7 +116,7 @@ func TabViewMcuDetail(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"#tabdaftarpeserta\">Daftar Peserta</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_8\">Executive Summary</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_9\" hx-get=\"")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"#tabdaftarpeserta\" hx-indicator=\".daftperloading\">Daftar Peserta</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_8\">Executive Summary</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_9\" hx-get=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -129,20 +129,20 @@ func TabViewMcuDetail(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"#tabkeuangan\">Keuangan</a></li></ul></div><div class=\"tab-content mt-5\" id=\"myTabContent\"><div class=\"tab-pane fade show active\" id=\"kt_tab_pane_1\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_1\"><div id=\"tabkepesertaan\"></div></div><div class=\"tab-pane fade\" id=\"kt_tab_pane_2\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_2\"><div id=\"tabkelainanglobal\"></div></div><div class=\"tab-pane fade\" id=\"kt_tab_pane_3\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_3\"><div id=\"tabkelainanlab\"></div></div><div class=\"tab-pane fade\" id=\"kt_tab_pane_4\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_4\" style=\"height: 800px;\"><div id=\"tabkelainannonlab\"></div></div><div class=\"tab-pane fade\" id=\"kt_tab_pane_5\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_5\"><div id=\"tabkelainanfisik\"></div></div><div class=\"tab-pane fade\" id=\"kt_tab_pane_6\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_6\"><div id=\"tabkesimpulan\"></div></div><div class=\"tab-pane fade\" id=\"kt_tab_pane_7\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_7\"><div id=\"tabdaftarpeserta\"></div></div><div class=\"tab-pane fade\" id=\"kt_tab_pane_8\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_8\" style=\"height: 800px;\"><object data=\"")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"#tabkeuangan\" hx-indicator=\".uangloading\">Keuangan</a></li></ul></div><div class=\"tab-content mt-5\" id=\"myTabContent\"><div class=\"tab-pane fade show active\" id=\"kt_tab_pane_1\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_1\"><div id=\"tabkepesertaan\"></div><div style=\"display: flex; justify-content: center; align-items: center;\"><span class=\"htmx-indicator spinner-border spinner-border-lg kepesertaanloading\" role=\"status\" aria-hidden=\"true\"></span></div></div><div class=\"tab-pane fade\" id=\"kt_tab_pane_2\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_2\"><div id=\"tabkelainanglobal\"></div><div style=\"display: flex; justify-content: center; align-items: center;\"><span class=\"htmx-indicator spinner-border spinner-border-lg globalloading\" role=\"status\" aria-hidden=\"true\"></span></div></div><div class=\"tab-pane fade\" id=\"kt_tab_pane_3\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_3\"><div id=\"tabkelainanlab\"></div><div style=\"display: flex; justify-content: center; align-items: center;\"><span class=\"htmx-indicator spinner-border spinner-border-lg labloading\" role=\"status\" aria-hidden=\"true\"></span></div></div><div class=\"tab-pane fade\" id=\"kt_tab_pane_4\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_4\" style=\"height: 800px;\"><div id=\"tabkelainannonlab\"></div><div style=\"display: flex; justify-content: center; align-items: center;\"><span class=\"htmx-indicator spinner-border spinner-border-lg nonlabloading\" role=\"status\" aria-hidden=\"true\"></span></div></div><div class=\"tab-pane fade\" id=\"kt_tab_pane_5\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_5\"><div id=\"tabkelainanfisik\"></div><div style=\"display: flex; justify-content: center; align-items: center;\"><span class=\"htmx-indicator spinner-border spinner-border-lg fisikloading\" role=\"status\" aria-hidden=\"true\"></span></div></div><div class=\"tab-pane fade\" id=\"kt_tab_pane_6\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_6\"><div id=\"tabkesimpulan\"></div><div style=\"display: flex; justify-content: center; align-items: center;\"><span class=\"htmx-indicator spinner-border spinner-border-lg kesimpulanloading\" role=\"status\" aria-hidden=\"true\"></span></div></div><div class=\"tab-pane fade\" id=\"kt_tab_pane_7\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_7\"><div id=\"tabdaftarpeserta\"></div><div style=\"display: flex; justify-content: center; align-items: center;\"><span class=\"htmx-indicator spinner-border spinner-border-lg daftperloading\" role=\"status\" aria-hidden=\"true\"></span></div></div><div class=\"tab-pane fade\" id=\"kt_tab_pane_8\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_8\" style=\"height: 800px;\"><object data=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var10 string
|
||||
templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs("https://devcpone.aplikasi.web.id/birt/run?__report=report/one/mcu/rpt_summary_executive.rptdesign&__format=pdf&PID=" + id + "&username=adhi&tm=1717726294764")
|
||||
templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs("/birt/run?__report=report/one/mcu/rpt_executive_summary_mcu_001.rptdesign&__format=pdf&PID=" + id + "&username=admin&tm=1722914077866")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutabview.templ`, Line: 65, Col: 171}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\corporate\mcu\mcutabview.templ`, Line: 81, Col: 148}
|
||||
}
|
||||
_, 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("\" type=\"application/pdf\" width=\"100%\" height=\"100%\"></object></div><div class=\"tab-pane fade\" id=\"kt_tab_pane_9\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_9\"><div id=\"tabkeuangan\"></div></div></div>")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" type=\"application/pdf\" width=\"100%\" height=\"100%\"></object></div><div class=\"tab-pane fade\" id=\"kt_tab_pane_9\" role=\"tabpanel\" aria-labelledby=\"kt_tab_pane_9\"><div id=\"tabkeuangan\"></div><div style=\"display: flex; justify-content: center; align-items: center;\"><span class=\"htmx-indicator spinner-border spinner-border-lg uangloading\" role=\"status\" aria-hidden=\"true\"></span></div></div></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
||||
@@ -97,10 +97,25 @@ templ CssLogin() {
|
||||
|
||||
templ JsLogin() {
|
||||
<script src="/asset-corporate-portal/js/login-general.js"></script>
|
||||
<script>
|
||||
// const paramLocal = {
|
||||
// token: localStorage.getItem('token')
|
||||
// }
|
||||
|
||||
let tkn = localStorage.getItem('token')
|
||||
|
||||
if (tkn) {
|
||||
htmx.ajax('POST', '/login/autologin', {
|
||||
headers: {
|
||||
Authorization: `Bearer ${tkn}`
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
}
|
||||
|
||||
templ ShowLogin(title string, cmp templ.Component, css templ.Component, js templ.Component) {
|
||||
@layout.PlaygroundLayout(title, css, js) {
|
||||
@cmp
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -109,7 +109,7 @@ func JsLogin() templ.Component {
|
||||
templ_7745c5c3_Var3 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<script src=\"/asset-corporate-portal/js/login-general.js\"></script>")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<script src=\"/asset-corporate-portal/js/login-general.js\"></script><script>\r\n\t\t// const paramLocal = {\r\n\t\t// \ttoken: localStorage.getItem('token')\r\n\t\t// }\r\n\r\n\t\tlet tkn = localStorage.getItem('token')\r\n\r\n\t\tif (tkn) {\r\n\t\t\thtmx.ajax('POST', '/login/autologin', {\r\n\t\t\t\theaders: {\r\n\t\t\t\t\tAuthorization: `Bearer ${tkn}`\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\t\t\r\n\t</script>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
||||
@@ -110,10 +110,12 @@ templ FormSignin(
|
||||
hx-post="/login/signin"
|
||||
hx-swap="outerHTML"
|
||||
hx-target="#kt_login"
|
||||
hx-indicator=".loginloading"
|
||||
type="button"
|
||||
id="kt_login_signin_submit"
|
||||
class="btn btn-block font-weight-bolder text-white font-size-h6 px-8 py-4 my-3 mr-3 mt-5 btn-primary"
|
||||
>
|
||||
<span class="htmx-indicator spinner-border spinner-border-sm loginloading" role="status" aria-hidden="true"></span>
|
||||
Sign In
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -57,7 +57,7 @@ func FormSignin(
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!--begin::Action--><div class=\"pb-lg-0 pb-5 pt-5\"><button hx-post=\"/login/signin\" hx-swap=\"outerHTML\" hx-target=\"#kt_login\" type=\"button\" id=\"kt_login_signin_submit\" class=\"btn btn-block font-weight-bolder text-white font-size-h6 px-8 py-4 my-3 mr-3 mt-5 btn-primary\">Sign In\r</button></div><!--end::Action--></form>")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!--begin::Action--><div class=\"pb-lg-0 pb-5 pt-5\"><button hx-post=\"/login/signin\" hx-swap=\"outerHTML\" hx-target=\"#kt_login\" hx-indicator=\".loginloading\" type=\"button\" id=\"kt_login_signin_submit\" class=\"btn btn-block font-weight-bolder text-white font-size-h6 px-8 py-4 my-3 mr-3 mt-5 btn-primary\"><span class=\"htmx-indicator spinner-border spinner-border-sm loginloading\" role=\"status\" aria-hidden=\"true\"></span> Sign In\r</button></div><!--end::Action--></form>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user