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,48 +1,47 @@
<script>
import { onMount } from 'svelte';
import { onMount } from 'svelte';
import { useTinyRouter } from 'svelte-tiny-router';
import { api } from '../../urls.svelte.js';
import { t } from '../../translations.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 Card from './KanbanCard.svelte';
import LineEditor from '../../Components/LineEditor.svelte';
let { id } = $props();
let dragged = null;
let error = $state(null);
let highlight = $state({});
let project = $state(null);
let ready = $state(false);
let router = useTinyRouter();
let states = $state(null);
let tasks = $state({});
let dragged = null;
let error = $state(null);
let highlight = $state({});
let filter_input = $state('');
let filter = $derived(filter_input.toLowerCase());
let users = {};
let columns = $derived(states?Object.keys(states).length+1:1);
let filter = $derived(filter_input.toLowerCase());
let project = $state(null);
let ready = $state(false);
let router = useTinyRouter();
let states = $state(null);
let tasks = $state({});
let users = {};
let columns = $derived(states?Object.keys(states).length+1:1);
async function create(name,user_id,state){
var url = api('task/add');
let task = {
description: '',
members : {},
name: name,
project_id: +id,
status : { code : +state}
description : '',
members : {},
name : name,
project_id : +id,
status : { code : +state}
}
task.members[user_id] = { permission: { name : 'ASSIGNEE' }};
task.members[user.id] = { permission: { name : 'OWNER' }};
const resp = await fetch(url,{
credentials:'include',
method:'POST',
body: JSON.stringify(task)
const resp = await fetch(url,{
credentials : 'include',
method : 'POST',
body : JSON.stringify(task)
});
if (resp.ok) {
task = await resp.json();
task = await resp.json();
task.assignee = user_id;
if (!tasks[user_id]) tasks[user_id] = {};
if (!tasks[user_id][state]) tasks[user_id][state] = {};
@@ -54,18 +53,18 @@
}
async function drop(user_id,state){
let task = dragged;
dragged = null;
let task = dragged;
dragged = null;
highlight = {};
if (task.assignee == user_id && task.status.code == state) return; // no change
let patch = {members:{},status:+state}
let patch = {members:{},status:+state}
patch.members[user_id] = 'ASSIGNEE';
const url = api(`task/${task.id}`);
const resp = await fetch(url,{
credentials: 'include',
method: 'PATCH',
body: JSON.stringify(patch)
credentials : 'include',
method : 'PATCH',
body : JSON.stringify(patch)
});
if (resp.ok){
delete tasks[task.assignee][task.status.code][task.id]
@@ -73,8 +72,8 @@
if (!tasks[user_id][state]) tasks[user_id][state] = {}
tasks[user_id][state][task.id] = task;
task.assignee = user_id;
task.status = {code:state,name:states[state]};
error = null;
task.status = {code:state,name:states[state]};
error = null;
} else {
error = await resp.text();
}
@@ -89,7 +88,7 @@
}
async function loadProject(){
const url = api(`project/${id}`);
const url = api(`project/${id}`);
const resp = await fetch(url,{credentials:'include'});
if (resp.ok){
project = await resp.json();
@@ -105,18 +104,18 @@
}
async function loadStates(){
const url = api(`project/${id}/states`);
const url = api(`project/${id}/states`);
const resp = await fetch(url,{credentials:'include'});
if (resp.ok){
states = await resp.json();
error = null;
error = null;
} else {
error = await resp.text();
}
}
async function loadTag(task){
const url = api(`tags/task/${task.id}`);
const url = api(`tags/task/${task.id}`);
const resp = await fetch(url,{credentials:'include'});
if (resp.ok) {
const tags = await resp.json();
@@ -136,24 +135,24 @@
}
async function loadTasks(selector){
const url = api('task/list');
const url = api('task/list');
selector.show_closed = true;
selector.no_index = true;
selector.no_index = true;
var resp = await fetch(url,{
credentials: 'include',
method:'POST',
body:JSON.stringify(selector)
credentials : 'include',
method : 'POST',
body : JSON.stringify(selector)
});
if (resp.ok){
var json = await resp.json();
for (var task_id of Object.keys(json)) {
let task = json[task_id];
let state = task.status.code;
let owner = null;
let task = json[task_id];
let state = task.status.code;
let owner = null;
let assignee = null;
for (var user_id of Object.keys(task.members)){
var member = task.members[user_id];
if (member.permission.name == 'OWNER') owner = user_id;
if (member.permission.name == 'OWNER') owner = user_id;
if (member.permission.name == 'ASSIGNEE') assignee = user_id;
}