1.7.0 • Published 10 years ago

uxrocket.autocomplete v1.7.0

Weekly downloads
2
License
MIT
Repository
github
Last release
10 years ago

UX Rocket Autocomplete

Autocomplete plugini, jQueryUI Autocomplete altyapısı kullanılarak geliştirilmiştir. Orjinal plugindeki özelliklerin tamamı kullanılabilir. Ayrıca, autocomplete olarak çalışacak alanlarda data tanımları ile de ayarlar değiştirilebilir.

<input type="text" class="auto-complete" />
<input type="text" class="auto-complete" data-type="image" />
<input type="text" class="auto-complete" data-type="category" />
<input type="text" class="auto-complete" data-type="tree" />
<input type="text" class="auto-complete" data-service="dataSource" />
{
    "itemList":[
        {
            "category":"A",
            "image":"image-01.jpg",
            "name":"Asp",
            "value": "A, Asp",
            "title": "Web Language",
            "id":"03",
            "url": "http://www.example.com"
        },
        {
            "category":"B",
            "image":"image-02.jpg",
            "name":"Basic",
            "value":"B, Basic",
            "title": "Desktop Language",
            "id":"04",
            "url": "http://www.sample.com"
        }
    ]
}

Örnek HandleBars Teması

var customList = {
                     wrap: '<ul></ul>',
                     item: '<li>' +
                             '<a {{#if url}}href="{{url}}"{{/if}}>' +
                                 '{{{name}}}' +
                                 '{{#if title}}' +
                                     '<br /><em>{{substr title 50}}</em>' +
                                 '{{/if}}' +
                             '</a>' +
                           '</li>'
                 }

Notlar

Metin girişi sırası çıkan listede data-type değerine göre farklı görünümler oluşturulabilir. Ön tanımlı temalara göre data-type değerleri aşağıdaki gibi olabilir;

  • list, sadece metin olan liste görünümü
  • image, metin ve resimden oluşan liste görünümü
  • category, kategorilere bölünmüş liste görünümü
  • tree, kategorilere bölünmüş resimli liste görünümü

Autocomplete pluginin sonuçları alacağı örnek json çıktısı yukarıdaki gibi olmalıdır. Servis'e bağlanılacak durumlarda Servis URL'i, JSON Objesi kullanılacak durumlarda Objenin Adı service değeri olarak tanımlanmalıdır. Gönderilen data-type değerine göre, listedeki ögeler için category, image alanları gönderilmeyebilir ya da boş gönderilebilir.

Seçim yapıldıktan sonra, metin alanına eklenecek metin, data içindeki value değeri ile tanımlanır. Kullanım ihtiyacınıza göre bu değeri, listedeki değerden farklı olarak tanımlayabilirsiniz. Tanımlanmadığı durumlarda, name değer kullanılmaktadır.

Tanımlar

PropertyDefaultAçıklama
typelistAutocomplete seçeneklerinin çıkacağı liste görünümünü belirler. "list", "image", "category" ve "tree" değerlerini alabilir.
servicenullMetin alanında yapılan sorgunun yapılıp sonuçların alınacağı data setidir. Ajax sorgusu yapılacak bir Servis URL'i ya da sayfa içerisindeki bir JSON Objesi olabilir.
item10Listede çıkacak maksimum seçenek sayısını belirler.
minLength2En az kaç karakterden sonra listenin görünür olacağını belirler.
formdatanullServis Ajax ile çağrılacağında, ihtiyaç halinde serialize() edilerek gönderilecek formun seçicisini belirler
queryTypeGETServer'a göndereceğiniz sorgunun tipini belirler. GET veya POST olarak 2 değer alabilir.
characterTextLimit20Kategori'li tipi kullanıyorsanız, kategori text'inin kısaltmaya yöneliktir.
hiddennullListeden seçim yapıldığında, seçimin idsi farklı bir alana eklenecekse, liste ile ilgili alanı css id ya da css classına göre ilişkilendirir.
templatenullListenin görünümü ön tanımlı varyasyonlar dışında olacaksa, yeni görünüm için kullanılacak Handlebars template objesidir.
highlighttrueListelerde match eden karakterlere highlight özelliğini ekler.
arrowSelectionfalseListelerde ok tuşları ile hareket ettikten sonra enter tuşuna basarak sonucun seçilip seçilmeyeceğini belirtir.
arrowNavigationtrueListelerde ok tuşları ile hareket ederken satırın highlight olup olmayacağını belirtir.
cachefalseAjax sorgusu yapılan aramalarda sonuçların ön belleğe kaydedilip kaydedilmeyeceğiniz belirtir.
Data Attribute 
typeAutocomplete seçeneklerinin çıkacağı liste görünümünü belirler. "list", "image", "category" ve "tree" değerlerini alabilir.
serviceMetin alanına girilen içeriğe göre sorgunun sonuçlarının alınacağı data setidir.
itemListede çıkacak maksimum seçenek sayısını belirler.
min-lengthEn az kaç karakterden sonra listenin görünür olacağını belirler.
formdataServis Ajax ile çağrılacağında, ihtiyaç halinde serialize() edilerek gönderilecek formun seçicisini belirler
query-typeServer'a göndereceğiniz sorgunun tipini belirler. GET veya POST olarak 2 değer alabilir.
propsMetin alanının yanındaki büyüteç ikonuna tıklandığında çalışacak fonksiyonu çağırır.
hiddenListeden seçim yapıldığında, seçimin idsi farklı bir alana eklenecekse, liste ile ilgili alanı css id ya da css classına göre ilişkilendirir.
character-text-limitKategori'li tipi kullanıyorsanız, kategori text'inin kısaltmaya yöneliktir.
templateListenin görünümü ön tanımlı varyasyonlar dışında olacaksa, yeni görünüm için kullanılacak Handlebars template objesidir.
highlightListelerde match eden karakterlere highlight özelliğini ekler.
arrow-selectionListelerde ok tuşları ile hareket ettikten sonra enter tuşuna basarak sonucun seçilip seçilmeyeceğini belirtir.
arrow-navigationListelerde ok tuşları ile hareket ederken satırın highlight olup olmayacağını belirtir.
cacheAjax sorgusu yapılan aramalarda sonuçların ön belleğe kaydedilip kaydedilmeyeceğiniz belirtir.
Callback 
onReadyAutocomplete, form elemanına bağlandığında çalışacak fonksiyonu çağırır.
onSelectListeden seçim yapıldığında, çalışacak fonksiyonu çağırır.
onButtonClickMetin alanının yanındaki büyüteç ikonuna tıklandığında çalışacak fonksiyonu çağırır.
onClearCacheElemana eklenmiş ajax arama sonuçları ön belleği silindiğinde çalışacak fonksiyonu çağırır.
onUpdateElemana eklenmiş Autocomplete tanımları güncellendikten sonra çalışacak fonksiyonu çağırır.
onRemoveEleman üzerinden Autocomplete kaldırıldığında çalışacak fonksiyonu çağırır.

Public Metodlar

MethodAçıklama
$(selector).uxitdautocomplete(options)Bu method plugini manuel olarak bir elemana bağlamanızı sağlar.
$.uxautocompleteBu method pluginin detayını görmenizi sağlar
$.uxautocomplete.versionSayfaya eklenmiş pluginin versiyon numarasını gösterir.
$.uxautocomplete.settingsAktif pluginin ayarlarını gösterir.
$.uxautocomplete.clearCache(el)Belirtilen elemanın ön belleğini siler. el değeri boş gönderilirse, sayfadaki bütün Autocomplete elemanlarındaki ön belleği siler.
$.uxautocomplete.update(el)Elemana eklenmiş tanımlar güncellendikten sonra Autocomplete özelliğinin çalışmasını yeni özelliklere göre tekrar elemana bağlar. el değeri boş gönderilirse, sayfadaki bütün Autocomplete elemanlarını tekrar bağlar.
$.uxautocomplete.remove(el)Elemanın üzerinden Autocomplete özelliğini kaldırır. el değeri boş gönderilirse, sayfadaki bütün Autocomplete elemanlarındaki bu özelliği kaldırır.