munin/templates/import.html
2026-10-19 10:13:56 +02:00

82 lines
3.4 KiB
HTML

{{template "header" .}}
<div class="page-header">
<div class="page-header-title">
<h1>Import {{template "helplink" "weboberflaeche#import"}}</h1>
<span class="help">Markdown-Dateien als ZIP-Archiv hochladen: einen Export aus Munin
oder vorhandene Dokumentation. Jede Datei wird ein Eintrag.</span>
</div>
</div>
<section class="section">
<div class="card">
{{/* enctype="multipart/form-data" ist nötig, damit der Browser die Datei
selbst mitschickt und nicht nur ihren Namen. */}}
<form method="POST" action="/p/{{.Project.Slug}}/import" enctype="multipart/form-data" class="form">
<input type="hidden" name="csrf_token" value="{{.CSRFToken}}">
<div class="field medium">
<label for="archiv">ZIP-Archiv</label>
<span class="help">Dateien auf <code>.md</code>, auch in Unterordnern, höchstens
{{.Data.MaxFiles}} Stück. Alles andere wird übergangen.</span>
<input type="file" id="archiv" name="archiv" accept=".zip,application/zip" required>
</div>
<div class="field long">
<label for="modus">Wenn es den Bezeichner schon gibt</label>
<select id="modus" name="modus">
<option value="skip" {{if eq .Data.Mode "skip"}}selected{{end}}>überspringen — Vorhandenes bleibt, wie es ist</option>
<option value="overwrite" {{if eq .Data.Mode "overwrite"}}selected{{end}}>überschreiben — alter Stand wandert in den Verlauf</option>
</select>
</div>
<div class="field checkbox">
{{/* Beim ersten Aufruf ist die Vorschau angehakt. Wer eine
Vorschau gesehen hat, bekommt das Formular ohne Haken
zurück: Der nächste Schritt ist dann das Übernehmen. */}}
<input type="checkbox" id="vorschau" name="vorschau" value="1" {{if not .Data.Report}}checked{{end}}>
<label for="vorschau">
Nur Vorschau
<span class="help">Zeigt, was passieren würde, ohne etwas zu schreiben.</span>
</label>
</div>
<div class="form-actions">
<button type="submit">Hochladen</button>
</div>
</form>
</div>
</section>
{{with .Data.Report}}
<section class="section">
<h2>{{if $.Data.Preview}}Vorschau{{else}}Ergebnis{{end}}</h2>
<div class="table-wrap">
<table class="styled-table">
<thead>
<tr>
<th>Datei</th>
<th>Bezeichner</th>
<th>Titel</th>
<th>Ergebnis</th>
</tr>
</thead>
<tbody>
{{range .Rows}}
<tr>
<td><code>{{.Path}}</code></td>
<td>{{if .Slug}}<code>{{.Slug}}</code>{{end}}</td>
<td>{{.Title}}</td>
<td>
<span class="badge{{if eq .Action "Fehler"}} warnung{{else if eq .Action "neu"}} betont{{end}}">{{.Action}}</span>
{{if .Reason}}<span class="help">{{.Reason}}</span>{{end}}
</td>
</tr>
{{end}}
</tbody>
</table>
</div>
</section>
{{end}}
{{template "footer" .}}