Utwórz pełną kopię istniejącego dashboardu, w tym wszystkie wykresy, segmenty i uprawnienia
Mutacja copyDashboard
tworzy pełną kopię istniejącego dashboardu, w tym wszystkie wykresy, segmenty wykresów, wartości i uprawnienia użytkowników. Operacja ta wykonuje głęboką kopię z nowymi unikalnymi identyfikatorami dla wszystkich skopiowanych elementów.
Podstawowy Przykład
Utwórz kopię dashboardu z niestandardowym tytułem:
mutation CopyDashboard {
copyDashboard(input: {
dashboardId: "dashboard_123"
title: "Q4 Sales Dashboard Copy"
}) {
id
title
createdAt
charts {
id
title
chartType
}
dashboardUsers {
id
role
user {
id
email
}
}
}
}
Zaawansowany Przykład
Skopiuj dashboard bez określenia tytułu (automatycznie dodaje "(Kopia)"):
mutation CopyDashboardAuto {
copyDashboard(input: {
dashboardId: "dashboard_456"
}) {
id
uid
title
createdBy {
id
email
}
company {
id
name
}
charts {
id
title
chartType
position
chartSegments {
id
title
formula
chartValues {
id
value
}
}
}
dashboardUsers {
id
role
user {
id
email
fullName
}
}
createdAt
updatedAt
}
}
Parametry Wejściowe
CopyDashboardInput
Parametr | Typ | Wymagany | Opis |
---|---|---|---|
dashboardId |
String! | ✅ Tak | ID dashboardu do skopiowania |
title |
String | Nie | Niestandardowy tytuł dla skopiowanego dashboardu. Jeśli nie podano, dodaje "(Kopia)" do oryginalnego tytułu |
Pola Odpowiedzi
Odpowiedź Dashboardu
Mutacja zwraca kompletny obiekt Dashboard
ze wszystkimi skopiowanymi danymi:
Pole | Typ | Opis |
---|---|---|
id |
String! | Unikalny identyfikator dla nowego dashboardu |
uid |
String! | Unikalny identyfikator używany do routingu URL |
title |
String! | Tytuł skopiowanego dashboardu |
createdBy |
User! | Użytkownik, który wykonał operację kopiowania |
company |
Company! | Firma, do której należy dashboard (taka sama jak oryginalna) |
project |
Project | Powiązanie projektu (takie samo jak oryginalne, jeśli istnieje) |
charts |
[Chart!]! | Wszystkie wykresy skopiowane z oryginalnego dashboardu |
dashboardUsers |
[DashboardUser!]! | Uprawnienia użytkowników skopiowane z oryginału (z wyłączeniem użytkownika kopiującego) |
createdAt |
DateTime! | Kiedy kopia została utworzona |
updatedAt |
DateTime! | Kiedy kopia została ostatnio zmodyfikowana |
Zachowanie Kopiowania Dashboardu
Proces Głębokiej Kopii
Operacja copyDashboard
wykonuje pełną głęboką kopię, w tym:
-
Metadane Dashboardu
- Tworzy nowy dashboard z nowym ID i UID
- Kopiuje tytuł (lub dodaje "(Kopia)", jeśli nie podano niestandardowego tytułu)
- Ustawia twórcę na użytkownika wykonującego kopię
- Utrzymuje powiązania z firmą i projektem
-
Wykresy i Struktura
- Kopiuje wszystkie wykresy z nowymi ID i UID
- Zachowuje typy wykresów, tytuły i pozycje
- Utrzymuje konfigurację wykresów i metadane
-
Segmenty Wykresów i Wartości
- Kopiuje wszystkie segmenty wykresów z nowymi ID i UID
- Zachowuje tytuły segmentów, formuły i konfiguracje
- Kopiuje wszystkie wartości wykresów i ich dane
-
Odniesienia do Formuł
- Aktualizuje odniesienia do formuł, aby używały nowych UID
- Utrzymuje logikę i obliczenia formuł
- Zapewnia, że skopiowane formuły odnoszą się do skopiowanych danych
-
Uprawnienia Użytkowników
- Kopiuje wszystkie uprawnienia użytkowników dashboardu z oryginału
- Wyklucza użytkownika kopiującego (staje się twórcą)
- Utrzymuje przypisania ról VIEWER i EDITOR
Operacje Po Kopii
Po utworzeniu kopii system automatycznie:
- Publikuje zdarzenia tworzenia dashboardu dla aktualizacji w czasie rzeczywistym
- Uruchamia ponowne obliczenie wyników wykresów dla wszystkich skopiowanych wykresów
- Aktualizuje wszelkie zależne systemy lub integracje
Wymagane Uprawnienia
Kopiowanie dashboardu wymaga określonych uprawnień:
Rola | Może Kopiować Dashboard |
---|---|
Dashboard Creator | ✅ Tak |
Dashboard EDITOR | ✅ Tak |
Dashboard VIEWER | ❌ Nie |
Użytkownik nie będący dashboardem | ❌ Nie |
Sprawdzenie Uprawnień: Użytkownik musi mieć dostęp EDITOR do oryginalnego dashboardu poprzez:
- Bycie twórcą oryginalnego dashboardu
- Posiadanie wyraźnego przypisania roli EDITOR na dashboardzie
Odpowiedzi na Błędy
Dashboard Nie Znaleziony
{
"errors": [{
"message": "Dashboard was not found.",
"extensions": {
"code": "DASHBOARD_NOT_FOUND"
}
}]
}
Niedostateczne Uprawnienia
{
"errors": [{
"message": "You don't have permission to access this dashboard",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Nieprawidłowe Wejście
{
"errors": [{
"message": "Dashboard ID is required",
"extensions": {
"code": "VALIDATION_ERROR"
}
}]
}
Przykłady Zastosowania
1. Dashboardy Szablonowe
Twórz dashboardy szablonowe, które można kopiować dla nowych projektów lub zespołów:
mutation CreateProjectDashboard {
copyDashboard(input: {
dashboardId: "template_dashboard_id"
title: "Project Alpha - Sales Dashboard"
}) {
id
title
}
}
2. Kopie Zapasowe i Wersjonowanie
Twórz kopie zapasowe przed wprowadzeniem istotnych zmian:
mutation BackupDashboard {
copyDashboard(input: {
dashboardId: "production_dashboard"
title: "Production Dashboard - Backup 2024-01-15"
}) {
id
title
createdAt
}
}
3. Współdzielenie Między Zespołami
Kopiuj dashboardy między zespołami, zachowując strukturę danych:
mutation ShareDashboardWithTeam {
copyDashboard(input: {
dashboardId: "marketing_dashboard"
title: "Marketing Dashboard - Sales Team Copy"
}) {
id
title
dashboardUsers {
role
user {
email
}
}
}
}
Najlepsze Praktyki
Konwencje Nazewnictwa
- Używaj opisowych tytułów, które wskazują na cel kopii
- Uwzględnij nazwy zespołów, daty lub numery wersji dla jasności
- Unikaj ogólnych nazw, takich jak "Kopia" lub "Nowy Dashboard"
Zarządzanie Uprawnieniami
- Przejrzyj uprawnienia skopiowanego dashboardu po utworzeniu
- Dodawaj lub usuwaj użytkowników w zależności od konkretnego przypadku użycia
- Rozważ, czy widzowie muszą stać się edytorami w kopii
Integralność Danych
- Zweryfikuj, że formuły i obliczenia działają poprawnie po skopiowaniu
- Sprawdź, czy źródła danych wykresów są odpowiednie dla nowego kontekstu
- Przetestuj wszelkie zautomatyzowane raporty lub integracje
Rozważania Wydajnościowe
- Kopiowanie dużych dashboardów z wieloma wykresami może zająć kilka sekund
- Ponowne obliczenie wykresów odbywa się asynchronicznie po skopiowaniu
- Rozważ kopiowanie w godzinach poza szczytem dla bardzo dużych dashboardów
- Monitoruj zasoby systemowe podczas kopiowania wielu dashboardów jednocześnie
Ograniczenia
- Nie można kopiować dashboardów między różnymi firmami
- Odniesienia do formuł są ograniczone do danych w tej samej firmie
- Niektóre zewnętrzne integracje mogą wymagać ponownej konfiguracji
- Niestandardowe uprawnienia lub role mogą wymagać ręcznej regulacji
- Dane historyczne i analizy nie są zachowywane w kopii
Powiązane Zasoby
- Przegląd Dashboardu - Ogólne pojęcia dotyczące dashboardów
- Zmień Nazwę Dashboardu - Zmień tytuły dashboardów
- Użytkownicy Dashboardu - Zarządzaj uprawnieniami dashboardu
- API Wykresów - Pracuj z pojedynczymi wykresami