LivaDocsv1.0.112

Grid düzenlerini saklama

LivaDataGrid, LivaTreeList ve LivaPivotGrid; kolon veya alan düzenlerini kullanıcı bazında adlandırarak sunucuda saklayabilir. Uygulama kökündeki LivaGridStateProvider depolamayı, her grid'in kararlı kimliği ise kayıt alanını belirler.

Kurulum

import { LivaGridStateProvider } from "@dataliva/livalib";

<LivaGridStateProvider
  apiUrl={`${API_URL}/UserGridLayout`}
  token={token}
  lang="TR"
  canSetDefault={currentUser.isSystemAdmin}
>
  <App />
</LivaGridStateProvider>

Her grid'e sayfa ve grid için benzersiz, sabit bir kimlik verin:

<LivaDataGrid id="customer-list" stateVersion={1} {...props} />
<LivaTreeList id="cost-center-tree" stateVersion={1} {...props} />
<LivaPivotGrid stateStoringId="sales-analysis" stateVersion={1} {...props} />

Kimliği filtre, seçili kayıt veya kullanıcı gibi değişkenlerden üretmeyin. Kolon ya da alan şeması geriye uyumsuz değiştiğinde stateVersion değerini artırın; eski düzenler yeni şemaya uygulanmaz.

Provider veya grid kimliği yoksa Düzen menüsü gösterilmez ve durum saklanmaz. DataGrid ve TreeList kolon sırasını, genişliğini, görünürlüğünü, sıralamayı ve gruplamayı; PivotGrid ise alan konumu, sırası, filtreleri ve genişletme durumunu saklar.

REST sözleşmesi

MetotRotaAmaç
GET/{gridId}Görünen düzenlerin metadatası
GET/{gridId}/defaultVarsayılan düzen ({ layout } veya 204)
GET/{gridId}/{layoutId}Tek düzen ({ layout })
POST/{gridId}{ name, layout } ile kaydet/güncelle
DELETE/{gridId}/{layoutId}Düzeni sil
PUT/{gridId}/{layoutId}/defaultGenel varsayılan yap
DELETE/{gridId}/defaultGenel varsayılanı kaldır

Liste kayıtları id, name, isDefault, isShared ve isOwn alanlarını taşımalıdır. layout, JSON durumunun string'e çevrilmiş halidir. canSetDefault yalnızca yönetici eylemini arayüzde gösterir; yetkiyi sunucu da denetlemelidir.

Özel depolama

import type { LivaGridStateStorage } from "@dataliva/livalib";

const storage: LivaGridStateStorage = {
  list: async (key) => [],
  loadDefault: async (key) => null,
  load: async (key, id) => null,
  save: async (key, name, value) => undefined,
  remove: async (key, id) => {},
  setDefault: async (key, id) => {},
};

<LivaGridStateProvider storage={storage}>{children}</LivaGridStateProvider>

save metoduna gelen değer load tarafından değiştirilmeden geri dönmelidir. storage ile apiUrl aynı anda verilmez.