diff --git a/ko-cart/index.html b/ko-cart/index.html
index b6f8e2c..7dffddd 100644
--- a/ko-cart/index.html
+++ b/ko-cart/index.html
@@ -1,33 +1,39 @@
-
- KO Shopping Cart
-
-
-
-
-
+
+ KO Shopping Cart
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/ko-cart/js/viewmodel.js b/ko-cart/js/viewmodel.js
index e0d128c..fd461fb 100644
--- a/ko-cart/js/viewmodel.js
+++ b/ko-cart/js/viewmodel.js
@@ -1,160 +1,165 @@
"use strict";
var vm = (function () {
- var catalog = ko.observableArray([
- Product(1, "T-Shirt", 10.0, 20),
- Product(2, "Trousers", 20.0, 10),
- Product(3, "Shirt", 15.0, 20),
- Product(4, "Shorts", 5.0, 10),
- ]);
+ var catalog = ko.observableArray([
+ Product(1, "T-Shirt", 10.0, 20),
+ Product(2, "Trousers", 20.0, 10),
+ Product(3, "Shirt", 15.0, 20),
+ Product(4, "Shorts", 5.0, 10),
+ ]);
- var newProduct = Product("", "", "", "");
- var clearNewProduct = function () {
- newProduct.name("");
- newProduct.price("");
- newProduct.stock("");
- };
+ var newProduct = Product("", "", "", "");
+ var clearNewProduct = function () {
+ newProduct.name("");
+ newProduct.price("");
+ newProduct.stock("");
+ };
- var addProduct = function (context) {
- var id = new Date().valueOf(); // random id from time
+ var addProduct = function (context) {
+ var id = new Date().valueOf(); // random id from time
- var product = Product(id, context.name(), context.price(), context.stock());
- catalog.push(product);
- clearNewProduct();
- };
+ var product = Product(
+ id,
+ context.name(),
+ context.price(),
+ context.stock()
+ );
+ catalog.push(product);
+ clearNewProduct();
+ };
- var searchTerm = ko.observable("");
- var filteredCatalog = ko.computed(function () {
- // if catalog is empty return empty array
- if (!catalog()) {
- return [];
- }
- var filter = searchTerm().toLowerCase();
- // if filter is empty return all the catalog
- if (!filter) {
- return catalog();
- }
- //filter data
- var filtered = ko.utils.arrayFilter(catalog(), function (item) {
- var strProp = ko.unwrap(item["name"]).toLocaleLowerCase();
- return (strProp.indexOf(filter) > -1);
+ var searchTerm = ko.observable("");
+ var filteredCatalog = ko.computed(function () {
+ // if catalog is empty return empty array
+ if (!catalog()) {
+ return [];
+ }
+ var filter = searchTerm().toLowerCase();
+ // if filter is empty return all the catalog
+ if (!filter) {
+ return catalog();
+ }
+ //filter data
+ var filtered = ko.utils.arrayFilter(catalog(), function (item) {
+ var strProp = ko.unwrap(item["name"]).toLocaleLowerCase();
+ return strProp.indexOf(filter) > -1;
+ });
+ return filtered;
});
- return filtered;
- });
-
- var cart = ko.observableArray([]);
- var showCartDetails = function () {
- if (cart().length > 0) {
- visibleCart(true);
- }
- };
- var addToCart = function(data) {
- var item = null;
- var tmpCart = cart();
- var n = tmpCart.length;
- while(n--) {
- if (tmpCart[n].product.id() === data.id()) {
- item = tmpCart[n];
- }
- }
- if (item) {
- item.addUnit();
- } else {
- item = new CartProduct(data, 0);
- item.addUnit();
- tmpCart.push(item);
- }
- cart(tmpCart);
- };
-
- // The cart-widget template
- var totalItems = ko.computed(function() {
- var tmpCart = cart();
- var total = 0;
- tmpCart.forEach(function(item) {
- total += parseInt(item.units(), 10);
+
+ var cart = ko.observableArray([]);
+ var showCartDetails = function () {
+ if (cart().length > 0) {
+ visibleCart(true);
+ }
+ };
+ var addToCart = function (data) {
+ var item = null;
+ var tmpCart = cart();
+ var n = tmpCart.length;
+ while (n--) {
+ if (tmpCart[n].product.id() === data.id()) {
+ item = tmpCart[n];
+ }
+ }
+ if (item) {
+ item.addUnit();
+ } else {
+ item = new CartProduct(data, 0);
+ item.addUnit();
+ tmpCart.push(item);
+ }
+ cart(tmpCart);
+ };
+
+ // The cart-widget template
+ var totalItems = ko.computed(function () {
+ var tmpCart = cart();
+ var total = 0;
+ tmpCart.forEach(function (item) {
+ total += parseInt(item.units(), 10);
+ });
+ return total;
});
- return total;
- })
- var grandTotal = ko.computed(function() {
- var tmpCart = cart();
- var total = 0;
- tmpCart.forEach(function(item) {
- total += (item.units() * item.product.price());
+ var grandTotal = ko.computed(function () {
+ var tmpCart = cart();
+ var total = 0;
+ tmpCart.forEach(function (item) {
+ total += item.units() * item.product.price();
+ });
+ return total;
});
- return total;
- })
- // The cart-item template
- var removeFromCart = function (data) {
- var units = data.units();
- var stock = data.product.stock();
- data.product.stock(units + stock);
- cart.remove(data);
- }
+ // The cart-item template
+ var removeFromCart = function (data) {
+ var units = data.units();
+ var stock = data.product.stock();
+ data.product.stock(units + stock);
+ cart.remove(data);
+ };
- // The cart template
- var hideCartDetails = function() {
- visibleCart(false);
- };
- var showOrder = function () {
- visibleCatalog(false);
- }
+ // The cart template
+ var hideCartDetails = function () {
+ visibleCart(false);
+ };
+ var showOrder = function () {
+ visibleCatalog(false);
+ };
- // The order template
- var showCatalog = function () {
- visibleCatalog(true);
- };
- var finishOrder = function() {
- cart([]);
- hideCartDetails();
- showCatalog();
- $("#finishOrderModal").modal('show');
- }
+ // The order template
+ var showCatalog = function () {
+ visibleCatalog(true);
+ };
+ var finishOrder = function () {
+ cart([]);
+ hideCartDetails();
+ showCatalog();
+ $("#finishOrderModal").modal("show");
+ };
- var visibleCatalog = ko.observable(true);
- var visibleCart = ko.observable(false);
+ var visibleCatalog = ko.observable(true);
+ var visibleCart = ko.observable(false);
- return {
- // first chapter
- searchTerm: searchTerm,
- catalog: filteredCatalog,
- newProduct: newProduct,
- addProduct: addProduct,
- // second chapter
- cart: cart,
- showCartDetails: showCartDetails,
- addToCart: addToCart,
- totalItems: totalItems,
- grandTotal: grandTotal,
- removeFromCart: removeFromCart,
- hideCartDetails: hideCartDetails,
- showOrder: showOrder,
- showCatalog: showCatalog,
- finishOrder: finishOrder,
- visibleCatalog: visibleCatalog,
- visibleCart: visibleCart
- };
+ return {
+ // first chapter
+ searchTerm: searchTerm,
+ catalog: filteredCatalog,
+ newProduct: newProduct,
+ addProduct: addProduct,
+ // second chapter
+ cart: cart,
+ showCartDetails: showCartDetails,
+ addToCart: addToCart,
+ totalItems: totalItems,
+ grandTotal: grandTotal,
+ removeFromCart: removeFromCart,
+ hideCartDetails: hideCartDetails,
+ showOrder: showOrder,
+ showCatalog: showCatalog,
+ finishOrder: finishOrder,
+ visibleCatalog: visibleCatalog,
+ visibleCart: visibleCart,
+ };
})();
var templates = [
- 'header',
- 'catalog',
- 'cart',
- 'cart-item',
- 'cart-widget',
- 'order',
- 'add-to-catalog-modal',
- 'finish-order-modal'
+ "header",
+ "catalog",
+ "cart",
+ "cart-item",
+ "cart-widget",
+ "order",
+ "add-to-catalog-modal",
+ "finish-order-modal",
];
var busy = templates.length;
-templates.forEach(function(tpl){
- "use strict";
- $.get('views/' + tpl + '.html').then(function(data) {
- $('body').append(data);
- busy--;
- if (!busy) {
- ko.applyBindings(vm);
- }
- })
-})
\ No newline at end of file
+templates.forEach(function (tpl) {
+ "use strict";
+ $.get("views/" + tpl + ".html").then(function (data) {
+ $("body").append(data);
+ busy--;
+ if (!busy) {
+ ko.applyBindings(vm);
+ }
+ });
+});