From 6ad2260f3e3d5e7e7ed12d94cf01ac9eb48cd9fb Mon Sep 17 00:00:00 2001 From: nugroho Date: Fri, 27 Jun 2025 00:08:33 +0700 Subject: [PATCH] worked up to evidence uploads --- .gitignore | 3 +- modules/kegiatan-proker-finish.html | 72 +++++++++++++++++++++++++++ modules/kegiatan-proker-finished.html | 40 +++++++++++++++ modules/kegiatan-proker-new.html | 1 - modules/kegiatan.html | 22 ++++++-- modules/pdf-previewer.html | 2 +- modules/submission.html | 16 +++++- 7 files changed, 148 insertions(+), 8 deletions(-) create mode 100644 modules/kegiatan-proker-finish.html create mode 100644 modules/kegiatan-proker-finished.html diff --git a/.gitignore b/.gitignore index 3cfacf1..ef34ff6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .DS_Store -/assets/images/uploads/* \ No newline at end of file +/assets/images/uploads/* +/uploads/* diff --git a/modules/kegiatan-proker-finish.html b/modules/kegiatan-proker-finish.html new file mode 100644 index 0000000..10bea99 --- /dev/null +++ b/modules/kegiatan-proker-finish.html @@ -0,0 +1,72 @@ +
+ Sasaran Aksi: +
+
 
+
+ Kendala, Hambatan, dan Masalah (Opsional): +
+ +
+ Solusi (Opsional): +
+ +
+ Dokumen Eviden (Wajib): + +
+
+ Batal +   + Upload Eviden +
+ \ No newline at end of file diff --git a/modules/kegiatan-proker-finished.html b/modules/kegiatan-proker-finished.html new file mode 100644 index 0000000..5680bc6 --- /dev/null +++ b/modules/kegiatan-proker-finished.html @@ -0,0 +1,40 @@ +
+ Sasaran Aksi: +
+
 
+
+ Kendala, Hambatan, dan Masalah: +
+ +
+ Solusi: +
+ +
+ Dokumen Eviden: + Lihat Dokumen +
+ \ No newline at end of file diff --git a/modules/kegiatan-proker-new.html b/modules/kegiatan-proker-new.html index 35d4f3d..8028b68 100644 --- a/modules/kegiatan-proker-new.html +++ b/modules/kegiatan-proker-new.html @@ -55,7 +55,6 @@ if (selector) return $(thisDialog.box).find(selector); return $(thisDialog.box); } - console.log(prokers); µ('#targetUnit').change(()=>{ µ('.forDay').prop("hidden", µ('#targetUnit').val() != "0"); µ('.forMonth').prop("hidden", µ('#targetUnit').val() != "1"); diff --git a/modules/kegiatan.html b/modules/kegiatan.html index 55c98c4..595b080 100644 --- a/modules/kegiatan.html +++ b/modules/kegiatan.html @@ -146,6 +146,10 @@ "text-align: center; background-color: var(--neutral-p-accent); color: var(--primary-foreground)", "text-align: center; background-color: var(--neutral-n-accent); color: var(--primary-foreground)", "text-align: center; background-color: var(--negative-accent); color: var(--primary-background)", + "text-align: center; background-color: unset; color: var(--positive-accent)", // belum jadwalnya + "text-align: center; background-color: unset; color: unset", // berjalan + "text-align: center; background-color: unset; color: var(--neutral-n-accent)", // hampir deadline + "text-align: center; background-color: unset; color: var(--negative-accent)" // terlambat ]; $.each(listedProkers,(i,v)=>{ @@ -170,8 +174,16 @@ tw.style.textAlign = "center"; wm.append(((v.startDay == null ? "" : v.startDay.toString().padStart(2,"0") + " ") + monthName[v.startMonth] + " " + v.year)); wm.style.textAlign = "right"; - st.append(statusName[v.journal.at(-1).status]); - st.style = statusStyles[v.journal.at(-1).status]; + const Now = new Date(); + const doneline = new Date(v.journal.at(-1).timeStamp); + const lifeline = v.isInMonth ? new Date(v.year, v.startMonth -1, 1) : new Date(v.year, v.startMonth -1, v.startDay); + const deadline = v.isInMonth ? new Date(v.year, v.startMonth + v.timeTarget, 0) : new Date(v.year, v.startMonth -1, v.startDay + v.timeTarget); + const neardeadline = (new Date(deadline)).setDate(deadline.getDate() - 15); + v.status = v.journal.at(-1).status == 4 && doneline < lifeline ? 4 : v.journal.at(-1).status == 4 && doneline <= deadline ? 5 : v.journal.at(-1).status == 4 && doneline > deadline ? 6 : v.journal.at(-1).status == 3 && v.year < Now.getFullYear() ? 7 : 3; + st.append(statusName[v.status]); + v.styleCode = v.status != 3 ? v.status : Now < lifeline ? 8 : Now < neardeadline ? 9 : Now >= neardeadline && Now < deadline ? 10 : 11; + $(st).text(v.status != 3 ? $(st).text() : Now < lifeline ? "Belum Jadwalnya" : Now < neardeadline ? "Berjalan" : Now >= neardeadline && Now <= deadline ? "Hampir Deadline" : "Lewat Deadline"); + st.style = statusStyles[v.styleCode]; $(ro).click(async()=>{ const data = v; if (data.journal.at(-1).status < 2) @@ -179,9 +191,13 @@ const vw = await moly.dialog.show({title: "Detil Program Kerja", content: "/modules/kegiatan-proker-edit.html", fetching: true, data}); if(vw) populateProker(); } + else if (data.journal.at(-1).status > 3) + { + await moly.dialog.show({title: "Lihat Eviden Akhir Aksi Perubahan", content: "/modules/kegiatan-proker-finished.html", fetching: true, data}) + } else if (data.journal.at(-1).status > 2) { - alert("To Advance the proker") + await moly.dialog.show({title: "Upload Eviden Akhir Aksi Perubahan", content: "/modules/kegiatan-proker-finish.html", fetching: true, data}) } }) $('#proker #pkContent').append(ro); diff --git a/modules/pdf-previewer.html b/modules/pdf-previewer.html index 5ce4039..41401cc 100644 --- a/modules/pdf-previewer.html +++ b/modules/pdf-previewer.html @@ -9,5 +9,5 @@ if (selector) return $(thisDialog.box).find(selector); return $(thisDialog.box); } - µ('#previewer')[0].src = "data:application/pdf;base64,"+data.data; + µ('#previewer')[0].src = data.data? "data:application/pdf;base64,"+data.data : data.url; \ No newline at end of file diff --git a/modules/submission.html b/modules/submission.html index 84adc59..9f64ea8 100644 --- a/modules/submission.html +++ b/modules/submission.html @@ -179,6 +179,10 @@ "text-align: center; background-color: var(--neutral-p-accent); color: var(--primary-foreground)", "text-align: center; background-color: var(--neutral-n-accent); color: var(--primary-foreground)", "text-align: center; background-color: var(--negative-accent); color: var(--primary-background)", + "text-align: center; background-color: unset; color: var(--positive-accent)", // belum jadwalnya + "text-align: center; background-color: unset; color: unset", // berjalan + "text-align: center; background-color: unset; color: var(--neutral-n-accent)", // hampir deadline + "text-align: center; background-color: unset; color: var(--negative-accent)" // terlambat ]; $.each(listedProkers,(i,v)=>{ @@ -203,8 +207,16 @@ tw.style.textAlign = "center"; wm.append(((v.startDay == null ? "" : v.startDay.toString().padStart(2,"0") + " ") + monthName[v.startMonth] + " " + v.year)); wm.style.textAlign = "right"; - st.append(statusName[v.journal.at(-1).status]); - st.style = statusStyles[v.journal.at(-1).status]; + const Now = new Date(); + const doneline = new Date(v.journal.at(-1).timeStamp); + const lifeline = v.isInMonth ? new Date(v.year, v.startMonth -1, 1) : new Date(v.year, v.startMonth -1, v.startDay); + const deadline = v.isInMonth ? new Date(v.year, v.startMonth + v.timeTarget, 0) : new Date(v.year, v.startMonth -1, v.startDay + v.timeTarget); + const neardeadline = (new Date(deadline)).setDate(deadline.getDate() - 15); + v.status = v.journal.at(-1).status == 4 && doneline < lifeline ? 4 : v.journal.at(-1).status == 4 && doneline <= deadline ? 5 : v.journal.at(-1).status == 4 && doneline > deadline ? 6 : v.journal.at(-1).status == 3 && v.year < Now.getFullYear() ? 7 : 3; + st.append(statusName[v.status]); + v.styleCode = v.status != 3 ? v.status : Now < lifeline ? 8 : Now < neardeadline ? 9 : Now >= neardeadline && Now < deadline ? 10 : 11; + $(st).text(v.status != 3 ? $(st).text() : Now < lifeline ? "Belum Jadwalnya" : Now < neardeadline ? "Berjalan" : Now >= neardeadline && Now <= deadline ? "Hampir Deadline" : "Lewat Deadline"); + st.style = statusStyles[v.styleCode]; $(ro).click(async()=>{ const vr = await moly.dialog.show({title: "Detil Program Kerja "+v.owner.name, content: "/modules/submission-view.html", fetching: true, data: {startIndex: i, prokers}}); // console.log(vr);