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

Assistente AI

Le risposte sono generate utilizzando l'IA e potrebbero contenere errori.

Come posso aiutarti?

Chiedimi qualsiasi cosa su Blue o su questa documentazione.

Invia per inviare • Maiusc+Invio per una nuova riga • ⌘I per aprire