{"id":1429,"date":"2025-07-27T11:23:01","date_gmt":"2025-07-27T11:23:01","guid":{"rendered":"https:\/\/bpsjembrana.online\/jelita\/?page_id=1429"},"modified":"2026-02-04T01:18:45","modified_gmt":"2026-02-04T06:18:45","slug":"tim-nerwilis","status":"publish","type":"page","link":"https:\/\/bpsjembrana.online\/jelita\/tim-nerwilis\/","title":{"rendered":"Tim Nerwilis"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1429\" class=\"elementor elementor-1429\">\n\t\t\t\t<div class=\"elementor-element elementor-element-06eabfc e-flex e-con-boxed e-con e-parent\" data-id=\"06eabfc\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-9b80fc0 e-con-full e-flex e-con e-child\" data-id=\"9b80fc0\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-699ae7e elementor-widget elementor-widget-heading\" data-id=\"699ae7e\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Nerwilis<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-db51c3d e-flex e-con-boxed e-con e-parent\" data-id=\"db51c3d\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-8568500 e-con-full e-flex e-con e-child\" data-id=\"8568500\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f761e15 elementor-widget elementor-widget-text-editor\" data-id=\"f761e15\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>CTRL + F untuk pencarian<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-fdaded1 e-con-full e-flex e-con e-child\" data-id=\"fdaded1\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-a344895 e-grid e-con-full e-con e-child\" data-id=\"a344895\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-de0efb0 e-con-full e-flex e-con e-child\" data-id=\"de0efb0\" data-element_type=\"container\" data-settings=\"{&quot;animation&quot;:&quot;none&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-892ed3e elementor-position-top elementor-widget elementor-widget-image-box\" data-id=\"892ed3e\" data-element_type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;none&quot;}\" data-widget_type=\"image-box.default\">\n\t\t\t\t\t<div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><a href=\"https:\/\/sites.google.com\/view\/diari-5101\/home\" target=\"_blank\" tabindex=\"-1\"><img fetchpriority=\"high\" decoding=\"async\" width=\"219\" height=\"232\" src=\"https:\/\/bpsjembrana.online\/jelita\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-15-104353.png\" class=\"elementor-animation-grow attachment-full size-full wp-image-2194\" alt=\"\" \/><\/a><\/figure><div class=\"elementor-image-box-content\"><h3 class=\"elementor-image-box-title\"><a href=\"https:\/\/sites.google.com\/view\/diari-5101\/home\" target=\"_blank\">DIARI<\/a><\/h3><p class=\"elementor-image-box-description\">Inovasi BPS Jembrana berupa repositori yang dibangun untuk menyimpan arsip dari Fungsi Neraca Wilayah dan Analisis Statistik.<\/p><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c9d4e24 e-con-full e-flex e-con e-child\" data-id=\"c9d4e24\" data-element_type=\"container\" data-settings=\"{&quot;animation&quot;:&quot;none&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-363d8d2 elementor-position-top elementor-widget elementor-widget-image-box\" data-id=\"363d8d2\" data-element_type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;none&quot;}\" data-widget_type=\"image-box.default\">\n\t\t\t\t\t<div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><a href=\"https:\/\/sites.google.com\/view\/diarinew\/home?authuser=9\" target=\"_blank\" tabindex=\"-1\"><img fetchpriority=\"high\" decoding=\"async\" width=\"219\" height=\"232\" src=\"https:\/\/bpsjembrana.online\/jelita\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-15-104353.png\" class=\"elementor-animation-grow attachment-full size-full wp-image-2194\" alt=\"\" \/><\/a><\/figure><div class=\"elementor-image-box-content\"><h3 class=\"elementor-image-box-title\"><a href=\"https:\/\/sites.google.com\/view\/diarinew\/home?authuser=9\" target=\"_blank\">DIARI NEW FACE<\/a><\/h3><p class=\"elementor-image-box-description\">Inovasi BPS Jembrana berupa repositori yang dibangun untuk menyimpan arsip dari Fungsi Neraca Wilayah dan Analisis Statistik.<\/p><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-bd1bb6a e-flex e-con-boxed e-con e-parent\" data-id=\"bd1bb6a\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-76be5ff e-con-full e-flex e-con e-child\" data-id=\"76be5ff\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0124fb9 elementor-widget elementor-widget-heading\" data-id=\"0124fb9\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Dokumen Kegiatan<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d505c5c e-con-full e-flex e-con e-parent\" data-id=\"d505c5c\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7945c53 e-n-tabs-mobile elementor-widget elementor-widget-n-tabs\" data-id=\"7945c53\" data-element_type=\"widget\" data-settings=\"{&quot;tabs_justify_horizontal&quot;:&quot;stretch&quot;,&quot;horizontal_scroll&quot;:&quot;disable&quot;}\" data-widget_type=\"nested-tabs.default\">\n\t\t\t\t\t\t\t<div class=\"e-n-tabs\" data-widget-number=\"127163475\" aria-label=\"Tabs. Open items with Enter or Space, close with Escape and navigate using the Arrow keys.\">\n\t\t\t<div class=\"e-n-tabs-heading\" role=\"tablist\">\n\t\t\t\t\t<button id=\"e-n-tab-title-1271634751\" data-tab-title-id=\"e-n-tab-title-1271634751\" class=\"e-n-tab-title\" aria-selected=\"true\" data-tab-index=\"1\" role=\"tab\" tabindex=\"0\" aria-controls=\"e-n-tab-content-1271634751\" style=\"--n-tabs-title-order: 1;\">\n\t\t\t\t\t\t<span class=\"e-n-tab-title-text\">\n\t\t\t\tDokumentasi\t\t\t<\/span>\n\t\t<\/button>\n\t\t\t\t<button id=\"e-n-tab-title-1271634752\" data-tab-title-id=\"e-n-tab-title-1271634752\" class=\"e-n-tab-title\" aria-selected=\"false\" data-tab-index=\"2\" role=\"tab\" tabindex=\"-1\" aria-controls=\"e-n-tab-content-1271634752\" style=\"--n-tabs-title-order: 2;\">\n\t\t\t\t\t\t<span class=\"e-n-tab-title-text\">\n\t\t\t\tNotula\t\t\t<\/span>\n\t\t<\/button>\n\t\t\t\t<button id=\"e-n-tab-title-1271634753\" data-tab-title-id=\"e-n-tab-title-1271634753\" class=\"e-n-tab-title\" aria-selected=\"false\" data-tab-index=\"3\" role=\"tab\" tabindex=\"-1\" aria-controls=\"e-n-tab-content-1271634753\" style=\"--n-tabs-title-order: 3;\">\n\t\t\t\t\t\t<span class=\"e-n-tab-title-text\">\n\t\t\t\tDaftar Hadir\t\t\t<\/span>\n\t\t<\/button>\n\t\t\t\t\t<\/div>\n\t\t\t<div class=\"e-n-tabs-content\">\n\t\t\t\t<div id=\"e-n-tab-content-1271634751\" role=\"tabpanel\" aria-labelledby=\"e-n-tab-title-1271634751\" data-tab-index=\"1\" style=\"--n-tabs-title-order: 1;\" class=\"e-active elementor-element elementor-element-09ce494 e-con-full e-flex e-con e-child\" data-id=\"09ce494\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-de6edd5 e-con-full e-flex e-con e-child\" data-id=\"de6edd5\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-aee5eef elementor-widget elementor-widget-heading\" data-id=\"aee5eef\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Dokumentasi Kegiatan<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-61ca7e2 elementor-widget elementor-widget-heading\" data-id=\"61ca7e2\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><i>Format Nama: Tanggal Kegiatan(YYYYMMDD)_[Nama Kegiatan]<br>Contoh: 20250505_Rapat Rutin<\/i><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-02db0b9 elementor-widget elementor-widget-button\" data-id=\"02db0b9\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/drive.google.com\/drive\/folders\/1-dGohRjeUPIrmaSYvziYh1ubTqakP4p5?usp=sharing\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-file-upload\" viewBox=\"0 0 384 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Upload Foto<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7e22603 elementor-widget elementor-widget-html\" data-id=\"7e22603\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html>\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<style>\r\n  body {\r\n    font-family: Poppins, sans-serif;\r\n  }\r\n\r\n  \/* ===== Search box ===== *\/\r\n  .search-box {\r\n    margin: 10px 0;\r\n    padding: 8px 10px;\r\n    width: 300px;\r\n    border: 1px solid #ccc;\r\n    border-radius: 3px;\r\n    color: #000;\r\n  }\r\n  .search-box::placeholder {\r\n    color: #000 !important;\r\n    opacity: 1;\r\n  }\r\n\r\n  \/* ===== Sort Button ===== *\/\r\n  .sort-btn {\r\n    margin-bottom: 10px;\r\n    padding: 6px 12px;\r\n    background-color: #344660;\r\n    color: #f9f0df;\r\n    border: none;\r\n    border-radius: 3px;\r\n    cursor: pointer;\r\n    transition: background-color 0.2s, transform 0.2s;\r\n  }\r\n  .sort-btn:hover {\r\n    background-color: #C95D43;\r\n    transform: translateY(-2px);\r\n  }\r\n\r\n  \/* ===== Grid container ===== *\/\r\n  #fileGridDokumentasi {\r\n    display: grid;\r\n    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));\r\n    gap: 15px;\r\n    margin-top: 10px;\r\n  }\r\n\r\n  \/* ===== Card styling ===== *\/\r\n  .file-card {\r\n    background-color: #ffffff;\r\n    border: 1px solid #ddd;\r\n    border-radius: 5px;\r\n    padding: 8px;\r\n    text-align: center;\r\n    display: flex;\r\n    flex-direction: column;\r\n    justify-content: space-between;\r\n    transition: transform 0.2s, box-shadow 0.2s;\r\n  }\r\n\r\n  .file-card:nth-child(even) {\r\n    background-color: #fdf6f0;\r\n  }\r\n\r\n  .file-card:hover {\r\n    transform: translateY(-5px);\r\n    box-shadow: 0 4px 15px rgba(0,0,0,0.2);\r\n  }\r\n\r\n  .file-card img {\r\n    width: 100%;\r\n    height: 120px;\r\n    object-fit: contain;\r\n    cursor: pointer;\r\n    border: 1px solid #ccc;\r\n    border-radius: 3px;\r\n    margin-bottom: 8px;\r\n    transition: transform 0.2s;\r\n  }\r\n\r\n  .file-card img:hover {\r\n    transform: scale(1.05);\r\n  }\r\n\r\n  .file-name {\r\n    white-space: nowrap;\r\n    overflow: hidden;\r\n    text-overflow: ellipsis;\r\n    font-size: 10px;\r\n    margin-bottom: 6px;\r\n    color: #344660;\r\n    transition: color 0.2s;\r\n  }\r\n\r\n  .file-card:hover .file-name {\r\n    color: #C95D43;\r\n  }\r\n\r\n  .file-card a.btn {\r\n    padding: 6px 12px;\r\n    font-size:12px;\r\n    text-decoration: none;\r\n    border-radius: 3px;\r\n    color: #fff;\r\n    background-color: #344660;\r\n    transition: background-color 0.2s;\r\n  }\r\n\r\n  .file-card a.btn:hover {\r\n    background-color: #C95D43;\r\n  }\r\n\r\n  \/* ===== Pagination ===== *\/\r\n  .pagination {\r\n    display: flex;\r\n    justify-content: center;\r\n    gap: 6px;\r\n    margin-top: 15px;\r\n  }\r\n  .pagination button {\r\n    padding: 8px 12px;\r\n    border: none;\r\n    background-color: #344660;\r\n    color: #f9f0df;\r\n    cursor: pointer;\r\n    border-radius: 3px;\r\n  }\r\n  .pagination button:disabled {\r\n    background-color: #ccc;\r\n    cursor: not-allowed;\r\n  }\r\n\r\n  \/* ===== Modal Preview ===== *\/\r\n  .modal {\r\n    display: none;\r\n    position: fixed;\r\n    z-index: 999;\r\n    left: 0; top: 0;\r\n    width: 100%; height: 100%;\r\n    background: rgba(0,0,0,0.6);\r\n  }\r\n  .modal-content {\r\n    background: #fff;\r\n    margin: 50px auto;\r\n    padding: 20px 10px 10px 10px;\r\n    border-radius: 5px;\r\n    width: 80%;\r\n    max-width: 800px;\r\n    position: relative;\r\n    box-sizing: border-box;\r\n  }\r\n  .modal iframe {\r\n    width: 100%;\r\n    height: 500px;\r\n    border: none;\r\n    margin-top: 5px;\r\n  }\r\n  .close-btn {\r\n    font-size: 14px;\r\n    background-color: #C95D43;\r\n    color: #fff;\r\n    border: none;\r\n    padding: 4px 8px;\r\n    border-radius: 3px;\r\n    cursor: pointer;\r\n    position: absolute;\r\n    top: 10px;\r\n    right: 10px;\r\n    z-index: 9999;\r\n  }\r\n  #previewModal a.btn {\r\n    font-size: 12px;\r\n    background-color: #344660; \r\n    color: #fff;\r\n    padding: 6px 12px;\r\n    border-radius: 3px;\r\n    text-decoration: none;\r\n    transition: background-color 0.2s;\r\n  }\r\n  #previewModal a.btn:hover {\r\n    background-color: #C95D43;\r\n  }\r\n<\/style>\r\n<\/head>\r\n<body>\r\n\r\n  <!-- \ud83d\udd39 Search -->\r\n  <input type=\"text\" class=\"search-box\" placeholder=\"Cari Foto...\" onkeyup=\"searchGridDokumentasi(this.value)\">\r\n\r\n  <!-- \ud83d\udd39 Sort Button Modern -->\r\n  <button class=\"sort-btn\" onclick=\"sortGridDokumentasi()\">Urutkan A-Z \/ Z-A<\/button>\r\n\r\n  <!-- \ud83d\udd39 Grid container -->\r\n  <div id=\"fileGridDokumentasi\"><\/div>\r\n\r\n  <!-- \ud83d\udd39 Pagination -->\r\n  <div class=\"pagination\">\r\n    <button onclick=\"prevPageDokumentasi()\" id=\"prevBtnDokumentasi\">Prev<\/button>\r\n    <span id=\"pageInfoDokumentasi\"><\/span>\r\n    <button onclick=\"nextPageDokumentasi()\" id=\"nextBtnDokumentasi\">Next<\/button>\r\n  <\/div>\r\n\r\n  <!-- ===== Modal Preview ===== -->\r\n  <div class=\"modal\" id=\"previewModal\">\r\n    <div class=\"modal-content\">\r\n      <button class=\"close-btn\" onclick=\"closeModal()\">X<\/button>\r\n      <iframe id=\"previewFrame\"><\/iframe>\r\n      <a id=\"downloadLink\" class=\"btn\" href=\"#\" target=\"_blank\">Download<\/a>\r\n    <\/div>\r\n  <\/div>\r\n\r\n<script>\r\n  const apiKey = \"AIzaSyB26Kiy9vYp7d1Z0Z6mllbUaC4rY0pjcKg\";\r\n  const folderIdDokumentasi = \"1-dGohRjeUPIrmaSYvziYh1ubTqakP4p5\";\r\n\r\n  let filesDokumentasi = [];\r\n  let currentPageDokumentasi = 1;\r\n  const rowsPerPageDokumentasi = 12;\r\n  let sortAscDokumentasi = true;\r\n\r\n  function loadFilesDokumentasi(folderId) {\r\n    fetch(`https:\/\/www.googleapis.com\/drive\/v3\/files?q='${folderId}'+in+parents&key=${apiKey}&fields=files(id,name,thumbnailLink,mimeType)&pageSize=1000`)\r\n      .then(res => res.json())\r\n      .then(data => {\r\n        filesDokumentasi = data.files || [];\r\n        renderGridDokumentasi();\r\n      })\r\n      .catch(err => console.error(err));\r\n  }\r\n\r\n  function renderGridDokumentasi() {\r\n    const container = document.getElementById(\"fileGridDokumentasi\");\r\n    container.innerHTML = '';\r\n    let start = (currentPageDokumentasi - 1) * rowsPerPageDokumentasi;\r\n    let end = start + rowsPerPageDokumentasi;\r\n    let paginated = filesDokumentasi.slice(start, end);\r\n\r\n    paginated.forEach(file => {\r\n      let thumb = file.thumbnailLink || (file.mimeType.startsWith('image\/') ? \r\n                  `https:\/\/drive.google.com\/thumbnail?id=${file.id}&sz=w180-h120` : \r\n                  'https:\/\/via.placeholder.com\/180x120?text=Preview');\r\n\r\n      let card = document.createElement('div');\r\n      card.className = 'file-card';\r\n      card.innerHTML = `\r\n        <img decoding=\"async\" src=\"${thumb}\" onclick=\"openPreview('${file.id}')\">\r\n        <div class=\"file-name\" title=\"${file.name}\">${file.name}<\/div>\r\n        <a class=\"btn\" href=\"https:\/\/drive.google.com\/uc?export=download&id=${file.id}\">Download<\/a>\r\n      `;\r\n      container.appendChild(card);\r\n    });\r\n\r\n    document.getElementById(\"pageInfoDokumentasi\").innerText =\r\n      `Halaman ${currentPageDokumentasi} dari ${Math.ceil(filesDokumentasi.length \/ rowsPerPageDokumentasi)}`;\r\n    document.getElementById(\"prevBtnDokumentasi\").disabled = currentPageDokumentasi === 1;\r\n    document.getElementById(\"nextBtnDokumentasi\").disabled = currentPageDokumentasi === Math.ceil(filesDokumentasi.length \/ rowsPerPageDokumentasi);\r\n  }\r\n\r\n  function prevPageDokumentasi() {\r\n    if (currentPageDokumentasi > 1) { currentPageDokumentasi--; renderGridDokumentasi(); }\r\n  }\r\n  function nextPageDokumentasi() {\r\n    if (currentPageDokumentasi < Math.ceil(filesDokumentasi.length \/ rowsPerPageDokumentasi)) { currentPageDokumentasi++; renderGridDokumentasi(); }\r\n  }\r\n\r\n  function searchGridDokumentasi(val) {\r\n    let filter = val.toLowerCase();\r\n    let filtered = filesDokumentasi.filter(f => f.name.toLowerCase().includes(filter));\r\n    const container = document.getElementById(\"fileGridDokumentasi\");\r\n    container.innerHTML = '';\r\n    filtered.forEach(file => {\r\n      let thumb = file.thumbnailLink || (file.mimeType.startsWith('image\/') ? \r\n                  `https:\/\/drive.google.com\/thumbnail?id=${file.id}&sz=w180-h120` : \r\n                  'https:\/\/via.placeholder.com\/180x120?text=Preview');\r\n\r\n      let card = document.createElement('div');\r\n      card.className = 'file-card';\r\n      card.innerHTML = `\r\n        <img decoding=\"async\" src=\"${thumb}\" onclick=\"openPreview('${file.id}')\">\r\n        <div class=\"file-name\" title=\"${file.name}\">${file.name}<\/div>\r\n        <a class=\"btn\" href=\"https:\/\/drive.google.com\/uc?export=download&id=${file.id}\">Download<\/a>\r\n      `;\r\n      container.appendChild(card);\r\n    });\r\n    document.getElementById(\"pageInfoDokumentasi\").innerText = `Ditemukan ${filtered.length} dokumen`;\r\n    document.getElementById(\"prevBtnDokumentasi\").disabled = true;\r\n    document.getElementById(\"nextBtnDokumentasi\").disabled = true;\r\n  }\r\n\r\n  function sortGridDokumentasi() {\r\n    filesDokumentasi.sort((a,b) => sortAscDokumentasi ? a.name.localeCompare(b.name) : b.name.localeCompare(a.name));\r\n    sortAscDokumentasi = !sortAscDokumentasi;\r\n    currentPageDokumentasi = 1;\r\n    renderGridDokumentasi();\r\n  }\r\n\r\n  \/\/ ===== Modal Functions =====\r\n  function openPreview(fileId) {\r\n    document.getElementById(\"previewFrame\").src = `https:\/\/drive.google.com\/file\/d\/${fileId}\/preview`;\r\n    document.getElementById(\"downloadLink\").href = `https:\/\/drive.google.com\/uc?export=download&id=${fileId}`;\r\n    document.getElementById(\"previewModal\").style.display = \"block\";\r\n  }\r\n  function closeModal() {\r\n    document.getElementById(\"previewModal\").style.display = \"none\";\r\n    document.getElementById(\"previewFrame\").src = \"\";\r\n  }\r\n  window.onclick = function(event) {\r\n    if (event.target === document.getElementById(\"previewModal\")) { closeModal(); }\r\n  }\r\n\r\n  \/\/ \ud83d\udd39 load awal\r\n  loadFilesDokumentasi(folderIdDokumentasi);\r\n<\/script>\r\n<\/body>\r\n<\/html>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div id=\"e-n-tab-content-1271634752\" role=\"tabpanel\" aria-labelledby=\"e-n-tab-title-1271634752\" data-tab-index=\"2\" style=\"--n-tabs-title-order: 2;\" class=\" elementor-element elementor-element-ac0831a e-con-full e-flex e-con e-child\" data-id=\"ac0831a\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-1d89d79 e-con-full e-flex e-con e-child\" data-id=\"1d89d79\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3b33311 elementor-widget elementor-widget-heading\" data-id=\"3b33311\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Notula Rapat\/Kegiatan<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-82eac54 elementor-widget elementor-widget-heading\" data-id=\"82eac54\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><i>Format Nama: Tanggal Kegiatan(YYYYMMDD)_[Nama Kegiatan]<\/i><br><i>Contoh: 20250505_Notula Rapat Rutin<\/i><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2e526b2 elementor-widget elementor-widget-button\" data-id=\"2e526b2\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/docs.google.com\/document\/d\/1u-eLgFqc6xdqT3S5NAnQ7UvvHR9ceLWU\/export?format=docx\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-file-download\" viewBox=\"0 0 384 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Download Template<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9a4eca6 elementor-widget elementor-widget-button\" data-id=\"9a4eca6\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/drive.google.com\/drive\/folders\/1MpaRPZHD2EPlnFGwFywRaJRIuDdiJdc_?usp=sharing\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-file-upload\" viewBox=\"0 0 384 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Upload Notula<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-14f3c94 elementor-widget elementor-widget-html\" data-id=\"14f3c94\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html>\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<style>\r\n  table {\r\n    width: 100%;\r\n    border-collapse: collapse;\r\n    font-family: Poppins, sans-serif;\r\n    margin-bottom: 20px;\r\n  }\r\n  th {\r\n    background-color: #344660;\r\n    color: #f9f0df;\r\n    padding: 5px;\r\n    text-align: center;\r\n    cursor: pointer;\r\n  }\r\n  td {\r\n    padding: 6px;\r\n    border-bottom: 1px solid #ddd;\r\n    color: #344660;\r\n    text-align: left;\r\n  }\r\n  a.btn {\r\n    padding: 6px 12px;\r\n    text-decoration: none;\r\n    border-radius: 2px;\r\n    color: #f9f0df;\r\n    background-color: #c85c42;\r\n  }\r\n  .search-box {\r\n    margin: 10px 0;\r\n    padding: 6px;\r\n    width: 300px;\r\n    border: 1px solid #ccc;\r\n    border-radius: 3px;\r\n    color: #000000;\r\n  }\r\n  .search-box::placeholder {\r\n    color: #000000 !important;\r\n    opacity: 1;\r\n  }\r\n        input.search-box {\r\n      color: #000000 !important;\r\n      opacity: 0.9 !important;\r\n    }\r\n  .pagination {\r\n    display: flex;\r\n    justify-content: center;\r\n    gap: 6px;\r\n    margin-top: 15px;\r\n  }\r\n  .pagination button {\r\n    padding: 6px 12px;\r\n    border: none;\r\n    background-color: #344660;\r\n    color: #f9f0df;\r\n    cursor: pointer;\r\n    border-radius: 3px;\r\n  }\r\n  .pagination button:disabled {\r\n    background-color: #ccc;\r\n    cursor: not-allowed;\r\n  }\r\n<\/style>\r\n<\/head>\r\n<body>\r\n  <input type=\"text\" class=\"search-box\" placeholder=\"Cari Dokumen...\" onkeyup=\"searchTableGaleri(this.value)\">\r\n  <table id=\"fileTableGaleri\">\r\n    <tr>\r\n      <th onclick=\"sortTableGaleri()\">Nama Dokumen \u25b2\u25bc<\/th>\r\n      <th>Lihat<\/th>\r\n      <th>Download<\/th>\r\n    <\/tr>\r\n  <\/table>\r\n  <div class=\"pagination\">\r\n    <button onclick=\"prevPageGaleri()\" id=\"prevBtnGaleri\">Prev<\/button>\r\n    <span id=\"pageInfoGaleri\"><\/span>\r\n    <button onclick=\"nextPageGaleri()\" id=\"nextBtnGaleri\">Next<\/button>\r\n  <\/div>\r\n\r\n<script>\r\n  const folderIdGaleri = \"1MpaRPZHD2EPlnFGwFywRaJRIuDdiJdc_\"; \/\/ Ganti ID folder galeri\r\n\r\n  let filesGaleri = [];\r\n  let currentPageGaleri = 1;\r\n  const rowsPerPageGaleri = 10;\r\n  let sortAscGaleri = true;\r\n\r\n  function loadFilesGaleri(folderId) {\r\n    fetch(`https:\/\/www.googleapis.com\/drive\/v3\/files?q='${folderId}'+in+parents&key=${apiKey}&fields=files(id,name)&pageSize=1000`)\r\n      .then(res => res.json())\r\n      .then(data => {\r\n        filesGaleri = data.files || [];\r\n        renderTableGaleri();\r\n      })\r\n      .catch(err => console.error(err));\r\n  }\r\n\r\n  function renderTableGaleri() {\r\n    const table = document.getElementById(\"fileTableGaleri\");\r\n    table.innerHTML = `\r\n      <tr>\r\n        <th onclick=\"sortTableGaleri()\">Nama Dokumen \u25b2\u25bc<\/th>\r\n        <th>Lihat<\/th>\r\n        <th>Download<\/th>\r\n      <\/tr>`;\r\n    let start = (currentPageGaleri - 1) * rowsPerPageGaleri;\r\n    let end = start + rowsPerPageGaleri;\r\n    let paginated = filesGaleri.slice(start, end);\r\n\r\n    paginated.forEach(file => {\r\n      let row = table.insertRow();\r\n      row.insertCell(0).innerText = file.name;\r\n      row.insertCell(1).innerHTML = `<a class=\"btn\" href=\"https:\/\/drive.google.com\/file\/d\/${file.id}\/preview\" target=\"_blank\">Lihat<\/a>`;\r\n      row.insertCell(2).innerHTML = `<a class=\"btn\" href=\"https:\/\/drive.google.com\/uc?export=download&id=${file.id}\">Download<\/a>`;\r\n    });\r\n\r\n    document.getElementById(\"pageInfoGaleri\").innerText =\r\n      `Halaman ${currentPageGaleri} dari ${Math.ceil(filesGaleri.length \/ rowsPerPageGaleri)}`;\r\n    document.getElementById(\"prevBtnGaleri\").disabled = currentPageGaleri === 1;\r\n    document.getElementById(\"nextBtnGaleri\").disabled = currentPageGaleri === Math.ceil(filesGaleri.length \/ rowsPerPageGaleri);\r\n  }\r\n\r\n  function prevPageGaleri() {\r\n    if (currentPageGaleri > 1) {\r\n      currentPageGaleri--;\r\n      renderTableGaleri();\r\n    }\r\n  }\r\n  function nextPageGaleri() {\r\n    if (currentPageGaleri < Math.ceil(filesGaleri.length \/ rowsPerPageGaleri)) {\r\n      currentPageGaleri++;\r\n      renderTableGaleri();\r\n    }\r\n  }\r\n  function searchTableGaleri(val) {\r\n    let filter = val.toLowerCase();\r\n    let filtered = filesGaleri.filter(f => f.name.toLowerCase().includes(filter));\r\n    const table = document.getElementById(\"fileTableGaleri\");\r\n    table.innerHTML = `\r\n      <tr>\r\n        <th onclick=\"sortTableGaleri()\">Nama Dokumen \u25b2\u25bc<\/th>\r\n        <th>Lihat<\/th>\r\n        <th>Download<\/th>\r\n      <\/tr>`;\r\n    filtered.forEach(file => {\r\n      let row = table.insertRow();\r\n      row.insertCell(0).innerText = file.name;\r\n      row.insertCell(1).innerHTML = `<a class=\"btn\" href=\"https:\/\/drive.google.com\/file\/d\/${file.id}\/preview\" target=\"_blank\">Lihat<\/a>`;\r\n      row.insertCell(2).innerHTML = `<a class=\"btn\" href=\"https:\/\/drive.google.com\/uc?export=download&id=${file.id}\">Download<\/a>`;\r\n    });\r\n    document.getElementById(\"pageInfoGaleri\").innerText = `Ditemukan ${filtered.length} dokumen`;\r\n    document.getElementById(\"prevBtnGaleri\").disabled = true;\r\n    document.getElementById(\"nextBtnGaleri\").disabled = true;\r\n  }\r\n  function sortTableGaleri() {\r\n    filesGaleri.sort((a, b) => sortAscGaleri ? a.name.localeCompare(b.name) : b.name.localeCompare(a.name));\r\n    sortAscGaleri = !sortAscGaleri;\r\n    currentPageGaleri = 1;\r\n    renderTableGaleri();\r\n  }\r\n\r\n  loadFilesGaleri(folderIdGaleri);\r\n<\/script>\r\n<\/body>\r\n<\/html>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div id=\"e-n-tab-content-1271634753\" role=\"tabpanel\" aria-labelledby=\"e-n-tab-title-1271634753\" data-tab-index=\"3\" style=\"--n-tabs-title-order: 3;\" class=\" elementor-element elementor-element-efd3a0c e-con-full e-flex e-con e-child\" data-id=\"efd3a0c\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-b3843c9 e-con-full e-flex e-con e-child\" data-id=\"b3843c9\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2cc06ce elementor-widget elementor-widget-heading\" data-id=\"2cc06ce\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Daftar Hadir Rapat\/Kegiatan<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-90e2121 elementor-widget elementor-widget-heading\" data-id=\"90e2121\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><i>Format Nama: Tanggal Kegiatan(YYYYMMDD)_[Nama Kegiatan]<\/i><br><i>Contoh: 20250505_Daftar Hadir Rapat Rutin<\/i><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-28d0832 elementor-widget elementor-widget-button\" data-id=\"28d0832\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/docs.google.com\/document\/d\/1bUnzW1Wz6yemh2q2RuRI5gABxwWBTolX\/export?format=docx\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-file-download\" viewBox=\"0 0 384 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Download Template (internal)<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b571ba1 elementor-widget elementor-widget-button\" data-id=\"b571ba1\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/docs.google.com\/document\/d\/1kPzpXarN2Z16JqXJ7-sx-_Yi5og8jkLB\/export?format=docx\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-file-download\" viewBox=\"0 0 384 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Download Template (Eksternal)<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6526a7f elementor-widget elementor-widget-button\" data-id=\"6526a7f\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/drive.google.com\/drive\/folders\/1ViVZo3Fma9gVXJ9LozcFZtzW4qBUJHsn?usp=sharing\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-file-upload\" viewBox=\"0 0 384 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Upload Daftar Hadir<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ecc0b07 elementor-widget elementor-widget-html\" data-id=\"ecc0b07\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html>\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<style>\r\n  table {\r\n    width: 100%;\r\n    border-collapse: collapse;\r\n    font-family: Poppins, sans-serif;\r\n    margin-bottom: 20px;\r\n  }\r\n  th {\r\n    background-color: #344660;\r\n    color: #f9f0df;\r\n    padding: 5px;\r\n    text-align: center;\r\n    cursor: pointer;\r\n  }\r\n  td {\r\n    padding: 6px;\r\n    border-bottom: 1px solid #ddd;\r\n    color: #344660;\r\n    text-align: left;\r\n  }\r\n  a.btn {\r\n    padding: 6px 12px;\r\n    text-decoration: none;\r\n    border-radius: 2px;\r\n    color: #f9f0df;\r\n    background-color: #c85c42;\r\n  }\r\n  .search-box {\r\n    margin: 10px 0;\r\n    padding: 6px;\r\n    width: 300px;\r\n    border: 1px solid #ccc;\r\n    border-radius: 3px;\r\n    color: #000000;\r\n  }\r\n  .search-box::placeholder {\r\n    color: #000000 !important;\r\n    opacity: 1;\r\n  }\r\n      input.search-box {\r\n      color: #000000 !important;\r\n      opacity: 0.9 !important;\r\n    }\r\n  .pagination {\r\n    display: flex;\r\n    justify-content: center;\r\n    gap: 6px;\r\n    margin-top: 15px;\r\n  }\r\n  .pagination button {\r\n    padding: 6px 12px;\r\n    border: none;\r\n    background-color: #344660;\r\n    color: #f9f0df;\r\n    cursor: pointer;\r\n    border-radius: 3px;\r\n  }\r\n  .pagination button:disabled {\r\n    background-color: #ccc;\r\n    cursor: not-allowed;\r\n  }\r\n<\/style>\r\n<\/head>\r\n<body>\r\n  <input type=\"text\" class=\"search-box\" placeholder=\"Cari Dokumen...\" onkeyup=\"searchTableHadir(this.value)\">\r\n  <table id=\"fileTableHadir\">\r\n    <tr>\r\n      <th onclick=\"sortTableHadir()\">Nama Dokumen \u25b2\u25bc<\/th>\r\n      <th>Lihat<\/th>\r\n      <th>Download<\/th>\r\n    <\/tr>\r\n  <\/table>\r\n  <div class=\"pagination\">\r\n    <button onclick=\"prevPageHadir()\" id=\"prevBtnHadir\">Prev<\/button>\r\n    <span id=\"pageInfoHadir\"><\/span>\r\n    <button onclick=\"nextPageHadir()\" id=\"nextBtnHadir\">Next<\/button>\r\n  <\/div>\r\n\r\n<script>\r\n  const folderIdHadir = \"1ViVZo3Fma9gVXJ9LozcFZtzW4qBUJHsn\"; \/\/ Ganti dengan ID folder Daftar Hadir\r\n\r\n  let filesHadir = [];\r\n  let currentPageHadir = 1;\r\n  const rowsPerPageHadir = 10;\r\n  let sortAscHadir = true;\r\n\r\n  function loadFilesHadir(folderId) {\r\n    fetch(`https:\/\/www.googleapis.com\/drive\/v3\/files?q='${folderId}'+in+parents&key=${apiKey}&fields=files(id,name)&pageSize=1000`)\r\n      .then(res => res.json())\r\n      .then(data => {\r\n        filesHadir = data.files || [];\r\n        renderTableHadir();\r\n      })\r\n      .catch(err => console.error(err));\r\n  }\r\n\r\n  function renderTableHadir() {\r\n    const table = document.getElementById(\"fileTableHadir\");\r\n    table.innerHTML = `\r\n      <tr>\r\n        <th onclick=\"sortTableHadir()\">Nama Dokumen \u25b2\u25bc<\/th>\r\n        <th>Lihat<\/th>\r\n        <th>Download<\/th>\r\n      <\/tr>`;\r\n    let start = (currentPageHadir - 1) * rowsPerPageHadir;\r\n    let end = start + rowsPerPageHadir;\r\n    let paginated = filesHadir.slice(start, end);\r\n\r\n    paginated.forEach(file => {\r\n      let row = table.insertRow();\r\n      row.insertCell(0).innerText = file.name;\r\n      row.insertCell(1).innerHTML = `<a class=\"btn\" href=\"https:\/\/drive.google.com\/file\/d\/${file.id}\/preview\" target=\"_blank\">Lihat<\/a>`;\r\n      row.insertCell(2).innerHTML = `<a class=\"btn\" href=\"https:\/\/drive.google.com\/uc?export=download&id=${file.id}\">Download<\/a>`;\r\n    });\r\n\r\n    document.getElementById(\"pageInfoHadir\").innerText =\r\n      `Halaman ${currentPageHadir} dari ${Math.ceil(filesHadir.length \/ rowsPerPageHadir)}`;\r\n    document.getElementById(\"prevBtnHadir\").disabled = currentPageHadir === 1;\r\n    document.getElementById(\"nextBtnHadir\").disabled = currentPageHadir === Math.ceil(filesHadir.length \/ rowsPerPageHadir);\r\n  }\r\n\r\n  function prevPageHadir() {\r\n    if (currentPageHadir > 1) {\r\n      currentPageHadir--;\r\n      renderTableHadir();\r\n    }\r\n  }\r\n  function nextPageHadir() {\r\n    if (currentPageHadir < Math.ceil(filesHadir.length \/ rowsPerPageHadir)) {\r\n      currentPageHadir++;\r\n      renderTableHadir();\r\n    }\r\n  }\r\n  function searchTableHadir(val) {\r\n    let filter = val.toLowerCase();\r\n    let filtered = filesHadir.filter(f => f.name.toLowerCase().includes(filter));\r\n    const table = document.getElementById(\"fileTableHadir\");\r\n    table.innerHTML = `\r\n      <tr>\r\n        <th onclick=\"sortTableHadir()\">Nama Dokumen \u25b2\u25bc<\/th>\r\n        <th>Lihat<\/th>\r\n        <th>Download<\/th>\r\n      <\/tr>`;\r\n    filtered.forEach(file => {\r\n      let row = table.insertRow();\r\n      row.insertCell(0).innerText = file.name;\r\n      row.insertCell(1).innerHTML = `<a class=\"btn\" href=\"https:\/\/drive.google.com\/file\/d\/${file.id}\/preview\" target=\"_blank\">Lihat<\/a>`;\r\n      row.insertCell(2).innerHTML = `<a class=\"btn\" href=\"https:\/\/drive.google.com\/uc?export=download&id=${file.id}\">Download<\/a>`;\r\n    });\r\n    document.getElementById(\"pageInfoHadir\").innerText = `Ditemukan ${filtered.length} dokumen`;\r\n    document.getElementById(\"prevBtnHadir\").disabled = true;\r\n    document.getElementById(\"nextBtnHadir\").disabled = true;\r\n  }\r\n  function sortTableHadir() {\r\n    filesHadir.sort((a, b) => sortAscHadir ? a.name.localeCompare(b.name) : b.name.localeCompare(a.name));\r\n    sortAscHadir = !sortAscHadir;\r\n    currentPageHadir = 1;\r\n    renderTableHadir();\r\n  }\r\n\r\n  loadFilesHadir(folderIdHadir);\r\n<\/script>\r\n<\/body>\r\n<\/html>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Nerwilis CTRL + F untuk pencarian DIARI Inovasi BPS Jembrana berupa repositori yang dibangun untuk menyimpan arsip dari Fungsi Neraca Wilayah dan Analisis Statistik. DIARI NEW FACE Inovasi BPS Jembrana berupa repositori yang dibangun untuk menyimpan arsip dari Fungsi Neraca Wilayah dan Analisis Statistik. Dokumen Kegiatan Dokumentasi Notula Daftar Hadir Dokumentasi Kegiatan Format Nama: Tanggal [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_themeisle_gutenberg_block_has_review":false,"footnotes":""},"class_list":["post-1429","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/bpsjembrana.online\/jelita\/wp-json\/wp\/v2\/pages\/1429","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bpsjembrana.online\/jelita\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bpsjembrana.online\/jelita\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bpsjembrana.online\/jelita\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bpsjembrana.online\/jelita\/wp-json\/wp\/v2\/comments?post=1429"}],"version-history":[{"count":13,"href":"https:\/\/bpsjembrana.online\/jelita\/wp-json\/wp\/v2\/pages\/1429\/revisions"}],"predecessor-version":[{"id":4008,"href":"https:\/\/bpsjembrana.online\/jelita\/wp-json\/wp\/v2\/pages\/1429\/revisions\/4008"}],"wp:attachment":[{"href":"https:\/\/bpsjembrana.online\/jelita\/wp-json\/wp\/v2\/media?parent=1429"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}