You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

49 lines
1.6 KiB

<script lang="ts">
import type { ProjectResult } from "../models/project";
import type { TaskResult } from "../models/task";
import type { ModalData } from "../stores/modal";
import projectStore from "../stores/project";
import taskStore from "../stores/tasks";
import Composition from "./Composition.svelte";
import Option from "./Option.svelte";
import OptionRow from "./OptionRow.svelte";
import ParentEntry from "./ParentEntry.svelte";
import TaskEntry from "./TaskEntry.svelte";
export let project: ProjectResult = null;
export let showAllOptions: boolean = false;
export let hideInactive: boolean = false;
export let hideProgress: boolean = false;
export let linkProject: boolean = false;
export let hideIcon: boolean = false;
let mdAddTask: ModalData;
let mdProjectEdit: ModalData;
let mdProjectDelete: ModalData;
$: mdAddTask = {name:"task.add", project};
$: mdProjectEdit = {name:"project.edit", project};
$: mdProjectDelete = {name:"project.delete", project};
</script>
<ParentEntry
full={showAllOptions}
entry={project}
headerLink={linkProject ? "/projects#"+project.id : ""}
hideProgress={hideProgress}
hideIcon={hideIcon}
showTimeProgress={!hideProgress}
>
{#if showAllOptions}
<OptionRow>
<Option open={mdAddTask}>Add Task</Option>
<Option open={mdProjectEdit}>Edit</Option>
<Option open={mdProjectDelete}>Delete</Option>
</OptionRow>
{/if}
{#each project.tasks as task (task.id)}
{#if !hideInactive || task.active}
<TaskEntry showAllOptions={showAllOptions} task={task} project={project} />
{/if}
{/each}
</ParentEntry>