Gedankenstriche durch Bindestriche ersetzt
Prüfung / Lint, Typen, Tests (push) Canceled after 0s
Prüfung / Images bauen (pdf) (push) Canceled after 0s
Prüfung / Images bauen (web) (push) Canceled after 0s
Prüfung / Images bauen (worker) (push) Canceled after 0s
Images / bauen (pdf, docker/pdf.Dockerfile) (push) Canceled after 0s
Images / bauen (web, docker/web.Dockerfile) (push) Canceled after 0s
Images / bauen (worker, docker/worker.Dockerfile) (push) Canceled after 0s

375 Vorkommen in 210 Dateien. Betrifft Kommentare, Oberflaechentexte und die
README; an keiner Stelle Bedeutung, nur Zeichensetzung.
This commit is contained in:
Harlekin
2026-09-04 08:54:52 +02:00
parent 38be773636
commit e0b03ea336
210 changed files with 368 additions and 368 deletions
@@ -17,7 +17,7 @@ type Zuordnung = {
* Mitglieder der Abteilung, die an dieser Personalakte hängen.
*
* Wie die Beteiligten einer Fallakte ist das zugleich der Weg zum
* ausnahmsweisen Zugang — der Hinweis steht deshalb direkt am Formular.
* ausnahmsweisen Zugang - der Hinweis steht deshalb direkt am Formular.
*/
export function Assignments({
personnelFileId,
@@ -94,7 +94,7 @@ export function Assignments({
))}
</PanelSelect>
<PanelSelect value={userId} onChange={setUserId} label={participantText.pickUser}>
<option value="">—</option>
<option value="">-</option>
{members.map((member) => (
<option key={member.id} value={member.id}>
{member.displayName}
@@ -12,7 +12,7 @@ import { linkCaseToPersonAction } from '../actions'
*
* Derselbe Vorgang wie „Beteiligte eintragen" auf der Fallakte, nur von der
* anderen Seite gedacht: dort sucht man die Person, hier den Fall. Deshalb ein
* Eingabefeld für das Aktenzeichen und keine Auswahlliste — eine Liste aller
* Eingabefeld für das Aktenzeichen und keine Auswahlliste - eine Liste aller
* sichtbaren Fälle wäre auf einer Personalakte am falschen Ort.
*/
export function LinkCase({ personnelFileId }: { personnelFileId: string }) {
@@ -27,7 +27,7 @@ type File = {
* Kopfdaten einer Personalakte: lesen und ändern in derselben Ansicht.
*
* Die Klassifizierung steht bewusst getrennt. Sie ändert, wer die Akte
* überhaupt sieht, und eine Herabstufung braucht eine Begründung — das gehört
* überhaupt sieht, und eine Herabstufung braucht eine Begründung - das gehört
* nicht in dasselbe Formular wie eine Korrektur der Dienstnummer.
*/
export function PersonnelHead({
@@ -276,7 +276,7 @@ function Zeile({
return (
<div className="flex gap-3">
<dt className="font-condensed text-xs text-text-dim">{label}</dt>
<dd className={mono ? 'font-mono text-xs' : ''}>{value || '—'}</dd>
<dd className={mono ? 'font-mono text-xs' : ''}>{value || '-'}</dd>
</div>
)
}
+1 -1
View File
@@ -171,7 +171,7 @@ async function AssignmentBlock({
* dass das Gespräch bei ihrer Akte steht, war genau das, was vorher auf
* Discord passiert ist. Siehe docs/13-entscheidungen.md.
*
* Übernehmen als Vermerk gibt es hier nicht — dafür braucht es einen Verlauf,
* Übernehmen als Vermerk gibt es hier nicht - dafür braucht es einen Verlauf,
* und den führt nur die Fallakte.
*/
async function ChatBlock({
+1 -1
View File
@@ -71,7 +71,7 @@ export async function createPersonnelAction(
id = created.id
// Das Aktenblatt ist der erste Eintrag zu einer Person und entsteht
// deshalb gleich mit — als Entwurf, mit dem Namen schon eingetragen.
// deshalb gleich mit - als Entwurf, mit dem Namen schon eingetragen.
// Fehlt das Recht dafür, bleibt es bei der Akte allein.
await erstesAktenblatt(user.permissions, id, parsed.data.displayName)
} catch (error) {
@@ -8,8 +8,8 @@ import { createPersonnelAction, type ActionResult } from '../actions'
/**
* Neue Personalakte.
*
* Das Discord-Konto ist **optional**. Personen ohne Konto — Zeugen, ehemalige
* Mitarbeiter, Externe — brauchen genauso eine Akte, und ihr Name ist dann das
* Das Discord-Konto ist **optional**. Personen ohne Konto - Zeugen, ehemalige
* Mitarbeiter, Externe - brauchen genauso eine Akte, und ihr Name ist dann das
* einzige, was sie identifiziert.
*/
export function NewPersonnelForm({
+1 -1
View File
@@ -2,7 +2,7 @@ import { Skeleton } from '@/components/Skeleton'
/**
* Skelett statt Spinner: die Struktur steht sofort, die Daten fallen hinein.
* Ohne diese Grenze wartet die Navigation stumm, bis der Server fertig ist —
* Ohne diese Grenze wartet die Navigation stumm, bis der Server fertig ist -
* man klickt und es passiert scheinbar nichts. Siehe docs/09-performance-und-ux.md.
*/
export default function Loading() {
+1 -1
View File
@@ -22,7 +22,7 @@ export default async function PersonnelListPage({
}: {
searchParams: Promise<{ q?: string; status?: string }>
}) {
// Ohne das Recht gibt es die Seite nicht — 404, nicht 403.
// Ohne das Recht gibt es die Seite nicht - 404, nicht 403.
const user = await requirePermission('personnel.read')
const { q, status } = await searchParams