102 lines
4.8 KiB
HTML
102 lines
4.8 KiB
HTML
<div style="display: grid; grid-template-columns: auto auto 1fr; column-gap: 1ch;">
|
|
<span>Kegiatan</span>
|
|
|
|
<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>
|
|
|
|
<div>
|
|
<input type="number" id="target" min="1" style="width: 7ch;" value="1">
|
|
|
|
<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;
|
|
console.log(data);
|
|
function µ(selector)
|
|
{
|
|
if (selector) return $(thisDialog.box).find(selector);
|
|
return $(thisDialog.box);
|
|
}
|
|
µ('#targetUnit').change(()=>{
|
|
µ('.forDay').prop("hidden", µ('#targetUnit').val() != "0");
|
|
µ('.forMonth').prop("hidden", µ('#targetUnit').val() != "1");
|
|
µ('#startDay').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> |