Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXTREME 13.1 Demos/DXSK8/DXSK8.Tablet/views/
Upload File :
Current File : C:/Users/Public/Documents/DXTREME 13.1 Demos/DXSK8/DXSK8.Tablet/views/ProductCategory.js

DXSK8.Tablet.productCategory = function(params) {
    var typeId = Number(params.id),
        app = DXSK8.app;

    var viewModel = {
        goBack: function() {
            if(params.id == 4 || params.id == 5 || params.id == 6) {
                app.navigate("index");
            }
            else {
                app.navigate("productCategories");
            }
        },
        products: DXSK8.db.Products.toDataSource({
            select: ["Id", "Name", "Brand.Name", "Price"],
            order: "Brand.Id",
            filter: ["Type.Id", typeId],
            paginate: false,
            map: function(product, index) {
                var s = new DevExpress.EndpointSelector({
                    image: {
                        local: product.__metadata.media_src
                    }
                });
                product.cssClass = "t" + typeId;
                product.imageSrc = s.urlFor("image");
                product.typeId = typeId;
                product.price = Globalize.format(Number(product.Price), "C");
                product.id = index;

                return product;
            }
        }),
        selectedIndex: ko.observable(0),
        productsLoaded: ko.observable(false)
    };

    viewModel.products.changed.add(function() {
        viewModel.productsLoaded(true);        
    });

    //TODO: consider creating selectedItem binding property for gallery
    viewModel.selectedItem = ko.computed(function() {
        var selectedIndex = viewModel.selectedIndex();
        if(selectedIndex > -1) {
            return viewModel.products.items()[selectedIndex];
        }
    });
    
    return viewModel;
};