2024-07-24 13:31:28 +02:00
|
|
|
import * as React from "bloatless-react";
|
|
|
|
|
|
|
|
|
|
import TaskViewModel from "../../ViewModel/Pages/taskViewModel";
|
|
|
|
|
|
|
|
|
|
export function TaskEntry(taskViewModel: TaskViewModel) {
|
2024-07-24 15:12:35 +02:00
|
|
|
const details: { [icon: string]: string } = {
|
|
|
|
|
description: taskViewModel.description.value || "---",
|
|
|
|
|
priority_high: taskViewModel.priority.value || "---",
|
|
|
|
|
category: taskViewModel.category.value || "---",
|
|
|
|
|
clock_loader_40: taskViewModel.status.value || "---",
|
|
|
|
|
calendar_month: taskViewModel.date.value || "---",
|
|
|
|
|
schedule: taskViewModel.time.value || "---",
|
|
|
|
|
};
|
|
|
|
|
|
2024-07-24 13:31:28 +02:00
|
|
|
const view = (
|
2024-07-25 04:12:30 +02:00
|
|
|
<button
|
2024-07-25 16:20:43 +02:00
|
|
|
draggable="true"
|
2024-07-25 04:12:30 +02:00
|
|
|
class="tile flex-no"
|
|
|
|
|
on:click={taskViewModel.open}
|
2024-07-25 16:20:43 +02:00
|
|
|
on:dragstart={taskViewModel.dragStart}
|
2024-07-25 04:12:30 +02:00
|
|
|
>
|
2024-07-24 15:12:35 +02:00
|
|
|
<div>
|
|
|
|
|
<b subscribe:innerText={taskViewModel.name}></b>
|
|
|
|
|
<hr></hr>
|
|
|
|
|
<div
|
|
|
|
|
class="grid secondary"
|
|
|
|
|
style="grid-template-columns: repeat(2, 1fr); column-gap: 1rem; row-gap: .5rem"
|
|
|
|
|
>
|
|
|
|
|
{...Object.entries(details).map((entry) => (
|
|
|
|
|
<span
|
|
|
|
|
class="flex-row align-center width-100 flex-no clip"
|
|
|
|
|
style="gap: 1rem"
|
|
|
|
|
>
|
|
|
|
|
<span class="icon" style="font-size: 1.1rem">
|
|
|
|
|
{entry[0]}
|
|
|
|
|
</span>
|
|
|
|
|
<span class="ellipsis">{entry[1]}</span>
|
|
|
|
|
</span>
|
|
|
|
|
))}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-07-24 13:31:28 +02:00
|
|
|
</button>
|
|
|
|
|
);
|
|
|
|
|
|
2024-07-24 14:34:28 +02:00
|
|
|
taskViewModel.index.subscribe((newIndex) => {
|
|
|
|
|
view.style.order = newIndex;
|
|
|
|
|
});
|
|
|
|
|
|
2024-07-24 13:31:28 +02:00
|
|
|
return view;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const TaskViewModelToEntry: React.StateItemConverter<TaskViewModel> = (
|
|
|
|
|
taskViewModel: TaskViewModel
|
|
|
|
|
) => {
|
|
|
|
|
return TaskEntry(taskViewModel);
|
|
|
|
|
};
|