Spezialisierung je Thema: begrenzt den Umfang auf einen Ausschnitt
Drittes Feld neben Thema und Hinweisen. Hinweise fügen hinzu, die Spezialisierung nimmt weg: Recherche, Gliederung, Kapitel und Prüfung bekommen sie als verbindliche Grenze; nur Stoff, der dafür gebraucht wird, Grundlagen nur soweit nötig. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -35,6 +35,7 @@ const state = ref(null)
|
||||
const fehler = ref('')
|
||||
const neuName = ref('')
|
||||
const neuHinweise = ref('')
|
||||
const neuSpezialisierung = ref('')
|
||||
const navAuf = ref(false)
|
||||
let timer = null
|
||||
|
||||
@@ -104,9 +105,10 @@ async function anlegen() {
|
||||
const name = neuName.value.trim()
|
||||
if (!name) return
|
||||
try {
|
||||
const t = await api.anlegen(name, neuHinweise.value.trim())
|
||||
const t = await api.anlegen(name, neuHinweise.value.trim(), neuSpezialisierung.value.trim())
|
||||
neuName.value = ''
|
||||
neuHinweise.value = ''
|
||||
neuSpezialisierung.value = ''
|
||||
await topicsLaden()
|
||||
themaWaehlen(t.slug)
|
||||
} catch (e) { fehler.value = String(e.message || e) }
|
||||
@@ -170,6 +172,7 @@ function tokens(n) { return n >= 1e6 ? (n / 1e6).toFixed(1) + 'M' : n >= 1e3 ? M
|
||||
<div class="neu">
|
||||
<input v-model="neuName" placeholder="Thema, z. B. Godot 4" @keyup.enter="anlegen" />
|
||||
<input v-model="neuHinweise" placeholder="Hinweise (optional), z. B. für Entwickler, ab Version 4.6" @keyup.enter="anlegen" />
|
||||
<input v-model="neuSpezialisierung" placeholder="Spezialisierung (optional), z. B. Kartenspiel gegen KI" title="Begrenzt den Umfang: nur, was dafür gebraucht wird" @keyup.enter="anlegen" />
|
||||
<button @click="anlegen">Anlegen</button>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
@@ -18,7 +18,7 @@ const e = encodeURIComponent
|
||||
const v = (slug, n) => `/themen/${e(slug)}/v${n}`
|
||||
export const api = {
|
||||
themen: () => req('/themen'),
|
||||
anlegen: (name, hinweise = '') => req('/themen', { method: 'POST', body: { name, hinweise } }),
|
||||
anlegen: (name, hinweise = '', spezialisierung = '') => req('/themen', { method: 'POST', body: { name, hinweise, spezialisierung } }),
|
||||
loeschen: (slug) => req(`/themen/${e(slug)}`, { method: 'DELETE' }),
|
||||
versionAnlegen: (slug) => req(`/themen/${e(slug)}/versionen`, { method: 'POST' }),
|
||||
versionLoeschen: (slug, n) => req(v(slug, n), { method: 'DELETE' }),
|
||||
|
||||
@@ -45,7 +45,7 @@ function neueVersion() { if (confirm('Neue Version erzeugen? Gleiche Eingaben, k
|
||||
<button v-if="!laeuft && !fertig" @click="emit('start')">{{ begonnen ? 'Fortsetzen' : 'Buch erzeugen' }}</button>
|
||||
<button v-if="laeuft" class="sekundaer" @click="emit('pause')">Pause</button>
|
||||
<button v-if="!laeuft && begonnen && !fertig" class="sekundaer" @click="reset">Zurücksetzen</button>
|
||||
<button v-if="!laeuft && begonnen" class="sekundaer" title="Gleiches Thema, gleiche Hinweise, neuer Lauf" @click="neueVersion">Neue Version</button>
|
||||
<button v-if="!laeuft && begonnen" class="sekundaer" title="Gleiches Thema, gleiche Hinweise und Spezialisierung, neuer Lauf" @click="neueVersion">Neue Version</button>
|
||||
<span class="spacer"></span>
|
||||
<span class="badge" :class="statusFarbe[state.status]">{{ statusText[state.status] || state.status }}<template v-if="state.stufe && laeuft"> · {{ state.stufe }}</template></span>
|
||||
<span class="badge">{{ usd(state.kosten_usd) }}</span>
|
||||
|
||||
Reference in New Issue
Block a user