diff --git a/frontend/src/Components/LineEditor.svelte b/frontend/src/Components/LineEditor.svelte index 6c1462c..8d91272 100644 --- a/frontend/src/Components/LineEditor.svelte +++ b/frontend/src/Components/LineEditor.svelte @@ -8,7 +8,7 @@ href = '#', onclick = evt => { evt.preventDefault(); startEdit(); return false }, onSet = newVal => {return true;}, - title = t('long_click_to_edit'), + title = t('click_to_edit'), type = 'div', value = $bindable(null) } = $props(); diff --git a/frontend/src/Components/MarkdownEditor.svelte b/frontend/src/Components/MarkdownEditor.svelte index 0a5aae9..58d02ad 100644 --- a/frontend/src/Components/MarkdownEditor.svelte +++ b/frontend/src/Components/MarkdownEditor.svelte @@ -104,29 +104,18 @@ if (simple) startEdit(); - -
{#if editing} -
- - - - - + {@html t('markdown_supported')} + +
{@html target(editValue.rendered)}
+ {#if !simple} +
+ +
+ {/if} +{:else} + {@html target(editValue.rendered)} {/if} - {@html target(editValue.rendered)}
\ No newline at end of file diff --git a/frontend/src/Components/MultilineEditor.svelte b/frontend/src/Components/MultilineEditor.svelte index 27d3316..ed55435 100644 --- a/frontend/src/Components/MultilineEditor.svelte +++ b/frontend/src/Components/MultilineEditor.svelte @@ -85,7 +85,7 @@ {:else} {#if value} - + {#each value.split("\n") as line} {line}
{/each} diff --git a/frontend/src/Components/TimeRecordEditor.svelte b/frontend/src/Components/TimeRecordEditor.svelte index 4c1ff0b..1608ab6 100644 --- a/frontend/src/Components/TimeRecordEditor.svelte +++ b/frontend/src/Components/TimeRecordEditor.svelte @@ -49,5 +49,4 @@ -{record.description.source} {/if} diff --git a/frontend/src/routes/contact/ExtraField.svelte b/frontend/src/routes/contact/ExtraField.svelte index f011dff..88b9a83 100644 --- a/frontend/src/routes/contact/ExtraField.svelte +++ b/frontend/src/routes/contact/ExtraField.svelte @@ -17,9 +17,9 @@ {#if field}
{#if field.value.includes('\\n')} - + {:else} - + {/if}
{/if} \ No newline at end of file diff --git a/frontend/src/routes/project/Kanban.svelte b/frontend/src/routes/project/Kanban.svelte index ea1c656..afc4045 100644 --- a/frontend/src/routes/project/Kanban.svelte +++ b/frontend/src/routes/project/Kanban.svelte @@ -23,7 +23,6 @@ let tasks = $state({}); let users = {}; let columns = $derived(project.allowed_states?Object.keys(project.allowed_states).length+1:1); - const controller = new AbortController(); $effect(() => updateUrl(filter_input)); @@ -175,8 +174,7 @@ } function openTask(task_id){ - controller.abort(); - router.navigate(`/task/${task_id}/view`) + window.open(`/task/${task_id}/view`, '_blank').focus(); } async function save_bookmark(){ diff --git a/frontend/src/routes/task/View.svelte b/frontend/src/routes/task/View.svelte index 1d64f0b..9434461 100644 --- a/frontend/src/routes/task/View.svelte +++ b/frontend/src/routes/task/View.svelte @@ -210,9 +210,7 @@
{#if task.description}
{t('description')}
-
- update({description:val})} /> -
+ update({description:val})} /> {/if} {#if !showSettings && task.start_date}
{t('start_date')}
@@ -277,6 +275,10 @@ {/if} +
{t('tags')}
+
+ +id)} /> +
{t('subtasks')} @@ -288,10 +290,6 @@ {/if}
-
{t('tags')}
-
- +id)} /> -

{t('notes')}

diff --git a/frontend/src/routes/time/Index.svelte b/frontend/src/routes/time/Index.svelte index 89040c1..33653f1 100644 --- a/frontend/src/routes/time/Index.svelte +++ b/frontend/src/routes/time/Index.svelte @@ -244,7 +244,7 @@ {time.duration.toFixed(3)} h {/if} - + {detail = time.id}}> {users[time.user_id].name} {detail = time.id}}> diff --git a/translations/src/main/resources/de.json b/translations/src/main/resources/de.json index 67b2f07..47c94b6 100644 --- a/translations/src/main/resources/de.json +++ b/translations/src/main/resources/de.json @@ -18,6 +18,7 @@ "cancel": "abbrechen", "choose_type": "Typ wählen", + "click_to_edit": "Anklicken zum Bearbeiten", "client_id": "Client-ID", "client_secret": "Client-Geheimnis", "close_settings": "Einstellungen schließen", @@ -137,15 +138,16 @@ "login_services": "Login-Services", "logout": "Abmelden", "logout_user": "{user} abmelden", - "long_click_to_edit": "lang klicken zum Bearbeiten", "markdown_code": "Markdown-Code", + "markdown_supported": "Markdown & Plantuml nutzbar!", "MANAGE_LOGIN_SERVICES": "Login-Services verwalten", "member": "Mitarbeiter", "members": "Mitarbeiter", "message": "Nachricht", "messages": "Benachrichtigungen", "miscellaneous_settings": "sonstige Einstellungen", + "mismatch": "ungleich", "model": "Modell", "models": "Modelle", "module": { @@ -166,7 +168,6 @@ "user": "Benutzer", "wiki": "Wiki" }, - "mismatch": "ungleich", "month": "Monat", "must_not_be_empty": "darf nicht leer sein", @@ -215,6 +216,7 @@ "region": "Bundesland", "repeat_new_password": "Wiederholung", "results": "Ergebnisse", + "right_click_to_edit": "Rechts-Klick zum Bearbeiten", "save": "speichern", "saved": "gespeichert", diff --git a/translations/src/main/resources/en.json b/translations/src/main/resources/en.json index abcda28..de3b4ba 100644 --- a/translations/src/main/resources/en.json +++ b/translations/src/main/resources/en.json @@ -18,6 +18,7 @@ "cancel": "cancel", "choose_type": "choose type", + "click_to_edit": "click to edit", "client_id": "client ID", "client_secret": "client secret", "close_settings": "close settings", @@ -38,7 +39,7 @@ "contained_tax": "contained tax", "content": "content", "context": "context", - "count_of_occurrences": "{count} occurences", + "count_of_occurrences": "{count} occurrences", "country": "country", "COURT": "local court", "CUSTOMER-NUMBER": "customer number", @@ -137,15 +138,16 @@ "login_services": "login service", "logout": "logout", "logout_user": "logout {user}", - "long_click_to_edit": "click long to edit", "markdown_code": "Markdown-Code", + "markdown_supported": "Markdown & Plantuml supported!", "MANAGE_LOGIN_SERVICES": "manage login services", "member": "member", "members": "members", "message": "message", "messages": "messages", "miscellaneous_settings": "miscellaneous settings", + "mismatch": "mismatch", "model": "model", "models": "models", "module": { @@ -166,7 +168,6 @@ "user": "Users", "wiki": "wiki" }, - "mismatch": "mismatch", "month": "month", "must_not_be_empty": "must not be empty", @@ -215,6 +216,7 @@ "region": "region", "repeat_new_password": "repeat new password", "results": "results", + "right_click_to_edit": "right click to edit", "save": "save", "saved": "saved", diff --git a/web/src/main/resources/web/css/default-color.css b/web/src/main/resources/web/css/default-color.css index 205b0ee..1360748 100644 --- a/web/src/main/resources/web/css/default-color.css +++ b/web/src/main/resources/web/css/default-color.css @@ -87,7 +87,7 @@ textarea{ .kanban .state_10 .box, .kanban .state_100 .box{ - background: linear-gradient(rgba(0,0,0,0.8)); + background: linear-gradient(rgba(0,0,0,0.6)); } .kanban .state_10 .box, diff --git a/web/src/main/resources/web/css/default.css b/web/src/main/resources/web/css/default.css index 0585de2..24d7053 100644 --- a/web/src/main/resources/web/css/default.css +++ b/web/src/main/resources/web/css/default.css @@ -290,6 +290,19 @@ span.timetracking { display: inline-block; } +.markdown.editing{ + display: grid; + grid-template-columns: 1fr 1fr; + column-gap: 10px; +} +.markdown .buttons, +.markdown .hint{ + grid-column-end: span 2; +} + +.editable:hover{ + border: 1px dotted; +} .timetracks .year, .timetracks .month{ border: 1px solid; @@ -307,23 +320,6 @@ span.timetracking { float: right; } -.markdown.editing{ - position: relative; -} - -.markdown.editing > *{ - width: 49%; -} - -.markdown.editing > *:nth-child(2){ - position: absolute; - right: 0; - top: 0; -} - -.markdown img{ - max-width: 75%; -} table{ min-width: 30vw; @@ -370,6 +366,7 @@ a.wikilink{ .grid2{ display: grid; grid-template-columns: 230px auto; + margin: 0 5px; } .grid2 > :nth-child(2n-1){ @@ -399,6 +396,17 @@ a.wikilink{ text-align: initial; padding-top: 8px; } + + .markdown.editing{ + display: block; + grid-template-columns: 1fr 1fr; + column-gap: 10px; + } + + .markdown textarea{ + width: calc(100% - 10px); + min-height: 50px; + } } fieldset.vcard{