worked on notes

This commit is contained in:
2025-07-28 23:21:19 +02:00
parent 65df45482f
commit 3a348ddce1
9 changed files with 22 additions and 17 deletions

View File

@@ -4,7 +4,7 @@
import { checkUser, tryLogin } from '../user.svelte.js'; import { checkUser, tryLogin } from '../user.svelte.js';
import { useTinyRouter } from 'svelte-tiny-router'; import { useTinyRouter } from 'svelte-tiny-router';
let credentials = { username : null, password : null } let credentials = $state({ username : null, password : null });
let services = $state([]); let services = $state([]);
const router = useTinyRouter(); const router = useTinyRouter();

View File

@@ -139,5 +139,5 @@
{t('sender_local_court')} {t('sender_local_court')}
</label> </label>
</fieldset> </fieldset>
<button onclick={submit}>{t('create_new')}</button> <button onclick={submit}>{t('create_new_document')}</button>
</fieldset> </fieldset>

View File

@@ -16,7 +16,7 @@
async function loadCompanies(){ async function loadCompanies(){
const url = `${location.protocol}//${location.host.replace('5173','8080')}/api/company/list`; const url = `${location.protocol}//${location.host.replace('5173','8080')}/api/company/list`;
var resp = await fetch(url,{ credentials: 'include'}); const resp = await fetch(url,{ credentials: 'include'});
if (resp.ok){ if (resp.ok){
companies = await resp.json(); companies = await resp.json();
} else { } else {
@@ -24,7 +24,7 @@
} }
if (company_id) { if (company_id) {
for (var comp of companies){ for (let comp of companies){
if (comp.id == company_id){ if (comp.id == company_id){
load(comp); load(comp);
break; break;
@@ -77,7 +77,7 @@
</script> </script>
<fieldset> <fieldset>
<legend>{selected_company ? t( 'list_of',selected_company.name) : t('document.list')}</legend> <legend>{selected_company ? t( 'list_of',selected_company.name) : t('document_list')}</legend>
{#if error} {#if error}
<div class="error">{error}</div> <div class="error">{error}</div>
{/if} {/if}

View File

@@ -2,7 +2,7 @@
import {onMount} from 'svelte'; import {onMount} from 'svelte';
import {t} from '../../translations.svelte.js'; import {t} from '../../translations.svelte.js';
let { caption, value = $bindable(0), onchange = () => console.log('changed')} = $props(); let { caption, value = $bindable(0), onchange = () => console.log('changed')} = $props();
let message = t('document.loading'); let message = t('loading');
let types = $state(null); let types = $state(null);
async function loadTypes(){ async function loadTypes(){

View File

@@ -7,6 +7,7 @@
import LineEditor from '../../Components/LineEditor.svelte'; import LineEditor from '../../Components/LineEditor.svelte';
import MarkdownEditor from '../../Components/MarkdownEditor.svelte'; import MarkdownEditor from '../../Components/MarkdownEditor.svelte';
import MultilineEditor from '../../Components/MultilineEditor.svelte'; import MultilineEditor from '../../Components/MultilineEditor.svelte';
import Notes from '../notes/List.svelte';
import PositionList from './PositionList.svelte'; import PositionList from './PositionList.svelte';
import PositionSelector from './PositionSelector.svelte'; import PositionSelector from './PositionSelector.svelte';
import StateSelector from './StateSelector.svelte'; import StateSelector from './StateSelector.svelte';
@@ -229,16 +230,13 @@
<button onclick={render} disabled={pdfDisabled}>{t('create_pdf')}</button> <button onclick={render} disabled={pdfDisabled}>{t('create_pdf')}</button>
<button onclick={() => router.navigate(`/document/${doc.id}/send`)} >{t('send_document')}</button> <button onclick={() => router.navigate(`/document/${doc.id}/send`)} >{t('send_document')}</button>
</fieldset> </fieldset>
{#if user.name == 'Stephan Richter'}
<fieldset>
<legend>TODO</legend>
<ul>
<li>Preise in der Tabelle neu berechnen, wenn Positionen geändert werden</li>
</ul>
</fieldset>
{/if}
{/if} {/if}
<div class="notes">
<h3>{t('notes')}</h3>
<Notes module="document" entity_id={id} />
</div>
{#if position_select} {#if position_select}
<PositionSelector close={() => position_select=false} {doc} onSelect={addPosition} /> <PositionSelector close={() => position_select=false} {doc} onSelect={addPosition} />
{/if} {/if}

View File

@@ -50,7 +50,6 @@
parent_task = await resp.json(); parent_task = await resp.json();
task.parent_task_id = +parent_task_id; task.parent_task_id = +parent_task_id;
project_id = parent_task.project_id; project_id = parent_task.project_id;
console.log({prj:project_id});
error = null; error = null;
project = null; // TODO project = null; // TODO
} else { } else {
@@ -64,7 +63,8 @@
if (resp.ok){ if (resp.ok){
project = await resp.json(); project = await resp.json();
task.project_id = +project_id; task.project_id = +project_id;
task.members = JSON.parse(JSON.stringify(parent_task?parent_task.members:project.members)); // deep copy let member_source = parent_task?parent_task.members:project.members;
task.members = JSON.parse(JSON.stringify(member_source)); // deep copy
error = null; error = null;
} else { } else {
error = await resp.text(); error = await resp.text();

View File

@@ -184,7 +184,7 @@
<StateSelector selected={task.status.code} onchange={val => update({status:val})} project_id={task.project_id} /> <StateSelector selected={task.status.code} onchange={val => update({status:val})} project_id={task.project_id} />
</td> </td>
</tr> </tr>
{#if task.description.rendered} {#if task.description.source}
<tr> <tr>
<th>{t('description')}</th> <th>{t('description')}</th>
<td class="description"> <td class="description">

View File

@@ -52,6 +52,7 @@
"description": "Beschreibung", "description": "Beschreibung",
"display_closed_tasks": "abgeschlossene Aufgaben anzeigen", "display_closed_tasks": "abgeschlossene Aufgaben anzeigen",
"document": "Dokumente", "document": "Dokumente",
"document_list": "Dokumente",
"documents": "Dokumente", "documents": "Dokumente",
"do_login" : "anmelden", "do_login" : "anmelden",
"do_open" : "öffnen", "do_open" : "öffnen",
@@ -169,12 +170,14 @@
"results": "Ergebnisse", "results": "Ergebnisse",
"saved": "gespeichert", "saved": "gespeichert",
"save_note": "Notiz speichern",
"save_service": "Service speichern", "save_service": "Service speichern",
"save_task": "Aufgabe speichern", "save_task": "Aufgabe speichern",
"save_user": "Nutzer speichern", "save_user": "Nutzer speichern",
"search": "Suche", "search": "Suche",
"select_company" : "Wählen Sie eine ihrer Firmen:", "select_company" : "Wählen Sie eine ihrer Firmen:",
"select_customer": "Kunde auswählen", "select_customer": "Kunde auswählen",
"select_state": "Status wählen",
"send_document": "Dokument versenden", "send_document": "Dokument versenden",
"sender": "Absender", "sender": "Absender",
"sender_bank_account": "Bankverbindung", "sender_bank_account": "Bankverbindung",

View File

@@ -158,6 +158,10 @@ textarea{
background: orange; background: orange;
position: relative; position: relative;
} }
.kanban .box .title{
display: inline-block;
padding-bottom: 15px;
}
.kanban .add_task, .kanban .add_task,
.kanban .head, .kanban .head,
.kanban .user{ .kanban .user{