upd link handling journal
This commit is contained in:
parent
9db6cacb8c
commit
90970322f1
|
|
@ -12,7 +12,9 @@
|
|||
"Bash(docker ps:*)",
|
||||
"Bash(docker compose:*)",
|
||||
"Bash(az webapp config appsettings list:*)",
|
||||
"Bash(node:*)"
|
||||
"Bash(node:*)",
|
||||
"Bash(python3:*)",
|
||||
"Bash(echo:*)"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -280,7 +280,12 @@
|
|||
<div class="group mb-3 flex items-start gap-2 rounded bg-card-bg p-2.5">
|
||||
<span class="mt-0.5 text-xs text-muted whitespace-nowrap">{formatTime(entry.updatedAt)}</span>
|
||||
<div class="flex-1">
|
||||
<div class="font-bold">{truncateUrlDisplay(title)}
|
||||
<div class="font-bold">
|
||||
{#if /^https?:\/\//i.test(title)}
|
||||
<a href={title} target="_blank" rel="noopener noreferrer" class="text-blue-400 hover:underline">{truncateUrlDisplay(title)}</a>
|
||||
{:else}
|
||||
{title}
|
||||
{/if}
|
||||
{#if entry.linkedContextId}
|
||||
<span class="ml-1 inline-block rounded bg-accent/20 px-1.5 py-0.5 text-xs font-normal text-accent">
|
||||
{contextNameMap().get(entry.linkedContextId) ?? entry.linkedContextId}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,21 @@
|
|||
<script lang="ts">
|
||||
import { liveQuery } from 'dexie';
|
||||
import { db } from '$lib/db/schema';
|
||||
import { resolveWiedervorlage, setWiedervorlage, convertToTopic } from '$lib/db/repositories';
|
||||
import { resolveWiedervorlage, setWiedervorlage, convertToTopic, softDeleteHistoryEntry } from '$lib/db/repositories';
|
||||
import type { HistoryEntry } from '@ka-note/shared';
|
||||
import RenderedMarkdown from './RenderedMarkdown.svelte';
|
||||
|
||||
function truncateUrlDisplay(text: string): string {
|
||||
if (!/^https?:\/\//i.test(text)) return text;
|
||||
try {
|
||||
const u = new URL(text);
|
||||
const path = u.pathname !== '/' ? u.pathname : '';
|
||||
const display = u.hostname + path;
|
||||
return display.length > 60 ? display.slice(0, 57) + '…' : display;
|
||||
} catch {
|
||||
return text.length > 60 ? text.slice(0, 57) + '…' : text;
|
||||
}
|
||||
}
|
||||
|
||||
interface Props {
|
||||
entry: HistoryEntry;
|
||||
|
|
@ -28,6 +41,10 @@
|
|||
await resolveWiedervorlage(entry.id);
|
||||
}
|
||||
|
||||
async function handleDelete() {
|
||||
await softDeleteHistoryEntry(entry.id);
|
||||
}
|
||||
|
||||
async function handleVerschieben() {
|
||||
if (!newDate) return;
|
||||
await setWiedervorlage(entry.id, newDate);
|
||||
|
|
@ -48,9 +65,15 @@
|
|||
<span class="text-xs font-semibold uppercase tracking-wider text-amber-400">⏰ Wiedervorlage {entry.wiedervorlageDate}</span>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<div class="font-bold text-white">{title}</div>
|
||||
<div class="font-bold text-white">
|
||||
{#if /^https?:\/\//i.test(title)}
|
||||
<a href={title} target="_blank" rel="noopener noreferrer" class="text-blue-400 hover:underline">{truncateUrlDisplay(title)}</a>
|
||||
{:else}
|
||||
{title}
|
||||
{/if}
|
||||
</div>
|
||||
{#if body}
|
||||
<div class="mt-1 text-sm text-[#ccc]">{body}</div>
|
||||
<RenderedMarkdown text={body} class="mt-1 text-sm text-[#ccc]" />
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
|
|
@ -105,6 +128,10 @@
|
|||
class="rounded bg-[#444] px-3 py-1 text-sm text-white hover:bg-[#555]"
|
||||
onclick={() => showConvert = true}
|
||||
>In Thema wandeln</button>
|
||||
<button
|
||||
class="ml-auto rounded bg-red-900/60 px-3 py-1 text-sm text-red-300 hover:bg-red-800"
|
||||
onclick={handleDelete}
|
||||
>Löschen</button>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "tsx watch src/index.ts",
|
||||
"dev": "node --watch --import tsx/esm src/index.ts",
|
||||
"build": "tsc",
|
||||
"start": "node dist/index.js",
|
||||
"db:generate": "drizzle-kit generate",
|
||||
|
|
|
|||
Loading…
Reference in New Issue