Browse Source

working on extended states

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
feature/entityId
Stephan Richter 3 months ago
parent
commit
0511faa342
  1. 25
      frontend/src/Components/StateSelector.svelte
  2. 4
      frontend/src/routes/project/View.svelte
  3. 2
      frontend/src/routes/task/View.svelte
  4. 9
      project/src/main/java/de/srsoftware/umbrella/project/ProjectModule.java

25
frontend/src/Components/StateSelector.svelte

@ -7,31 +7,14 @@ @@ -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)
</script>
{#if states}
{#if project?.allowed_states}
<select bind:value={selected} onchange={() => onchange(selected)}>
{#each Object.entries(states) as [k,s]}
<option value={+k}>{t('state_'+s.toLowerCase())}</option>
{#each Object.entries(project.allowed_states) as [code,name]}
<option value={+code}>{t('state_'+name.toLowerCase())}</option>
{/each}
</select>
{:else}
<span>{message}</span>
{/if}

4
frontend/src/routes/project/View.svelte

@ -63,7 +63,7 @@ @@ -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 @@ @@ -143,7 +143,7 @@
<tr>
<th>{t('state')}</th>
<td>
<StateSelector selected={project.status} onchange={val => update({status:val})} project_id={id} />
<StateSelector selected={project.status} onchange={val => update({status:val})} {project} />
</td>
</tr>
{#if project.company}

2
frontend/src/routes/task/View.svelte

@ -186,7 +186,7 @@ @@ -186,7 +186,7 @@
<tr>
<th>{t('state')}</th>
<td>
<StateSelector selected={task.status} onchange={val => update({status:val})} project_id={task.project_id} />
<StateSelector selected={task.status} onchange={val => update({status:val})} {project} />
</td>
</tr>
{#if task.description}

9
project/src/main/java/de/srsoftware/umbrella/project/ProjectModule.java

@ -73,7 +73,7 @@ public class ProjectModule extends BaseHandler implements ProjectService { @@ -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 { @@ -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<Integer,String>();
for (var status : PREDEFINED) map.put(status.code(),status.name());
map.put(23,"evil");
return sendContent(ex,map);
}
public Map<Long, Project> listCompanyProjects(long companyId, boolean includeClosed) throws UmbrellaException {
var projectList = projects.ofCompany(companyId, includeClosed);
loadMembers(projectList.values());

Loading…
Cancel
Save