diff --git a/index.html b/index.html
index 07a38ac..28730d8 100644
--- a/index.html
+++ b/index.html
@@ -490,7 +490,7 @@ function renderList() {
el.innerHTML = '';
filtered.forEach((flag) => {
- const globalIdx = flags.indexOf(flag) + 1;
+ const displayIdx = flag.number || flags.indexOf(flag) + 1;
const isSelected = selectedFlagId === flag.id;
const li = document.createElement('li');
li.className = 'flag-item' + (isSelected ? ' selected' : '');
@@ -507,7 +507,7 @@ function renderList() {
}
header.innerHTML = `
- ${globalIdx}
+ ${displayIdx}
${esc(flag.name)}
@@ -592,9 +592,9 @@ map.on('click', (e) => {
if (!flag || flag.placed) return;
const { lat, lng } = e.latlng;
- const idx = flags.indexOf(flag) + 1;
- const marker = L.marker([lat, lng], { icon: makeNumIcon(idx), draggable: true }).addTo(map);
- marker.bindTooltip(`${flag.name}${flag.number ? ' (' + flag.number + ')' : ''}`, { direction: 'top' });
+ const displayNum = flag.number || flags.indexOf(flag) + 1;
+ const marker = L.marker([lat, lng], { icon: makeNumIcon(displayNum), draggable: true }).addTo(map);
+ if (flag.name) marker.bindTooltip(esc(flag.name), { direction: 'right', offset: [10, 0] });
marker.on('dragend', () => {
const p = marker.getLatLng(); flag.lat = p.lat; flag.lng = p.lng;
scheduleGeocode(flag); renderList();
@@ -644,9 +644,9 @@ document.getElementById('file-input').addEventListener('change', async (e) => {
let lat = parseFloat(row.Latitude || row.latitude || row.위도);
let lng = parseFloat(row.Longitude || row.longitude || row.경도);
if (!isNaN(lat) && !isNaN(lng)) {
- const idx = flags.indexOf(flag) + 1;
- const marker = L.marker([lat, lng], { icon: makeNumIcon(idx), draggable: true }).addTo(map);
- marker.bindTooltip(`${flag.name}${flag.number ? ' (' + flag.number + ')' : ''}`, { direction: 'top' });
+ const displayNum = flag.number || flags.indexOf(flag) + 1;
+ const marker = L.marker([lat, lng], { icon: makeNumIcon(displayNum), draggable: true }).addTo(map);
+ if (flag.name) marker.bindTooltip(esc(flag.name), { direction: 'right', offset: [10, 0] });
marker.on('dragend', () => {
const p = marker.getLatLng(); flag.lat = p.lat; flag.lng = p.lng;
scheduleGeocode(flag); renderList();
@@ -673,22 +673,22 @@ document.getElementById('file-input').addEventListener('change', async (e) => {
document.getElementById('template-btn').addEventListener('click', () => {
const wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, XLSX.utils.json_to_sheet([
- { Name: 'Flag 1', Number: 'A001' },
- { Name: 'Flag 2', Number: 'A002' },
- { Name: 'Flag 3', Number: 'A003' },
+ { Number: 'A001', Name: 'Flag 1' },
+ { Number: 'A002', Name: 'Flag 2' },
+ { Number: 'A003', Name: 'Flag 3' },
]), 'Flags');
XLSX.writeFile(wb, 'flag_template.xlsx');
});
document.getElementById('export-btn').addEventListener('click', () => {
const rows = flags.map(f => ({
- Name: f.name, Number: f.number,
+ Number: f.number, Name: f.name,
Status: f.placed ? 'Placed' : 'Unplaced',
Latitude: f.lat ?? '', Longitude: f.lng ?? '', Address: f.address ?? '',
}));
const wb = XLSX.utils.book_new();
const ws = XLSX.utils.json_to_sheet(rows);
- ws['!cols'] = [{ wch: 20 }, { wch: 12 }, { wch: 10 }, { wch: 12 }, { wch: 12 }, { wch: 60 }];
+ ws['!cols'] = [{ wch: 12 }, { wch: 20 }, { wch: 10 }, { wch: 12 }, { wch: 12 }, { wch: 60 }];
XLSX.utils.book_append_sheet(wb, ws, 'Flags');
XLSX.writeFile(wb, 'flag_export.xlsx');
});