agper-agen/modules/kegiatan-proker-new.html

103 lines
4.9 KiB
HTML

<div style="display: grid; grid-template-columns: auto auto 1fr; column-gap: 1ch;">
<span>Kegiatan</span>
&nbsp;
<select id="kegiatan" style="width: max-content;">
<option value="-1" selected disabled>-Pilih Kegiatan-</option>
<option value="0">Sebagai Katalis</option>
<option value="1">Sebagai Penggerak Perubahan</option>
<option value="2">Sebagai Pemberi Solusi</option>
<option value="3">Sebagai Mediator</option>
<option value="4">Sebagai Penghubung</option>
</select>
<span>Target Waktu</span>
&nbsp;
<div>
<input type="number" id="target" min="1" style="width: 7ch;" value="1">
&nbsp;
<select id="targetUnit" style="width: max-content;">
<option value="0">Hari</option>
<option value="1" selected>Bulan</option>
</select>
</div>
<span class="forDay" hidden>Tgl Mulai</span>
<span class="forDay" hidden></span>
<input class="forDay" type="date" id="startDate" style="max-width: max-content;" hidden>
<span class="forMonth">Bulan Mulai</span>
<span class="forMonth"></span>
<input class="forMonth" type="month" id="startMonth" style="max-width: max-content;">
<div style="grid-column: span 3;">
<span>Sasaran Kegiatan:</span><br>
<textarea id="sasaran" style="resize: none; width: 100%; height: 4.6em;" maxlength="510" placeholder="Contoh: Mengenakan seragam sesuai aturan."></textarea>
</div>
<div style="grid-column: span 3;">
<span>Sasaran Entitas:</span><br>
<textarea id="enttarget" style="resize: none; width: 100%; height: 4.6em;" maxlength="510" placeholder="Contoh: Seluruh pegawai Kanwil BPN Provinsi Riau."></textarea>
</div>
<div style="grid-column: span 3;">
<span>Indikator:</span><br>
<textarea id="indikator" style="resize: none; width: 100%; height: 4.6em;" maxlength="510" placeholder="Contoh: Persentase pegawai taat aturan berpakaian."></textarea>
</div>
<div style="grid-column: span 3;">
<span>Rencana Aksi:</span><br>
<textarea id="aksi" style="resize: none; width: 100%; height: 4.6em;" maxlength="510" placeholder="Contoh: Sosialisasi aturan berpakaian."></textarea>
</div>
<span></span>
<span></span>
<div style="text-align: right;">
<a-button id="submit">Simpan</a-button>
</div>
</div>
<script type="module">
const thisDialog = moly.lastDialog();
const data = thisDialog.data;
function µ(selector)
{
if (selector) return $(thisDialog.box).find(selector);
return $(thisDialog.box);
}
µ('#startDate')[0].min= `${(new Date()).getFullYear()}-01-01`;
µ('#startMonth')[0].min= `${(new Date()).getFullYear()}-01`;
µ('#targetUnit').change(()=>{
µ('.forDay').prop("hidden", µ('#targetUnit').val() != "0");
µ('.forMonth').prop("hidden", µ('#targetUnit').val() != "1");
µ('#startDate').val("");
µ('#startMonth').val("");
});
µ('#submit').click(async()=>{
const loadid = moly.loadScreen.show("Menambahkan Program Kerja...","sonar","#"+µ('[id^="db"]')[0].id);
const startDay = µ('#targetUnit').val() == "0" ? (new Date(µ('#startDate').val())).getDate() : null;
const startMonth = µ('#targetUnit').val() == "0" ? (new Date(µ('#startDate').val())).getMonth() +1 : (new Date(µ('#startMonth').val())).getMonth() +1;
const year = µ('#targetUnit').val() == "0" ? (new Date(µ('#startDate').val())).getFullYear() : (new Date(µ('#startMonth').val())).getFullYear();
const proker =
{
prokerid: gen16BytesID(),
agentID: data.info.agentID,
kegiatan: Number(µ('#kegiatan').val()),
sasaran: µ('#sasaran').val(),
startDay,
startMonth,
year,
timeTarget: Number(µ('#target').val()),
targetUnit: Number(µ('#targetUnit').val()),
entTarget: µ('#enttarget').val(),
indicator: µ('#indikator').val(),
action: µ('#aksi').val()
}
if(!µ('#kegiatan').val() || proker.sasaran.length <1 || (startDay != null && isNaN(startDay)) || isNaN(startMonth) || isNaN(year)
|| proker.entTarget.length < 1 || proker.indicator.length < 1 || proker.action.length < 1)
{
moly.alert.show("Data Belum Lengkap","Harap isi data dengan lengkap. Setiap kolom yang ditampilkan wajib diisi.");
moly.loadScreen.close(loadid);
return;
}
const mkproker = await postJson('/api/mkproker',proker);
if (mkproker.status != 201)
{
moly.alert.show("Simpan Program Kerja Gagal","Program kerja tidak dapat disimpan. Silakan coba kembali beberapa saat lagi.");
moly.loadScreen.close(loadid);
return;
}
thisDialog.resolve(proker);
moly.loadScreen.close(loadid);
})
</script>