diff --git a/01/api/add_columns.php b/01/api/add_columns.php
index a10a181..d2af4e9 100644
--- a/01/api/add_columns.php
+++ b/01/api/add_columns.php
@@ -1,7 +1,7 @@
errno == 1060) {
echo "Kolom $colName: Sudah ada (skip)\n";
} else {
diff --git a/01/api/check_db.php b/01/api/check_db.php
new file mode 100644
index 0000000..736e7bc
--- /dev/null
+++ b/01/api/check_db.php
@@ -0,0 +1,24 @@
+query("SHOW TABLES");
+if($res) {
+ while($row = $res->fetch_array()) {
+ echo $row[0] . "
";
+ }
+} else {
+ echo "Error showing tables: " . $conn->error;
+}
+
+echo "
@@ -4262,15 +4274,17 @@
}
setMode(null);
+ ensureLayerVisible('spbu', d.id);
+ focusFeature('spbu', d.id);
} else {
- alert("Gagal simpan database");
+ alert("Gagal menyimpan: " + (response.message || "Periksa database"));
}
})
.catch(err => {
- console.log(err);
- alert("Terjadi error");
+ console.error(err);
+ alert("Terjadi error jaringan");
});
}
@@ -4281,9 +4295,11 @@
const m = L.marker([d.lat, d.lng], { icon, draggable: true });
m.bindPopup(`
${d.nama}
-
No. SPBU${d.no}
-
Status${d.status === 'Ya' ? '✓ Buka 24 Jam' : '✗ Tidak Buka 24 Jam'}
-
Koordinat${d.lat.toFixed(5)}, ${d.lng.toFixed(5)}
+
+
No. SPBU${d.no}
+
Status${d.status === 'Ya' ? '✔ Buka 24 Jam' : '✖ Tidak Buka 24 Jam'}
+
Koordinat${d.lat.toFixed(5)}, ${d.lng.toFixed(5)}
+
@@ -4301,13 +4317,15 @@
state.tempMarkers.push(vm);
if (state.tempPolyline) map.removeLayer(state.tempPolyline);
state.tempPolyline = L.polyline(state.tempPoints, { color: '#e74c3c', weight: 3, dashArray: '7,5', opacity: 0.8 }).addTo(map);
- document.getElementById('hint').textContent = `ðŸ›£ï¸ ${state.tempPoints.length} titik — klik ganda untuk selesai`;
+ document.getElementById('hint').textContent = `📍 ${state.tempPoints.length} titik — klik ganda untuk selesai`;
}
function finishLine(e) {
if (state.tempPoints.length < 2) { alert('Minimal 2 titik!'); return; }
const pts = [...state.tempPoints];
const len = calcLen(pts);
+ window._tempLinePts = pts;
+ window._tempLineLen = len;
clearTemp();
L.popup({ closeOnClick: false, keepInView: true, autoPanPaddingTopLeft: [0, 80], autoPanPaddingBottomRight: [0, 20] })
.setLatLng(pts[Math.floor(pts.length / 2)])
@@ -4326,11 +4344,13 @@
Panjang terukur:
${fmtLen(len)}
-
+
`).addTo(map);
}
- function saveLine(pts, len) {
+ function saveLine() {
+ const pts = window._tempLinePts || [];
+ const len = window._tempLineLen || 0;
const nama = document.getElementById('j-nama').value.trim();
const status = document.getElementById('j-status').value;
@@ -4382,6 +4402,8 @@
map.closePopup();
setMode(null);
+ ensureLayerVisible('jalan', jalan.id);
+ focusFeature('jalan', jalan.id);
} else {
@@ -4423,14 +4445,15 @@
${d.nama}
-
-Status
-${d.status}
-
-
-
-
Panjang
-
${fmtLen(d.len)}
+
+
+ Status
+ ${d.status}
+
+
+ Panjang
+ ${fmtLen(d.len)}
+
@@ -4549,9 +4572,11 @@
if (state.tempPoints.length < 3) { alert('Minimal 3 titik!'); return; }
const pts = [...state.tempPoints];
const area = calcArea(pts);
+ window._tempPolyPts = pts;
+ window._tempPolyArea = area;
clearTemp();
const center = L.polygon(pts).getBounds().getCenter();
- L.popup({ closeOnClick: false, keepInView: true })
+ L.popup({ closeOnClick: false, keepInView: true, autoPanPaddingTopLeft: [0, 80], autoPanPaddingBottomRight: [0, 20] })
.setLatLng(center)
.setContent(`
Tambah Parsil / Lahan
@@ -4571,11 +4596,13 @@
Luas terukur:
${fmtArea(area)}
-
+
`).addTo(map);
}
- function saveParsil(pts, area) {
+ function saveParsil() {
+ const pts = window._tempPolyPts || [];
+ const area = window._tempPolyArea || 0;
const nama = document.getElementById('ps-nama').value.trim();
const pemilik = document.getElementById('ps-pemilik').value.trim();
@@ -4630,6 +4657,8 @@
map.closePopup();
setMode(null);
+ ensureLayerVisible('parsil', parsil.id);
+ focusFeature('parsil', parsil.id);
}
@@ -4666,19 +4695,19 @@
${d.nama}
-
-Pemilik
-${d.pemilik || '-'}
-
-
-
-Status
-${d.status}
-
-
-
-
Luas
-
${fmtArea(d.area)}
+
+
+ Pemilik
+ ${d.pemilik || '-'}
+
+
+ Status
+ ${d.status}
+
+
+ Luas
+ ${fmtArea(d.area)}
+
@@ -4929,7 +4958,7 @@
`;
map.closePopup();
- L.popup({ maxWidth: 290 }).setLatLng([ll.lat, ll.lng]).setContent(html).openOn(map);
+ L.popup({ maxWidth: 290, autoPanPaddingTopLeft: [0, 80], autoPanPaddingBottomRight: [0, 20] }).setLatLng([ll.lat, ll.lng]).setContent(html).openOn(map);
}
function saveEditSpbu(id) {
@@ -4990,7 +5019,7 @@
`;
map.closePopup();
- L.popup({ maxWidth: 330 }).setLatLng(center).setContent(html).openOn(map);
+ L.popup({ maxWidth: 330, autoPanPaddingTopLeft: [0, 80], autoPanPaddingBottomRight: [0, 20] }).setLatLng(center).setContent(html).openOn(map);
}
function saveEditJalan(id) {
@@ -5057,7 +5086,7 @@
`;
map.closePopup();
- L.popup({ maxWidth: 330 }).setLatLng(center).setContent(html).openOn(map);
+ L.popup({ maxWidth: 330, autoPanPaddingTopLeft: [0, 80], autoPanPaddingBottomRight: [0, 20] }).setLatLng(center).setContent(html).openOn(map);
}
function saveEditParsil(id) {
@@ -5195,6 +5224,7 @@
const ref = state.featureRefs[type][String(id)];
if (!ref) return;
+ map.invalidateSize();
ensureLayerVisible(type, id);
setActiveCard(type, id);
@@ -5229,6 +5259,7 @@
focusFeature(type, id);
}
};
+ if (!c) { console.warn('addCard: container list-' + type + ' not found'); return; }
c.appendChild(el);
}
@@ -5623,6 +5654,8 @@
renderDashboard();
if (window._tmpM) { map.closePopup(); map.removeLayer(window._tmpM); window._tmpM = null; }
setMode(null);
+ ensureLayerVisible('jalan', jalan.id);
+ focusFeature('jalan', jalan.id);
} else {
alert("Gagal simpan: " + (response.message || 'Error'));
}
@@ -5764,7 +5797,7 @@
`;
map.closePopup();
- L.popup({ maxWidth: 330 }).setLatLng([d.lat, d.lng]).setContent(html).openOn(map);
+ L.popup({ maxWidth: 330, autoPanPaddingTopLeft: [0, 80], autoPanPaddingBottomRight: [0, 20] }).setLatLng([d.lat, d.lng]).setContent(html).openOn(map);
}
function saveEditKemiskinan(id) {
@@ -6072,7 +6105,7 @@
`;
map.closePopup();
- L.popup({ maxWidth: 340 }).setLatLng([d.lat, d.lng]).setContent(html).openOn(map);
+ L.popup({ maxWidth: 340, autoPanPaddingTopLeft: [0, 80], autoPanPaddingBottomRight: [0, 20] }).setLatLng([d.lat, d.lng]).setContent(html).openOn(map);
}
function saveEditMasjid(id) {
diff --git a/01/test_jalan.php b/01/test_jalan.php
new file mode 100644
index 0000000..e6e781b
--- /dev/null
+++ b/01/test_jalan.php
@@ -0,0 +1,10 @@
+
diff --git a/01/test_jalan2.php b/01/test_jalan2.php
new file mode 100644
index 0000000..32a4ea1
--- /dev/null
+++ b/01/test_jalan2.php
@@ -0,0 +1,10 @@
+