Factorizer/Cluster ERP WikiCluster ERP English
Ana sayfa / Web uygulaması

Referans

Genel ayrıntı

gen-detail.js, entity.js ve avatar.js için başvuru; bölüm satırları, rol facet'leri ve fotoğrafla tek kayan kayıt sayfası.

webapp/js/gen-detail.js içindeki makeGenDetail, bir kaydı EntityMeta.detail_view üzerinden çizer. Web uygulaması bir ayrıntı görünümünü tek kayan sayfa olarak gösterir: form sekmeleri tek bir kayıt kartında birleşir, diğer her sekme kendi ekranını açan bir satıra dönüşür ve ardından rol facet'leri ile ilişkili kayıtlar gelir. Bu sayfa sekme türlerini, facet kurallarını ve entity.js ile avatar.js içindeki yardımcıları listeler. Kayıt kartının kendisi genel form sayfasında anlatılır.

Kapsam ve kaynak

  • Tanımlandığı yer: webapp/js/gen-detail.js (makeGenDetail), webapp/js/entity.js (makeEntityList, adminSections), webapp/js/avatar.js (recordAvatarBlock, createAvatarPicker, loadPhotoInto)
  • Sayı: DetailTabMeta.tab_type içinde 9 sekme türü (src/cluster_erp/core/metadata.py:255-270); 9'u da renderSection veya form kartı tarafından işlenir (webapp/js/gen-detail.js:345-366)

Sayfa yapısı

makeGenDetail(moduleName, entityKey, entityId) kaydı GenApi.get ile yükler ve boyar (webapp/js/gen-detail.js:33-58):

  1. condition değeri yüklenen kayıtla eşleşmeyen sekmeler düşürülür. Koşul form gruplarıyla aynı kuralı kullanır: boru ile ayrılmış bir küme, negate ile tersine döner (webapp/js/gen-detail.js:66-78).
  2. entity taşımayan her form sekmesi field_groups değerini tek bir kayıt kartına katar. Grupsuz bir form sekmesi tüm gruplar anlamına gelir (webapp/js/gen-detail.js:80-101).
  3. Diğer her sekme bir ok satırına dönüşür. Bir dokunuş renderSection ile çizilen bir ekran iter (webapp/js/gen-detail.js:103-127).
  4. Rol facet'leri yüklenir ve eklenir (webapp/js/gen-detail.js:129-132).
  5. entity_type ve entity_id taşıyan bir kayıt, sahip kaydı açan bir İlişkili kayıt satırı (gen.linked_record) gösterir. Devre dışı bir sahip bunun yerine bir bildirim gösterir (webapp/js/gen-detail.js:134-179).

Kartta bir kaydetmeden sonra sayfanın tamamı güncellenmiş kayıtla yeniden boyanır; böylece facet'ler ve bölüm satırları eski veriyi tutmaz (webapp/js/gen-detail.js:840-875).

Sekme türleri

tab_type Çizim biçimi Kaynak
form (entity yok) Birleşik kayıt kartının parçası webapp/js/gen-detail.js:79-101
entity ile form veya sub_entity_table Bir alt liste (renderSubTable) webapp/js/gen-detail.js:348, webapp/js/gen-detail.js:876-895
sub_entity_tree limit: 500 ile yüklenen bir alt ağaç webapp/js/gen-detail.js:350, webapp/js/gen-detail.js:1277-1297
completeness completeness_endpoint ucundan gelen gereksinim listesi webapp/js/gen-detail.js:351-353, webapp/js/gen-detail.js:398-439
custom Sahip modülün paketinden custom_widget ile adlandırılan bileşen (varsayılan: sekme anahtarı) webapp/js/gen-detail.js:353-355, webapp/js/gen-detail.js:368-396
read_model_panel Veri uçları, sütunları ve blokları sekmenin config değerinden gelen bir panel webapp/js/gen-detail.js:355-357, webapp/js/gen-detail.js:441-460
permission_checklist Bir rolün izin atamaları webapp/js/gen-detail.js:357-359, webapp/js/gen-detail.js:619-708
role_checklist Bir kullanıcının rol atamaları webapp/js/gen-detail.js:359-361, webapp/js/gen-detail.js:710-775
access_summary Bir kullanıcının etkin izinleri webapp/js/gen-detail.js:361-363, webapp/js/gen-detail.js:777-838

Modüller arası bir alt sekme (parent_id_field ile entity_module) üst kimliğini yüklenen kayıttan alır. scope_param taşıyan bir sekme alt listeyi kayıt kimliğiyle süzer; read_only eklemeyi ve düzenlemeyi gizler (webapp/js/gen-detail.js:876-895). Sahip uygulaması kurulu veya lisanslı olmayan özel bir sekme error.entitlement.module_not_installed gösterir (webapp/js/gen-detail.js:375-391). Bkz. kapılı uygulama paketleri.

Rol facet'leri

Bir taraf kartı tarafın oynadığı rolleri gösterir (EntityMeta.facets, FacetMeta). renderFacets her facet'in satırlarını taraf kimliğiyle yükler ve düzenleme kipinin gizlediği bir sarmalayıcı içinde ok satırları olarak ekler (webapp/js/gen-detail.js:181-229). loadFacetRows içindeki kurallar (webapp/js/gen-detail.js:231-340):

Facet alanı Etki
requires_flag Taraf kaydında bu bayrak ayarlı değilse facet gizlenir
sections[].party_scoped Bölüm taraf için tek bir liste satırı olarak çizilir, en çok 200 kayıtla
sections[].scope_param Bölümün listesi facet kaydıyla süzülür ve salt okunurdur

Facet modeli taraf birleştirme sayfasında açıklanır. identity taşıyan bir facet varlığının liste satırı, facet'in kendi kartı yerine asıl taraf kartını açar (webapp/js/gen-list.js:816-825).

Varlık tarayıcısı ve yönetim bölümleri

entity.js içindeki makeEntityList(moduleName, entityKey, pushView), Ayarlar uygulamasının yönetim ekranları ve bildirim kuralları için kullandığı ikinci bir liste ve ayrıntı tarayıcısıdır (webapp/js/entity.js:93, webapp/js/home.js:3486, webapp/js/home.js:3503-3510). adminSections(moduleName, excludeEntities) yönetim satırlarını modülün kenar çubuğundan kurar: liste bölümleri ve ayar sekmelerinin varlıkları (webapp/js/entity.js:364-387).

Fotoğraf ve avatar

photo (AvatarMeta) bildiren bir varlık kartında ve listelerde bir avatar alır.

İşlev Davranış Kaynak
photoPath /<module><photo.endpoint> kurar; varsayılan uç /{id}/photo webapp/js/avatar.js:27-30
loadPhotoInto Fotoğrafı blob olarak getirir ve bir nesne URL'si ile gösterir webapp/js/avatar.js:34-53
recordAvatarBlock Baş harfli veya fotoğraflı kart başlığı; kullanıcı <entity_type>.update koduna sahipse yükleme ve kaldırma webapp/js/avatar.js:55-157
createAvatarPicker Oluşturma formunda bir fotoğraf seçici; dosya oluşturmadan sonra yüklenir webapp/js/avatar.js:159

Baş harfler, başlığın bir özetiyle sabit bir listeden seçilen bir renk kullanır (webapp/js/avatar.js:13-19). Listeler fotoğrafları yalnız görünür olan satırlar için yükler (webapp/js/gen-list.js:744-780). Eklerin ve fotoğrafların sunucu tarafı ekler, notlar ve depolama sayfasındadır.

Kısıtlar ve doğrulama

  • Bir alt listeden silme bir devre dışı bırakma nedeni sorar (webapp/js/gen-detail.js:1184-1185, webapp/js/gen-detail.js:1394-1395). Bkz. yumuşak silme ve devre dışı bırakma.
  • Metadata'da eksik bir varlık hata yerine Sonuç bulunamadı (common.no_results) gösterir (webapp/js/gen-detail.js:40-44).
  • Tarayıcı testleri: web-client/_e2e_settings_full.mjs, web-client/_e2e_party_form_fixes.mjs, web-client/_e2e_logs_profile.mjs.

Tanıtılan terimler

Terim Kod tanımlayıcısı Tanım Türkçe terim Kaynak
section row renderSection Ayrıntı sayfasında form olmayan bir sekmeyi kendi ekranı olarak açan satır. bölüm satırı webapp/js/gen-detail.js:345
linked record renderLinkedRecord Çok biçimli bir başvurunun gösterdiği kaydı açan satır. İlişkili kayıt webapp/js/gen-detail.js:140
read-model panel renderReadModelPanel Veri uçları ve yerleşimi tamamen config değerinden gelen bir ayrıntı sekmesi. okuma modeli paneli webapp/js/gen-detail.js:447

İlgili sayfalar


92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.

Doğrulanan commit 92f8051 · 2026-11-13