Mini Kabibi Habibi
window.DXSK8 = window.DXSK8 || {};
window.DXSK8.Tablet = window.DXSK8.Tablet || {};
$(function() {
DevExpress.devices.current("iPad");
var dxCommand = DevExpress.framework.dxCommand,
utils = DXSK8.Tablet.utils = DXSK8Shared.utils;
var app = DXSK8.app = new DevExpress.framework.html.HtmlApplication({
namespace: DXSK8.Tablet,
viewPortNode: document.getElementById("viewPort"),
defaultLayout: DXSK8.config.defaultLayout,
device: DevExpress.devices.current("iPad"),
navigation: DXSK8.config.navigation
});
app.router.register(":view/:id", { view: "index", id: undefined });
app.router.register(":view/:category/:id", { view: "index", category: undefined, id: undefined });
var blankProduct = {
Name: "",
Price: 0
};
var showPopup = function() {
var popup = $("#popup").data("dxPopup");
popup.show();
};
var orderCompleted = false;
var currentOrder = {
id: null,
products: {},
visible: ko.observable(false),
completeOrder: function() {
if(!this.id) {
alert("Order is not created!");
return;
}
var newOrderState = !orderCompleted ? DXSK8.ORDER_STATES["new"].id : DXSK8.ORDER_STATES["in-progress"].id;
DXSK8.db.Orders.update(this.id, {
"State": newOrderState,
}).done(function() {
showPopup();
orderCompleted = true;
});
},
popupTitle: "Complete order",
hidePopup: function() {
var popup = $("#popup").data("dxPopup");
popup.hide();
}
};
for(var i = 1 ; i <= 6; i++) {
currentOrder.products[i] = ko.observable(blankProduct);
}
var currentCustomer = {
authorized: ko.observable(false)
};
currentCustomer.name = ko.computed(function() {
return currentCustomer.authorized() ? "Peter Smith" : "Login";
});
currentCustomer.imageSrc = ko.computed(function() {
return currentCustomer.authorized() ? "images/user-avatar.jpg" : "images/new-customer-icon.png";
});
currentCustomer.buttonUri = ko.computed(function() {
return currentCustomer.authorized() ? "" : "#login";
});
currentOrder.purchase = ko.computed(function() {
var result = 0.0;
$.each(currentOrder.products, function(key, value) {
var product = value();
if(product) {
result += parseFloat(product.Price);
}
});
return Globalize.format(result, "C");
});
$.extend(DXSK8.Tablet, {
currentOrder: currentOrder,
currentCustomer: currentCustomer
});
app.navigate();
});