-
Notifications
You must be signed in to change notification settings - Fork 7
/
sgs.model.coffee-pricing.js
65 lines (48 loc) · 1.68 KB
/
sgs.model.coffee-pricing.js
1
// Lazy initialize our namespace context: sgs.model.coffeeconsumptionif (typeof(sgs) == 'undefined') sgs = { }if (typeof(sgs.model) == 'undefined') sgs.model = { }if (typeof(sgs.model.coffeepricing) == 'undefined') sgs.model.coffeepricing = { }if (typeof(console) != 'undefined' && console) console.info("sgs.model.coffeepricing loading!");sgs.model.coffeepricing.examplePricing = function() { var priceList = { "Regular-Tall": 1.40, "Regular-Grande": 1.60, "Regular-Venti": 1.70, "Latte-Tall": 2.55, "Latte-Grande": 3.10, "Latte-Venti": 3.40, "Espresso": 1.75, "EspressoShot": 0.25 } return priceList;}sgs.model.coffeepricing.initializeViewModel = function (pageSettings) { // We can use properties of the pageSettings as default values for any of our ValueModels // If pageSettings are not provided we'll initialize an empty object if (typeof(pageSettings) == 'undefined') var pageSettings = { } // Lazy-initialize the price list var priceList = sgs.model.coffeepricing.getPriceList(); var viewModel = { pricing: ko.observable(priceList) } viewModel.getCoffeeBeveragePrice = function (drinkType, drinkSize) { var key = drinkType; if (drinkType != 'Espresso' && drinkSize) { key += '-' + drinkSize; } var price = viewModel.pricing()[key]; return price; } return viewModel;}sgs.model.coffeepricing.getPriceList = function () { // Check if we have ever stored the price list locally var priceList = $.jStorage.get("coffee-price-list"); if (priceList == null) { // If not create an example priceList = sgs.model.coffeepricing.examplePricing(); // Save it off $.jStorage.set("coffee-price-list", priceList); } return priceList;}