SharePoint Framework (SpFx) İçerisinde jQuery Kullanımı

SharePoint Framework kullanarak geliştirme yaparken UI ve Http istekleri için kullanabileceğiniz birçok seçeneğe sahipsiniz. Popüler JavaScript Framework’lerinden bazılarının isimlerinden bahsetmek gerekirse Angular, React, Vue.js, Knockout başta gelebilir. Bunun yanında dilerseniz JavaScript kütüphanesi olarak jQuery de kullanabilirsiniz. Basit WebPartlar geliştirmek için Pure JavaScript’te iyi bir seçenek olarak köşede durabilir.

Kodun bakımı, yönetilebilir olması, devamlılığın sağlanması, birlikte geliştirilebilirlik ve UI’daki kompleksliğe göre en uygun framework’ü veya kütüphaneyi seçmek elbette size kalıyor. Ben bu yazımda SharePoint Framework ile birlikte jQuery nasıl kullanılabilir bundan bahsedeceğim. Sharepoint Framework ile jQuery‘yi seçme sebebim hem çokça geliştiricinin jQuery’e hâkim olması hem de topluluklar ve doküman anlamında iyi bir kaynağa sahip olması. Bunun yanında ek olarak ihtiyacım olan tüm taleplere cevap verebilir düzeyde olması yeterli bir sebep olacaktır diye düşünüyorum.

Önceki yazılarımda çokça bir proje için SharePoint Framework ile kurulumun nasıl yapıldığını çokça anlattım. Bu nedenle artık kurulum aşamasını geçiyorum ve kurulu bir ortama sahip olduğunuzu varsayıyorum.

Öncelikle “npm install –save jquery@2″ komutunu çalıştırarak projemiz içerisine kütüphaneyi indirelim.

Daha sonra “npm install –save @types/jquery@2” komutunu çalıştırarak jQuery Typinglerini de projemiz içerisine eklemiş olalım. Typingler sayesinde geliştirme yaparken çok güçlü bir intellisense (otomatik tamamlama) desteği alabiliriz.

SharePoint Framework kurulumuna nazaran bu kütüphaneler boyutları küçük olması nedeniyle yüklenme aşamasında çok fazla vakit almayacaktır.

WebPart ile ilgili işlemlerimizi tamamlayıp ilgili projeyi SharePoint online içerisinde deploy ederken scriptleri bundle ettiğimizde bu paket içerisinde jQuery’nin de olması gerekiyor. Bu nedenle configconfig.json dosyayı içerisine aşağıdaki tanımlamayı yapalım.

“externals”: {

“jquery”:”node_modules/jquery/dist/jquery.min.js”

}

sharepoint config dosyası

Projemizi geliştirdiğimiz .ts uzantılı dosyamızda, en yukarıda kütüphaneleri çağırdığımız namespace alanında aşağıdaki tek satırlık kodla jQuery’i hangi alias (takma isim) ile kullanacağımız da belirttikten sonra proje içerisinde jQuery’nin tüm yeteneklerinden faydalanabiliriz. Burada “as” direktifinden sonra kullanacağınız isimlendirme ile tüm class içerisinde sağlayacağınız erişim anahtar kelimesini belirttiğinizi de bildirmek isterim.

import * as jQuery from
‘jquery’;

Bir örnek vermek gerekirse, DOM içerisinde bir objeye en kolay aşağıdaki satırları kullanarak ulaşabilirsiniz.

örnek demo

Bir sonraki yazımızda görüşmek üzere.

SharePoint Framework’de Çok Dilli Geliştirme

SharePoint Framework ile uygulama geliştirirken çok dilli bir yapıya ihtiyacımız varsa bunu Resource yapısını kullanarak çok basit bir şekilde yapabiliriz.

Sharepoint Online ile bu özelliği kullanmak çok kolay. Eğer WebPart içerisinde tanımladığınız diller, kullanıcının alternatif olarak seçtiği diğer diller içerisinde yer alıyorsa gerekli dilde gösterim otomatik olarak yapılıyor.

Öncelikle kullanıcımızın varsayılan dil seçeneğinin yanında kullanmak isteyeceği alternatif dili nasıl ayarlayabiliriz bu adımı tamamlayalım. Bunu en kolay şekilde yapabilmek için aşağıda yer alan linki tıkladıktan sonra gereken adımları takip etmeniz yeterli olacaktır. https://eur.delve.office.com


Ben İngilizce diliyle SharePoint kullandığım için örneği de Türkçe ve İngilizce dil seçenekleri üzerinden anlatacağım. Görüldüğü üzere dil seçenekleri ve diğer alanlarla ilgili olarak Privacy(Gizlilik) ayarları da yapmak mümkün görünüyor.Çok dilli portalların yanında, birden fazla ülkeden SharePoint kullanıcısına sahipseniz buradaki ayarları kullanarak belli standartları genel olarak tanımlayabilmeniz mümkün.

Bir önceki SharePoint Framework’e Giriş ve WebPart Geliştirmek
makalesini takip ederek baştan bir WebPart projesi için kurulum yapabilirsiniz. Bu kurulumu yaptığınızı varsayıyorum.

Microsoft’un en son çıkarttığı, kısa sürede çok sevilen IDE diğer adıyla editörü yani VS Code veya Visual Studio kullanarak uygulamalarınızda gerekli kodu çok kolay bir şekilde yazabilirsiniz. Ben hafifliği ve Cross Platform geliştirmenin mümkün olabilmesi için bu makalede şimdilik Visual Studio Code kullanacağım.

Command Prompt ile gerekli klasörün içerisindeyken “code .” komutuyla projeyi VS Code ile açalım.



Kırmızıyla işaretlediğim alandan da görebileceğiniz üzere ağırlıklı olarak çalışacağımız klasör “src” klasörü. Bunun yanında WebPart uygulamaları geliştirirken versiyon kontrol sistemi olarak Git’de kullanabiliriz. Gerekli dosyalar varsayılan olarak gelmektedir.

Makalemizin ana konusu olan çok dilli yaptığı Resource üzerinden sağlayabilmek için srcloc klasörüne bir göz atalım.

mystrings.d.ts dosyamız Resource mantığı içerisinde “Key” bilgilerinin tutulduğu dosyamız. Bu dosyayı çok dilli bir yapı kullanmıyorsanız bile şimdilik silmeminizi tavsiye ederim. Dosya içerisinde varsayılan olarak gelen 3 adet Property yani key bulunuyor. Bunun yanında ben ekstra olarak ApplicationTitle adında, string veri türünde bir Property/Key daha tanımladım.

Şimdi loc içerisinde tr-TR global Locale Standartını kullanarak bizim için gerekli dosyamızı oluşturalım. Burada kullanacağınız tire karakterinin, alttire yerine normal tire olması önemlidir. Dosya içeriğini aşağıda görebilirsiniz.

Artık dil dosyasıyla ilgili olarak tanımlamalarımız bitti. Hemen WebPart uygulaması üzerinde nasıl kullanacağımızı görelim.

Öncesinde bu dosyaların oluşturulması, intellisense desteği alabilmek ve css ile ilgili. Scss uzantılı dosyalardan gelen uyarılardan kurtulmak için “gulp build” komutunu çalıştırarak projemizi derleyelim.

Proje ile ilgili tüm geliştirmeyi yapacağımız HelloWorldWebPart.js dosyasını açalım. Burada HelloWorldWebPart isimi benim kurulum aşamasında verdiğim isim, elbette siz farklı bir isim vermişseniz farklı olacaktır.

Eğer C# veya Java gibi programlama dillerine hakimseniz dosyayı ilk açtığınızda TypeScript yapısı size çok tanıdık gelecektir.

15. satırda yer alan Render methodu tüm C#’daki Console uygulamalarında yer alan Main methodu gibi uygulamanın başladığı Entry Point olarak kabul edilebilir. Burada proje içerisindeki CSS’in dahi çok programatik bir şekilde kullanıldığını görmek mümkün. Oluşturduğumuz Resource dosyası içerisindeki anahtarlara ${strings.PropertyName } notasyonuyla ulaşmak ve bu aşamada intellisense desteği de alabilmek mümkün.

Uygulamamız en basit şekilde görüntülemek için hazır. “gulp serve” komutuyla uygulamayı çalıştıralım ve iki farklı kullanıcı tarafında hangi dillerin kullanıldığını görelim.

İki farklı Browser’da iki farklı hesaptan giriş yapıp Web Part uygulamasını bir sayfaya eklediğimde elde ettiğimiz sonuç aşağıdaki gibidir!

Makalenin kaynak koduna buraya tıklayarak PeakUp Github hesabından ulaşabilirsiniz.

Sharepoint Online Üzerinde Nitelikli Gruplama

Sharepoint 2016 online ile gelen en iyi özelliklerden birisi hızlıca View kontrolleri oluşturarak sayfa içerisinde kullandığınız Appler üzerinde çok nitelikli bir şekilde verileri filtreleyebilir veya üzerinden basit üst veriler elde edebilirsiniz. On Premise’den farklı olarak arka plandaki tüm scaling işlemleri Cloud sayesinde scale edildiğinden dolayı oluşan herhangi bir yük hiçbir şekilde yavaşlama olarak yansımıyor.

İzleyeceğimiz adımlar kısaca;

  1. Subsite oluşturacağız
  2. Yeni bir Document Library App ekleyeceğiz
  3. Library üzerinde ihtiyacı en uygun alanları açmayı öğreneceğiz
  4. App üzerinde View oluşturarak daha fazla kullanılabilirlik sağlayacağız

Document Library üzerinden bu özellikleri çok kolay bir şekilde kavrayabilirsiniz. Öncelikle hemen bir SubSite oluşturalım.

SubSite oluşturmak için : Site Contents > New Subsite adımlarını izlemeniz yeterli.

SubSite veya Private SiteCollection oluştururken mutlaka doktrin olarak takip etmeniz gereken önemli kurallardan birsi, url isimlendirmelerinde (sef link) tamamen küçük harf kullanmanızdır.

Sitemizi oluşturduktan sonra hemen

Add App> Document Library adımlarını izleyerek kullanacağımız döküman kütüphanesini sitemize ekleyelim. Bir diğer uzun yoldan oluşturma yöntemini aşağıda görebilirsiniz.

Sharepoint’in güçlü özelliklerinden birisi olan Version özelliğini olabildiğince tüm projelerinizde ve App içerisinde kullanmak riskli durumlarda kurtarıcı olarak kabul edilebilir bir özelliktir. Bu nedenle eklediğimiz Document Library üzerinde Version özelliğini açık olup olmadığını kontrol edelim.

Bunun için takip etmemiz gereken adımlar şu şekildedir;

Site Content > Meeting Notes > Settings > Versioning Settings

Site ekleme

Version sistemini kullanırken major veya minor seçeneklerinden birisini tercih ederek daha detaylı veya daha az detaylı bir şekilde versionlamaya sahip olabilirsiniz. Aralarındaki tek fark Version isimlerinde prefix olarak kullanılan rakamın sağına gelen artış miktarı ve noktadır.

Versiyonlama sistemini de açtıktan sonra artık geldiğimiz bölüm listelenen dökümanlar üzerinde makalenin asıl konusu olan nitelikli listeleme üzerinden devam edecektir. Eğer Classic Sharepoint Experience üzerinden görüntüleme yapmıyorsanız bu adımları izlemek sizin için problem olabilir. Bu nedenle solda, menünün altında bulunan linke tıklayınız.

klasik görünüme geçiş

Eski ve yeni görünüm arasındaki farkı aşağıda görebilirsiniz.

eski(klasik) görünüm

yeni görünüm

Açacağımız Column ve Viewları iyi bir şekilde görebilmek için 3 adet farklı dökümanı test amacıyla Döküman Ktüphanesi içerisine ekleyelim. Daha sonra eklediğimiz kütüphanenin ayarlarına Site Content> Meeting Notes> Settings adımlarını izleyerek ulaşalım.

Makalemizin bu bölümünde Columns bölümünden bir kaç alan açacağız. Ben ihtiyaca göre toplantıda alınan kararların uygulanacağı tarihe ait deadline, kararların uygulanıp uygulanmadığını gösterenyesno seçeneği, toplantıda alınan kararlardan dolayı kullanılması gereken bütçe miktarı(varsa) için üç adet alan açacağım.

İhtiyacımız olan kolonları sırasıyla oluşturmaya başlamadan önce aşağıda Colonm türlerine uygun bazı ince detayları göz önünde bulunduralım.

DateTime tipinde alan açarken seçilen “Friendly” seçeneği daha kolay okunabilir (Örn. 2 gün önce, Çarşamba vb.) bir format ile verilerin gösterilmesini sağlıyor. Burada dikkat edilmesi gereken husus,Sharepoint 2016’nın arayüz farklılıklarından dolayı farklılıkların olabildiğidir.

YesNo (Boolean) veri türünün forma eklendiği alanda varsayılan olarak seçilecek olan şıkkı sayfanın en altında yer alan Default bölümünden seçebilirsiniz.

alanların oluşturulması

 

Alanları bize en uygun veri tipinde açtıktan sonra makalenin önemli ikinci konusu olan View ile ilgili yapacaklarımızıda tamamlayalım.Açtığımız alanlarla ilgili verileri dökümanlarımıza girelim.

dökümanı verilerle birlikte düzenleme

Oluşturduğumuz alanlar sayesinde Document Library içerisinde amaca en uygun gruplamalar bize bir bakışta bir çok işlemi görebileceğiz. Bunun için alanlarımızı kendi içelerindeki türlere göre gruplamamız gerekiyor. Bunu en uygun bir View oluşturarak yapabiliriz.

  1. Toplantı notlarından ortaya çıkan masrafların toplamını,
  2. Tek bir tıklama ile kararların yerine getirilmediği toplantı notlarını
  3. Deadlinea göre işlemde olan toplantı notlarını listeleyengenel görünüm
  1. Masrafların toplamı
    toplam masraf hesaplatma
  2. Toplantıda alınan kararların tamamının uygulandığı dökümanlar
    kararların gruplanması
  3. Ve son olarak Deadline durumuna göre listeleme Işlemi