Compact legend and expanded owner management table (Nachname, Vorname, Adresse)
Deploy Bürgerwind / deploy (push) Successful in 17s
Details
Deploy Bürgerwind / deploy (push) Successful in 17s
Details
This commit is contained in:
parent
3f277cca6d
commit
f8874a3e95
23
app.js
23
app.js
|
|
@ -1511,8 +1511,20 @@ document.addEventListener('DOMContentLoaded', async () => {
|
||||||
const last = p[state.ownerMapping.lastName] || '';
|
const last = p[state.ownerMapping.lastName] || '';
|
||||||
const fullName = `${first} ${last}`.trim() || "Unbekannt";
|
const fullName = `${first} ${last}`.trim() || "Unbekannt";
|
||||||
|
|
||||||
|
// Adress-Felder extrahieren (STR, HSN, PLZ, ORP)
|
||||||
|
const str = p.STR || '';
|
||||||
|
const hsn = p.HSN || '';
|
||||||
|
const plz = p.PLZ || '';
|
||||||
|
const ort = p.ORP || '';
|
||||||
|
const address = `${str} ${hsn}, ${plz} ${ort}`.trim().replace(/^,/, '').trim();
|
||||||
|
|
||||||
if (!owners[fullName]) {
|
if (!owners[fullName]) {
|
||||||
owners[fullName] = { count: 0, first, last };
|
owners[fullName] = {
|
||||||
|
count: 0,
|
||||||
|
first,
|
||||||
|
last,
|
||||||
|
address: address || 'Keine Adresse'
|
||||||
|
};
|
||||||
}
|
}
|
||||||
owners[fullName].count++;
|
owners[fullName].count++;
|
||||||
});
|
});
|
||||||
|
|
@ -1523,7 +1535,10 @@ document.addEventListener('DOMContentLoaded', async () => {
|
||||||
const query = ownerSearch.value.toLowerCase();
|
const query = ownerSearch.value.toLowerCase();
|
||||||
const filtered = {};
|
const filtered = {};
|
||||||
for (let name in owners) {
|
for (let name in owners) {
|
||||||
if (name.toLowerCase().includes(query)) filtered[name] = owners[name];
|
const o = owners[name];
|
||||||
|
if (name.toLowerCase().includes(query) || (o.address && o.address.toLowerCase().includes(query))) {
|
||||||
|
filtered[name] = o;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
renderOwnerRows(filtered);
|
renderOwnerRows(filtered);
|
||||||
};
|
};
|
||||||
|
|
@ -1539,7 +1554,9 @@ document.addEventListener('DOMContentLoaded', async () => {
|
||||||
|
|
||||||
const row = document.createElement('tr');
|
const row = document.createElement('tr');
|
||||||
row.innerHTML = `
|
row.innerHTML = `
|
||||||
<td><b>${name}</b></td>
|
<td><b>${data.last}</b></td>
|
||||||
|
<td>${data.first}</td>
|
||||||
|
<td style="font-size: 0.75rem; opacity: 0.8;">${data.address}</td>
|
||||||
<td>${data.count} Flurstücke</td>
|
<td>${data.count} Flurstücke</td>
|
||||||
<td>
|
<td>
|
||||||
<select class="status-select" data-owner="${name}">
|
<select class="status-select" data-owner="${name}">
|
||||||
|
|
|
||||||
|
|
@ -232,7 +232,9 @@
|
||||||
<table id="ownerTable">
|
<table id="ownerTable">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Name</th>
|
<th>Nachname</th>
|
||||||
|
<th>Vorname</th>
|
||||||
|
<th>Adresse</th>
|
||||||
<th>Flächen</th>
|
<th>Flächen</th>
|
||||||
<th>Status</th>
|
<th>Status</th>
|
||||||
<th>Notiz</th>
|
<th>Notiz</th>
|
||||||
|
|
|
||||||
30
style.css
30
style.css
|
|
@ -253,7 +253,7 @@ body {
|
||||||
}
|
}
|
||||||
|
|
||||||
.panel-content {
|
.panel-content {
|
||||||
padding: 18px;
|
padding: 12px 15px;
|
||||||
max-height: 500px;
|
max-height: 500px;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
|
@ -266,10 +266,10 @@ body {
|
||||||
}
|
}
|
||||||
|
|
||||||
.legend-section-title {
|
.legend-section-title {
|
||||||
font-size: 0.7rem;
|
font-size: 0.65rem;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
color: var(--primary-color);
|
color: var(--primary-color);
|
||||||
margin-bottom: 12px;
|
margin-bottom: 8px;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
letter-spacing: 1.2px;
|
letter-spacing: 1.2px;
|
||||||
opacity: 0.8;
|
opacity: 0.8;
|
||||||
|
|
@ -278,25 +278,25 @@ body {
|
||||||
.legend-item {
|
.legend-item {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 12px;
|
gap: 10px;
|
||||||
font-size: 0.85rem;
|
font-size: 0.8rem;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 6px;
|
||||||
color: rgba(255, 255, 255, 0.9);
|
color: rgba(255, 255, 255, 0.9);
|
||||||
}
|
}
|
||||||
|
|
||||||
.legend-item-status {
|
.legend-item-status {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
gap: 15px;
|
gap: 10px;
|
||||||
margin-bottom: 18px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-dot {
|
.status-dot {
|
||||||
width: 20px;
|
width: 14px;
|
||||||
height: 20px;
|
height: 14px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
margin-top: 2px;
|
margin-top: 3px;
|
||||||
box-shadow: 0 0 10px rgba(0,0,0,0.3);
|
box-shadow: 0 0 10px rgba(0,0,0,0.3);
|
||||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||||
}
|
}
|
||||||
|
|
@ -309,14 +309,14 @@ body {
|
||||||
|
|
||||||
.status-label {
|
.status-label {
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
font-size: 0.95rem;
|
font-size: 0.85rem;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-desc {
|
.status-desc {
|
||||||
font-size: 0.75rem;
|
font-size: 0.7rem;
|
||||||
color: rgba(255, 255, 255, 0.6);
|
color: rgba(255, 255, 255, 0.6);
|
||||||
line-height: 1.4;
|
line-height: 1.3;
|
||||||
}
|
}
|
||||||
|
|
||||||
#floatingLegend.collapsed .panel-content {
|
#floatingLegend.collapsed .panel-content {
|
||||||
|
|
@ -546,7 +546,7 @@ body {
|
||||||
background: var(--panel-bg);
|
background: var(--panel-bg);
|
||||||
border: 1px solid var(--border-color);
|
border: 1px solid var(--border-color);
|
||||||
border-radius: 16px;
|
border-radius: 16px;
|
||||||
width: 800px;
|
width: 1100px;
|
||||||
max-width: 90%;
|
max-width: 90%;
|
||||||
max-height: 85vh;
|
max-height: 85vh;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue