Girişten sonra web uygulaması bir ana ekran gösterir: bir hücre ızgarası üzerinde uygulama kutucukları, klasörler ve bileşenlerden oluşan sayfalar, bir durum satırı ve uygulamalar arasında geçiş yapan denetimler. Bu sayfa webapp/js/home.js içindeki ana ekranı, webapp/js/app-wheel.js içindeki PC dock'unu, yüzen tuşu ve açık uygulamalar ekranını, webapp/js/tiles.js içindeki ana ekranı çoğaltma düğmesini ve webapp/js/touch-gate.js içindeki dokunma kurallarını açıklar. Bileşenler ana ekran bileşenleri sayfasında, cihaz başına ızgara boyutu cihaz sınıfları sayfasındadır.
Kısaca¶
- Ana ekran yatay bir sayfalayıcıdır. Her sayfa
COLSxROWShücrelik bir ızgaradır ve her öğenin açık hücre koordinatları vardır (webapp/js/home.js:49-79). - Yeni bir hesap, kalıcı Uygulamalar kitaplığı kutucuğu dışında boş bir ana ekranla başlar (
webapp/js/home.js:696-707). - Yeri olan bir PC'de bir dock kullanıcının sabitlediği uygulamaları ve çalışan uygulamaları gösterir; sabitlemeler kullanıcı hesabında saklanır (
webapp/js/app-wheel.js:1-26,webapp/js/home.js:977-1022). - Yüzen bir tuş tek dokunuşta ana ekrana döner, çift dokunuşta açık uygulamalar ekranını açar (
webapp/js/home.js:2993-3014). - + düğmesi (
tiles.duplicate) pencereyi yalnızpccihaz sınıfında en çok dört bağımsız ana ekrana böler; telefon ve tablette çoklu ekran yoktur (webapp/js/tiles.js:1-11,webapp/js/tiles.js:60-64).
Nasıl çalışır¶
Sayfalar ve öğeler¶
state.pages bir sayfa listesidir; her sayfa col ve row taşıyan app, folder veya widget türünde öğelerin listesidir (webapp/js/home.js:502-504). Kayıtlı koordinatlar hâlâ sığıyorsa korunur. Sınır dışında kalan veya çakışan her şey ilk boş hücreye taşınır ve boş sayfalar kaldırılır (webapp/js/home.js:575-595, webapp/js/home.js:621-710). Dolu bir sayfa, gerektiğinde oluşturulan bir sonraki sayfaya taşar (webapp/js/home.js:1-11, webapp/js/home.js:2015-2027).
reconcile() bir kutucuğu yalnız uygulaması kurulu kaldıkça tutar. Lisansını kaybeden bir uygulamanın kutucuğu düzende kalır ve çizimde gizlenir; böylece yenilemede aynı yere döner (webapp/js/home.js:621-635). İkiden az uygulamalı klasörler serbest kutucuklara çözülür (webapp/js/home.js:672-689).
Ana ekrandaki hareketler¶
| Hareket | Etki | Kaynak |
|---|---|---|
| Bir kutucuğa dokunma | Uygulamayı açar veya çalışıyorsa sürdürür | webapp/js/home.js:2214-2221, webapp/js/home.js:2469-2500 |
| Bir kutucuğu sürükleme (fare) veya 450 ms tutup sürükleme (dokunmatik) | Kutucuğu taşır; dokunmatikte tutmadan önceki hareket sayfalayıcıyı kaydırır | webapp/js/home.js:80-82, webapp/js/home.js:1640-1762 |
| Sürüklenen kutucuğu sağ veya sol kenarda 550 ms tutma | Sonraki veya önceki sayfaya geçer, sonda bir sayfa oluşturur | webapp/js/home.js:1763-1783 |
| Sürüklenen uygulamayı başka bir uygulamanın üstünde 600 ms bekletme | Bırakınca bir klasör yapar | webapp/js/home.js:1785-1806, webapp/js/home.js:1870-1886 |
| Boş alana sağ tık veya uzun basma | Bileşen galerisini açar | webapp/js/home.js:4407-4414 |
| Ana ekranda aşağı kaydırma | Aramayı açar | webapp/js/home.js:4446-4453 |
| Açık bir uygulamada sol çeyrekten kaydırma | Uygulamadan ana ekrana çıkar | webapp/js/home.js:2768-2852 |
Bir uygulama kutucuğuna uzun basmak onun ana ekrandan kaldırılıp kaldırılmayacağını sorar; uygulama Uygulamalar kitaplığında kalır. permanent bir uygulama kaldırılamaz (webapp/js/home.js:782-791).
Durum satırı ve şeritler¶
Durum satırı saati, kısa tarihi ve geçerli dil kodunu gösterir ve her saniye tazelenir (webapp/js/home.js:104-140). Düğmeleri aramayı, asistan uygulamasını ve Ayarlar › Bildirimler ekranını açar (webapp/js/home.js:142-165). Dil düğmesi manifestodaki her dilin bir menüsünü açar (webapp/js/home.js:167-215). Ek süre veya salt okunur durumdaki bir lisans ana ekranın üstüne bir şerit ekler (webapp/js/home.js:476-500).
Uygulamalar kitaplığı¶
Uygulamalar kitaplığı bir menu uygulamasıdır: geçici bir ekran olarak açılır ve çalışan uygulamalara eklenmez (webapp/js/home.js:2448-2465). Kullanıcının görebileceği her uygulamayı aramayla listeler ve ana ekran kutucuklarını ekleyip kaldırmaya izin verir (webapp/js/home.js:2600-2766). Katalog manifestosu onu permanent ve dock_fixed olarak işaretler (src/cluster_erp/modules/app_store/catalog.json:49-60).
PC'de dock¶
initAppWheel dock'u yalnız işaretçi üzerine gelebiliyor ve hassassa, pencere en az 900 px genişse ve sayfa çoğaltılmış bir kutunun içinde değilse kurar (webapp/js/app-wheel.js:87-93, webapp/js/device-class.js:16-20). Dock şunları gösterir:
- katalogda
dock_fixedişaretli uygulamalar, ilk sırada ve taşınamaz; - kullanıcının
dock_pinsarayüz durumu anahtarı altında saklanan sabitlemeleri; - çalıştıkları sürece sabitlenmemiş çalışan uygulamalar;
- kullanıcı onu dock'a sabitlediğinde yüzen tuş (
webapp/js/home.js:1049-1085).
Dock sol, sağ, üst veya alt kenara sürüklenebilir ve otomatik gizleme bağlam menüsünden isteğe bağlı açılır. İkisi de launcher arayüz durumu anahtarı altında saklanır (webapp/js/app-wheel.js:9-17, webapp/js/app-wheel.js:158-161, webapp/js/app-wheel.js:563-567). Açık bir uygulamanın içinde dock her zaman gizlenir; Uygulamalar kitaplığı açıkken gizlenmez (webapp/js/app-wheel.js:55-62). Menüsü sabitleme, sabitlemeyi kaldırma, kapatma ve tümünü kapatma sunar; tümünü kapatma açık uygulamalar ekranındaki kapatmayla aynı sıfırlamayı çalıştırır (webapp/js/home.js:4535-4552).
Yüzen tuş ve açık uygulamalar ekranı¶
Yüzen tuş yalnız üst pencerede oluşturulur (webapp/js/home.js:2942-2960). Sürüklenebilir ve en yakın kenara oturur; konumu yerel depoda cluster_float_btn altında tutulur (webapp/js/home.js:2936, webapp/js/home.js:2962-2991).
| Girdi | Etki | Kaynak |
|---|---|---|
| Tek dokunuş | İkinci dokunuş olmadan 280 ms sonra son dokunulan bölmenin ana ekranı | webapp/js/home.js:2993-3014 |
| Çift dokunuş | Açık uygulamalar ekranını açar veya kapatır | webapp/js/home.js:2999-3007 |
| Dock'a bırakma | Tuşu dock'a sabitler; tuş artık dock'ta yaşar | webapp/js/home.js:3079-3085, webapp/js/home.js:1030-1047 |
Tuş yalnız dock'a sabitlendiğinde ve bir dock varsa gizlenir; telefonlarda, tabletlerde, dar pencerelerde ve bölünmüş bölmelerde her zaman kalır (webapp/js/home.js:1040-1047). Açık uygulamalar ekranı her çalışan uygulama için küçük resimli bir kart gösterir, bir uygulamayı son görünümünde sürdürür, bir uygulamayı veya tümünü kapatır (webapp/js/home.js:3249-3426). Bölünmüş bölmeler çalışan uygulamalarını cluster-tasks kanalında postMessage ile üst pencereye bildirir; böylece tek bir açık uygulamalar ekranı tüm bölmeleri kapsar (webapp/js/home.js:3097-3220).
Ana ekranı çoğaltma düğmesi ve kutular¶
+ düğmesi (tiles.duplicate) yalnız üst pencerenin ana ekranında ve yalnız pc cihaz sınıfında gösterilir; bir kutunun içinde kaldırılır (webapp/js/main.js:38, webapp/js/tiles.js:124-149). syncDupHome telefon ve tablette düğmeyi gizler, belgeyi body.no-tiles ile işaretler ve cihaz sınıfı pc olmaktan çıkınca açık bir bölünmeyi tek ana ekrana indirir (webapp/js/tiles.js:130-137, webapp/js/tiles.js:148); addTile pc sınıfı dışında reddeder (webapp/js/tiles.js:63-64). Her basış, temel ana ekran dahil en çok dörde kadar bir kutu ekler. Bir kutu, sürüklenebilir bir ayırıcısı olan, uygulamanın kendisinin aynı kökenli bir çerçevesidir; her kutunun en küçük genişliği 260 px'tir (webapp/js/tiles.js:10-108). Çıkış tüm kutuları kapatır (webapp/js/main.js:166). Tema, yoğunluk, erişilebilirlik ve dil değişiklikleri depolama olaylarıyla her kutuya ulaşır (webapp/js/prefs.js:116-125, webapp/js/a11y.js:90-105, webapp/js/i18n.js:63-71).
Projenin yazılı mühendislik kuralları + düğmesinin yalnız PC sınıfında var olduğunu ve var olduğu yerde her zaman önde olup hiç gizlenmediğini belirtir. Stil sayfası onu dock bandının üstüne yerleştirir (webapp/css/tiles.css:5-12). Dar pencerelerde uygulama içeriği ve modül sekme çubuğu sağ alt köşeyi onun için yalnız belge body.no-tiles ile işaretli değilken ayırır (webapp/css/app.css:5264-5271, webapp/css/gen.css:5166-5173).
Dokunma kapısı¶
createTouchGate(e, opts) uygulama paketlerindeki sürüklenebilir yüzeylere tek bir kural verir: fare hemen sürükler, parmak önce 450 ms tutmalıdır ve bundan önce hareket eden parmak en yakın kaydırma kabını kaydırır (webapp/js/touch-gate.js:1-40). Paketler bunu platform bağlamı üzerinden alır (webapp/js/custom-widgets.js:57-60). Ana ekran aynı 450 ms tutmayla kendi sürümünü kullanır (webapp/js/home.js:80-82).
Neden böyle kurulu¶
- Boş başlangıç:
webapp/js/home.js:696-705içindeki yorum, taze bir hesabın hazır kutucuk, bileşen veya dock sabitlemesi olmadığını ve Uygulamalar kitaplığı kutucuğunun kataloğa giden tek güvenceli kapı olduğunu belirtir. - Lisans kesintileri düzeni korur:
webapp/js/home.js:622-624içindeki yorum, süresi dolan bir lisansın kullanıcının düzenini yok etmemesi gerektiğini belirtir. - Tek dokunuş gecikmesi:
webapp/js/home.js:3017-3021içindeki yorum, bayat bir tek dokunuş niyetinin bir keresinde yeni açılan bir uygulamayı ana ekrana geri gönderdiğini, bu yüzden başka herhangi bir dokunuşun onu iptal ettiğini belirtir.
Kurallar ve sınırlar¶
- Düzen, dock sabitlemeleri, dock kenarı, otomatik gizleme ve yüzen tuşun dock'taki durumu kullanıcı hesabına aittir. Bkz. kullanıcı arayüz durumu.
- Projenin yazılı mühendislik kuralları PC deneyiminin başlatıcı olduğunu ve mobil ile tablet tasarımının ayrıca tanımlandığını belirtir. Bkz. cihaz sınıfları.
- Tarayıcı testleri:
web-client/_e2e_app_wheel.mjs,web-client/_e2e_dock_pins.mjs,web-client/_e2e_dock_close_all.mjs,web-client/_e2e_switcher.mjs,web-client/_e2e_switcher_dock.mjs,web-client/_e2e_dup_home_tiles.mjs,web-client/_e2e_mobile_home.mjs,web-client/_e2e_mobile_app.mjs,web-client/_e2e_widget_move.mjs.
Diğer parçalarla etkileşim¶
- Uygulama kataloğu ve durumları uygulama mağazası modülünden gelir; bkz. modül uygulamaları ve uygulama kapsamı.
- Ayarlar › Ana Ekran (
settings.home_screen) sayfa, uygulama, klasör ve bileşen sayılarını gösterir ve düzeni sıfırlar (webapp/js/home.js:3746-3785).
Sınırlar ve açık noktalar¶
- Açık uygulamalar testinin başlığı ekranı açmak için bir tutmayı anlatır (
web-client/_e2e_switcher.mjs); tuş kodu onu çift dokunuşta açar (webapp/js/home.js:2999-3007). - Kutu sayısı ve genişlikleri saklanmaz;
webapp/js/tiles.jshiçbir depolama çağrısı yapmaz, bu yüzden bir yenileme tek bir ana ekran gösterir.
Tanıtılan terimler¶
| Terim | Kod tanımlayıcısı | Tanım | Türkçe terim | Kaynak |
|---|---|---|---|---|
| home screen | state.pages |
Girişten sonra gösterilen uygulama kutucukları, klasörler ve bileşenlerden oluşan sayfalı ızgara. | ana ekran | webapp/js/home.js:502 |
| dock | initAppWheel |
Bir ekran kenarında sabit, sabitlenmiş ve çalışan uygulamaları gösteren PC şeridi. | dock | webapp/js/app-wheel.js:818 |
| floating button | float-btn |
Dokunuşta ana ekrana dönen, çift dokunuşta açık uygulamaları açan sürüklenebilir tuş. | yüzen tuş | webapp/js/home.js:2946 |
| app switcher | openSwitcher |
Çalışan uygulamaları kartlar olarak listeleyen katman. | açık uygulamalar | webapp/js/home.js:3249 |
| duplicate-home tile | addTile |
Ana ekranın bağımsız bir kopyasını taşıyan aynı kökenli çerçeve. | çoğaltılmış ana ekran | webapp/js/tiles.js:55 |
İlgili sayfalar¶
- Web uygulaması platformu
- Ana ekran bileşenleri
- Cihaz sınıfları
- Kullanıcı arayüz durumu
- Modül uygulamaları ve uygulama kapsamı
c0d3217 numaralı commit ile 2026-11-14 tarihinde doğrulandı.