Rapikan tampilan nilai, ganti NPM->NIM, fitur ganti password, kunci RPS view-only
- Tampilan "Isi Per Komponen Penilaian" diganti dari tombol bertumpuk teks jadi tabel (Komponen/Sub-CPMK/Bobot/Status/Aksi) dengan status berupa stempel, lebih mudah dipindai. - Filter pencarian MK (ketik kode/nama) di kotak penugasan dosen /admin. - Istilah NPM diseragamkan jadi NIM di seluruh aplikasi (label, header, template Excel, dokumen portofolio), termasuk migrasi kolom database mahasiswa.npm -> nim yang aman (ALTER TABLE RENAME COLUMN, otomatis saat startup, tanpa kehilangan data; parser Excel tetap terima file lama berheader NPM). - Fitur ganti password mandiri (/akun): verifikasi password lama, sesi lain otomatis keluar setelah berhasil, sesi yang dipakai tetap aktif. - RPS: dosen RPS+MK kini bisa menyesuaikan redaksi kalimat Sub-CPMK (bagian D) untuk MK yang diampu -- kode & kaitan CPMK/CPL tetap dari kurikulum, hanya teksnya yang bisa disesuaikan. Penyesuaian otomatis konsisten di dropdown mingguan (F), checklist komponen (G), serta unduhan RPS & portofolio, tanpa menyentuh data kurikulum induk atau halaman nilai/ dashboard prodi. - Form RPS dibungkus <fieldset disabled> untuk dosen tanpa hak edit -- seluruh field benar-benar terkunci (bukan cuma tombol simpan hilang).
This commit is contained in:
@@ -55,4 +55,21 @@
|
||||
if (!t.closest("form")) pasang(t);
|
||||
});
|
||||
});
|
||||
|
||||
/* Filter daftar MK saat penugasan dosen (/admin): ketik di .cari-mk
|
||||
menyaring .baris-mk berdasarkan kode/nama MK (data-cari). */
|
||||
document.addEventListener("input", function (ev) {
|
||||
if (!ev.target.classList.contains("cari-mk")) return;
|
||||
var kata = ev.target.value.trim().toLowerCase();
|
||||
var wadah = ev.target.nextElementSibling; // .pilih-sub tepat setelah input cari
|
||||
if (!wadah) return;
|
||||
var ada = false;
|
||||
wadah.querySelectorAll(".baris-mk").forEach(function (baris) {
|
||||
var cocok = !kata || baris.dataset.cari.indexOf(kata) !== -1;
|
||||
baris.style.display = cocok ? "" : "none";
|
||||
if (cocok) ada = true;
|
||||
});
|
||||
var kosong = wadah.querySelector(".cari-kosong");
|
||||
if (kosong) kosong.style.display = ada ? "none" : "";
|
||||
});
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user