Ana içeriğe atla

Dashboard

Dashboard, göstergeleri görselleştiren widget’ların bulunduğu konteynerdir. Organizasyon genelinde tekil bir küresel filtre (site, yıl aralığı, durumlar), düzen yönetimi ve isteğe bağlı halka açık (parola korumalı) paylaşım desteklenir.

Kısaca

  • Grid yerleşimi; sürükle-bırak ile hareket/yeniden boyutlandırma
  • Küresel filtre: siteIds, startYear, endYear, statuses
  • Görünürlük: özel (organizasyon üyeleri) veya halka açık (isteğe bağlı parola)
  • Filtre önceliği: widget filtresi, dashboard küresel filtresini geçersiz kılar
  • Varsayılanlar: durumlar, organizasyon varsayılanlarına; yoksa APPROVED’a düşer

Veri Yapısı

// apps/azalt/src/server/db/types/dashboard.ts (özet)
interface Dashboard {
  id: string;
  name: string;
  description: string | null;
  organizationId: string;
  globalFilter: {
    siteIds?: string[];
    startYear?: number;
    endYear?: number;
    statuses?: ("APPROVED" | "COMPLETED" | "REJECTED")[];
  };
  isPublic: boolean;      // halka açık ise giriş gerektirmez
  password: string | null; // parola hash; halka açıldığında isteğe bağlı
  order: number;          // organizasyon içi gösterim sırası
}

Küresel Filtre

  • Dashboard küresel filtresi, widget kendi filtresini tanımlamadıysa tüm widget’lara uygulanır.
  • Birleşik filtre anahtarları: siteIds, startYear, endYear, statuses.
  • Durumlar için geri dönüş: widget ve dashboard belirtmiyorsa organizasyon varsayılanları, yoksa APPROVED.
  • Halka açık dashboard’lar, kaydetmeden per-widget geçici filtre geçersiz kılmalarını API üzerinden kabul eder.

Görünürlük ve Paylaşım

  • Özel: yalnızca mevcut organizasyon üyeleri.
  • Halka açık: bağlantıya sahip herkes; isteğe bağlı parola koruması. Parola sunucuda doğrulanır (bcrypt).
  • Halka açık görünüm, doğru parolayı yerel olarak saklayabilir; hesap gerektirmez.

Filtre Önceliği

  1. Halka açık istek geçersiz kılmaları → 2) Widget filtresi → 3) Dashboard küresel filtresi → 4) Organizasyon varsayılan durumlar → 5) APPROVED.

Güvenlik ve Yetkiler

  • Okuma: Özel dashboard için Viewer ve üzeri, halka açık için bağlantı yeterlidir
  • Yazma (oluştur/güncelle/sil/sırala/küresel filtre güncelle): Manager ve üzeri
  • API: uygulama ve API anahtarıyla erişilen karşılık gelen prosedürler mevcuttur

Sık Yapılan İşlemler

  • Dashboard oluştur (varsayılan: özel)
  • Halka açıklık/parola ayarla veya kaldır
  • Dashboard ve widget’ları sürükle-bırak ile yeniden sırala
  • Küresel filtreyi (site/yıl/durum) güncelle
  • Gerektiğinde arayüzden widget görsellerini dışa aktar

API Notları

  • dashboards.get: normalize edilmiş globalFilter ve arayüz için organizationDefaultStatuses döner
  • dashboards.update: name, description, isPublic, isteğe bağlı password alır
  • dashboards.updateGlobalFilters: birleşik globalFilter’ı kaydeder
  • dashboards.getWithData (halka açık): dashboard, widget’lar, dataset’ler, göstergeler ve birleştirilmiş filtrelerle widget verilerini döner

İlgili Kavramlar

  • Widget — görselleştirme birimi
  • Indicator — widget’ın veri kaynağı olan hesaplanmış metrik
  • Dataset — gösterge hesaplamalarında kullanılan katsayılar ve referans değerler