diff --git a/frontend/src/Components/StateSelector.svelte b/frontend/src/Components/StateSelector.svelte
index aed5521..dc4c22b 100644
--- a/frontend/src/Components/StateSelector.svelte
+++ b/frontend/src/Components/StateSelector.svelte
@@ -7,31 +7,14 @@
caption = t('select_state'),
selected = $bindable(0),
onchange = (val) => console.log('changed to '+val),
- project_id = '?'
+ project = null
} = $props();
-
- let message = $state(t('loading'));
- let states = $state(null);
-
- async function loadStates(){
- const url = api(`project/${project_id}/states`);
- const resp = await fetch(url,{credentials: 'include'});
- if (resp.ok){
- states = await resp.json();
- } else {
- message = await resp.text();
- }
- }
-
- onMount(loadStates)
-{#if states}
+{#if project?.allowed_states}
onchange(selected)}>
- {#each Object.entries(states) as [k,s]}
- {t('state_'+s.toLowerCase())}
+ {#each Object.entries(project.allowed_states) as [code,name]}
+ {t('state_'+name.toLowerCase())}
{/each}
-{:else}
-{message}
{/if}
\ No newline at end of file
diff --git a/frontend/src/routes/project/View.svelte b/frontend/src/routes/project/View.svelte
index d8c0b4d..f48f34e 100644
--- a/frontend/src/routes/project/View.svelte
+++ b/frontend/src/routes/project/View.svelte
@@ -63,7 +63,7 @@
const resp = await fetch(url,{credentials:'include'});
if (resp.ok){
project = await resp.json();
- console.log(project);
+// console.log(project);
error = null;
loadTasks();
} else {
@@ -143,7 +143,7 @@
{t('state')}
- update({status:val})} project_id={id} />
+ update({status:val})} {project} />
{#if project.company}
@@ -231,4 +231,4 @@
{t('notes')}
-
\ No newline at end of file
+
diff --git a/frontend/src/routes/task/View.svelte b/frontend/src/routes/task/View.svelte
index be17f74..0b8d72e 100644
--- a/frontend/src/routes/task/View.svelte
+++ b/frontend/src/routes/task/View.svelte
@@ -186,7 +186,7 @@
{t('state')}
- update({status:val})} project_id={task.project_id} />
+ update({status:val})} {project} />
{#if task.description}
diff --git a/project/src/main/java/de/srsoftware/umbrella/project/ProjectModule.java b/project/src/main/java/de/srsoftware/umbrella/project/ProjectModule.java
index a590472..890dde8 100644
--- a/project/src/main/java/de/srsoftware/umbrella/project/ProjectModule.java
+++ b/project/src/main/java/de/srsoftware/umbrella/project/ProjectModule.java
@@ -73,7 +73,7 @@ public class ProjectModule extends BaseHandler implements ProjectService {
head = path.pop();
yield switch (head) {
case null -> getProject(ex, projectId, user.get());
- case STATES -> getStateList(ex);
+ case STATES -> super.doGet(path, ex); // TODO THIS SHOULD NO LONGER BE REQUIRED
default -> super.doGet(path, ex);
};
}
@@ -138,13 +138,6 @@ public class ProjectModule extends BaseHandler implements ProjectService {
return sendContent(ex,map);
}
- private boolean getStateList(HttpExchange ex) throws IOException {
- var map = new HashMap();
- for (var status : PREDEFINED) map.put(status.code(),status.name());
- map.put(23,"evil");
- return sendContent(ex,map);
- }
-
public Map listCompanyProjects(long companyId, boolean includeClosed) throws UmbrellaException {
var projectList = projects.ofCompany(companyId, includeClosed);
loadMembers(projectList.values());