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:
+27
-21
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user