Verwalten Sie To-Do-Listen innerhalb von Projekten - Erstellen, Bearbeiten, Löschen und Abfragen von Listen
Übersicht
Listen in Blue sind Container zur Organisation von To-Dos innerhalb eines Projekts. Jede Liste kann mehrere To-Dos enthalten und hilft, die Arbeit in logische Gruppen zu strukturieren. Listen unterstützen Positionierung, Sperrung und rollenbasierte Zugriffskontrolle.
Schlüsselkonzepte
- Jedes Projekt kann bis zu 50 Listen haben
- Listen sind nach Position (aufsteigend) geordnet
- Listen können gesperrt werden, um Änderungen zu verhindern
- Listen respektieren projektbezogene und rollenbasierte Berechtigungen
- Gelöschte Listen werden in den Papierkorb verschoben (weiches Löschen)
Abfragen
Eine einzelne Liste abrufen
Rufen Sie eine bestimmte To-Do-Liste nach ID ab.
query GetTodoList($id: String!) {
todoList(id: $id) {
id
uid
title
position
isDisabled
isLocked
createdAt
updatedAt
project {
id
name
}
createdBy {
id
username
}
}
}
Alle Listen in einem Projekt abrufen
Rufen Sie alle To-Do-Listen für ein bestimmtes Projekt ab.
query GetProjectLists($projectId: String!) {
todoLists(projectId: $projectId) {
id
uid
title
position
isDisabled
isLocked
createdAt
updatedAt
}
}
Erweiterte Listenabfrage
Abfragen von Listen mit Filterung, Sortierung und Seitenumbruch.
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
}
}
}
}
Mutationen
Eine Liste erstellen
Erstellen Sie eine neue To-Do-Liste in einem Projekt.
mutation CreateTodoList($input: CreateTodoListInput!) {
createTodoList(input: $input) {
id
uid
title
position
isDisabled
isLocked
createdAt
project {
id
name
}
}
}
Beispiel:
mutation {
createTodoList(input: {
projectId: "project-123"
title: "Sprint 1 Tasks"
position: 1.0
}) {
id
title
}
}
Eine Liste bearbeiten
Aktualisieren Sie die Eigenschaften einer vorhandenen To-Do-Liste.
mutation EditTodoList($input: EditTodoListInput!) {
editTodoList(input: $input) {
id
title
position
isLocked
updatedAt
}
}
Beispiel:
mutation {
editTodoList(input: {
todoListId: "list-123"
title: "Sprint 1 - In Progress"
position: 2.0
isLocked: true
}) {
id
title
isLocked
}
}
Eine Liste löschen
Löschen Sie eine To-Do-Liste (wird in den Papierkorb verschoben).
mutation DeleteTodoList($input: DeleteTodoListInput!) {
deleteTodoList(input: $input) {
success
}
}
Beispiel:
mutation {
deleteTodoList(input: {
projectId: "project-123"
todoListId: "list-123"
}) {
success
}
}
Liste als erledigt/nicht erledigt markieren
Markieren Sie alle To-Dos in einer Liste als erledigt oder nicht erledigt.
# 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)
}
Eingabetypen
CreateTodoListInput
Parameter | Typ | Erforderlich | Beschreibung |
---|---|---|---|
projectId |
String! | ✅ Ja | Die Projekt-ID, in der die Liste erstellt wird |
title |
String! | ✅ Ja | Der Name der Liste |
position |
Float! | ✅ Ja | Die Position der Liste (zur Sortierung) |
EditTodoListInput
Parameter | Typ | Erforderlich | Beschreibung |
---|---|---|---|
todoListId |
String! | ✅ Ja | Die ID der zu bearbeitenden Liste |
title |
String | Nein | Neuer Titel für die Liste |
position |
Float | Nein | Neue Position für die Liste |
isLocked |
Boolean | Nein | Ob die Liste gesperrt werden soll |
DeleteTodoListInput
Parameter | Typ | Erforderlich | Beschreibung |
---|---|---|---|
projectId |
String! | ✅ Ja | Die Projekt-ID (zur Überprüfung) |
todoListId |
String! | ✅ Ja | Die ID der zu löschenden Liste |
TodoListsFilterInput
Parameter | Typ | Erforderlich | Beschreibung |
---|---|---|---|
companyIds |
[String!]! | ✅ Ja | Nach Unternehmens-IDs filtern |
projectIds |
[String!] | Nein | Nach bestimmten Projekt-IDs filtern |
ids |
[String!] | Nein | Nach bestimmten Listen-IDs filtern |
titles |
[String!] | Nein | Nach Listentiteln filtern |
search |
String | Nein | Listen nach Titel durchsuchen |
TodoListsSort-Werte
Wert | Beschreibung |
---|---|
title_ASC |
Nach Titel aufsteigend sortieren |
title_DESC |
Nach Titel absteigend sortieren |
createdAt_ASC |
Nach Erstellungsdatum aufsteigend sortieren |
createdAt_DESC |
Nach Erstellungsdatum absteigend sortieren |
updatedAt_ASC |
Nach Aktualisierungsdatum aufsteigend sortieren |
updatedAt_DESC |
Nach Aktualisierungsdatum absteigend sortieren |
position_ASC |
Nach Position aufsteigend sortieren (Standard) |
position_DESC |
Nach Position absteigend sortieren |
Antworttypen
TodoList-Typ
Feld | Typ | Beschreibung |
---|---|---|
id |
ID! | Eindeutiger Identifikator |
uid |
String! | Benutzerfreundlicher Identifikator |
position |
Float! | Listenposition zur Sortierung |
title |
String! | Listenname |
isDisabled |
Boolean! | Ob die Liste deaktiviert ist |
isLocked |
Boolean | Ob die Liste gesperrt ist |
createdAt |
DateTime! | Erstellungszeitstempel |
updatedAt |
DateTime! | Letzter Aktualisierungszeitstempel |
activity |
Activity | Zugehöriges Aktivitätsprotokoll |
createdBy |
User | Benutzer, der die Liste erstellt hat |
project |
Project! | Übergeordnetes Projekt |
todos |
[Todo!]! | To-Dos in dieser Liste |
todosCount |
Int! | Anzahl der To-Dos |
TodoListsPagination-Typ
Feld | Typ | Beschreibung |
---|---|---|
items |
[TodoList!]! | Array von To-Do-Listen |
pageInfo |
PageInfo! | Seiteninformationen |
Erforderliche Berechtigungen
Abfrageberechtigungen
Operation | Erforderliche Berechtigung |
---|---|
todoList |
Must be authenticated |
todoLists |
Must be authenticated and in company |
todoListQueries.todoLists |
Must be authenticated and in company |
Mutationsberechtigungen
Operation | Projektbezogene Rollen erlaubt |
---|---|
createTodoList |
OWNER, ADMIN, MEMBER |
editTodoList |
OWNER, ADMIN, MEMBER, CLIENT |
deleteTodoList |
OWNER, ADMIN, MEMBER |
markTodoListAsDone |
OWNER, ADMIN, MEMBER |
markTodoListAsUndone |
OWNER, ADMIN, MEMBER |
Hinweis: Benutzer mit der CLIENT-Rolle können Listen bearbeiten, aber nicht erstellen oder löschen. Benutzer mit VIEW_ONLY- oder COMMENT_ONLY-Rollen können keine Listen erstellen, bearbeiten oder löschen.
Fehlerantworten
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 Lists Error
{
"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"
}
}]
}
Wichtige Hinweise
- Listenlimit: Jedes Projekt kann maximal 50 Listen haben
- Weiches Löschen: Gelöschte Listen werden in den Papierkorb verschoben und können möglicherweise wiederhergestellt werden
- Positionsverwaltung: Stellen Sie beim Erstellen von Listen sicher, dass die Positionen nicht in Konflikt stehen. Verwenden Sie inkrementelle Werte (1.0, 2.0, 3.0), um das Einfügen zwischen Listen zu ermöglichen
- Rollenbasierter Zugriff: Listen können für bestimmte Rollen mithilfe von ProjectUserRoleTodoList-Berechtigungen verborgen werden
- Webhooks: Die Erstellung, Aktualisierung und Löschung von Listen löst Webhooks aus, wenn sie konfiguriert sind
- Aktivitätsverfolgung: Alle Listenoperationen werden im Aktivitätsprotokoll protokolliert
- Echtzeit-Updates: Änderungen an Listen werden über Abonnements für Echtzeit-Updates veröffentlicht
Verwandte Operationen
- Verwenden Sie
todos
Abfrage, um To-Dos innerhalb einer Liste abzurufen - Verwenden Sie
createTodo
Mutation, um To-Dos zu einer Liste hinzuzufügen - Verwenden Sie
moveTodo
Mutation, um To-Dos zwischen Listen zu verschieben - Abonnieren Sie Listenänderungen mit
subscribeToTodoList
Abonnement