Beheer todo-lijsten binnen projecten - maak, bewerk, verwijder en raadpleeg lijsten
Overzicht
Lijsten in Blue zijn containers voor het organiseren van todo's binnen een project. Elke lijst kan meerdere todo's bevatten en helpt om werk in logische groepen te structureren. Lijsten ondersteunen positionering, vergrendeling en rolgebaseerde toegangscontrole.
Belangrijke Concepten
- Elk project kan tot 50 lijsten hebben
- Lijsten zijn geordend op positie (oplopend)
- Lijsten kunnen worden vergrendeld om wijzigingen te voorkomen
- Lijsten respecteren projectniveau en rolgebaseerde machtigingen
- Verwijderde lijsten worden naar de prullenbak verplaatst (zachte verwijdering)
Vragen
Verkrijg een Enkele Lijst
Haal een specifieke todo-lijst op via ID.
query GetTodoList($id: String!) {
todoList(id: $id) {
id
uid
title
position
isDisabled
isLocked
createdAt
updatedAt
project {
id
name
}
createdBy {
id
username
}
}
}
Verkrijg Alle Lijsten in een Project
Haal alle todo-lijsten op voor een specifiek project.
query GetProjectLists($projectId: String!) {
todoLists(projectId: $projectId) {
id
uid
title
position
isDisabled
isLocked
createdAt
updatedAt
}
}
Geavanceerde Lijst Vraag
Vraag lijsten op met filtering, sorteren en paginering.
query SearchTodoLists($filter: TodoListsFilterInput!, $sort: [TodoListsSort!], $skip: Int, $take: Int) {
todoListQueries {
todoLists(filter: $filter, sort: $sort, skip: $skip, take: $take) {
items {
id
uid
title
position
isDisabled
isLocked
createdAt
updatedAt
project {
id
name
}
}
pageInfo {
hasNextPage
hasPreviousPage
total
}
}
}
}
Mutaties
Maak een Lijst
Maak een nieuwe todo-lijst in een project.
mutation CreateTodoList($input: CreateTodoListInput!) {
createTodoList(input: $input) {
id
uid
title
position
isDisabled
isLocked
createdAt
project {
id
name
}
}
}
Voorbeeld:
mutation {
createTodoList(input: {
projectId: "project-123"
title: "Sprint 1 Tasks"
position: 1.0
}) {
id
title
}
}
Bewerk een Lijst
Werk de eigenschappen van een bestaande todo-lijst bij.
mutation EditTodoList($input: EditTodoListInput!) {
editTodoList(input: $input) {
id
title
position
isLocked
updatedAt
}
}
Voorbeeld:
mutation {
editTodoList(input: {
todoListId: "list-123"
title: "Sprint 1 - In Progress"
position: 2.0
isLocked: true
}) {
id
title
isLocked
}
}
Verwijder een Lijst
Verwijder een todo-lijst (verplaatst naar de prullenbak).
mutation DeleteTodoList($input: DeleteTodoListInput!) {
deleteTodoList(input: $input) {
success
}
}
Voorbeeld:
mutation {
deleteTodoList(input: {
projectId: "project-123"
todoListId: "list-123"
}) {
success
}
}
Markeer Lijst als Voltooid/Niet Voltooid
Markeer alle todo's in een lijst als voltooid of niet voltooid.
# Mark as done
mutation MarkListDone($todoListId: String!, $filter: TodosFilter) {
markTodoListAsDone(todoListId: $todoListId, filter: $filter)
}
# Mark as undone
mutation MarkListUndone($todoListId: String!, $filter: TodosFilter) {
markTodoListAsUndone(todoListId: $todoListId, filter: $filter)
}
Invoertypes
CreateTodoListInput
Parameter | Type | Vereist | Beschrijving |
---|---|---|---|
projectId |
String! | ✅ Ja | De project-ID waar de lijst zal worden gemaakt |
title |
String! | ✅ Ja | De naam van de lijst |
position |
Float! | ✅ Ja | De positie van de lijst (voor ordening) |
EditTodoListInput
Parameter | Type | Vereist | Beschrijving |
---|---|---|---|
todoListId |
String! | ✅ Ja | De ID van de lijst om te bewerken |
title |
String | Nee | Nieuwe titel voor de lijst |
position |
Float | Nee | Nieuwe positie voor de lijst |
isLocked |
Boolean | Nee | Of de lijst vergrendeld moet zijn |
DeleteTodoListInput
Parameter | Type | Vereist | Beschrijving |
---|---|---|---|
projectId |
String! | ✅ Ja | De project-ID (voor verificatie) |
todoListId |
String! | ✅ Ja | De ID van de lijst om te verwijderen |
TodoListsFilterInput
Parameter | Type | Vereist | Beschrijving |
---|---|---|---|
companyIds |
[String!]! | ✅ Ja | Filter op bedrijfs-ID's |
projectIds |
[String!] | Nee | Filter op specifieke project-ID's |
ids |
[String!] | Nee | Filter op specifieke lijst-ID's |
titles |
[String!] | Nee | Filter op lijsttitels |
search |
String | Nee | Zoek lijsten op titel |
TodoListsSort Waarden
Waarde | Beschrijving |
---|---|
title_ASC |
Sorteer op titel oplopend |
title_DESC |
Sorteer op titel aflopend |
createdAt_ASC |
Sorteer op aanmaakdatum oplopend |
createdAt_DESC |
Sorteer op aanmaakdatum aflopend |
updatedAt_ASC |
Sorteer op update datum oplopend |
updatedAt_DESC |
Sorteer op update datum aflopend |
position_ASC |
Sorteer op positie oplopend (standaard) |
position_DESC |
Sorteer op positie aflopend |
Antwoordtypes
TodoList Type
Veld | Type | Beschrijving |
---|---|---|
id |
ID! | Unieke identificatie |
uid |
String! | Gebruiksvriendelijke identificatie |
position |
Float! | Lijstpositie voor ordening |
title |
String! | Lijstnaam |
isDisabled |
Boolean! | Of de lijst is uitgeschakeld |
isLocked |
Boolean | Of de lijst is vergrendeld |
createdAt |
DateTime! | Aanmaak tijdstempel |
updatedAt |
DateTime! | Laatste update tijdstempel |
activity |
Activity | Geassocieerde activiteitslog |
createdBy |
User | Gebruiker die de lijst heeft gemaakt |
project |
Project! | Bovenliggend project |
todos |
[Todo!]! | Todo's in deze lijst |
todosCount |
Int! | Aantal todo's |
TodoListsPagination Type
Veld | Type | Beschrijving |
---|---|---|
items |
[TodoList!]! | Array van todo-lijsten |
pageInfo |
PageInfo! | Paginainformatie |
Vereiste Machtigingen
Vraag Machtigingen
Operatie | Vereiste Machtiging |
---|---|
todoList |
Must be authenticated |
todoLists |
Must be authenticated and in company |
todoListQueries.todoLists |
Must be authenticated and in company |
Mutatie Machtigingen
Operatie | Toegestane Projectniveau Rollen |
---|---|
createTodoList |
OWNER, ADMIN, MEMBER |
editTodoList |
OWNER, ADMIN, MEMBER, CLIENT |
deleteTodoList |
OWNER, ADMIN, MEMBER |
markTodoListAsDone |
OWNER, ADMIN, MEMBER |
markTodoListAsUndone |
OWNER, ADMIN, MEMBER |
Opmerking: Gebruikers met de CLIENT-rol kunnen lijsten bewerken, maar kunnen ze niet maken of verwijderen. Gebruikers met de VIEW_ONLY of COMMENT_ONLY-rollen kunnen geen lijsten maken, bewerken of verwijderen.
Fout Antwoorden
TodoListNotFoundError
{
"errors": [{
"message": "Todo list was not found.",
"extensions": {
"code": "TODO_LIST_NOT_FOUND"
}
}]
}
ProjectNotFoundError
{
"errors": [{
"message": "Project was not found.",
"extensions": {
"code": "PROJECT_NOT_FOUND"
}
}]
}
Maximum Lijsten Fout
{
"errors": [{
"message": "You have reached the maximum number of todo lists for this project.",
"extensions": {
"code": "INTERNAL_SERVER_ERROR"
}
}]
}
UnauthorizedError
{
"errors": [{
"message": "Unauthorized",
"extensions": {
"code": "UNAUTHORIZED"
}
}]
}
Belangrijke Notities
- Lijst Limiet: Elk project kan maximaal 50 lijsten hebben
- Zachte Verwijdering: Verwijderde lijsten worden naar de prullenbak verplaatst en kunnen mogelijk worden hersteld
- Positiebeheer: Zorg ervoor dat posities niet conflicteren bij het maken van lijsten. Gebruik incrementele waarden (1.0, 2.0, 3.0) om invoeging tussen lijsten mogelijk te maken
- Rolgebaseerde Toegang: Lijsten kunnen verborgen worden voor bepaalde rollen met behulp van ProjectUserRoleTodoList machtigingen
- Webhooks: Het maken, bijwerken en verwijderen van lijsten activeert webhooks als deze zijn geconfigureerd
- Activiteit Tracking: Alle lijstoperaties worden gelogd in de activiteitenfeed
- Real-time Updates: Wijzigingen in lijsten worden gepubliceerd via abonnementen voor real-time updates
Gerelateerde Operaties
- Gebruik
todos
query om todo's binnen een lijst op te halen - Gebruik
createTodo
mutatie om todo's aan een lijst toe te voegen - Gebruik
moveTodo
mutatie om todo's tussen lijsten te verplaatsen - Abonneer je op lijstwijzigingen met behulp van
subscribeToTodoList
abonnement