Repository navigation
Releases: thobgg/webtrees-sammlungen
Release list
v1.10.0
Gesichter auf Gruppenbildern – wer ist wer. In den Apps wtWin und wtTux
zieht man einen Rahmen um ein Gesicht und wählt im Auswahlfenster die Person:
aus dem Stammbaum (mit Suche), nur als Name oder als „unbekannt“. Die
Zuordnung steht in der Bilddatei selbst, im Standard, den auch digiKam und
Lightroom lesen. Das Modul zeigt die Rahmen in der Lightbox beim Darüberfahren
mit Namen und Verweis zur Person; im Personenblatt der Apps sammeln sich alle
Gruppenbilder einer Person.
Dazu: das ganze Archiv lässt sich jetzt auch aus den Apps verwalten
(Schnittstelle Stufe 6), und in der Lightbox lassen sich Bilder zum Lesen
drehen.
Bitte beachten: Beim Umbenennen bleibt die Dateiendung jetzt fest, und
eine Datei, die zu einem Medienobjekt gehört, wird auch im Stammbaum
umbenannt.POST …/exiflässt nicht mitgeschickte Felder stehen, statt sie
zu leeren.
Neu
- Gesichter auf Gruppenbildern. Rahmen um Gesichter, von Hand in den
Apps markiert und einer Person zugeordnet (aus dem Stammbaum, nur ein Name
oder unbekannt). Sie stehen in der Bilddatei als XMP „MWG Regions“ – der
Standard, den auch digiKam, Lightroom und ExifTool lesen –, die Person im
Stammbaum alssammlungen:Xref. Ein Gesicht zuzuordnen hängt das Bild
nicht an die Person (in der App auf Wunsch per Häkchen doch). Ohne MWG-Bereiche liest das Modul die der
Windows-Fotogalerie. In der Lightbox zeigt das Darüberfahren mit der Maus
Rahmen und Namen, mit Verweis auf die Personenseite; private Personen
bleiben verborgen wie überall in webtrees. - Schnittstelle Stufe 5. Bild-Einträge tragen
bereiche(links oben,
normiert);POST …/exifnimmtbereichean (ersetzt alle Gesichter,
andere Bereiche bleiben; Fehlerbad-regions) und auchdatum_unsicher;
GET …/sammlung?person=I21liefert alle Bilder, auf denen die Person
markiert ist. Dafür führt das Modul ein kleines Verzeichnis (Tabelle
sammlungen_bereich_index), das sich beim Abfragen mit dem Medienordner
abgleicht – auch Rahmen aus digiKam kommen so hinein. Übersicht:
darfBereiche,personenFilter.api: 5. - Schnittstelle Stufe 6: Verwaltung aus der App. Was die Verwaltung im
Browser kann, geht jetzt auch über die Schnittstelle, mit denselben Rechten:
POST …/umbenennen,…/zuordnen(Bild in ein Album oder heraus),
…/sichtbar(Verwalter);…/sammlung-speichern,…/sammlung-loeschen,
…/einstellungen(auch GET),…/cache-leeren(Administrator). Sammlungen
werden über ihren Slug angesprochen, nicht über die Datenbank-Id; Fehler
kommen wie überall in der Schnittstelle als Code mit HTTP 200.
GET …/sammlungen?alle=1liefert für Verwalter zusätzlichverwaltung:
alle Sammlungen, auch ausgeblendete, mit den Feldern der Maske und den
Auswahllisten. Die Übersicht nenntdarfOrdnen,darfVerwalten,
darfEinstellungenund je Sammlungalbumundbildquelle.
POST …/exifbeschreibt Postkarten wie die Lightbox:motiv,
transkription,notizeinzeln, beide Seiten mit Kartenschlüssel und
Gegenseite, Gesichter nur auf der einen Seite.GET …/eintragträgt bei
einer Postkarte ebensomotiv,transkription,notizundgegenseite.
api: 6. - Drehen zum Lesen. In der Lightbox dreht ↻ oder die Taste R das Bild um
90 Grad, Umschalt + R zurück – etwa für quer beschriebene Postkarten. Nur
zum Ansehen: gespeichert wird nichts, die Lage gilt je Bildseite, solange
die Seite offen ist. Zoomen und Verschieben funktionieren auch gedreht,
Gesichtsrahmen drehen mit.
Geändert
POST …/exiflässt Ungesendetes stehen. Bisher wurden fehlende Felder
geleert; jetzt bleibt, was nicht mitgeschickt wird, in der Datei. Ein leer
mitgeschicktes Feld leert wie bisher. Apps, die alle Felder schicken,
merken keinen Unterschied – außer dass Kartenschlüssel, Gegenseite und
„Datum unsicher“ einer Postkarte beim Speichern aus der App nicht mehr
verloren gehen.- Postkarten aus der App verlieren keine Rückseite mehr. Schickt eine App
an eine Postkarte nur einebeschreibung(ohne die Überschriften „Motiv:“,
„Transkription:“, „Notiz:“), gilt sie als Motiv; Transkription und Notiz
bleiben stehen, und beide Seiten der Karte bekommen den neuen Text. - Umbenennen zieht das Medienobjekt mit. Gehört die Datei zu einem
Medienobjekt, ändert das Modul jetzt auch dessen FILE-Zeile im Stammbaum
(wie webtrees selbst beim Umbenennen), statt nur die Suchtabelle – vorher
zeigte das Medienobjekt danach auf eine Datei, die es nicht mehr gab. Auch
das Verzeichnis der Gesichter folgt dem neuen Namen. Die Endung der Datei
lässt sich nicht mehr ändern (aus einem Bild wird keine andere Dateiart). - Löschen einer Sammlung räumt auch die Dateizuordnungen ab. Bisher
blieben die Zuordnungen von Dateien eines Albums in der Datenbank liegen. - Zeilenenden aus Textfeldern werden vor dem Schreiben vereinheitlicht und
stehen nicht mehr als im XMP.
Full Changelog: v1.9.0...v1.10.0
v1.9.0
Postkarten. Vorder- und Rückseite als ein Eintrag, wenden per Klick oder
Taste, die Transkription neben der Rückseite – und ein Schreibweg, der die
Scans nicht mehr anfasst.
Bitte beachten: Bei JPEG schreibt das Modul Beschreibung und Datum nur
noch ins XMP, nicht mehr zusätzlich in die klassischen EXIF-Felder
(ImageDescription,DateTimeOriginal). Das Modul selbst, digiKam,
Lightroom und die Windows-Fotoanzeige lesen XMP; ein Betrachter, der nur
das klassische EXIF kennt, zeigt neue Beschriftungen nicht an.
Neu
- Anzeigetyp „Postkarten“. Für eine Ordner-Sammlung wie „Großmutters
Postkartensammlung“:PK_0001_V.jpgundPK_0001_R.jpgsind Vorder- und
Rückseite einer Karte und werden als ein Eintrag gezeigt. Die Kachel zeigt
die Vorderseite und ein Zeichen, wenn es eine Rückseite gibt; in der
Lightbox wendet eine Schaltfläche (oder die Taste W) die Karte, neben der
Rückseite steht die Transkription. Dateien ohne Gegenstück sind Einzelkarten;
zwei Dateien desselben webtrees-Medienobjekts (ein OBJE mit zwei FILE)
gelten ebenfalls als Paar. Gezählt und geblättert wird nach Karten.
Der Ordner gehört in den Medienordner des Stammbaums (etwa
media/falkenrath/postkarten), sonst bietet ihn die Verwaltung nicht an.
Ein Datum aus dem klassischen EXIF übernimmt eine Postkarte nicht: bei
Scans ist das der Speichertag des Bildprogramms, nicht der Poststempel. - Editor für Postkarten. Die Seitenleiste hat für eine Karte drei Felder
statt der Beschreibung: Motiv, Transkription, Notiz. Sie landen mit festen
Überschriften (Motiv:,Transkription:,Notiz:) in der einen
XMP-Beschreibung, damit die Datei in jedem anderen Programm lesbar bleibt.
Gespeichert wird in beide Seiten, mit dem bestehenden Tagesbackup; jede
Datei bekommt dazudc:identifier(den Kartenschlüssel) unddc:relation
(den Dateinamen der Gegenseite). Ein Häkchen „Datum unsicher“ kennzeichnet
ein erschlossenes Poststempeldatum (sammlungen:DatumUnsicherim eigenen
XMP-Namensraum;xmp:CreateDatebleibt ein sauberes Datum). Die Galerie
zeigt es als „um 12.05.1912“. - Schnittstelle Stufe 4. Einträge tragen
datumUnsicher; in einer
Postkarten-Sammlung außerdemrueckseite(ein Eintrag oder null),motiv,
transkription,notiz.api: 4.
Geändert
- Metadaten werden verlustfrei geschrieben. Bisher lud der EXIF-Dienst das
Bild mit Imagick und speicherte es mitwriteImage()– das JPEG wurde bei
jedem Speichern der Beschreibung neu komprimiert, die Datei war danach nicht
mehr der Scan. Jetzt wird bei JPEG nur das XMP-Segment (APP1) ausgetauscht,
alle anderen Segmente und die Bilddaten bleiben Byte für Byte erhalten
(identify -format "%#"liefert vorher und nachher dieselbe Signatur;
Unit-Test über die Scan-Daten). Geschrieben wird in eine Nachbardatei, die
das Original ersetzt – ein Abbruch lässt es unversehrt. Imagick wird für
JPEG nicht mehr gebraucht, weder zum Schreiben noch zum Lesen. Die
EXIF-FelderImageDescription/DateTimeOriginal, die bisher zusätzlich
gesetzt wurden, entfallen bei JPEG: das hätte einen eigenen TIFF-Schreiber
verlangt, der vorhandene Scanner-EXIF-Blöcke beschädigen kann. Gelesen wird
XMP ohnehin zuerst. PNG, GIF und WebP gehen weiter über Imagick. - Fremde Metadaten bleiben erhalten. Bisher baute das Modul das
XMP-Paket bei jedem Speichern neu, nur aus seinen eigenen Feldern – was
andere Programme hineingeschrieben hatten, war danach weg: Gesichtsregionen,
Bewertungen, Farbmarkierungen, Stichwort-Hierarchien, Beschreibungen in
weiteren Sprachen. Jetzt ersetzt es nur Beschreibung (Fassung x-default),
Datum, Personen, Stichwörter und die Postkarten-Felder; alles andere bleibt
stehen, ebenso die Fortsetzungs-Segmente großer XMP-Pakete. Felder in
Kurzschreibweise (als Attribut) liest und ersetzt es ebenfalls. Ein
vorhandenes Paket, das kein lesbares XML ist oder eine DTD enthält, wird
nicht überschrieben; die Lightbox meldet dann einen Fehler. - Lightbox bildschirmfüllend am Rechner: Schaltfläche ⛶ oder Taste F.
Kopfzeile, Wenden und Seitenleiste bleiben bedienbar. Am Telefon füllt wie
bisher ein Antippen des Bildes den Schirm. Die Karte wenden geht nur noch
mit W. - Galerie-Skript nach Updates neu geladen. Es wurde einen Tag
zwischengespeichert, der Versionszusatz beim Einbinden fehlte – nach einem
Update standen neue Knöpfe da und taten nichts. - Tasten in der Lightbox wirken nicht mehr, während in der Seitenleiste
getippt wird (vorher blätterten die Pfeiltasten im Textfeld das Bild weiter). - Link zur App: Das Repo von wtAnd heißt jetzt
app4webtrees (Android-App wtAnd,
Desktop-Client in Arbeit). Die README verweisen dorthin; der alte Name
leitet weiter.
Full Changelog: v1.8.0...v1.9.0
v1.8.0
Neu
- Schnittstelle für Apps, Stufe 3: ein Eintrag zu einer Datei.
GET /tree/{tree}/archiv/api/eintrag?pfad=…liefert zu einer Datei im
Medienordner denselben Eintrag wie eine Sammlung – EXIF, Personen,
Adressen. Damit kann wtAnd ein Foto, das es aus dem Stammbaum oder einem
Profil kennt (api4webtrees 1.4 nennt dort den Pfad), vor dem Bearbeiten
lesen und dann wie ein Archivbild beschriften.api: 3.
Full Changelog: v1.7.1...v1.8.0
v1.7.1
Behoben
- Fehler der App-Schnittstelle kamen auf der NAS als HTML an. Die Routen
antworteten mit echten Statuscodes (403, 404, 400), und der nginx davor
ersetzt bei 4xx den Antworttext durch seine eigene Fehlerseite – das JSON
mit dem Fehlercode ging verloren, und wtAnd hielt jeden abgelehnten Upload
für eine abgelaufene Sitzung. Jetzt kommen Fehler wie bei api4webtrees mit
HTTP 200 undok:false; der gemeinte Status steht im Feldstatus.
Full Changelog: v1.7.0...v1.7.1
v1.7.0
Neu
- Schnittstelle für Apps, Stufe 2: schreiben. Zwei POST-Routen für
„unterwegs festhalten“ – ein Foto aus der Schublade abfotografieren, sagen
wer drauf ist, fertig:
/tree/{tree}/archiv/api/hochladenlegt eine Datei in einem Ordner des
Medienordners ab, als Datei im Archiv, nicht als Medienobjekt; Beschreibung,
Datum und Personen gehen bei Bildern als EXIF/XMP mit, auf Wunsch wird die
Datei gleich einer thematischen Sammlung zugeordnet. Darf, wer in webtrees
Medien hochladen darf./tree/{tree}/archiv/api/exifschreibt dieselben
Felder an eine vorhandene Bilddatei, mit der Regel der Lightbox: nur
Verwalter. Die Übersicht nennt jetzt, was der Nutzer darf (darfHochladen,
darfExif) und die Ordner, in die er hochladen kann (ordnerListe).
Anders als beim Hochladen in webtrees wird eine vorhandene Datei nicht
überschrieben und der Upload nicht still in den Hauptordner verschoben: der
Name bekommt eine Nummer, der Ordner bleibt.api: 2.
Full Changelog: v1.6.0...v1.7.0
v1.6.0
Das Archiv kommt in die App. Die Android-App wtAnd
soll zeigen, worum es dem Modul geht: die Fotos, die im Stammbaum an niemandem
hängen. Dafür bekommt das Modul eine lesende Schnittstelle – bewusst hier und
nicht in api4webtrees, damit kein Modul an den Tabellen eines anderen hängt.
Neu
- Schnittstelle für Apps. Zwei lesende Routen liefern das Archiv als JSON,
gedacht für wtAnd, offen für jeden Client
mit dem Sitzungs-Cookie eines Baummitglieds:
/tree/{tree}/archiv/api/sammlungen(die Übersicht: Ordner-Sammlungen,
thematische Sammlungen, Sammlungen nach Medientyp, nicht eingebundene Medien,
freier Bestand) und/tree/{tree}/archiv/api/sammlung?kategorie=…(die
Einträge einer Sammlung, seitenweise, mit fertigen Adressen für Kachel,
Vollbild und Original). Die Daten kommen aus derselben Aufbereitung wie die
Galerie; Seitengröße und Sprache (pro_seite,lang) gelten nur für die
Antwort und werden nicht beim Nutzer gemerkt. Wer kein Mitglied ist, bekommt
statt der Anmeldeseite eine JSON-Fehlermeldung (403). Stufe der
Schnittstelle:api: 1. Beschreibung in der README unter „Schnittstelle für
Apps“.
Behoben
- Vorschaubilder fehlten auf SQLite und PostgreSQL, wenn ein GEDCOM die
Dateiendung groß schreibt (FORM JPG). Die Vorschau-Abfragen verglichen das
Format nur mit Kleinbuchstaben; MySQL sieht darüber hinweg, die anderen
nicht. Jetzt zählen beide Schreibweisen.
Full Changelog: v1.5.1...v1.6.0
v1.5.1
Zwei Rückmeldungen von Bernat Banyuls, per Mail statt als Issue – und
als eigenes kleines Release, weil die erste davon in v1.5.0 ein Symbol
verschwinden lässt, das vorher wenigstens da war.
Behoben
- Im Rural-Theme (jon48) fehlte das Menüsymbol ganz. Rural gibt jedem
Menü ohne eigenes Symbol ein generisches – mit einer Regel ohne Gewicht, die
jede andere überstimmt. Unsere Grundregel „kein Symbol“ für unbekannte Themes
tat genau das: alle Menüs hatten ein Symbol, nur unseres nicht. Die Grundregel
ist gestrichen – ohne Regel zeichnet der Browser ohnehin nichts, Themes ohne
Symbole bleiben also sauber – und Rural steht mit seinen Maßen (35 Pixel im
Menü, 24 im Aufklappmenü) in der Größentabelle, sodass dort unser Symbol
erscheint statt des generischen.
Geändert
- Thematische Sammlungen ohne gestrichelten Rand. Der gestrichelte Rahmen
sollte sie von den Ordner-Sammlungen abheben, wurde aber als „noch nicht
fertig eingerichtet“ gelesen – gestrichelt heißt im Web fast überall
Platzhalter. Jetzt tragen sie denselben Farbbalken links wie die
Ordner-Sammlungen; die Unterscheidung leistet die Überschrift mit der
Reißzwecke.
Full Changelog: v1.5.0...v1.5.1
v1.5.0
Vier Anregungen aus Issue #23 von @ro-la – die erste Rückmeldung, die nicht
von einem Fehler handelt, sondern davon, wie sich das Modul anfühlt, wenn man es
nicht selbst gebaut hat. Drei davon sind Bedienung: die Verwaltung liegt jetzt im
Menü, Seitengröße und Darstellung entscheidet der Betrachter statt der Verwalter.
Die vierte war ein Fehler, den niemand sah, dessen Installation aussieht wie
unsere: wer sein Datenverzeichnis verschoben hatte, bekam ein leeres Archiv.
Ein fünfter Punkt – ein Bilderwähler über alle Medienobjekte statt nur die des
Ordners – steht als Issue #24 offen; er ist eine eigene Baustelle, kein Nebensatz.
Behoben
-
Aus der Verwaltung führte kein Weg zurück (Issue #23). Die
Verwaltungsseiten des Moduls laufen im Verwaltungs-Layout von webtrees, und
das zeigt kein Genealogie-Menü – oben stehen nur Hilfe, Meine Seite, Sprache,
Abmelden. Solange man nur über die Schaltfläche auf der Übersicht hineinkam,
fiel das nicht auf. Seit das Aufklappmenü von jeder Seite aus dorthin einlädt,
saß man drin fest.Jetzt hat jede der vier Verwaltungsseiten die Brotkrumenleiste von webtrees
selbst – Verwaltung / Einstellungen / Sammlungen verwalten / Name, jedes Glied
anklickbar – und wo der Baum bekannt ist, führt ein Verweis direkt zurück in
die Galerie. -
Der Medienordner musste innerhalb der Installation liegen (Issue #23,
gemeldet von @ro-la). webtrees erlaubt es, das Datenverzeichnis zu
verschieben – der empfohlene Weg, die Originaldateien aus der Reichweite der
Adresszeile zu nehmen. Das Modul setzte den Pfad aber an zwölf Stellen selbst
aus der KonstanteWebtrees::DATA_DIRzusammen, die nur die Vorgabe für die
EinstellungINDEX_DIRECTORYist. Wer sein Datenverzeichnis verschoben hatte,
bekam leere Sammlungen, einen freien Bestand von null und Bilder als 404.Eine Stelle war schwerwiegender als der Rest: die Sicherung vor dem Schreiben
von EXIF prüfte gegendata/media– mit fest verdrahtetem Ordnernamen. Wer
seinen Medienordner anders nennt, bei dem schlug die Prüfung fehl, die
Sicherung wurde übersprungen und die Datei ohne Netz überschrieben. Still.Alle zwölf Stellen holen den Pfad jetzt aus einer Funktion, die ihn so
bestimmt wie webtrees selbst. Bei unveränderten Einstellungen kommt Zeichen
für Zeichen derselbe Pfad heraus wie bisher; ein Test hält das fest, ein
zweiter, dass die feste Annahme nicht zurückkehrt.
Hinzugefügt
-
Einträge pro Seite in der Ansicht umschaltbar (Issue #23, vorgeschlagen von
@ro-la), 10 bis 200, gemerkt je Nutzer. Bisher galt eine modulweite Zahl
für alle und für jedes Gerät gleich – auf einem großen Schirm sind 50 Bilder
wenig, auf dem Telefon sind dieselben 50 mehrere Megabyte. Die Grenzen des
Moduls gelten weiter: wer eine größere Zahl in die Adresse schreibt, bekommt
die Obergrenze. -
Foto-Raster und große Bilder umschaltbar, aber nur in Bildersammlungen.
In einer Dokumentensammlung wäre ein Foto-Raster ein Gitter aus PDF-Symbolen;
dort bleibt die Wahl des Verwalters stehen. Der Vorschlag lautete „Anzeigetyp
frei wählbar" – umgesetzt ist er dort, wo beide Darstellungen etwas zeigen. -
Verwaltung direkt aus dem Menü erreichbar (Issue #23, vorgeschlagen von
@ro-la). Für Administratoren klappt der Menüpunkt jetzt auf: Übersicht,
Sammlungen verwalten, Einstellungen. Bisher führte der Weg dorthin nur über
die Schaltfläche auf der Übersichtsseite oder über die Steuerleiste.Für alle anderen bleibt es ein einzelner Verweis – ein Klick, Galerie. Ein
Aufklappmenü kostet dort einen Handgriff und bringt nichts. Die Übersicht
steht deshalb auch als erster Untereintrag drin: ein Menü mit Untereinträgen
klappt beim Klick auf, statt zu springen, sonst wäre der kurze Weg zur
Galerie verloren.
Full Changelog: v1.4.1...v1.5.0
v1.4.1
Ein Anzeigefehler, gemeldet von @ro-la – und weil Meldungen selten kommen,
soll er nicht bis zum nächsten Bündel warten.
Behoben
-
Das Menüsymbol überstimmte jedes Theme (Issue #22, gemeldet von @ro-la).
Es wurde übercontent: url(...)eingesetzt, fest auf 50 Pixel skaliert und in
jedem Theme. Übercontent:eingefügte Bilder ignorierenwidthund
height– das Theme konnte sich also nicht wehren. Am Gerät gemessen sind die
Symbole der Themes 50 Pixel groß (webtrees), 40 (Colors), 28 (Xenea), 22
(Clouds); minimal, F.A.B. und die meisten fremden Themes haben gar keine. In
Colors war unseres dadurch mehr als doppelt so groß wie alle anderen, in
minimal stand ein Bild mitten in einer reinen Textzeile.Jetzt ist es ein Hintergrundbild in einer Box fester Größe – damit bestimmen
wir Größe und Ausrichtung – und es erscheint nur in Themes, die selbst
Menüsymbole zeigen; erkannt an der Klasse, die webtrees am<body>setzt.
Statt des Fotos ein flaches SVG, das neben gezeichneten Symbolen nicht
auffällt. Damit entfällt auch Imagick im Seitenkopf.
Full Changelog: v1.4.0...v1.4.1
v1.4.0
Das Modul wird auf dem Telefon benutzbar – und auf jedem Gerät schnell.
Zwei Zahlen fassen das Release zusammen, beide an einer Instanz mit 1826
Archivdateien gemessen: eine Galerieseite wog 174,2 MB und braucht jetzt
4,8 MB, und sie brauchte 12 Sekunden bis zum ersten Byte und braucht jetzt
0,2. Dazu eine Bedienung, mit der man Fotos herumzeigen kann, ohne sich zu
entschuldigen: kneifen, schieben, wischen, tippen für randlos.
Der dritte Strang ist die Ehrlichkeit der Zahlen. Der freie Bestand – der Teil
des Archivs, der im Stammbaum nicht auftaucht – wurde falsch gezählt, und zwar
seit 1.0.0 in zwei Richtungen gleichzeitig: Verweise aus Quellen galten als
Einbindung, und Dateien ohne Medienobjekt kamen gar nicht vor. Auf der
Testinstanz meldete die Ansicht deshalb 0 Objekte, wo 1126 Dateien liegen.
Hinzugefügt
-
Bedienung wie in einer Foto-App auf Telefon und Tablet. Die Lightbox
öffnet dort über die volle Höhe, die Seitenleiste legt sich über das Bild
statt daneben zu drängen, und die Blätterpfeile weichen den Gesten:- zwei Finger vergrößern bis fünffach,
- ein Finger schiebt das vergrößerte Bild, das dabei im Rahmen bleibt,
- Doppeltippen fährt auf die getippte Stelle zu und wieder zurück,
- Wischen blättert weiter, aber nur bei unvergrößertem Bild – sonst wäre
jedes Verschieben ein Bildwechsel, - am Rechner Doppelklick und Strg + Mausrad.
Hintergrund: quer aufgenommene Fotos füllen auf einem 384 Pixel breiten
Schirm nur ein Band von rund 256 Pixeln Höhe, egal wie viel Platz darunter
frei bleibt. Ohne Vergrößern ist darauf kein Gesicht zu erkennen. -
Einmal aufs Bild tippen räumt Kopfzeile und Vorschauleiste weg und
fordert zugleich Vollbild an, nochmal tippen holt beides zurück. Ein
Schließer bleibt oben rechts stehen, sonst käme man nur über die
Zurück-Taste heraus, und die verlässt im Telefon-Browser die Seite.Am S25 Ultra gemessen, quer gehalten und mit einem 3:2-Foto: 284 × 189
vorher, 576 × 384 nachher – gut die vierfache Fläche. Hochkant wächst der
Rahmen von 646 auf 832 Pixel; ein Querformat-Foto ist dort weiterhin durch
die Breite begrenzt, gewonnen wird also Schwarz – dafür ist der Zoom da.Wo es die Fullscreen-API nicht gibt (iPhone) oder sie abgelehnt wird, bleibt
es beim Wegräumen der modul-eigenen Leisten.Das Vollbild wird dabei nur betreten und erst beim Schließen wieder verlassen.
Jedes Betreten quittiert der Browser mit seinem Sicherheitshinweis („… ist
jetzt im Vollbildmodus"), der sich aus der Seite heraus nicht abschalten
lässt; so erscheint er einmal je Galerie statt bei jedem zweiten Tippen.
Geändert
-
Das Auslesen der Metadaten dekodierte jedes Foto vollständig. Für Angaben,
die im Dateikopf stehen, öffnete das Modul die ganze Datei: bei einem 7 MB
großen Bild mit 4796 × 7731 Punkten rund hundert Megabyte Speicher und ein
Zehntel Sekunde Rechenzeit – mal fünfzig Bilder je Galerieseite. Gemessen
vergingen so 5,3 Sekunden, bevor das erste Byte beim Browser ankam, beim
ersten Aufruf einer Seite sogar zwölf.Imagick::pingImage()liest nur den Kopf samt EXIF- und XMP-Profil. Dieselbe
Seite braucht jetzt 125 bis 320 Millisekunden, und die ausgelesenen Werte
sind unverändert – gegengeprüft an drei Seiten: gleiche Anzahl Beschreibungen,
Daten und Bildmaße wie vorher. -
Galerien liefern verkleinerte Bilder statt der Originale. Eine Rasterseite
schickte bisher 50 Originaldateien: gemessen 174,2 MB, im Mittel mit der
21-fachen Breite dessen, was auf dem Schirm ankommt – also rund der
450-fachen Pixelzahl. Jede Kachel wurde zudem zweimal dekodiert, weil dasselbe
Original als weichgezeichneter Hintergrund dahinterliegt. Auf dem Telefon
ruckelte davon jedes Blättern und jedes Drehen.Jetzt gibt es drei Größen: 400 Pixel für die Kachel, 1600 für die Lightbox,
das Original hinter „Vollbild in neuem Tab". Dieselbe Seite wiegt damit
4,8 MB statt 174,2 – ein Sechsunddreißigstel.Erzeugt wird mit dem Bildstapel von webtrees selbst (
ImageFactory, also
Imagick oder GD, je nach Server): keine zusätzliche Voraussetzung für andere
Installationen. Dateien unter 150 KB oder solche, die ohnehin schmaler sind
als angefordert, gehen unverändert raus – bei denen kostet das Umrechnen mehr
als es spart (gemessen: 54 ms unverändert gegen 149 ms verkleinert). -
Ein quer gehaltenes Telefon zählt jetzt als Telefon. Die Regeln für die
randlose Lightbox hingen anmax-width: 767.98px; quer gehalten ist dasselbe
Gerät 832 Pixel breit und bekam die Darstellung für große Bildschirme, also
einen geschrumpften Dialog mitten auf dem Schirm. Maßgeblich ist zusätzlich
die geringe Höhe (max-height: 500px). Die Blätterpfeile verschwinden nun
nach Eingabegerät (hover: noneundpointer: coarse) statt nach
Fensterbreite – ein schmales Fenster am Rechner hat weiterhin eine Maus.
Behoben
-
Ein Teil der Piktogramme erschien als Fragezeichen. webtrees liefert kein
vollständiges FontAwesome aus, sondern die Auswahl, die es selbst benutzt –
ein Name außerhalb dieser Auswahl wird nicht etwa weggelassen, sondern als
gestrichelter Kreis mit Fragezeichen gezeichnet. Das Modul benutzte 16 solcher
Namen, unter anderem beim freien Bestand und beim Medienobjekt.Alle Symbole laufen jetzt über eine Zuordnung auf das, was vorhanden ist; auch
die in der Verwaltung frei eingetragenen Namen. Ein Test hält fest, dass im
Markup kein unbekannter Name mehr steht. -
Der freie Bestand sah nur Medienobjekte und übersah das Archiv. Gezählt
wurde in der Datenbank: Medienobjekte ohne Verknüpfung. Ein Archiv besteht
aber in aller Regel aus Dateien, die gar kein Medienobjekt haben – zu einem
Vorfahren gehören dutzende Aufnahmen, von denen nur ein paar am Datensatz
hängen sollen. Der Rest ist kein Rückstand, sondern der Bestand.Gezählt wird jetzt vom Dateisystem her: frei ist, was entweder gar nicht als
Medienobjekt eingetragen ist oder eingetragen ist und an keiner Person
und keiner Familie hängt. Die Übersicht zeigt die Summe und eine Kachel je
Ordner. Ein Durchlauf durch das Verzeichnis und zwei Abfragen, nicht eine je
Datei.Am Beispiel eines Archivs mit 1826 Dateien: vorher meldete die Ansicht
0 Objekte, jetzt 1126 Dateien, aufgeschlüsselt nach Ordner. -
Der freie Bestand zählte Verweise aus Quellen und Notizen als Einbindung
und meldete dadurch „Alle Medienobjekte sind mit Personen oder Familien
verknüpft", obwohl an keiner Person etwas hing. In webtrees darf eine
OBJE-Zeile in jedem Datensatz stehen – auch in einer Quelle, einer Notiz,
einem Repositorium oder einem Einreicher. Die Abfrage prüfte nur, dass es
eine gibt, nicht wer verweist. Wer seine Registerscans an Quellen hängt –
der Normalfall bei Kirchenbüchern und Standesämtern – bekam einen leeren
freien Bestand gemeldet, also genau das Gegenteil der Aussage der Ansicht.Maßgeblich sind jetzt ausschließlich Personen und Familien. Betroffen waren
drei Abfragen (Zählung, Auflistung, Vorschaubilder); sie teilen sich die
Regel nun an einer Stelle. Der Fehler steckt seit 1.0.0 im Modul. -
Lightbox saß auf dem Telefon um 8 Pixel versetzt und ragte rechts über den
Bildschirmrand hinaus, wodurch der Schließknopf angeschnitten war. Das
Bootstrap-Bündel von webtrees ist für Schreibrichtungen aufbereitet und setzt
den Abstand des Dialogs über[dir] .modal-dialog; Attribut plus Klasse
schlägt eine einzelne Klasse, unsermarginkam nie an. Jetzt wird
Bootstraps eigene Stellschraube--bs-modal-marginumgestellt.
Full Changelog: v1.3.3...v1.4.0



