code cleanup

This commit is contained in:
2025-07-30 15:35:19 +02:00
parent 631a527a5d
commit fccec9865a
27 changed files with 442 additions and 428 deletions

View File

@@ -1,30 +1,30 @@
<script>
import { onMount } from 'svelte';
import { onMount } from 'svelte';
import { useTinyRouter } from 'svelte-tiny-router';
import { t } from '../../translations.svelte.js';
import { api } from '../../urls.svelte.js';
import { user } from '../../user.svelte.js';
import { api } from '../../urls.svelte.js';
import { t } from '../../translations.svelte.js';
import { user } from '../../user.svelte.js';
import MarkdownEditor from '../../Components/MarkdownEditor.svelte';
import MemberEditor from '../../Components/MemberEditor.svelte';
import Tags from '../tags/TagList.svelte';
import MarkdownEditor from '../../Components/MarkdownEditor.svelte';
import MemberEditor from '../../Components/MemberEditor.svelte';
import Tags from '../tags/TagList.svelte';
let { project_id = null, parent_task_id } = $props();
let error = $state(null);
let project = $state(null);
let error = $state(null);
let project = $state(null);
let extendedSettings = $state(false);
let parent_task = $state(null);
let parent_task = $state(null);
let task = $state({
name : '',
description : { source : '', rendered : '' },
due_date: null,
estimated_time: null,
no_index: false,
members : {},
show_closed: false,
start_date: null,
tags: []
name : '',
description : { source : '', rendered : '' },
due_date : null,
estimated_time : null,
no_index : false,
members : {},
show_closed : false,
start_date : null,
tags : []
});
let router = useTinyRouter();
@@ -44,28 +44,28 @@
}
async function loadParent(){
const url = api(`task/${parent_task_id}`);
const url = api(`task/${parent_task_id}`);
const resp = await fetch(url,{credentials:'include'});
if (resp.ok){
parent_task = await resp.json();
parent_task = await resp.json();
task.parent_task_id = +parent_task_id;
project_id = parent_task.project_id;
error = null;
project = null; // TODO
project_id = parent_task.project_id;
error = null;
project = null; // TODO
} else {
error = await resp.text();
}
}
async function loadProject(){
var url = api(`project/${project_id}`);
const url = api(`project/${project_id}`);
const resp = await fetch(url,{credentials:'include'});
if (resp.ok){
project = await resp.json();
task.project_id = +project_id;
project = await resp.json();
task.project_id = +project_id;
let member_source = parent_task?parent_task.members:project.members;
task.members = JSON.parse(JSON.stringify(member_source)); // deep copy
error = null;
task.members = JSON.parse(JSON.stringify(member_source)); // deep copy
error = null;
} else {
error = await resp.text();
}
@@ -98,11 +98,11 @@
}
async function saveTask(){
var url = api('task/add');
const url = api('task/add');
const resp = await fetch(url,{
credentials:'include',
method:'POST',
body: JSON.stringify(task)
credentials : 'include',
method : 'POST',
body : JSON.stringify(task)
});
if (resp.ok) {
task = await resp.json();

View File

@@ -1,19 +1,19 @@
<script>
import { onMount } from 'svelte';
import { onMount } from 'svelte';
import { useTinyRouter } from 'svelte-tiny-router';
import { t } from '../../translations.svelte.js';
import { api } from '../../urls.svelte.js';
import { api } from '../../urls.svelte.js';
import { t } from '../../translations.svelte.js';
import TaskList from './TaskList.svelte';
import LineEditor from '../../Components/LineEditor.svelte';
import TaskList from './TaskList.svelte';
import LineEditor from '../../Components/LineEditor.svelte';
const router = useTinyRouter();
let { estimated_time, show_closed, task } = $props();
let children = $state(null);
let error = $state(null);
let start = 0;
let deleted = $state(false);
let deleted = $state(false);
let error = $state(null);
const router = useTinyRouter();
let start = 0;
function addSubtask(){
router.navigate(`/task/${task.id}/add_subtask`);
@@ -21,10 +21,10 @@
async function deleteTask(){
if (confirm(t('confirm_delete',{element:task.name}))){
const url = api(`task/${task.id}`);
const url = api(`task/${task.id}`);
const resp = await fetch(url,{
credentials:'include',
method:'DELETE'
credentials : 'include',
method : 'DELETE'
});
if (resp.ok){
deleted = true;
@@ -35,20 +35,20 @@
}
async function loadChildren(){
const url = api('task/list');
var data = {
parent_task_id:+task.id,
show_closed: show_closed
const url = api('task/list');
const data = {
parent_task_id : +task.id,
show_closed : show_closed
};
if (task.show_closed) data.show_closed = true;
const resp = await fetch(url,{
credentials:'include',
method:'POST',
body:JSON.stringify(data)
credentials : 'include',
method : 'POST',
body : JSON.stringify(data)
});
if (resp.ok){
children = await resp.json();
error = null;
error = null;
} else {
error = await resp.text();
}
@@ -59,11 +59,11 @@
}
async function patchTask(changeset){
const url = api(`task/${task.id}`);
const url = api(`task/${task.id}`);
const resp = await fetch(url,{
credentials:'include',
method: 'PATCH',
body: JSON.stringify(changeset)
credentials : 'include',
method : 'PATCH',
body : JSON.stringify(changeset)
});
if (resp.ok){
task = await resp.json();

View File

@@ -1,5 +1,5 @@
<script>
import { t } from '../../translations.svelte.js';
import { t } from '../../translations.svelte.js';
import ListTask from './ListTask.svelte';
let { estimated_time, show_closed, tasks } = $props();

View File

@@ -1,27 +1,27 @@
<script>
import { onMount } from 'svelte';
import { onMount } from 'svelte';
import { useTinyRouter } from 'svelte-tiny-router';
import { t } from '../../translations.svelte.js';
import { api } from '../../urls.svelte.js';
import { api } from '../../urls.svelte.js';
import { t } from '../../translations.svelte.js';
import LineEditor from '../../Components/LineEditor.svelte';
import LineEditor from '../../Components/LineEditor.svelte';
import MarkdownEditor from '../../Components/MarkdownEditor.svelte';
import MemberEditor from '../../Components/MemberEditor.svelte';
import Notes from '../notes/List.svelte';
import StateSelector from '../../Components/StateSelector.svelte';
import TagList from '../tags/TagList.svelte';
import TaskList from './TaskList.svelte';
import MemberEditor from '../../Components/MemberEditor.svelte';
import Notes from '../notes/List.svelte';
import StateSelector from '../../Components/StateSelector.svelte';
import TagList from '../tags/TagList.svelte';
import TaskList from './TaskList.svelte';
const router = useTinyRouter();
let { id } = $props();
let task = $state(null);
let project = $state(null);
let error = $state(null);
let children = $state(null);
let { id } = $props();
let children = $state(null);
let dummy = $derived(updateOn(id));
let error = $state(null);
let estimated_time = $state({sum:0});
let dummy = $derived(updateOn(id));
let showSettings = $state(false);
let project = $state(null);
const router = useTinyRouter();
let showSettings = $state(false);
let task = $state(null);
$effect(() => updateOn(id));
@@ -35,7 +35,7 @@
}
async function getCandidates(text){
const origin = task.parent ? task.parent.members : project.members;
const origin = task.parent ? task.parent.members : project.members;
const candidates = Object.values(origin)
.filter(member => member.user.name.toLowerCase().includes(text.toLowerCase()))
.map(member => [member.user.id,member.user.name]);
@@ -52,37 +52,37 @@
}
async function loadChildren(){
const url = api('task/list');
var data = {
parent_task_id:+task.id,
show_closed: task.show_closed
const url = api('task/list');
const data = {
parent_task_id : +task.id,
show_closed : task.show_closed
};
const resp = await fetch(url,{
credentials:'include',
method:'POST',
credentials : 'include',
method : 'POST',
body:JSON.stringify(data)
});
if (resp.ok){
children = await resp.json();
error = null;
error = null;
} else {
error = await resp.text();
}
}
async function loadProject(){
const url = api(`project/${task.project_id}`);
const url = api(`project/${task.project_id}`);
const resp = await fetch(url,{credentials:'include'});
if (resp.ok){
project = await resp.json();
error = null;
error = null;
} else {
error = await resp.text();
}
}
async function loadParent(){
const url = api(`task/${task.parent_task_id}`);
const url = api(`task/${task.parent_task_id}`);
const resp = await fetch(url,{credentials:'include'});
if (resp.ok){
task.parent = await resp.json();
@@ -92,12 +92,12 @@
}
async function loadTask(){
const url = api(`task/${id}`);
const url = api(`task/${id}`);
const resp = await fetch(url,{credentials:'include'});
if (resp.ok){
task = await resp.json();
error = null;
project = null;
task = await resp.json();
error = null;
project = null;
children = null;
loadChildren();
if (task.project_id) loadProject();
@@ -122,15 +122,15 @@
}
async function update(data){
const url = api(`task/${id}`);
const url = api(`task/${id}`);
const resp = await fetch(url,{
credentials:'include',
method:'PATCH',
body:JSON.stringify(data)
credentials : 'include',
method : 'PATCH',
body : JSON.stringify(data)
});
if (resp.ok){
error = null;
task = await resp.json();
task = await resp.json();
return true;
} else {
error = await resp.text();
@@ -147,7 +147,7 @@
}
function updatePermission(user_id,permission){
let members = {};
let members = {};
members[user_id] = permission.code;
update({members:members});
}