update sistem proyek menjadi lebih struktural. dimulai dengan memisahkan dashboard publik dan administrator pada setiap proyek, membuat dockerfile untuk setup environment docker, dan merapikan database serta membuat file migration.

This commit is contained in:
2026-06-10 17:44:46 +07:00
parent c6087ed7dd
commit e98a8ecec9
34 changed files with 963 additions and 211 deletions
+27 -21
View File
@@ -15,6 +15,7 @@ var layerGroup24 = L.featureGroup().addTo(map);
var layerGroupTidak = L.featureGroup().addTo(map);
var show24 = true;
var showTidak = true;
var isAdmin = window.IS_ADMIN === true;
function toggleLayer(type) {
if (type === '24jam') {
@@ -28,19 +29,21 @@ function toggleLayer(type) {
}
}
var drawControl = new L.Control.Draw({
position: 'topleft',
edit: { featureGroup: drawnItems },
draw: {
marker: true,
polyline: false,
polygon: false,
rectangle: false,
circle: false,
circlemarker: false
}
});
map.addControl(drawControl);
if (isAdmin) {
var drawControl = new L.Control.Draw({
position: 'topleft',
edit: { featureGroup: drawnItems },
draw: {
marker: true,
polyline: false,
polygon: false,
rectangle: false,
circle: false,
circlemarker: false
}
});
map.addControl(drawControl);
}
function makeIcon(status) {
var c = status === '24 Jam' ? '#4ade80' : '#f87171';
@@ -60,13 +63,14 @@ function statusBadge(status) {
}
function buildInfoPopup(d) {
var deleteButton = isAdmin ? `<button class="ip-del" onclick="hapusData(${d.id},'spbu')">Hapus</button>` : '';
return `<div class="ip">
<div class="ip-head" style="background:linear-gradient(135deg,#1d4ed8,#3b82f6)">⛽ SPBU - ${d.nama}</div>
<div class="ip-body">
<div class="ip-row"><span class="ip-label">No. SPBU</span><span class="ip-val">${d.no_spbu}</span></div>
<div class="ip-row"><span class="ip-label">Status</span><span class="ip-val">${statusBadge(d.status)}</span></div>
<div class="ip-row"><span class="ip-label">Koordinat</span><span class="ip-val" style="font-size:10px">${parseFloat(d.latitude).toFixed(5)}, ${parseFloat(d.longitude).toFixed(5)}</span></div>
<button class="ip-del" onclick="hapusData(${d.id},'point')">Hapus</button>
${deleteButton}
</div>
</div>`;
}
@@ -76,7 +80,7 @@ fetch('../php/show_spbu.php')
.then(data => {
data.forEach(d => {
var layer = L.marker([d.latitude, d.longitude], { icon: makeIcon(d.status) });
layer._type = 'point';
layer._type = 'spbu';
layer._db_id = d.id;
layer.bindPopup(buildInfoPopup(d), { maxWidth: 260 });
d.status === '24 Jam' ? layerGroup24.addLayer(layer) : layerGroupTidak.addLayer(layer);
@@ -94,12 +98,14 @@ function hapusData(id, type) {
});
}
map.on(L.Draw.Event.CREATED, function(e) {
if (e.layerType !== 'marker') return;
var layer = e.layer;
drawnItems.addLayer(layer);
handlePoint(layer);
});
if (isAdmin) {
map.on(L.Draw.Event.CREATED, function(e) {
if (e.layerType !== 'marker') return;
var layer = e.layer;
drawnItems.addLayer(layer);
handlePoint(layer);
});
}
function handlePoint(layer) {
var ll = layer.getLatLng();