UI: Compacting sidebar, removing auto-load section, and optimizing input layouts
Deploy Bürgerwind / deploy (push) Successful in 17s
Details
Deploy Bürgerwind / deploy (push) Successful in 17s
Details
This commit is contained in:
parent
636286024c
commit
a47047d34d
118
index.html
118
index.html
|
|
@ -44,99 +44,81 @@
|
|||
|
||||
<div class="section">
|
||||
<h2>Anlagen-Konfiguration</h2>
|
||||
<div class="control-group">
|
||||
<label for="turbineManufacturer">Hersteller</label>
|
||||
<select id="turbineManufacturer" class="input-styled">
|
||||
<option value="Enercon">Enercon</option>
|
||||
<option value="Nordex">Nordex</option>
|
||||
<option value="Vestas">Vestas</option>
|
||||
<option value="GE">GE</option>
|
||||
</select>
|
||||
<div style="display: flex; gap: 8px; margin-bottom: 6px;">
|
||||
<div style="flex: 1;">
|
||||
<label for="turbineManufacturer" class="label-small">Hersteller</label>
|
||||
<select id="turbineManufacturer" class="input-styled input-small">
|
||||
<option value="Enercon">Enercon</option>
|
||||
<option value="Nordex">Nordex</option>
|
||||
<option value="Vestas">Vestas</option>
|
||||
<option value="GE">GE</option>
|
||||
</select>
|
||||
</div>
|
||||
<div style="flex: 1;">
|
||||
<label for="turbineType" class="label-small">Anlagentyp</label>
|
||||
<input type="text" id="turbineType" class="input-styled input-small" placeholder="z.B. V162">
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label for="turbineType">Anlagentyp</label>
|
||||
<input type="text" id="turbineType" class="input-styled" placeholder="z.B. V162">
|
||||
<div style="display: flex; gap: 8px; align-items: center; margin-bottom: 6px;">
|
||||
<label for="rotorDiameter" class="label-small" style="flex: 1; margin: 0;">Rotordurchmesser (m)</label>
|
||||
<input type="number" id="rotorDiameter" class="input-styled input-small" value="160" style="width: 60px;">
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label for="rotorDiameter">Rotordurchmesser (m)</label>
|
||||
<input type="number" id="rotorDiameter" class="input-styled" value="160">
|
||||
<div style="display: flex; gap: 8px; align-items: center; margin-bottom: 6px;">
|
||||
<label for="hubHeight" class="label-small" style="flex: 1; margin: 0;">Nabenhöhe (m)</label>
|
||||
<input type="number" id="hubHeight" class="input-styled input-small" value="165" style="width: 60px;">
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label for="hubHeight">Nabenhöhe (m)</label>
|
||||
<input type="number" id="hubHeight" class="input-styled" value="165">
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label for="foundationRadius">Fundament Radius (m)</label>
|
||||
<input type="number" id="foundationRadius" class="input-styled" value="15">
|
||||
<div style="display: flex; gap: 8px; align-items: center; margin-bottom: 6px;">
|
||||
<label for="foundationRadius" class="label-small" style="flex: 1; margin: 0;">Fundament Radius (m)</label>
|
||||
<input type="number" id="foundationRadius" class="input-styled input-small" value="15" style="width: 60px;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<h2>Werkzeuge</h2>
|
||||
<div class="control-group" style="display: flex; gap: 8px; flex-wrap: wrap;">
|
||||
<button class="btn-primary" id="btnPlaceTurbine" style="flex: 1; min-width: 140px;">
|
||||
<div class="control-group" style="display: flex; gap: 6px; flex-wrap: wrap;">
|
||||
<button class="btn-primary btn-mini" id="btnPlaceTurbine" style="flex: 1.2; min-width: 100px;">
|
||||
<span>📍</span> Anlage setzen
|
||||
</button>
|
||||
<button class="btn-secondary" id="btnManageOwners"
|
||||
style="flex: 1; min-width: 140px; margin-top: 0;">
|
||||
<span>👥</span> Eigentümer verwalten
|
||||
<button class="btn-secondary btn-mini" id="btnManageOwners"
|
||||
style="flex: 1.2; min-width: 100px; margin-top: 0;">
|
||||
<span>👥</span> Eigentümer
|
||||
</button>
|
||||
<button class="btn-secondary" id="btnMeasureDist" title="Distanz messen"
|
||||
style="flex: 0.5; padding: 10px; margin-top: 0;">📏</button>
|
||||
<button class="btn-secondary" id="btnMeasureArea" title="Fläche messen"
|
||||
style="flex: 0.5; padding: 10px; margin-top: 0;">📐</button>
|
||||
<button class="btn-secondary btn-mini" id="btnMeasureDist" title="Distanz messen"
|
||||
style="flex: 0.4; padding: 6px; margin-top: 0;">📏</button>
|
||||
<button class="btn-secondary btn-mini" id="btnMeasureArea" title="Fläche messen"
|
||||
style="flex: 0.4; padding: 6px; margin-top: 0;">📐</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- UTM Coordinate Input -->
|
||||
<div class="section"
|
||||
style="border: 1px solid var(--border-color); padding: 12px; border-radius: 10px; background: rgba(255, 255, 255, 0.02);">
|
||||
<h2 style="margin-bottom: 10px;">Manuelle Koordinaten (UTM)</h2>
|
||||
<div style="display: flex; gap: 8px; margin-bottom: 10px;">
|
||||
style="border: 1px solid var(--border-color); padding: 8px; border-radius: 8px; background: rgba(255, 255, 255, 0.02);">
|
||||
<h2 style="margin-bottom: 6px;">UTM-Position</h2>
|
||||
<div style="display: flex; gap: 6px; margin-bottom: 6px;">
|
||||
<div style="flex: 1;">
|
||||
<label
|
||||
style="font-size: 0.75rem; color: var(--text-dim); display: block; margin-bottom: 3px;">Rechtswert
|
||||
(E)</label>
|
||||
<input type="number" id="utm-e" class="input-styled" placeholder="32..." step="0.01">
|
||||
<label class="label-small">Rechts (E)</label>
|
||||
<input type="number" id="utm-e" class="input-styled input-small" placeholder="32..." step="0.01">
|
||||
</div>
|
||||
<div style="flex: 1;">
|
||||
<label
|
||||
style="font-size: 0.75rem; color: var(--text-dim); display: block; margin-bottom: 3px;">Hochwert
|
||||
(N)</label>
|
||||
<input type="number" id="utm-n" class="input-styled" placeholder="5..." step="0.01">
|
||||
<label class="label-small">Hoch (N)</label>
|
||||
<input type="number" id="utm-n" class="input-styled input-small" placeholder="5..." step="0.01">
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn-primary" id="btnCreateAtUTM" style="font-size: 0.8rem; padding: 8px;">
|
||||
An UTM-Position erzeugen
|
||||
<button class="btn-primary btn-mini" id="btnCreateAtUTM" style="font-size: 0.75rem;">
|
||||
An UTM erzeugen
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- Daten-Laden Section -->
|
||||
<div class="section" id="importSection">
|
||||
<h2>Daten-Laden & Automatik</h2>
|
||||
<div
|
||||
style="background: rgba(255, 136, 0, 0.1); border: 1px dashed #ff8800; padding: 10px; border-radius: 8px;">
|
||||
<p style="font-size: 0.75rem; color: #ff8800; margin-bottom: 8px;">
|
||||
<b>1. Einmalig:</b> Dateien (.shp + .dbf) wählen ODER auf Karte ziehen.<br>
|
||||
<b>2. Dauerhaft machen:</b> Unten auf "Daten-Bundle speichern" klicken und in /data als
|
||||
<i>baked_layers.js</i> speichern.
|
||||
</p>
|
||||
<button class="btn-secondary" id="btnManualImport"
|
||||
style="border-color: #ff8800; color: #ff8800;">
|
||||
📂 Dateien wählen
|
||||
</button>
|
||||
<input type="file" id="manualShpInput" style="display: none;" multiple accept=".shp,.dbf">
|
||||
|
||||
<button class="btn-secondary" id="btnExportBundle"
|
||||
style="margin-top: 10px; background: #ff8800; color: white; border: none;">
|
||||
💾 Daten-Bundle speichern
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="section">
|
||||
<h2>Projektverwaltung</h2>
|
||||
<button class="btn-secondary" id="btnSaveProject">Projekt speichern (Lokal)</button>
|
||||
<button class="btn-primary" id="btnSaveDB">In Datenbank speichern</button>
|
||||
<button class="btn-secondary" id="btnLoadProject">Projekt laden (Lokal)</button>
|
||||
<h2>Projekt</h2>
|
||||
<div style="display: flex; flex-direction: column; gap: 4px;">
|
||||
<button class="btn-primary btn-mini" id="btnSaveDB">In DB speichern</button>
|
||||
<div style="display: flex; gap: 4px;">
|
||||
<button class="btn-secondary btn-mini" id="btnSaveProject" style="flex: 1;">Sichern</button>
|
||||
<button class="btn-secondary btn-mini" id="btnLoadProject" style="flex: 1;">Laden</button>
|
||||
</div>
|
||||
</div>
|
||||
<input type="file" id="projectInput" style="display: none;" accept=".json">
|
||||
</div>
|
||||
|
||||
|
|
|
|||
34
style.css
34
style.css
|
|
@ -46,7 +46,7 @@ body {
|
|||
}
|
||||
|
||||
.sidebar-header {
|
||||
padding: 15px;
|
||||
padding: 10px;
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
|
|
@ -62,33 +62,39 @@ body {
|
|||
.sidebar-content {
|
||||
flex-grow: 1;
|
||||
overflow-y: auto;
|
||||
padding: 12px;
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
.section {
|
||||
margin-bottom: 15px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.section h2 {
|
||||
font-size: 0.75rem;
|
||||
font-size: 0.7rem;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.5px;
|
||||
color: var(--text-dim);
|
||||
margin-bottom: 8px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
/* Control Elements */
|
||||
.control-group {
|
||||
margin-bottom: 12px;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
|
||||
.control-group label {
|
||||
display: block;
|
||||
font-size: 0.8rem;
|
||||
margin-bottom: 4px;
|
||||
font-size: 0.75rem;
|
||||
margin-bottom: 2px;
|
||||
color: var(--text-main);
|
||||
}
|
||||
|
||||
.label-small {
|
||||
font-size: 0.7rem !important;
|
||||
color: var(--text-dim);
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.input-styled {
|
||||
width: 100%;
|
||||
background: rgba(255, 255, 255, 0.05);
|
||||
|
|
@ -100,6 +106,11 @@ body {
|
|||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.input-small {
|
||||
padding: 4px 6px !important;
|
||||
font-size: 0.8rem !important;
|
||||
}
|
||||
|
||||
.input-styled option {
|
||||
background: #1e1e1e;
|
||||
color: white;
|
||||
|
|
@ -107,7 +118,7 @@ body {
|
|||
|
||||
/* Compact number inputs */
|
||||
.input-number {
|
||||
width: 80px !important;
|
||||
width: 60px !important;
|
||||
}
|
||||
|
||||
.input-styled:focus {
|
||||
|
|
@ -133,6 +144,11 @@ body {
|
|||
gap: 6px;
|
||||
}
|
||||
|
||||
.btn-mini {
|
||||
padding: 4px 8px !important;
|
||||
font-size: 0.75rem !important;
|
||||
}
|
||||
|
||||
.btn-primary:hover {
|
||||
background: var(--primary-hover);
|
||||
transform: translateY(-1px);
|
||||
|
|
|
|||
Loading…
Reference in New Issue