agper-agen/modules/kegiatan-proker-finish.html
2025-07-02 00:20:32 +07:00

73 lines
2.9 KiB
HTML

<div>
Sasaran Aksi:
</div>
<div id="sasaran" style="margin-bottom: .5em;">&nbsp;</div>
<div>
Kendala, Hambatan, dan Masalah (Opsional):
</div>
<textarea id="kendala" style="width: 75ch;height: 6em; resize: none;" maxlength="240" placeholder="Silakan isi dengan kendala, hambatan, dan permasalahan yang dihadapi selama menjalankan aksi perubahan.">
</textarea>
<div>
Solusi (Opsional):
</div>
<textarea id="solusi" style="width: 100%;height: 6em; resize: none;" maxlength="240" placeholder="Silakan isi dengan langkah yang diambil untuk menanggulangi kendala, hambatan, dan permasalahan diatas.">
</textarea>
<div style="display: grid; grid-template-columns: 1fr auto; column-gap: 1.25ch;">
<span>Dokumen Eviden (Wajib): </span>
<file-input accept="application/pdf" id="evidence" style="width: 52.75ch"></file-input>
</div>
<div style="display: grid;grid-template-columns: auto 1fr auto; margin-top: .75em; border-top: 1px solid var(--secondary-foreground); padding-top: .5em;">
<a-button id="cancel" type="negative">Batal</a-button>
&nbsp;
<a-button id="upload">Upload Eviden</a-button>
</div>
<script type="module">
const thisDialog = moly.lastDialog();
const data = thisDialog.data;
let evidence = null;
function µ(selector)
{
if (selector) return $(thisDialog.box).find(selector);
return $(thisDialog.box);
}
µ('#sasaran').text(data.sasaran);
µ('#evidence').change(async()=>{
if(µ('#evidence')[0]._input.files.length < 1)
{
evidence = null;
return;
}
const loadid = moly.loadScreen.show("Memroses berkas...","bar","#"+µ('div[id^="db"]')[0].id);
evidence = await moly.file.serialise(µ('#evidence')[0]._input.files[0]);
moly.loadScreen.close(loadid);
});
µ('#cancel').click(()=>{thisDialog.resolve(false)});
µ('#upload').click(async()=>{
const loadid = moly.loadScreen.show("Memroses berkas...","bar","#"+µ('div[id^="db"]')[0].id);
const upload =
{
prokerid: data.prokerID,
notes: JSON.stringify({
kendala: µ('#kendala').val(),
solusi: µ('#solusi').val()
}),
evidence: evidence.data
}
if(!evidence)
{
moly.alert.show("Dokumen Eviden Belum Dipilih","Dokuman Eviden bersifat wajib. Harap input dokumen eviden untuk diunggah.");
moly.loadScreen.close(loadid);
return;
}
const upl = await postJson('/api/pkevidence',upload);
if(upl.status != 201)
{
moly.alert.show("Eviden Tidak Terupload","Eviden tidak berhasi diupload. Silakan ulangi kembali beberapa saat lagi.");
moly.loadScreen.close(loadid);
return;
}
thisDialog.resolve(true);
moly.loadScreen.close(loadid);
});
//["prokerid", "notes", "evidence"]
</script>