Mini Kabibi Habibi

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

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();

});