Optionaler Stopp nach der Gliederung je Version
Häkchen beim Anlegen und bei „Neue Version“: der Lauf hält nach der Gliederung als „pausiert“ an, damit man sie prüfen kann, bevor die Kapitel geschrieben werden. „Fortsetzen“ schreibt weiter. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -36,6 +36,7 @@ const fehler = ref('')
|
||||
const neuName = ref('')
|
||||
const neuHinweise = ref('')
|
||||
const neuSpezialisierung = ref('')
|
||||
const neuStopp = ref(false)
|
||||
const navAuf = ref(false)
|
||||
let timer = null
|
||||
|
||||
@@ -105,10 +106,11 @@ async function anlegen() {
|
||||
const name = neuName.value.trim()
|
||||
if (!name) return
|
||||
try {
|
||||
const t = await api.anlegen(name, neuHinweise.value.trim(), neuSpezialisierung.value.trim())
|
||||
const t = await api.anlegen(name, neuHinweise.value.trim(), neuSpezialisierung.value.trim(), neuStopp.value)
|
||||
neuName.value = ''
|
||||
neuHinweise.value = ''
|
||||
neuSpezialisierung.value = ''
|
||||
neuStopp.value = false
|
||||
await topicsLaden()
|
||||
themaWaehlen(t.slug)
|
||||
} catch (e) { fehler.value = String(e.message || e) }
|
||||
@@ -173,6 +175,7 @@ function tokens(n) { return n >= 1e6 ? (n / 1e6).toFixed(1) + 'M' : n >= 1e3 ? M
|
||||
<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" title="Grenzt das Thema ein; Bezeichnung wird „Thema – Spezialisierung“" @keyup.enter="anlegen" />
|
||||
<label class="haken" title="Günstiger Testlauf: Recherche und Gliederung, dann Pause"><input type="checkbox" v-model="neuStopp" /> Nach der Gliederung anhalten</label>
|
||||
<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 = '', spezialisierung = '') => req('/themen', { method: 'POST', body: { name, hinweise, spezialisierung } }),
|
||||
anlegen: (name, hinweise = '', spezialisierung = '', stopp_gliederung = false) => req('/themen', { method: 'POST', body: { name, hinweise, spezialisierung, stopp_gliederung } }),
|
||||
loeschen: (slug) => req(`/themen/${e(slug)}`, { method: 'DELETE' }),
|
||||
versionAnlegen: (slug, eingaben) => req(`/themen/${e(slug)}/versionen`, { method: 'POST', body: eingaben }),
|
||||
versionLoeschen: (slug, n) => req(v(slug, n), { method: 'DELETE' }),
|
||||
|
||||
@@ -39,8 +39,9 @@ function reset() { if (confirm('Lauf zurücksetzen? Alles außer dem Thema wird
|
||||
// Neue Version: Formular mit den Hinweisen dieser Version vorbelegt; Thema und Spezialisierung bleiben.
|
||||
const neuOffen = ref(false)
|
||||
const neuHinweise = ref('')
|
||||
function neuOeffnen() { neuHinweise.value = props.state.hinweise || ''; neuOffen.value = true }
|
||||
function neuStarten() { neuOffen.value = false; emit('neue-version', { hinweise: neuHinweise.value.trim() }) }
|
||||
const neuStopp = ref(false)
|
||||
function neuOeffnen() { neuHinweise.value = props.state.hinweise || ''; neuStopp.value = !!props.state.stopp_gliederung; neuOffen.value = true }
|
||||
function neuStarten() { neuOffen.value = false; emit('neue-version', { hinweise: neuHinweise.value.trim(), stopp_gliederung: neuStopp.value }) }
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -60,6 +61,7 @@ function neuStarten() { neuOffen.value = false; emit('neue-version', { hinweise:
|
||||
<div v-if="neuOffen" class="neu-version">
|
||||
<div class="titel">Neue Version von „{{ state.name }}“</div>
|
||||
<input v-model="neuHinweise" placeholder="Hinweise (optional), z. B. für Entwickler, ab Version 4.6" @keyup.enter="neuStarten" />
|
||||
<label class="haken" title="Günstiger Testlauf: Recherche und Gliederung, dann Pause"><input type="checkbox" v-model="neuStopp" /> Nach der Gliederung anhalten</label>
|
||||
<div class="knoepfe"><button @click="neuStarten">Buch erzeugen</button><button class="sekundaer" @click="neuOffen = false">Abbrechen</button></div>
|
||||
</div>
|
||||
|
||||
@@ -67,6 +69,7 @@ function neuStarten() { neuOffen.value = false; emit('neue-version', { hinweise:
|
||||
<b>Thema</b><span>{{ state.thema }}</span>
|
||||
<b>Spezialisierung</b><span>{{ state.spezialisierung || '–' }}</span>
|
||||
<b>Hinweise</b><span>{{ state.hinweise || '–' }}</span>
|
||||
<template v-if="state.stopp_gliederung"><b>Lauf</b><span>hält nach der Gliederung an</span></template>
|
||||
</div>
|
||||
|
||||
<div v-if="state.deutung" class="deutung">
|
||||
|
||||
@@ -85,6 +85,8 @@ a.knopf { display: inline-block; text-decoration: none; line-height: normal; }
|
||||
.neu-version { max-width: 760px; margin: 0 0 16px; padding: 12px 14px; background: var(--panel); border: 1px solid var(--rand); border-radius: 8px; display: grid; gap: 8px; }
|
||||
.neu-version .titel { font-weight: 600; }
|
||||
.neu-version .knoepfe { display: flex; gap: 8px; }
|
||||
.haken { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--dim); cursor: pointer; }
|
||||
.haken input { accent-color: var(--akzent); }
|
||||
.deutung { max-width: 760px; margin: 0 0 16px; padding: 12px 14px; background: var(--panel); border: 1px solid var(--rand); border-radius: 8px; }
|
||||
.deutung .titel { font-weight: 600; font-size: 15px; }
|
||||
.deutung .sub { color: var(--dim); font-size: 12.5px; }
|
||||
|
||||
Reference in New Issue
Block a user