Initial commit: Location Management Flask app

This commit is contained in:
ske087
2026-02-26 19:24:17 +02:00
commit 7a22575dab
52 changed files with 3481 additions and 0 deletions

View File

@@ -0,0 +1,86 @@
{% extends "base.html" %}
{% block title %}Edit {{ board.name }} Location Management{% endblock %}
{% block content %}
<nav aria-label="breadcrumb" class="mb-3">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="{{ url_for('boards.list_boards') }}">Boards</a></li>
<li class="breadcrumb-item"><a href="{{ url_for('boards.board_detail', board_id=board.id) }}">{{ board.name }}</a></li>
<li class="breadcrumb-item active">Edit</li>
</ol>
</nav>
<div class="card border-0 rounded-4" style="max-width:700px">
<div class="card-header bg-transparent fw-semibold pt-3">
<i class="bi bi-pencil me-1"></i> Edit Board — {{ board.name }}
</div>
<div class="card-body">
<form method="POST">
<!-- Connection -->
<h6 class="text-secondary mb-3 text-uppercase small fw-semibold">Connection</h6>
<div class="mb-3">
<label class="form-label">Local Name</label>
<input type="text" name="name" class="form-control" value="{{ board.name }}" required />
</div>
<div class="mb-3">
<label class="form-label">Board Type</label>
<select name="board_type" class="form-select">
{% for value, label in board_types %}
<option value="{{ value }}" {% if board.board_type == value %}selected{% endif %}>{{ label }}</option>
{% endfor %}
</select>
</div>
<div class="row g-3 mb-4">
<div class="col-8">
<label class="form-label">IP / Hostname</label>
<input type="text" name="host" class="form-control font-monospace" value="{{ board.host }}" required />
</div>
<div class="col-4">
<label class="form-label">Port</label>
<input type="number" name="port" class="form-control" value="{{ board.port }}" />
</div>
</div>
<div class="row g-3 mb-4">
<div class="col-6">
<label class="form-label">Number of Relays</label>
<input type="number" name="num_relays" class="form-control" value="{{ board.num_relays }}" min="1" max="32" />
</div>
<div class="col-6">
<label class="form-label">Number of Inputs</label>
<input type="number" name="num_inputs" class="form-control" value="{{ board.num_inputs }}" min="0" max="32" />
</div>
</div>
<!-- Labels -->
<h6 class="text-secondary mb-3 text-uppercase small fw-semibold">Relay Labels</h6>
<div class="row g-2 mb-4">
{% for n in range(1, board.num_relays + 1) %}
<div class="col-6">
<label class="form-label small">Relay {{ n }}</label>
<input type="text" name="relay_{{ n }}_label" class="form-control form-control-sm"
placeholder="Relay {{ n }}"
value="{{ board.labels.get('relay_' ~ n, '') }}" />
</div>
{% endfor %}
</div>
<h6 class="text-secondary mb-3 text-uppercase small fw-semibold">Input Labels</h6>
<div class="row g-2 mb-4">
{% for n in range(1, board.num_inputs + 1) %}
<div class="col-6">
<label class="form-label small">Input {{ n }}</label>
<input type="text" name="input_{{ n }}_label" class="form-control form-control-sm"
placeholder="Input {{ n }}"
value="{{ board.labels.get('input_' ~ n, '') }}" />
</div>
{% endfor %}
</div>
<div class="d-flex gap-2">
<button type="submit" class="btn btn-primary"><i class="bi bi-check-lg me-1"></i> Save</button>
<a href="{{ url_for('boards.board_detail', board_id=board.id) }}" class="btn btn-outline-secondary">Cancel</a>
</div>
</form>
</div>
</div>
{% endblock %}