fix: Quality Control improvements & bug fixes
- APBDes: Fix edit form original data tracking (imageId, fileId) - APBDes: Update formula consistency in state - PPID modules: Various UI improvements and bug fixes - PPID Profil: Preview and edit page improvements - PPID Dasar Hukum: Page structure improvements - PPID Visi Misi: Page structure improvements - PPID Struktur: Posisi organisasi page improvements - PPID Daftar Informasi: Edit page improvements - Auth login: Route improvements - Update dependencies (package.json, bun.lockb) - Update seed data - Update .gitignore QC Reports added: - QC-APBDES-MODULE.md - QC-PROFIL-MODULE.md - QC-SDGS-DESA.md - QC-DESA-ANTI-KORUPSI.md - QC-PRESTASI-DESA-MODULE.md - QC-PPID-PROFIL-MODULE.md - QC-STRUKTUR-PPID-MODULE.md - QC-VISI-MISI-PPID-MODULE.md - QC-DASAR-HUKUM-PPID-MODULE.md - QC-PERMOHONAN-INFORMASI-PUBLIK-MODULE.md - QC-PERMOHONAN-KEBERATAN-INFORMASI-MODULE.md - QC-DAFTAR-INFORMASI-PUBLIK-MODULE.md - QC-IKM-MODULE.md Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
@@ -82,17 +82,17 @@ function EditDaftarInformasiPublik() {
|
||||
await daftarInformasi.edit.update();
|
||||
router.push('/admin/ppid/daftar-informasi-publik');
|
||||
} catch (error) {
|
||||
console.error('Error updating berita:', error);
|
||||
toast.error('Terjadi kesalahan saat memperbarui berita');
|
||||
console.error('Error updating daftar informasi:', error);
|
||||
toast.error('Terjadi kesalahan saat memperbarui daftar informasi');
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<Box px={{ base: 0, md: 'lg' }} py="xs">
|
||||
<Box px={{ base: 0, md: 'lg' }} py="xs">
|
||||
<Group mb="md">
|
||||
<Button variant="subtle" onClick={() => router.back()} p="xs" radius="md">
|
||||
<IconArrowBack color={colors['blue-button']} size={24} />
|
||||
</Button>
|
||||
<Button variant="subtle" onClick={() => router.back()} p="xs" radius="md">
|
||||
<IconArrowBack color={colors['blue-button']} size={24} />
|
||||
</Button>
|
||||
<Title order={4} ml="sm" c="dark">
|
||||
Edit Daftar Informasi Publik
|
||||
</Title>
|
||||
|
||||
@@ -6,6 +6,7 @@ import { IconEdit } from '@tabler/icons-react';
|
||||
import { useRouter } from 'next/navigation';
|
||||
import { useProxy } from 'valtio/utils';
|
||||
import stateDasarHukumPPID from '../../_state/ppid/dasar_hukum/dasarHukum';
|
||||
import DOMPurify from 'dompurify';
|
||||
|
||||
function Page() {
|
||||
const router = useRouter();
|
||||
@@ -68,7 +69,7 @@ function Page() {
|
||||
lh={{ base: 1.15, md: 1.1 }}
|
||||
fw="bold"
|
||||
c={colors['blue-button']}
|
||||
dangerouslySetInnerHTML={{ __html: listDasarHukum.findById.data.judul }}
|
||||
dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(listDasarHukum.findById.data.judul) }}
|
||||
style={{ wordBreak: 'break-word', whiteSpace: 'normal' }}
|
||||
/>
|
||||
</GridCol>
|
||||
@@ -77,7 +78,7 @@ function Page() {
|
||||
<Divider my="xl" color={colors['blue-button']} />
|
||||
|
||||
<Text
|
||||
dangerouslySetInnerHTML={{ __html: listDasarHukum.findById.data.content }}
|
||||
dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(listDasarHukum.findById.data.content) }}
|
||||
style={{
|
||||
wordBreak: 'break-word',
|
||||
whiteSpace: 'normal',
|
||||
|
||||
@@ -6,6 +6,7 @@ import { IconEdit } from '@tabler/icons-react';
|
||||
import { useRouter } from 'next/navigation';
|
||||
import { useProxy } from 'valtio/utils';
|
||||
import stateProfilePPID from '../../_state/ppid/profile_ppid/profile_PPID';
|
||||
import DOMPurify from 'dompurify';
|
||||
|
||||
function Page() {
|
||||
const router = useRouter();
|
||||
@@ -114,7 +115,7 @@ function Page() {
|
||||
c={colors['blue-button']}
|
||||
lh={1.5}
|
||||
style={{ wordBreak: "break-word", whiteSpace: "normal" }}
|
||||
dangerouslySetInnerHTML={{ __html: item.biodata }}
|
||||
dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(item.biodata) }}
|
||||
/>
|
||||
</Box>
|
||||
|
||||
@@ -129,7 +130,7 @@ function Page() {
|
||||
c={colors['blue-button']}
|
||||
lh={1.5}
|
||||
style={{ wordBreak: "break-word", whiteSpace: "normal" }}
|
||||
dangerouslySetInnerHTML={{ __html: item.riwayat }}
|
||||
dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(item.riwayat) }}
|
||||
/>
|
||||
</Box>
|
||||
</Box>
|
||||
@@ -145,7 +146,7 @@ function Page() {
|
||||
c={colors['blue-button']}
|
||||
lh={1.5}
|
||||
style={{ wordBreak: "break-word", whiteSpace: "normal" }}
|
||||
dangerouslySetInnerHTML={{ __html: item.pengalaman }}
|
||||
dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(item.pengalaman) }}
|
||||
/>
|
||||
</Box>
|
||||
</Box>
|
||||
@@ -161,7 +162,7 @@ function Page() {
|
||||
c={colors['blue-button']}
|
||||
lh={1.5}
|
||||
style={{ wordBreak: "break-word", whiteSpace: "normal" }}
|
||||
dangerouslySetInnerHTML={{ __html: item.unggulan }}
|
||||
dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(item.unggulan) }}
|
||||
/>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
@@ -9,6 +9,7 @@ import { useProxy } from 'valtio/utils';
|
||||
import HeaderSearch from '../../../_com/header';
|
||||
import { ModalKonfirmasiHapus } from '../../../_com/modalKonfirmasiHapus';
|
||||
import stateStrukturPPID from '../../../_state/ppid/struktur_ppid/struktur_PPID';
|
||||
import DOMPurify from 'dompurify';
|
||||
|
||||
function PosisiOrganisasiPPID() {
|
||||
const [search, setSearch] = useState("");
|
||||
@@ -100,7 +101,7 @@ function ListPosisiOrganisasiPPID({ search }: { search: string }) {
|
||||
<Text fz="md" fw={600} lh={1.5} truncate="end" lineClamp={1}>{item.nama}</Text>
|
||||
</TableTd>
|
||||
<TableTd w={200}>
|
||||
<Text fz="sm" lh={1.5} c="dimmed" lineClamp={1} dangerouslySetInnerHTML={{ __html: item.deskripsi || '-' }} />
|
||||
<Text fz="sm" lh={1.5} c="dimmed" lineClamp={1} dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(item.deskripsi || '-') }} />
|
||||
</TableTd>
|
||||
<TableTd>
|
||||
<Text fz="md" lh={1.5}>{item.hierarki || '-'}</Text>
|
||||
|
||||
@@ -6,6 +6,7 @@ import { IconEdit } from '@tabler/icons-react';
|
||||
import { useRouter } from 'next/navigation';
|
||||
import { useProxy } from 'valtio/utils';
|
||||
import stateVisiMisiPPID from '../../_state/ppid/visi_misi_ppid/visimisiPPID';
|
||||
import DOMPurify from 'dompurify'
|
||||
|
||||
function VisiMisiPPIDList() {
|
||||
const router = useRouter();
|
||||
@@ -96,7 +97,7 @@ function VisiMisiPPIDList() {
|
||||
</Title>
|
||||
<Text
|
||||
ta={{ base: "center", md: "justify" }}
|
||||
dangerouslySetInnerHTML={{ __html: listVisiMisi.findById.data.visi }}
|
||||
dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(listVisiMisi.findById.data.visi) }}
|
||||
style={{
|
||||
wordBreak: 'break-word',
|
||||
whiteSpace: 'normal',
|
||||
@@ -121,7 +122,7 @@ function VisiMisiPPIDList() {
|
||||
</Title>
|
||||
<Text
|
||||
ta={"justify"}
|
||||
dangerouslySetInnerHTML={{ __html: listVisiMisi.findById.data.misi }}
|
||||
dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(listVisiMisi.findById.data.misi) }}
|
||||
style={{
|
||||
wordBreak: 'break-word',
|
||||
whiteSpace: 'normal',
|
||||
|
||||
Reference in New Issue
Block a user