Directory elementi, uygulama içerisinde klasör ve doküman yapısını hiyerarşik bir ağaç görünümünde sunmak için kullanılan bir UI elementidir. Özellikle Document Management System (DMS) senaryolarında, kullanıcıların klasörler ve dokümanlar arasında VS Code benzeri bir gezgin yapısı ile rahatça ilerleyebilmesini sağlar.
Bu element sayesinde Backend’den gelen klasör ve doküman kayıtları tek seviyeli (flat) bir veri yapısında olsa bile, ekranda ağaç yapısına dönüştürülerek gösterilebilir. Kullanıcılar klasörleri açabilir, alt klasörlerde gezinebilir, dokümanları seçebilir ve bulunduğu konumu breadcrumb üzerinden takip edebilir. Böylece çok katmanlı içerik yapıları daha düzenli, okunabilir ve yönetilebilir hale gelir.
Directory elementi aşağıdaki senaryolarda yaygın olarak kullanılır:
Directory elementi, klasör ve doküman yapılarının yönetimi için aşağıdaki temel özellikleri sunar:
Directory elementini seçtiğinizde, sağ tarafta yer alan Properties paneli üzerinden bu elementin veri yapısını ve görsel görünümünü kontrol edebilirsiniz.
Bu elementte kullanılabilen temel özellikler aşağıdaki gibidir:

Options: Backend'den veri çekmek için kullanılan aksiyon ve alan eşleştirme ayarlarını içeren bölümdür. Directory elementinin klasör/doküman yapısını oluşturabilmesi için gerekli veri kaynağı ve alan tanımları bu bölümden yapılır. Alt alanları:
Theme: Directory elementinin görsel temasını belirler. Desteklenen değerler: light, dark. Tema seçimi, özellikle yoğun veri içeren ekranlarda okunabilirlik ve görsel uyum açısından önemlidir.
DataNodeTypeField: Node'un tipini belirleyen alanı tanımlar. Varsayılan olarak nodeType kullanılır. Bu alan sayesinde klasör, doküman veya varsa virtual folder gibi farklı node tipleri ayrıştırılabilir.
SelectedNodeType: Kullanıcı tarafından o an seçilmiş olan node'un tipini (folder, document, virtualFolder vb.) tutan alandır. Directory elementindeki seçim değiştikçe bu değer otomatik güncellenir ve dışarıdan bu alana bağlanan elementler seçili öğenin tipine göre davranış değiştirebilir (örneğin sadece "document" seçildiğinde bir aksiyon butonunu aktif etmek gibi).
SelectedVirtualFolder: Kullanıcının o an içinde bulunduğu veya seçtiği virtual folder'ı (sanal klasör) tutan alandır. Fiziksel klasör hiyerarşisinden bağımsız olarak oluşturulan sanal klasör yapılarında, hangi virtual folder'ın aktif/seçili olduğunu takip etmek için kullanılır.
SelectedLanguage: Seçili node'un (özellikle doküman) dil bilgisini tutan alandır. Çok dilli doküman yönetimi senaryolarında, seçilen dokümanın hangi dil versiyonunun görüntülendiğini veya seçildiğini belirtmek için kullanılır.
SelectedIsDraft: Seçili node'un taslak (draft) durumda olup olmadığını gösteren boolean bir alandır. Doküman yönetim sistemlerinde, kullanıcının seçtiği kaydın yayınlanmış mı yoksa henüz taslak halinde mi olduğunu ayırt etmek için kullanılır.
SelectedMimeType: Seçili node'un mime type (dosya türü) bilgisini tutan alandır. Örneğin "application/pdf", "image/png" gibi değerler alabilir. Seçilen dokümanın türüne göre önizleme, indirme veya işlem seçeneklerinin belirlenmesinde kullanılır.
HoverBgColor: Kullanıcının fare imlecini bir node satırının üzerine getirdiğinde, o satıra uygulanacak arka plan rengini belirler. Kullanıcının hangi satır üzerinde olduğunu görsel olarak ayırt etmesini sağlar.
SelectedBgColor: Seçili node satırına uygulanacak arka plan rengini belirler. Seçili öğeyi listedeki diğer öğelerden görsel olarak ayırt etmek için kullanılır.
SelectedFontColor: Seçili node'un metin (yazı) rengini belirler. SelectedBgColor ile birlikte kullanıldığında, seçili satırın arka plan-yazı renk kontrastının yeterli ve okunabilir olmasını sağlar.
Directory elementi, kullanıcı etkileşimlerine göre aksiyon çalıştırabilen bir yapıya sahiptir. Element seçildiğinde ADD ACTION butonu görünür ve belirli event’ler üzerinden aksiyon tanımlanabilir.
Directory elementinde kullanılabilen event aksiyonları şunlardır:
OnNodeSelect: Kullanıcı Directory yapısında herhangi bir node seçtiğinde tetiklenir. Bu event, daha genel seçim senaryolarını yönetmek için kullanılır. Örneğin seçilen Node’a ait detay bilgisini göstermek, farklı bir panelde ilgili içeriği açmak ya da seçime göre veri filtrelemek için kullanılabilir.
OnDocumentSelect: Kullanıcı bir doküman seçtiğinde tetiklenir. Genellikle belge odaklı işlemlerde kullanılır. Örneğin seçilen dokümanın detay ekranı açılabilir, önizlemesi gösterilebilir, indirme işlemi başlatılabilir ya da belgeye ait ek bilgiler kullanıcıya sunulabilir.
OnFolderSelect: Kullanıcı bir klasör seçtiğinde tetiklenir. Seçilen klasörün içeriği listelenebilir, alt klasörler görüntülenebilir veya yalnızca ilgili klasöre bağlı dokümanlar ekrana getirilebilir. Özellikle klasör bazlı navigasyon senaryolarında oldukça kullanışlıdır.
Directory elementi, seçili node ve kullanıcı etkileşimlerine bağlı olarak çeşitli output değerleri üretir. Bu değerler value() fonksiyonu ile okunabilir ve SetValueOf ile diğer elementlere aktarılabilir.
Kullanılabilen Binding Değerleri
Virtual Folder’lar akıllı (smart) modda çalışır. Bu mod, dokümanların dil ve versiyon yapısına göre otomatik olarak farklı görünümler oluşturur.
DMS Ana Ekranında Doküman Yönetimi
Directory elementi, DMS ana ekranında sol panelde klasör ve doküman ağacını göstermek için kullanılabilir. Bu senaryoda kullanıcı soldaki ağaçtan seçim yapar, sağ panelde ise seçilen içeriğe göre işlem yapılır.
Page Init Akışı
Kullanıcı Etkileşimi
Kullanıcı ağaçta bir klasöre tıkladığında onFolderSelect tetiklenir.
Kullanıcı bir dokümana tıkladığında onDocumentSelect tetiklenir.
Document elementi otomatik olarak yeni versiyonu yükler.
Örnek Aksiyon Bağlama
Page Init:
1. GetDocumentTree → dsDocumentTree
2. Directory.options = dsDocumentTree
Directory.onDocumentSelect:
1. SetValueOf(Document.versionId, Directory.selectedVersionId)
Directory.onFolderSelect:
1. SetValueOf(DocumentUploader.folderId, Directory.selectedFolderId)