Bir bileşen, canlı içerik gösteren ve bir uygulama kutucuğundan büyük olan bir ana ekran öğesidir. Web uygulamasında iki platform bileşeni, modüllerin metadata'larında bildirdiği bileşenler ve boş cam paneller vardır. Bu sayfa bunları, boyutlarını, nasıl çizildiklerini ve saklandıklarını ve ortak Benim veya Tümü kapsamını listeler. Ana ekran ana ekran, dock ve başlatıcı sayfasındadır.
Kapsam ve kaynak¶
- Tanımlandığı yer:
webapp/js/home.js(WIDGET_SIZES,BLANK_SIZES,WIDGETS,buildModuleWidgetDefs,openWidgetGallery,tileWidget),webapp/js/custom-widgets.js,webapp/js/widget-ai.js,webapp/js/widget-approvals.js,webapp/js/widget-scope.js - Sayı: 2 platform bileşeni (
webapp/js/home.js:289-320içindekiWIDGETS), 4 modül bileşeni (src/cluster_erp/modulesiçindeki herHomeWidgetMeta(), 6 boyut (WIDGET_SIZES), 4 boş panel boyutu (BLANK_SIZES)
Boyutlar¶
| Boyut | Hücre (sütun x satır) | Boş panel olarak sunulur | Kaynak |
|---|---|---|---|
1x1 |
1 x 1 | hayır | webapp/js/home.js:86-93 |
2x1 |
2 x 1 | hayır | webapp/js/home.js:86-93 |
2x2 |
2 x 2 | evet | webapp/js/home.js:86-97 |
2x3 |
2 x 3 | evet | webapp/js/home.js:86-97 |
4x2 |
4 x 2 | evet | webapp/js/home.js:86-97 |
5x5 |
5 x 5 | evet | webapp/js/home.js:86-97 |
Cihazın tahtasından daha geniş veya uzun bir boyut tahtaya sıkıştırılır (webapp/js/home.js:98-102). HomeWidgetMeta.size NxM kalıbına uymalıdır (src/cluster_erp/core/metadata.py:710).
Platform bileşenleri¶
| Anahtar | Boyut | Etiket anahtarı | Davranış | Kaynak |
|---|---|---|---|---|
ai |
2x3 |
widgets.ai |
Asistan uygulamasıyla aynı sohbet, kutucukta sürdürülür; başlangıç önerileri kurulu modüllerin assistant_starters değerinden gelir |
webapp/js/home.js:292-302, webapp/js/widget-ai.js:1-60 |
approvals |
2x3 |
widgets.approvals |
GET /auth/approvals/inbox ucundan onaycı kuyruğu; bir satır onaylama, reddetme, erteleme, kaydı açma veya geri çekme içeren aksiyon kartını açar |
webapp/js/home.js:305-319, webapp/js/widget-approvals.js:1-9, webapp/js/widget-approvals.js:317 |
Onaylar bileşeni POST /auth/approvals/<id>/decide, POST ve DELETE /auth/approvals/<id>/defer ve POST /auth/approvals/<id>/cancel çağırır (webapp/js/widget-approvals.js:126-268). Başlığı tam ekran bir kuyruk açar (webapp/js/home.js:310-317). Onay mantığı onaylar ve onay zincirleri sayfasında anlatılır.
Modül bileşenleri¶
Bir modül bileşenleri ModuleMeta.home_widgets içinde bildirir. Platform anahtarı, etiketi, simgeyi, boyutu ve hedef bölümü bilir; içeriği modülün kapılı paketi çizer (webapp/js/home.js:242-287).
| Anahtar | Modül | Boyut | İngilizce etiket | Paketteki bileşen adı | Açtığı bölüm | Kaynak |
|---|---|---|---|---|---|---|
projects |
projects |
2x3 |
Project Board | home_board |
board |
src/cluster_erp/modules/projects/module.py:267-274 |
projects-calendar |
projects |
2x3 |
Project Calendar | home_calendar |
calendar |
src/cluster_erp/modules/projects/module.py:275-282 |
sched |
production |
2x3 |
Scheduling | home_scheduling |
scheduling_board |
src/cluster_erp/modules/production/module.py:2517-2524 |
analytics |
analytics |
2x3 |
Analytics | home_model |
yok | src/cluster_erp/modules/analytics/module.py:80-86 |
buildModuleWidgetDefs() metadata yüklendikten sonra, ilk düzen uzlaştırmasından önce çalışır; böylece kayıtlı bileşenler tanınır (webapp/js/home.js:458-461). Bir kutucuk çizimi ensureModuleWidgets(module) ve ardından kayıtlı üreticiyi {item, save, open, title} ile çağırır (webapp/js/home.js:255-283). Modülün uygulaması kurulu veya lisanslı değilse kutucuk error.entitlement.module_not_installed gösterir (webapp/js/home.js:262-276). Bkz. kapılı uygulama paketleri.
tests/test_metadata_driven_rules.py:158 (test_home_widgets_are_module_metadata_rendered_by_module_bundles) dört anahtarın bildirildiğini, İngilizce ve Türkçe etiketlendiğini, NxM boyutunda olduğunu, modülün paketinde kayıtlı olduğunu ve home.js içinde adlandırılmadığını denetler.
Galeri, yerleştirme ve kaldırma¶
openWidgetGallery() platform bileşenlerini, kurulu modüllerin modül bileşenlerini ve dört boş boyutu sunar (webapp/js/home.js:887-930). Boş ana ekran alanına sağ tık veya uzun basmayla açılır (webapp/js/home.js:4407-4414). Bir bileşen eklemek onu ilk boş yuvaya yerleştirir (webapp/js/home.js:865-877). Bir bileşene sağ tık onu kaldırmayı sorar (webapp/js/home.js:858-861, webapp/js/home.js:879-884).
Bir bileşen öğesi düzenle birlikte {type: "widget", id, size, widget, cfg, col, row} olarak saklanır. cfg kapsam gibi kutucuk başına ayarları tutar (webapp/js/home.js:660-673). Artık kayıtlı olmayan bir bileşen anahtarını adlandıran kayıtlı bir öğe uzlaştırmada düşürülür (webapp/js/home.js:661-663).
Benim veya Tümü kapsamı¶
widget-scope.js, paylaşılan işi özetleyen modül bileşenlerine bir Benim ve Tümü bölmesi verir (widgets.scope_mine, widgets.scope_all) (webapp/js/widget-scope.js:1-44).
| Kural | Değer | Kaynak |
|---|---|---|
| Kayıtlı seçim | it.cfg.scope; düzenle birlikte kullanıcı hesabında saklanır |
webapp/js/widget-scope.js:21-24, webapp/js/widget-scope.js:44-60 |
| Varsayılan | Kullanıcı bir çalışana bağlıysa ve bileşenin adlandırdığı planlayıcı iznine sahip değilse Benim; değilse Tümü | webapp/js/widget-scope.js:21-27 |
| Benim anlamı | Sunucu tarafından çağırandan çözülür; istemci hiçbir kimlik göndermez | webapp/js/widget-scope.js:11-12 |
Paketler resolveScope, scopeSegmentHtml, wireScope ve noEmployeeHtml işlevlerini platform bağlamı üzerinden alır (webapp/js/custom-widgets.js:104-110).
Kısıtlar ve doğrulama¶
- Platform bileşenleri etiket olarak bir i18n anahtarı taşır; modül bileşenleri
resolveLabelile çözülen bir etiket sözlüğü taşır (webapp/js/home.js:286-287). - Kullanımdan kalkan saat bileşeni kayıtlı düzenlerden düşürülür; saat ve tarih durum satırında yaşar (
webapp/js/home.js:216-218). - Tarayıcı testleri:
web-client/_e2e_widgets_ai_sched.mjs,web-client/_e2e_approvals_widget.mjs,web-client/_e2e_widget_scope.mjs,web-client/_e2e_widget_projects.mjs,web-client/_e2e_analytics_widget.mjs,web-client/_e2e_widget_swap.mjs.
Tanıtılan terimler¶
| Terim | Kod tanımlayıcısı | Tanım | Türkçe terim | Kaynak |
|---|---|---|---|---|
| home widget | HomeWidgetMeta |
Modülün paketi tarafından çizilen, modül bildirimli ana ekran öğesi. | ana ekran bileşeni | src/cluster_erp/core/metadata.py:698 |
| widget footprint | WIDGET_SIZES |
Bir bileşenin ana ekran ızgarasındaki hücre boyutu. | bileşen boyutu | webapp/js/home.js:86 |
| widget scope | resolveScope |
Bir bileşenin kimin verisini özetlediğine karar veren Benim veya Tümü seçimi. | bileşen kapsamı | webapp/js/widget-scope.js:21 |
İlgili sayfalar¶
- Web uygulaması platformu
- Ana ekran, dock ve başlatıcı
- Kapılı uygulama paketleri
- Asistan ve sohbet ekranları
- Proje panosu
92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.