Widok kolumny
Widoki kolumn pozwalają tworzyć niestandardowe, interaktywne rozwiązania dla kolumn statusu, listy rozwijanej, formuły i osób w monday.com. Gdy użytkownicy wchodzą w interakcję z tymi kolumnami (np. klikają je, najeżdżają na nie kursorem lub otwierają ich ustawienia), Twoja aplikacja może wyświetlać niestandardowe okna dialogowe z funkcjami, które uzupełniają natywne możliwości monday.com.
Widoki kolumn zapewniają:
- Lepsze wrażenia użytkowników: udostępniają kontekstowe funkcje dopasowane do konkretnej kolumny
- Płynną integrację: działają naturalnie w istniejącym interfejsie monday.com
- Elastyczne wyzwalacze: obsługują różne sposoby interakcji (kliknięcie, najechanie kursorem, ustawienia)
- Niestandardowy interfejs użytkownika: zapewniają pełną kontrolę nad zawartością i działaniem okna dialogowego
- Zaawansowaną logikę: umożliwiają stosowanie złożonych obliczeń, walidacji i dynamicznych reguł biznesowych
Pojęcia
Widoki kolumn składają się z dwóch głównych elementów:
- Kolumny tablicy: podstawowy element, który odpowiada za działanie kolumn w monday.com i przechowuje powiązane informacje (obecnie obsługiwane są kolumny statusu, listy rozwijanej, formuły i osób).
- Niestandardowe okno dialogowe: interaktywny widok, który pojawia się po wykonaniu określonych czynności. Aplikacja wyświetla w nim niestandardowy interfejs użytkownika, który zapewnia dodatkowe funkcje. Możesz używać tego samego okna dialogowego dla różnych interakcji użytkownika lub utworzyć osobne okna dla różnych czynności.
Obsługiwane działania
| Nazwa działania | Opis |
|---|---|
| Okno dialogowe po kliknięciu (On Click Dialog) | Otwiera się, gdy użytkownik kliknie komórkę kolumny |
| Okno dialogowe po najechaniu kursorem (On Hover Dialog) | Otwiera się, gdy użytkownik najedzie kursorem na komórkę kolumny |
| Okno dialogowe ustawień kolumny (Column Settings Dialog) | Otwiera się, gdy użytkownik wybierze Ustawienia (Settings) z menu kolumny. To okno dialogowe zastępuje natywne ustawienia kolumny dostępne w sekcji Ustawienia (Settings) > Dostosuj ustawienia (Customize settings). Zawsze się wyświetla. Jeśli zdefiniujesz tu niestandardowe okno dialogowe, otworzy się ono zamiast domyślnego. |
| Okno dialogowe dodatkowych ustawień (Additional Settings Dialog) | Otwiera się, gdy użytkownik wybierze Ustawienia (Settings) z menu kolumny. To okno dialogowe pojawia się jako dodatkowa opcja w menu Ustawienia kolumny, poniżej opcji Dostosuj ustawienia. Jest opcjonalne i wyświetla się tylko wtedy, gdy dodasz niestandardowe okno dialogowe w tej sekcji. |
Pierwsze kroki
Wymagania wstępne
Zanim utworzysz funkcję kolumny, upewnij się, że masz:
- Konto deweloperskie monday.com z uprawnieniami do tworzenia aplikacji (opcjonalne, ale zalecane)
- Podstawową znajomość API monday.com
- Skonfigurowane środowisko wdrożeniowe (aby dodać funkcje)
Implementacja
Krok 1: Utwórz funkcję kolumny
- Utwórz nową funkcję.
- Wpisz Column w pasku wyszukiwania.
- Wybierz funkcję Kolumna statusu (Status column), Kolumna listy rozwijanej (Dropdown column), Kolumna formuły (Formula column) lub Kolumna osób (People column).
- Kliknij Utwórz (Create), aby przejść do konfiguracji.
Krok 2: Skonfiguruj funkcję
Po utworzeniu funkcji kolumny listy rozwijanej, statusu, formuły lub osób nastąpi przekierowanie na stronę konfiguracji funkcji. Możesz tam skonfigurować:
- Informacje podstawowe: nazwę aplikacji
- Projekt: szczegóły ikony
- Okno dialogowe po kliknięciu: zawartość wyświetlaną po kliknięciu kolumny
- Okno dialogowe po najechaniu kursorem: zawartość wyświetlaną po najechaniu kursorem na kolumnę
- Okno dialogowe ustawień kolumny: zawartość wyświetlaną po wybraniu ustawień kolumny
- Okno dialogowe dodatkowych ustawień: zawartość wyświetlaną po wybraniu dodatkowych ustawień
- Informacje w Centrum widoków (Views Center): opis i linki wyświetlane w Centrum widoków
Krok 3: Utwórz okna dialogowe i skonfiguruj je
Dla każdego typu okna dialogowego, który chcesz wdrożyć:
- Przy odpowiednim typie interakcji z oknem dialogowym (np. oknie dialogowym po kliknięciu lub oknie dialogowym dodatkowych ustawień) kliknij Dodaj okno dialogowe (Add Dialog). Otworzy się okno konfiguracji.
- Wybierz istniejące okno dialogowe albo kliknij Utwórz nowe (Create New) w lewym dolnym rogu. Otworzy się nowa karta, w której możesz skonfigurować okno dialogowe.
- W nowej karcie możesz skonfigurować:
- Ustawienia podstawowe: nazwę
- Wdrożenie: połącz wdrożenie, aby wypełnić okno dialogowe
- Projekt: dostosuj wygląd okna dialogowego
- Po zakończeniu konfiguracji kliknij Zapisz zmiany (Save changes).
- Wróć do poprzedniej karty i wybierz nowe okno dialogowe, aby połączyć je z odpowiednią interakcją.
Dokumentacja
Dokumentacja API
Widoki kolumn przechowują metadane i wartości w natywnych kolumnach monday.com, do których można uzyskać dostęp za pomocą API platformy.
Najważniejsze endpointy API
- Pola kolumn: pobierz metadane kolumny za pomocą API
- Kolumna statusu: filtruj, odczytuj, aktualizuj i czyść kolumnę statusu za pomocą API
- Kolumna listy rozwijanej: filtruj, odczytuj, aktualizuj i czyść kolumnę listy rozwijanej za pomocą API
- Kolumna formuły: odczytaj kolumnę formuły za pomocą API
- Kolumna osób: filtruj, odczytuj, aktualizuj i czyść kolumnę osób za pomocą API
- Zmień wartość kolumny za pomocą ciągu znaków: zaktualizuj wartość kolumny za pomocą API
- Zmień metadane kolumny: zmodyfikuj tytuł lub opis kolumny za pomocą API
Przykład: aktualizacja kolumny statusu
import mondaySDK from "monday-sdk-js";
const monday = mondaySDK();
const mutation = `
mutation($itemId: ID!, $boardId: ID!, $columnId: String!, $value: String!) {
change_simple_column_value(
item_id: $itemId
board_id: $boardId
column_id: $columnId
value: $value
) {
id
}
}
`;
const variables = {
itemId: 9876543210,
boardId: 1234567890,
columnId: "status",
value: "8"
};
const response = await monday.api(mutation, { variables });
Kontekst aplikacji
Gdy użytkownik wchodzi w interakcję z Twoją kolumną, funkcja aplikacji otrzymuje za pośrednictwem kontekstu aplikacji informacje o połączonej kolumnie i tablicy. Każdy obiekt kontekstu zawiera przydatne informacje o wartości kolumny, powiązanej tablicy i użytkowniku. Kontekst aplikacji możesz pobrać za pomocą metod SDK monday.listen lub monday.get.
Przykładowe obiekty kontekstu dla poszczególnych funkcji:
{
"themeConfig": null,
"theme": "light",
"account": {
"id": "5"
},
"user": {
"id": "4300888",
"isAdmin": false,
"isGuest": false,
"isViewOnly": false,
"countryCode": "US",
"currentLanguage": "en",
"timeFormat": "12H",
"timeZoneOffset": -5
},
"region": "use1",
"productKind": "core",
"app": {
"id": 10180998,
"clientId": "a667d68ebbceb739ca015146e85aee94"
},
"appVersion": {
"id": 10303119,
"name": "Column Apps - Dipro",
"status": "draft",
"type": "major",
"versionData": {
"major": 1,
"minor": 0,
"patch": 0,
"number": 1,
"type": "major",
"displayNumber": "v1"
}
},
"appFeature": {
"type": "AppFeatureDialog",
"name": "Project priority column - dialog - v1"
},
"permissions": {
"approvedScopes": [
"boards:read",
"me:read",
"docs:read",
"boards:write",
"docs:write"
],
"requiredScopes": [
"boards:read",
"me:read",
"docs:read",
"boards:write",
"docs:write"
]
},
"boardId": 108246798,
"columnId": "project_priority_mkmm73xw",
"appFeatureId": 11205588,
"itemId": 256180125,
"selectedItemIds": [
256180125
],
"columnType": "color",
"event": "click",
"placement": "columnPickers"
}
{
"themeConfig": null,
"theme": "light",
"account": {
"id": "5"
},
"user": {
"id": "4300888",
"isAdmin": false,
"isGuest": false,
"isViewOnly": false,
"countryCode": "US",
"currentLanguage": "en",
"timeFormat": "12H",
"timeZoneOffset": -5
},
"region": "use1",
"productKind": "core",
"app": {
"id": 10180998,
"clientId": "a667d68ebbceb739ca015146e85aee94"
},
"appVersion": {
"id": 10303119,
"name": "Column Apps - Dipro",
"status": "draft",
"type": "major",
"versionData": {
"major": 1,
"minor": 0,
"patch": 0,
"number": 1,
"type": "major",
"displayNumber": "v1"
}
},
"appFeature": {
"type": "AppFeatureDialog",
"name": "Project priority column - dialog - v1"
},
"permissions": {
"approvedScopes": [
"boards:read",
"me:read",
"docs:read",
"boards:write",
"docs:write"
],
"requiredScopes": [
"boards:read",
"me:read",
"docs:read",
"boards:write",
"docs:write"
]
},
"boardId": 108246798,
"columnId": "project_priority_mkmm73xw",
"appFeatureId": 11205572,
"columnType": "color",
"placement": "settings"
}
{
"themeConfig": null,
"theme": "light",
"account": {
"id": "5"
},
"user": {
"id": "4300888",
"isAdmin": false,
"isGuest": false,
"isViewOnly": false,
"countryCode": "US",
"currentLanguage": "en",
"timeFormat": "12H",
"timeZoneOffset": -5
},
"region": "use1",
"productKind": "core",
"app": {
"id": 10180998,
"clientId": "a667d68ebbceb739ca015146e85aee94"
},
"appVersion": {
"id": 10303119,
"name": "Column Apps - Dipro",
"status": "draft",
"type": "major",
"versionData": {
"major": 1,
"minor": 0,
"patch": 0,
"number": 1,
"type": "major",
"displayNumber": "v1"
}
},
"appFeature": {
"type": "AppFeatureDialog",
"name": "Project priority column - dialog - v1"
},
"permissions": {
"approvedScopes": [
"boards:read",
"me:read",
"docs:read",
"boards:write",
"docs:write"
],
"requiredScopes": [
"boards:read",
"me:read",
"docs:read",
"boards:write",
"docs:write"
]
},
"boardId": 108246798,
"columnId": "project_priority_mkmm73xw",
"appFeatureId": 11205572,
"columnType": "color",
"placement": "settings"
}