Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXTREME 13.1 Demos/KitchenSink/views/
Upload File :
Current File : C:/Users/Public/Documents/DXTREME 13.1 Demos/KitchenSink/views/Lists.js

KitchenSink.Lists = function(params) { 
    var lists = [
        {
            items: KitchenSink.db.products,
            grouped: ko.observable(false),
            customTemplate: ko.observable(false),
            showSearchField: ko.observable(false)
        },
        {
            items: KitchenSink.db.productsGrouped,
            grouped: ko.observable(true),
            customTemplate: ko.observable(false),
            showSearchField: ko.observable(false)
        },
        {
            items: ko.observable(KitchenSink.db.productsCustom),
            grouped: ko.observable(false),
            customTemplate: ko.observable(true),
            showSearchField: ko.observable(true),
            searchQuery: ko.observable().extend({ throttle: 500 })
        }
    ];

    var viewModel = {
        tabs: [
            { text: "Simple" },
            { text: "Grouped" },
            { text: "Custom" }
        ],
        selectedTab: ko.observable(0),
        tabContent: ko.observable()
    };

    lists[2].searchQuery.subscribe(function(value) {
        var result = $.grep(KitchenSink.db.productsCustom, function(product, index) {
            var regExp = new RegExp(value, "i");
            return !!product.Name.match(regExp);
        });
        lists[2].items(result);
    });
    ko.computed(function() {
        viewModel.tabContent(lists[viewModel.selectedTab()]);
    });
    
    return viewModel;
};