Zarządzaj listami zadań w projektach - twórz, edytuj, usuwaj i zapytuj o listy


Przegląd

Listy w Blue są kontenerami do organizowania zadań w ramach projektu. Każda lista może zawierać wiele zadań i pomaga w strukturyzacji pracy w logiczne grupy. Listy wspierają pozycjonowanie, blokowanie i kontrolę dostępu opartą na rolach.

Kluczowe pojęcia

  • Każdy projekt może mieć maksymalnie 50 list
  • Listy są uporządkowane według pozycji (rosnąco)
  • Listy mogą być zablokowane, aby zapobiec modyfikacjom
  • Listy respektują uprawnienia na poziomie projektu i oparte na rolach
  • Usunięte listy są przenoszone do kosza (miękkie usunięcie)

Zapytania

Pobierz pojedynczą listę

Pobierz konkretną listę zadań według ID.

query GetTodoList($id: String!) {
  todoList(id: $id) {
    id
    uid
    title
    position
    isDisabled
    isLocked
    createdAt
    updatedAt
    project {
      id
      name
    }
    createdBy {
      id
      username
    }
  }
}

Pobierz wszystkie listy w projekcie

Pobierz wszystkie listy zadań dla konkretnego projektu.

query GetProjectLists($projectId: String!) {
  todoLists(projectId: $projectId) {
    id
    uid
    title
    position
    isDisabled
    isLocked
    createdAt
    updatedAt
  }
}

Zaawansowane zapytanie o listy

Zapytaj o listy z filtrowaniem, sortowaniem i paginacją.

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
      }
    }
  }
}

Mutacje

Utwórz listę

Utwórz nową listę zadań w projekcie.

mutation CreateTodoList($input: CreateTodoListInput!) {
  createTodoList(input: $input) {
    id
    uid
    title
    position
    isDisabled
    isLocked
    createdAt
    project {
      id
      name
    }
  }
}

Przykład:

mutation {
  createTodoList(input: {
    projectId: "project-123"
    title: "Sprint 1 Tasks"
    position: 1.0
  }) {
    id
    title
  }
}

Edytuj listę

Zaktualizuj właściwości istniejącej listy zadań.

mutation EditTodoList($input: EditTodoListInput!) {
  editTodoList(input: $input) {
    id
    title
    position
    isLocked
    updatedAt
  }
}

Przykład:

mutation {
  editTodoList(input: {
    todoListId: "list-123"
    title: "Sprint 1 - In Progress"
    position: 2.0
    isLocked: true
  }) {
    id
    title
    isLocked
  }
}

Usuń listę

Usuń listę zadań (przenosi do kosza).

mutation DeleteTodoList($input: DeleteTodoListInput!) {
  deleteTodoList(input: $input) {
    success
  }
}

Przykład:

mutation {
  deleteTodoList(input: {
    projectId: "project-123"
    todoListId: "list-123"
  }) {
    success
  }
}

Oznacz listę jako zrobioną/niezrobioną

Oznacz wszystkie zadania w liście jako zrobione lub niezrobione.

# 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)
}

Typy wejściowe

CreateTodoListInput

Parametr Typ Wymagane Opis
projectId String! ✅ Tak ID projektu, w którym lista zostanie utworzona
title String! ✅ Tak Nazwa listy
position Float! ✅ Tak Pozycja listy (do sortowania)

EditTodoListInput

Parametr Typ Wymagane Opis
todoListId String! ✅ Tak ID listy do edytowania
title String Nie Nowy tytuł dla listy
position Float Nie Nowa pozycja dla listy
isLocked Boolean Nie Czy lista powinna być zablokowana

DeleteTodoListInput

Parametr Typ Wymagane Opis
projectId String! ✅ Tak ID projektu (do weryfikacji)
todoListId String! ✅ Tak ID listy do usunięcia

TodoListsFilterInput

Parametr Typ Wymagane Opis
companyIds [String!]! ✅ Tak Filtrowanie według ID firm
projectIds [String!] Nie Filtrowanie według konkretnych ID projektów
ids [String!] Nie Filtrowanie według konkretnych ID list
titles [String!] Nie Filtrowanie według tytułów list
search String Nie Wyszukiwanie list według tytułu

TodoListsSort Values

Wartość Opis
title_ASC Sortuj według tytułu rosnąco
title_DESC Sortuj według tytułu malejąco
createdAt_ASC Sortuj według daty utworzenia rosnąco
createdAt_DESC Sortuj według daty utworzenia malejąco
updatedAt_ASC Sortuj według daty aktualizacji rosnąco
updatedAt_DESC Sortuj według daty aktualizacji malejąco
position_ASC Sortuj według pozycji rosnąco (domyślnie)
position_DESC Sortuj według pozycji malejąco

Typy odpowiedzi

Typ TodoList

Pole Typ Opis
id ID! Unikalny identyfikator
uid String! Przyjazny identyfikator
position Float! Pozycja listy do sortowania
title String! Nazwa listy
isDisabled Boolean! Czy lista jest wyłączona
isLocked Boolean Czy lista jest zablokowana
createdAt DateTime! Znacznik czasu utworzenia
updatedAt DateTime! Znacznik czasu ostatniej aktualizacji
activity Activity Powiązany dziennik aktywności
createdBy User Użytkownik, który utworzył listę
project Project! Rodzic projektu
todos [Todo!]! Zadania w tej liście
todosCount Int! Liczba zadań

Typ TodoListsPagination

Pole Typ Opis
items [TodoList!]! Tablica list zadań
pageInfo PageInfo! Informacje o paginacji

Wymagane uprawnienia

Uprawnienia zapytań

Operacja Wymagane uprawnienie
todoList Must be authenticated
todoLists Must be authenticated and in company
todoListQueries.todoLists Must be authenticated and in company

Uprawnienia mutacji

Operacja Dozwolone role na poziomie projektu
createTodoList OWNER, ADMIN, MEMBER
editTodoList OWNER, ADMIN, MEMBER, CLIENT
deleteTodoList OWNER, ADMIN, MEMBER
markTodoListAsDone OWNER, ADMIN, MEMBER
markTodoListAsUndone OWNER, ADMIN, MEMBER

Uwaga: Użytkownicy z rolą CLIENT mogą edytować listy, ale nie mogą ich tworzyć ani usuwać. Użytkownicy z rolami VIEW_ONLY lub COMMENT_ONLY nie mogą tworzyć, edytować ani usuwać list.

Odpowiedzi błędów

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"
    }
  }]
}

Błąd maksymalnych list

{
  "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"
    }
  }]
}

Ważne uwagi

  • Limit list: Każdy projekt może mieć maksymalnie 50 list
  • Miękkie usunięcie: Usunięte listy są przenoszone do kosza i mogą być potencjalnie odzyskane
  • Zarządzanie pozycjami: Podczas tworzenia list upewnij się, że pozycje się nie konfliktują. Używaj wartości inkrementalnych (1.0, 2.0, 3.0), aby umożliwić wstawianie między listami
  • Dostęp oparty na rolach: Listy mogą być ukryte przed niektórymi rolami za pomocą uprawnień ProjectUserRoleTodoList
  • Webhooki: Tworzenie, aktualizacje i usunięcia list wyzwalają webhooki, jeśli są skonfigurowane
  • Śledzenie aktywności: Wszystkie operacje na listach są rejestrowane w kanale aktywności
  • Aktualizacje w czasie rzeczywistym: Zmiany w listach są publikowane za pośrednictwem subskrypcji dla aktualizacji w czasie rzeczywistym

Powiązane operacje

  • Użyj todos zapytania, aby pobrać zadania w ramach listy
  • Użyj createTodo mutacji, aby dodać zadania do listy
  • Użyj moveTodo mutacji, aby przenieść zadania między listami
  • Subskrybuj zmiany w listach, używając subscribeToTodoList subskrypcji

Asystent AI

Odpowiedzi są generowane przy użyciu sztucznej inteligencji i mogą zawierać błędy.

Jak mogę Ci pomóc?

Zapytaj mnie o cokolwiek dotyczącego Blue lub tej dokumentacji.

Wciśnij Enter, aby wysłać • Shift+Enter, aby dodać nową linię • ⌘I, aby otworzyć