Gestisci le liste di cose da fare all'interno dei progetti - crea, modifica, elimina e interroga le liste
Panoramica
Le liste in Blue sono contenitori per organizzare le cose da fare all'interno di un progetto. Ogni lista può contenere più cose da fare e aiuta a strutturare il lavoro in gruppi logici. Le liste supportano il posizionamento, il blocco e il controllo degli accessi basato sui ruoli.
Concetti Chiave
- Ogni progetto può avere fino a 50 liste
- Le liste sono ordinate per posizione (in ordine crescente)
- Le liste possono essere bloccate per prevenire modifiche
- Le liste rispettano le autorizzazioni a livello di progetto e basate sui ruoli
- Le liste eliminate vengono spostate nel cestino (eliminazione soft)
Query
Ottieni un'Unica Lista
Recupera una specifica lista di cose da fare per ID.
query GetTodoList($id: String!) {
todoList(id: $id) {
id
uid
title
position
isDisabled
isLocked
createdAt
updatedAt
project {
id
name
}
createdBy {
id
username
}
}
}
Ottieni Tutte le Liste in un Progetto
Recupera tutte le liste di cose da fare per un progetto specifico.
query GetProjectLists($projectId: String!) {
todoLists(projectId: $projectId) {
id
uid
title
position
isDisabled
isLocked
createdAt
updatedAt
}
}
Query Avanzata delle Liste
Interroga le liste con filtri, ordinamento e paginazione.
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
}
}
}
}
Mutazioni
Crea una Lista
Crea una nuova lista di cose da fare in un progetto.
mutation CreateTodoList($input: CreateTodoListInput!) {
createTodoList(input: $input) {
id
uid
title
position
isDisabled
isLocked
createdAt
project {
id
name
}
}
}
Esempio:
mutation {
createTodoList(input: {
projectId: "project-123"
title: "Sprint 1 Tasks"
position: 1.0
}) {
id
title
}
}
Modifica una Lista
Aggiorna le proprietà di una lista di cose da fare esistente.
mutation EditTodoList($input: EditTodoListInput!) {
editTodoList(input: $input) {
id
title
position
isLocked
updatedAt
}
}
Esempio:
mutation {
editTodoList(input: {
todoListId: "list-123"
title: "Sprint 1 - In Progress"
position: 2.0
isLocked: true
}) {
id
title
isLocked
}
}
Elimina una Lista
Elimina una lista di cose da fare (sposta nel cestino).
mutation DeleteTodoList($input: DeleteTodoListInput!) {
deleteTodoList(input: $input) {
success
}
}
Esempio:
mutation {
deleteTodoList(input: {
projectId: "project-123"
todoListId: "list-123"
}) {
success
}
}
Segna Lista come Fatto/Non Fatto
Segna tutte le cose da fare in una lista come fatte o non fatte.
# 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)
}
Tipi di Input
CreateTodoListInput
Parametro | Tipo | Richiesto | Descrizione |
---|---|---|---|
projectId |
String! | ✅ Sì | L'ID del progetto in cui verrà creata la lista |
title |
String! | ✅ Sì | Il nome della lista |
position |
Float! | ✅ Sì | La posizione della lista (per ordinamento) |
EditTodoListInput
Parametro | Tipo | Richiesto | Descrizione |
---|---|---|---|
todoListId |
String! | ✅ Sì | L'ID della lista da modificare |
title |
String | No | Nuovo titolo per la lista |
position |
Float | No | Nuova posizione per la lista |
isLocked |
Boolean | No | Se la lista deve essere bloccata |
DeleteTodoListInput
Parametro | Tipo | Richiesto | Descrizione |
---|---|---|---|
projectId |
String! | ✅ Sì | L'ID del progetto (per verifica) |
todoListId |
String! | ✅ Sì | L'ID della lista da eliminare |
TodoListsFilterInput
Parametro | Tipo | Richiesto | Descrizione |
---|---|---|---|
companyIds |
[String!]! | ✅ Sì | Filtra per ID aziendali |
projectIds |
[String!] | No | Filtra per ID di progetto specifici |
ids |
[String!] | No | Filtra per ID di lista specifici |
titles |
[String!] | No | Filtra per titoli delle liste |
search |
String | No | Cerca liste per titolo |
TodoListsSort Values
Valore | Descrizione |
---|---|
title_ASC |
Ordina per titolo in ordine crescente |
title_DESC |
Ordina per titolo in ordine decrescente |
createdAt_ASC |
Ordina per data di creazione in ordine crescente |
createdAt_DESC |
Ordina per data di creazione in ordine decrescente |
updatedAt_ASC |
Ordina per data di aggiornamento in ordine crescente |
updatedAt_DESC |
Ordina per data di aggiornamento in ordine decrescente |
position_ASC |
Ordina per posizione in ordine crescente (predefinito) |
position_DESC |
Ordina per posizione in ordine decrescente |
Tipi di Risposta
Tipo TodoList
Campo | Tipo | Descrizione |
---|---|---|
id |
ID! | Identificatore unico |
uid |
String! | Identificatore amichevole per l'utente |
position |
Float! | Posizione della lista per ordinamento |
title |
String! | Nome della lista |
isDisabled |
Boolean! | Se la lista è disabilitata |
isLocked |
Boolean | Se la lista è bloccata |
createdAt |
DateTime! | Timestamp di creazione |
updatedAt |
DateTime! | Timestamp dell'ultimo aggiornamento |
activity |
Activity | Registro delle attività associate |
createdBy |
User | Utente che ha creato la lista |
project |
Project! | Progetto genitore |
todos |
[Todo!]! | Todo in questa lista |
todosCount |
Int! | Numero di todo |
Tipo TodoListsPagination
Campo | Tipo | Descrizione |
---|---|---|
items |
[TodoList!]! | Array di liste di cose da fare |
pageInfo |
PageInfo! | Informazioni sulla paginazione |
Permessi Richiesti
Permessi di Query
Operazione | Permesso Richiesto |
---|---|
todoList |
Must be authenticated |
todoLists |
Must be authenticated and in company |
todoListQueries.todoLists |
Must be authenticated and in company |
Permessi di Mutazione
Operazione | Ruoli a Livello di Progetto Consentiti |
---|---|
createTodoList |
OWNER, ADMIN, MEMBER |
editTodoList |
OWNER, ADMIN, MEMBER, CLIENT |
deleteTodoList |
OWNER, ADMIN, MEMBER |
markTodoListAsDone |
OWNER, ADMIN, MEMBER |
markTodoListAsUndone |
OWNER, ADMIN, MEMBER |
Nota: Gli utenti con ruolo CLIENT possono modificare le liste ma non possono crearle o eliminarle. Gli utenti con ruoli VIEW_ONLY o COMMENT_ONLY non possono creare, modificare o eliminare liste.
Risposte di Errore
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"
}
}]
}
Errore Massimo Liste
{
"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"
}
}]
}
Note Importanti
- Limite di Liste: Ogni progetto può avere un massimo di 50 liste
- Eliminazione Soft: Le liste eliminate vengono spostate nel cestino e possono essere recuperate
- Gestione della Posizione: Quando crei liste, assicurati che le posizioni non si sovrappongano. Usa valori incrementali (1.0, 2.0, 3.0) per consentire l'inserimento tra le liste
- Accesso Basato sui Ruoli: Le liste possono essere nascoste da determinati ruoli utilizzando i permessi ProjectUserRoleTodoList
- Webhook: La creazione, gli aggiornamenti e l'eliminazione delle liste attivano webhook se configurati
- Tracciamento delle Attività: Tutte le operazioni sulle liste sono registrate nel feed delle attività
- Aggiornamenti in Tempo Reale: Le modifiche alle liste vengono pubblicate tramite abbonamenti per aggiornamenti in tempo reale
Operazioni Correlate
- Usa
todos
query per recuperare le cose da fare all'interno di una lista - Usa
createTodo
mutazione per aggiungere cose da fare a una lista - Usa
moveTodo
mutazione per spostare cose da fare tra le liste - Iscriviti ai cambiamenti delle liste utilizzando
subscribeToTodoList
abbonamento