{"id":1441,"date":"2025-07-27T11:25:29","date_gmt":"2025-07-27T11:25:29","guid":{"rendered":"https:\/\/bpsjembrana.online\/jelita\/?page_id=1441"},"modified":"2026-03-05T01:15:16","modified_gmt":"2026-03-05T06:15:16","slug":"tim-produksi","status":"publish","type":"page","link":"https:\/\/bpsjembrana.online\/jelita\/tim-produksi\/","title":{"rendered":"Tim Produksi"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1441\" class=\"elementor elementor-1441\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fc00a11 e-flex e-con-boxed e-con e-parent\" data-id=\"fc00a11\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-2d15722 e-con-full e-flex e-con e-child\" data-id=\"2d15722\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-28f69df elementor-widget elementor-widget-heading\" data-id=\"28f69df\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Produksi<\/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-058bff8 e-flex e-con-boxed e-con e-parent\" data-id=\"058bff8\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-356d0bb e-con-full e-flex e-con e-child\" data-id=\"356d0bb\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-68079cb elementor-widget elementor-widget-text-editor\" data-id=\"68079cb\" 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-43c25e3 e-con-full e-flex e-con e-child\" data-id=\"43c25e3\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-0509e99 e-grid e-con-full e-con e-child\" data-id=\"0509e99\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-b64ecb9 e-con-full e-flex e-con e-child\" data-id=\"b64ecb9\" data-element_type=\"container\" data-settings=\"{&quot;animation&quot;:&quot;none&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-31db130 elementor-position-top elementor-widget elementor-widget-image-box\" data-id=\"31db130\" 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\/produksi5101\/2026?authuser=0\" target=\"_blank\" tabindex=\"-1\"><img fetchpriority=\"high\" decoding=\"async\" width=\"723\" height=\"196\" src=\"https:\/\/bpsjembrana.online\/jelita\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-15-110834.png\" class=\"elementor-animation-grow attachment-full size-full wp-image-2199\" alt=\"\" srcset=\"https:\/\/bpsjembrana.online\/jelita\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-15-110834.png 723w, https:\/\/bpsjembrana.online\/jelita\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-15-110834-300x81.png 300w\" sizes=\"(max-width: 723px) 100vw, 723px\" \/><\/a><\/figure><div class=\"elementor-image-box-content\"><h3 class=\"elementor-image-box-title\"><a href=\"https:\/\/sites.google.com\/view\/produksi5101\/2026?authuser=0\" target=\"_blank\">GoPro<\/a><\/h3><p class=\"elementor-image-box-description\">Google Sites Produksi<\/p><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b03560b e-con-full e-flex e-con e-child\" data-id=\"b03560b\" data-element_type=\"container\" data-settings=\"{&quot;animation&quot;:&quot;none&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ce5606b elementor-position-top elementor-widget elementor-widget-image-box\" data-id=\"ce5606b\" 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:\/\/drive.google.com\/file\/d\/1i_kjdbcr8IrIkcQe4U-WM2kn4HAwpegT\/view\" target=\"_blank\" tabindex=\"-1\"><img decoding=\"async\" width=\"283\" height=\"297\" src=\"https:\/\/bpsjembrana.online\/jelita\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-15-111129.png\" class=\"elementor-animation-grow attachment-full size-full wp-image-2200\" alt=\"\" \/><\/a><\/figure><div class=\"elementor-image-box-content\"><h3 class=\"elementor-image-box-title\"><a href=\"https:\/\/drive.google.com\/file\/d\/1i_kjdbcr8IrIkcQe4U-WM2kn4HAwpegT\/view\" target=\"_blank\">Kabin<\/a><\/h3><p class=\"elementor-image-box-description\"><span>Kawan Ubinan merupakan aplikasi untuk memudahkan perhitungan atau konversi kegiatan ubinan komuditas padi<\/span><\/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-aec62b3 e-flex e-con-boxed e-con e-parent\" data-id=\"aec62b3\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-257b43c e-con-full e-flex e-con e-child\" data-id=\"257b43c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5ce44ec elementor-widget elementor-widget-heading\" data-id=\"5ce44ec\" 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-e28575e e-con-full e-flex e-con e-parent\" data-id=\"e28575e\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-89afbcd e-n-tabs-mobile elementor-widget elementor-widget-n-tabs\" data-id=\"89afbcd\" 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=\"144374733\" 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-1443747331\" data-tab-title-id=\"e-n-tab-title-1443747331\" class=\"e-n-tab-title\" aria-selected=\"true\" data-tab-index=\"1\" role=\"tab\" tabindex=\"0\" aria-controls=\"e-n-tab-content-1443747331\" 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-1443747332\" data-tab-title-id=\"e-n-tab-title-1443747332\" class=\"e-n-tab-title\" aria-selected=\"false\" data-tab-index=\"2\" role=\"tab\" tabindex=\"-1\" aria-controls=\"e-n-tab-content-1443747332\" 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-1443747333\" data-tab-title-id=\"e-n-tab-title-1443747333\" class=\"e-n-tab-title\" aria-selected=\"false\" data-tab-index=\"3\" role=\"tab\" tabindex=\"-1\" aria-controls=\"e-n-tab-content-1443747333\" 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-1443747331\" role=\"tabpanel\" aria-labelledby=\"e-n-tab-title-1443747331\" data-tab-index=\"1\" style=\"--n-tabs-title-order: 1;\" class=\"e-active elementor-element elementor-element-c5ff9dc e-con-full e-flex e-con e-child\" data-id=\"c5ff9dc\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-0068378 e-con-full e-flex e-con e-child\" data-id=\"0068378\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3612960 elementor-widget elementor-widget-heading\" data-id=\"3612960\" 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-bef2b30 elementor-widget elementor-widget-heading\" data-id=\"bef2b30\" 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-8fbbdfe elementor-widget elementor-widget-button\" data-id=\"8fbbdfe\" 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\/12rp4UrqFyehI92Yk8ipGxift2LpjpLhM?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-4f572d0 elementor-widget elementor-widget-html\" data-id=\"4f572d0\" 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 = \"12rp4UrqFyehI92Yk8ipGxift2LpjpLhM\";\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-1443747332\" role=\"tabpanel\" aria-labelledby=\"e-n-tab-title-1443747332\" data-tab-index=\"2\" style=\"--n-tabs-title-order: 2;\" class=\" elementor-element elementor-element-d2990c1 e-con-full e-flex e-con e-child\" data-id=\"d2990c1\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-77ade20 e-con-full e-flex e-con e-child\" data-id=\"77ade20\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e5d7db7 elementor-widget elementor-widget-heading\" data-id=\"e5d7db7\" 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-78e6e21 elementor-widget elementor-widget-heading\" data-id=\"78e6e21\" 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-66a3843 elementor-widget elementor-widget-button\" data-id=\"66a3843\" 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-589fa95 elementor-widget elementor-widget-button\" data-id=\"589fa95\" 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\/1UY7dNEIAut9ujdMPLnoHFPJR6Tko3Uqo?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-7c17a14 elementor-widget elementor-widget-html\" data-id=\"7c17a14\" 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 = \"1UY7dNEIAut9ujdMPLnoHFPJR6Tko3Uqo\"; \/\/ 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-1443747333\" role=\"tabpanel\" aria-labelledby=\"e-n-tab-title-1443747333\" data-tab-index=\"3\" style=\"--n-tabs-title-order: 3;\" class=\" elementor-element elementor-element-803f633 e-con-full e-flex e-con e-child\" data-id=\"803f633\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-5bc7354 e-con-full e-flex e-con e-child\" data-id=\"5bc7354\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-29239fe elementor-widget elementor-widget-heading\" data-id=\"29239fe\" 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-5fd68f2 elementor-widget elementor-widget-heading\" data-id=\"5fd68f2\" 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-eb35d39 elementor-widget elementor-widget-button\" data-id=\"eb35d39\" 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-ed1742c elementor-widget elementor-widget-button\" data-id=\"ed1742c\" 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-4d3278a elementor-widget elementor-widget-button\" data-id=\"4d3278a\" 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\/1V-86Lmvez3xuP8SgS1HH1E8muWsKGRgK?usp=drive_link\" 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-8f30c5d elementor-widget elementor-widget-html\" data-id=\"8f30c5d\" 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 = \"1V-86Lmvez3xuP8SgS1HH1E8muWsKGRgK\"; \/\/ 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>Produksi CTRL + F untuk pencarian GoPro Google Sites Produksi Kabin Kawan Ubinan merupakan aplikasi untuk memudahkan perhitungan atau konversi kegiatan ubinan komuditas padi Dokumen Kegiatan Dokumentasi Notula Daftar Hadir Dokumentasi Kegiatan Format Nama: Tanggal Kegiatan(YYYYMMDD)_[Nama Kegiatan]Contoh: 20250505_Rapat Rutin Upload Foto Urutkan A-Z \/ Z-A Prev Next X Download Notula Rapat\/Kegiatan Format Nama: Tanggal Kegiatan(YYYYMMDD)_[Nama [&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-1441","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/bpsjembrana.online\/jelita\/wp-json\/wp\/v2\/pages\/1441","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=1441"}],"version-history":[{"count":25,"href":"https:\/\/bpsjembrana.online\/jelita\/wp-json\/wp\/v2\/pages\/1441\/revisions"}],"predecessor-version":[{"id":4050,"href":"https:\/\/bpsjembrana.online\/jelita\/wp-json\/wp\/v2\/pages\/1441\/revisions\/4050"}],"wp:attachment":[{"href":"https:\/\/bpsjembrana.online\/jelita\/wp-json\/wp\/v2\/media?parent=1441"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}