Mini Kabibi Habibi
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;
};