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: Options, Backend’den gelen flat node listesini ifade eder. Directory elementi bu veri kümesini kullanarak klasör ve doküman yapısını oluşturur. Bu nedenle Options alanına verilen veri yapısının parent-child ilişkilerini doğru şekilde içermesi gerekir.
Bu alanda kullanılan her node için genellikle aşağıdaki alanlar bulunur:
DataTextField: Her Node’un ekranda gösterilecek metin alanını belirler. Varsayılan olarak name alanı kullanılır. Eğer veri kaynağında görüntülenecek metin farklı bir alanda tutuluyorsa bu property üzerinden ilgili alan adı tanımlanabilir.
DataValueField: Her Node’un benzersiz kimliğini temsil eden alanı belirler. Varsayılan olarak id kullanılır. Seçim, event ve binding işlemlerinin doğru çalışabilmesi için bu alanın benzersiz olması gerekir.
DataParentField: Node’lar arasındaki üst-alt ilişkiyi belirleyen alanı tanımlar. Varsayılan olarak parentId kullanılır. Root seviyesindeki kayıtlar için bu alanın boş veya null olması gerekir.
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.
Desteklenen örnek değerler:
Theme: Theme, Directory elementinin görsel temasını belirler. Desteklenen değerler:
Tema seçimi, özellikle yoğun veri içeren ekranlarda okunabilirlik ve görsel uyum açısından önemlidir.
ShowSearch: Bu özellik aktif edildiğinde Directory elementinin üst kısmında bir arama alanı gösterilir. Arama istemci tarafında çalışır ve Türkçe karakter uyumlu normalizasyon desteği sunar.
Bu özellik sayesinde kullanıcılar:
üzerinden daha hızlı arama yapabilir.
ShowAddressBar: Bu özellik aktif edildiğinde elementin üst kısmında breadcrumb yapısı ve gezinme kontrolleri gösterilir. Kullanıcı bulunduğu klasör yolunu takip edebilir ve geri / ileri / yukarı mantığında hareket edebilir.
Bu özellik özellikle çok seviyeli klasör yapılarında gezinmeyi kolaylaştırır.
ClientPageSize: İstemci tarafında sayfalama yapılmasını sağlar. Özellikle çok fazla node bulunan klasör yapılarında performansı ve okunabilirliği iyileştirmek için kullanılabilir.
Örneğin bu alana 50 değeri verilirse, bir klasörde aynı anda en fazla 50 kayıt gösterilir. Sonraki kayıtlar için sayfa geçişi yapılabilir.
Style: Directory elementinin kapsayıcı alanına uygulanacak stil ayarlarını tanımlamak için kullanılır. Boyut, boşluk, hizalama veya özel görünüm ihtiyaçlarında kullanılabilir.
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)