Compare commits
No commits in common. "4d00be63e7c1a2603e296460cb1c85ee3bf2d72c" and "6116069fff53f55514cdc548f5725319c62caae2" have entirely different histories.
4d00be63e7
...
6116069fff
|
|
@ -1 +1 @@
|
||||||
1.0.52
|
1.0.50
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
import type { Topic } from '@ka-note/shared';
|
import type { Topic } from '@ka-note/shared';
|
||||||
import { liveQuery } from 'dexie';
|
import { liveQuery } from 'dexie';
|
||||||
import { db } from '$lib/db/schema';
|
import { db } from '$lib/db/schema';
|
||||||
import { createTopic, createHistoryEntry, updateTopicSortOrder, JOURNAL_TOPIC_ID } from '$lib/db/repositories';
|
import { createTopic, createHistoryEntry, JOURNAL_TOPIC_ID } from '$lib/db/repositories';
|
||||||
import { today } from '$lib/db/helpers';
|
import { today } from '$lib/db/helpers';
|
||||||
import { processedTopicIds } from '$lib/stores/agenda';
|
import { processedTopicIds } from '$lib/stores/agenda';
|
||||||
import TopicInput from './TopicInput.svelte';
|
import TopicInput from './TopicInput.svelte';
|
||||||
|
|
@ -53,34 +53,6 @@
|
||||||
const topic = await createTopic(contextId, title);
|
const topic = await createTopic(contextId, title);
|
||||||
await createHistoryEntry(topic.id, today(), 'Thema angelegt.');
|
await createHistoryEntry(topic.id, today(), 'Thema angelegt.');
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- Drag & Drop ---
|
|
||||||
let dragId = $state<string | null>(null);
|
|
||||||
let dragOverId = $state<string | null>(null);
|
|
||||||
|
|
||||||
function onDragStart(id: string) {
|
|
||||||
dragId = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
function onDragOver(id: string) {
|
|
||||||
if (dragId && id !== dragId) dragOverId = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
function onDragEnd() {
|
|
||||||
if (dragId && dragOverId) {
|
|
||||||
const list = showSplit ? [...openTopics] : [...allTopics];
|
|
||||||
const fromIdx = list.findIndex(t => t.id === dragId);
|
|
||||||
const toIdx = list.findIndex(t => t.id === dragOverId);
|
|
||||||
if (fromIdx !== -1 && toIdx !== -1) {
|
|
||||||
const reordered = [...list];
|
|
||||||
const [moved] = reordered.splice(fromIdx, 1);
|
|
||||||
reordered.splice(toIdx, 0, moved);
|
|
||||||
updateTopicSortOrder(contextId, reordered.map(t => t.id));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
dragId = null;
|
|
||||||
dragOverId = null;
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<TopicInput oncreate={handleCreate} />
|
<TopicInput oncreate={handleCreate} />
|
||||||
|
|
@ -93,21 +65,13 @@
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{#each openTopics as topic (topic.id)}
|
{#each openTopics as topic (topic.id)}
|
||||||
<div
|
<TopicCard
|
||||||
draggable="true"
|
{topic}
|
||||||
ondragstart={() => onDragStart(topic.id)}
|
{contextId}
|
||||||
ondragover={(e) => { e.preventDefault(); onDragOver(topic.id); }}
|
{isDailyLog}
|
||||||
ondragend={onDragEnd}
|
{isMeetingMode}
|
||||||
class="transition-opacity {dragId === topic.id ? 'opacity-30' : ''} {dragOverId === topic.id ? 'outline outline-2 outline-accent rounded-lg' : ''}"
|
isProcessed={false}
|
||||||
>
|
/>
|
||||||
<TopicCard
|
|
||||||
{topic}
|
|
||||||
{contextId}
|
|
||||||
{isDailyLog}
|
|
||||||
{isMeetingMode}
|
|
||||||
isProcessed={false}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
{/each}
|
{/each}
|
||||||
|
|
||||||
{#if processedTopics.length > 0}
|
{#if processedTopics.length > 0}
|
||||||
|
|
@ -127,21 +91,13 @@
|
||||||
{/each}
|
{/each}
|
||||||
{:else}
|
{:else}
|
||||||
{#each allTopics as topic (topic.id)}
|
{#each allTopics as topic (topic.id)}
|
||||||
<div
|
<TopicCard
|
||||||
draggable="true"
|
{topic}
|
||||||
ondragstart={() => onDragStart(topic.id)}
|
{contextId}
|
||||||
ondragover={(e) => { e.preventDefault(); onDragOver(topic.id); }}
|
{isDailyLog}
|
||||||
ondragend={onDragEnd}
|
{isMeetingMode}
|
||||||
class="transition-opacity {dragId === topic.id ? 'opacity-30' : ''} {dragOverId === topic.id ? 'outline outline-2 outline-accent rounded-lg' : ''}"
|
isProcessed={processedIds.has(topic.id)}
|
||||||
>
|
/>
|
||||||
<TopicCard
|
|
||||||
{topic}
|
|
||||||
{contextId}
|
|
||||||
{isDailyLog}
|
|
||||||
{isMeetingMode}
|
|
||||||
isProcessed={processedIds.has(topic.id)}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
{/each}
|
{/each}
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -64,6 +64,7 @@
|
||||||
const text = noteText.trim();
|
const text = noteText.trim();
|
||||||
if (!text) return false;
|
if (!text) return false;
|
||||||
createHistoryEntry(topic.id, today(), text);
|
createHistoryEntry(topic.id, today(), text);
|
||||||
|
updateTopic(topic.id, { isNew: false });
|
||||||
noteText = "";
|
noteText = "";
|
||||||
noteEditor?.clear();
|
noteEditor?.clear();
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -71,12 +72,10 @@
|
||||||
|
|
||||||
function handleNote() {
|
function handleNote() {
|
||||||
saveNote();
|
saveNote();
|
||||||
updateTopic(topic.id, { isNew: false });
|
|
||||||
processedTopicIds.add(topic.id);
|
processedTopicIds.add(topic.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleSkip() {
|
function handleSkip() {
|
||||||
updateTopic(topic.id, { isNew: false });
|
|
||||||
processedTopicIds.add(topic.id);
|
processedTopicIds.add(topic.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -84,13 +83,12 @@
|
||||||
const dateInput = prompt("Datum (YYYY-MM-DD):", "2026-06-01");
|
const dateInput = prompt("Datum (YYYY-MM-DD):", "2026-06-01");
|
||||||
if (!dateInput) return;
|
if (!dateInput) return;
|
||||||
saveNote();
|
saveNote();
|
||||||
updateTopic(topic.id, { snoozeUntil: dateInput, status: "snoozed", isNew: false });
|
updateTopic(topic.id, { snoozeUntil: dateInput, status: "snoozed" });
|
||||||
processedTopicIds.add(topic.id);
|
processedTopicIds.add(topic.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleDone() {
|
function handleDone() {
|
||||||
saveNote();
|
saveNote();
|
||||||
updateTopic(topic.id, { isNew: false });
|
|
||||||
archiveTopic(topic.id);
|
archiveTopic(topic.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue