APILL
Catatan Waktu
Password
MASUK
Password salah. Coba lagi.
DINAS PERHUBUNGAN
DISHUB
KOTA PONTIANAK
APILL
Catatan Waktu
—
Simpang
↻
Sync
⚙️
⚠️ Mode offline — edit tidak tersimpan ke Sheet
Setup
Memuat data...
←
Kembali
—
✏️ Edit
↩️
↻
← Kembali
Setup Koneksi
LANGKAH 01
Paste kode Apps Script
Di Google Sheet →
Extensions → Apps Script
Hapus kode lama, paste kode berikut:
const SHEET_ID = '1QDzxQPXuKiYsnkxpLMxyyNXnzLQDLvnjCslZLQichN4'; const SHEET_NAME = 'Waktu'; function doGet(e) { const action = e.parameter.action || 'getData'; const callback = e.parameter.callback; let result; try { if (action === 'getData') { const ss = SpreadsheetApp.openById(SHEET_ID); const sheet = ss.getSheetByName(SHEET_NAME); const data = sheet.getDataRange().getDisplayValues(); result = { status: 'ok', data: data }; } else if (action === 'updateRow') { // Also support GET-based update (fallback for CORS) const rowIndex = parseInt(e.parameter.rowIndex); const rowData = JSON.parse(decodeURIComponent(e.parameter.rowData)); const ss = SpreadsheetApp.openById(SHEET_ID); const sheet = ss.getSheetByName(SHEET_NAME); sheet.getRange(rowIndex, 1, 1, rowData.length).setValues([rowData]); result = { status: 'ok' }; } else { result = { status: 'error', message: 'Unknown action' }; } } catch(err) { result = { status: 'error', message: err.toString() }; } const json = JSON.stringify(result); if (callback) { return ContentService.createTextOutput(callback + '(' + json + ')') .setMimeType(ContentService.MimeType.JAVASCRIPT); } return ContentService.createTextOutput(json) .setMimeType(ContentService.MimeType.JSON); } function doPost(e) { try { const body = JSON.parse(e.postData.contents); if (body.action === 'updateRow') { const ss = SpreadsheetApp.openById(SHEET_ID); const sheet = ss.getSheetByName(SHEET_NAME); sheet.getRange(body.rowIndex, 1, 1, body.rowData.length) .setValues([body.rowData]); return ContentService.createTextOutput(JSON.stringify({ status: 'ok' })) .setMimeType(ContentService.MimeType.JSON); } } catch(err) { return ContentService.createTextOutput( JSON.stringify({ status: 'error', message: err.toString() })) .setMimeType(ContentService.MimeType.JSON); } }
📋 Copy Kode
LANGKAH 02
Deploy / Redeploy sebagai Web App
⚠️ Wajib Redeploy setelah ganti kode!
Deploy baru:
Deploy → New Deployment → Web app
Execute as:
Me
| Access:
Anyone
Update kode:
Deploy → Manage Deployments → ✏️ → New version → Deploy
LANGKAH 03
URL Web App
URL Apps Script aktif saat ini. Ganti hanya jika ada deployment baru:
Simpan
↩️ Reset ke URL default
STATUS
✅ URL default sudah terpasang. Klik Sync untuk test koneksi.
↩️ Riwayat Edit
10 edit terakhir
Tutup
🔐 Password Edit
Masukkan password untuk mengakses fitur edit & setup
Password
Password salah. Coba lagi.
Batal
Masuk
✏️ Edit Waktu
Batal
💾 Simpan