{% extends "basis.html" %}{% set r = t.regal %}{% set lader_mehr = {"platten_suche.js": statisch_url("platten_suche.js"), "platten_suche.css": statisch_url("platten_suche.css"), "platten_zustimmung.js": statisch_url("platten_zustimmung.js"), "platten_zustimmung.css": statisch_url("platten_zustimmung.css")} %}{% if discogs_abzug() %}{% set r = dict(r, **discogs_texte(sprache)) %}{% set lader_mehr = dict(lader_mehr, **{"platten_katalog.js": statisch_url("platten_katalog.js")}) %}{% endif %}{% block titel %}{{ r.einlesen }} – Timbre{% endblock %}{% block kopf %}{% endblock %}{% block hauptklasse %} class="pr-main"{% endblock %}{% block inhalt %} {# Platten einlesen (10.11.2026): Einlesen B „Eine Karte füllt sich“ + „Stapel scannen“ aus C (Galerie docs/konzepte/2026-11-09-plattenregal/). static/platten.js füllt das Gerüst über /api/v1/platten (dieselbe API wie Desktop und iOS). Ohne Kamera: Barcode oder Katalognummer tippen; ein Barcode-Foto nur, wenn der Browser BarcodeDetector kann – das Bild bleibt im Browser. Mithören ist ein sichtbarer Platzhalter („kommt mit Live Vinyl“), nie in den Store-Apps. Texte nur aus texte_plattenregal.py (#pr-t). iOS-App (regalfix 10.11.2026, TP2 an-server-20261110-0600): meldet die App die Fähigkeit `regal.einlesen`, zeigt platten.js „Mit Kamera scannen“ (#pr-scan) statt „Barcode-Foto“; die App liest die Nummer auf dem Gerät und schickt nur sie (`regal.nummer`). Zweite Stufe (12.11.2026): ohne Treffer lädt platten.js static/platten_suche.js nach (Feld „Artist und Titel“ an der Meldung, `lader_mehr`). Zweite Quelle (12.11.2026, Schalter TIMBRE_DISCOGS_ABZUG, Vorgabe aus): nur wenn discogs_abzug() es erlaubt, ersetzt texte_discogs.regal die Meldungen und den Hinweis unter dem Feld und nennt das Zusatz-Modul (`zusatz`, static/platten_katalog.js: Herkunft je Treffer). Sonst steht davon nichts in der Seite – auch nie in den Store-Fassungen. Zustimmung „Plattensuche bei MusicBrainz“ (12.11.2026, in JEDER Fassung – ohne sie sucht der Server nicht): `zu` in #pr-t trägt Zustand, Text der Fassung und Knöpfe; platten.js lädt static/platten_zustimmung.js nach (Dialog vor der ersten Suche, Zustand und Zurücknehmen in #pz-stand). Der Hinweis unter dem Feld folgt dem Zustand. #}
{{ r.stapel_satz if stapel else r.einlesen_satz }}
{{ r.stapel_leer }}
{{ r.datenschutz if zu.gueltig else zu.ohne }}
{{ zu.seit or "" }}