Wissen: Kategorie muss ausdruecklich gewaehlt werden
Filipes PDF ueber TikTok LIVE Studio landete unter "TikTok - Grundlagen & Funktionen" statt unter "Streaming mit PC". Ursache ist ein Denkfehler von mir, kein Bedienfehler: Das Kategoriefeld war mit dem ERSTEN Eintrag der Liste vorbelegt. Wer es nicht bewusst aendert, merkt nichts -- die Pflichtangabe hat still fuer ihn entschieden. Eine Vorbelegung, die niemand gewaehlt hat, ist keine Voreinstellung, sondern ein Fehler mit Ansage. Jetzt steht dort "- Kategorie waehlen -", und ohne Auswahl geht das Formular nicht ab (Browser blockt, zusaetzlich eigene Pruefung). Vorbelegt wird nur noch, wenn man AUS einer Kategorie heraus hochlaedt -- dann ist es eine informierte Annahme statt einer geratenen. Ausserdem: zwanzig Eintraege in einer flachen Liste findet man nicht. Das Feld ist jetzt nach denselben sechs Welten gruppiert wie die Kacheln auf der Seite (optgroup). Geprueft: alle 20 waehlbar, "Streaming mit PC" ist dabei. Nach dem Veroeffentlichen steht in einer gruenen Zeile, WO die Anleitung gelandet ist -- sonst merkt man einen Irrtum erst, wenn man sie irgendwann sucht. Die Meldung nutzt dieselbe Zeile wie Fehler, aber nicht dieselbe Farbe: Eine Erfolgsmeldung in Warnrot liest sich wie ein Problem. Bereits hochgeladene PDFs lassen sich ueber "Bearbeiten" umhaengen -- die Datei bleibt dabei unberuehrt.
This commit is contained in:
@@ -22,7 +22,14 @@
|
||||
if (text !== undefined) k.textContent = text;
|
||||
return k;
|
||||
};
|
||||
const melde = (t) => { $('fehler').textContent = t || ''; };
|
||||
/* Dieselbe Zeile fuer Fehler und Bestaetigungen -- aber nicht
|
||||
dieselbe Farbe. Eine Erfolgsmeldung in Warnrot liest sich wie ein
|
||||
Problem. */
|
||||
const melde = (text, gut = false) => {
|
||||
const e = $('fehler');
|
||||
e.textContent = text || '';
|
||||
if (gut) e.dataset.gut = 'ja'; else delete e.dataset.gut;
|
||||
};
|
||||
const datum = (iso) => (iso ? iso.slice(0, 10).split('-').reverse().join('.') : '');
|
||||
const groesse = (b) => (b >= 1048576 ? (b / 1048576).toFixed(1) + ' MB' : Math.round(b / 1024) + ' KB');
|
||||
|
||||
@@ -322,7 +329,13 @@
|
||||
$('n-datei-block').hidden = !!eintrag;
|
||||
$('n-titel').value = eintrag ? eintrag.titel : '';
|
||||
$('n-beschreibung').value = eintrag ? (eintrag.beschreibung || '') : '';
|
||||
$('n-kategorie').value = eintrag ? eintrag.kategorie : (zustand().k || aufbau.kategorien[0].schluessel);
|
||||
/* NICHT die erste Kategorie vorbelegen. Genau daran ist eine PDF
|
||||
ueber TikTok LIVE Studio unter "TikTok - Grundlagen" gelandet:
|
||||
Das Feld stand still auf dem ersten Eintrag der Liste, und wer es
|
||||
nicht bewusst aendert, merkt es nicht. Vorbelegt wird nur, wenn
|
||||
man aus EINER Kategorie heraus hochlaedt -- dann ist es eine
|
||||
informierte Annahme, keine geratene. */
|
||||
$('n-kategorie').value = eintrag ? eintrag.kategorie : (zustand().k || '');
|
||||
$('n-stufe').value = eintrag ? eintrag.stufe : 'einsteiger';
|
||||
$('n-geraet').value = eintrag ? eintrag.geraet : 'egal';
|
||||
$('n-tags').value = eintrag ? eintrag.tags.join(', ') : '';
|
||||
@@ -353,7 +366,26 @@
|
||||
f.append(o);
|
||||
}
|
||||
};
|
||||
setz('n-kategorie', aufbau.kategorien.map((k) => [k.schluessel, k.nr + '. ' + k.name]));
|
||||
/* Nach Welten gruppiert -- dieselbe Gliederung wie auf der Seite.
|
||||
Zwanzig Eintraege in einer flachen Liste findet man nicht. */
|
||||
const kf = $('n-kategorie');
|
||||
kf.textContent = '';
|
||||
const platzhalter = document.createElement('option');
|
||||
platzhalter.value = '';
|
||||
platzhalter.textContent = '— Kategorie wählen —';
|
||||
platzhalter.disabled = true;
|
||||
kf.append(platzhalter);
|
||||
for (const welt of aufbau.welten) {
|
||||
const gruppe = document.createElement('optgroup');
|
||||
gruppe.label = welt.name;
|
||||
for (const k of aufbau.kategorien.filter((x) => x.welt === welt.schluessel)) {
|
||||
const o = document.createElement('option');
|
||||
o.value = k.schluessel;
|
||||
o.textContent = k.name;
|
||||
gruppe.append(o);
|
||||
}
|
||||
if (gruppe.children.length) kf.append(gruppe);
|
||||
}
|
||||
setz('n-stufe', Object.entries(aufbau.stufen));
|
||||
setz('n-geraet', Object.entries(aufbau.geraete));
|
||||
|
||||
@@ -442,6 +474,11 @@
|
||||
veroeffentlicht: $('n-datum').value,
|
||||
};
|
||||
if (angaben.titel.length < 3) { $('n-fehler').textContent = 'Der Titel fehlt.'; return; }
|
||||
if (!angaben.kategorie) {
|
||||
$('n-fehler').textContent = 'Wähle die Kategorie aus, in der die Anleitung stehen soll.';
|
||||
$('n-kategorie').focus();
|
||||
return;
|
||||
}
|
||||
|
||||
knopf.disabled = true;
|
||||
try {
|
||||
@@ -463,8 +500,12 @@
|
||||
$('n-fehler').textContent = (await a.json().catch(() => ({}))).fehler || 'Das hat nicht geklappt.';
|
||||
return;
|
||||
}
|
||||
const kat = aufbau.kategorien.find((k) => k.schluessel === angaben.kategorie);
|
||||
formularSchliessen();
|
||||
melde('');
|
||||
/* Sagen, WO sie gelandet ist -- sonst merkt man einen Irrtum erst,
|
||||
wenn man sie irgendwann sucht. */
|
||||
melde(`„${angaben.titel}“ liegt jetzt unter „${kat ? kat.name : angaben.kategorie}“.`, true);
|
||||
setTimeout(() => melde(''), 7000);
|
||||
$('n-stand').textContent = '';
|
||||
await laden_();
|
||||
} catch { /* umgeleitet */ } finally { knopf.disabled = false; }
|
||||
|
||||
Reference in New Issue
Block a user