diff options
Diffstat (limited to 'sandbox/sca-cloud-tutorial/store-appengine-webapp/war/store.html')
-rw-r--r-- | sandbox/sca-cloud-tutorial/store-appengine-webapp/war/store.html | 70 |
1 files changed, 55 insertions, 15 deletions
diff --git a/sandbox/sca-cloud-tutorial/store-appengine-webapp/war/store.html b/sandbox/sca-cloud-tutorial/store-appengine-webapp/war/store.html index 2fc5fcc434..c28e417913 100644 --- a/sandbox/sca-cloud-tutorial/store-appengine-webapp/war/store.html +++ b/sandbox/sca-cloud-tutorial/store-appengine-webapp/war/store.html @@ -21,6 +21,8 @@ <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Online Store - Powered by Apache Tuscany</title> +<link href="store.css" rel="stylesheet" type="text/css"> + <script type="text/javascript" src="dojo/dojo/dojo.js"></script> <script type="text/javascript"> @@ -29,25 +31,52 @@ <script language="JavaScript"> - var catalog = new dojo.rpc.JsonService("/catalogAggregator?smd"); + var userServices = new dojo.rpc.JsonService("/User?smd"); + + var catalog = new dojo.rpc.JsonService("/CatalogAggregator?smd"); + + var shoppingCart = new dojo.rpc.JsonService("/ShoppingCart/Cart?smd"); - var shoppingCart = new dojo.rpc.JsonService("/shoppingCart/Cart?smd"); + var shoppingTotal = new dojo.rpc.JsonService("/ShoppingCart/Total?smd"); - var shoppingTotal = new dojo.rpc.JsonService("/shoppingCart/Total?smd"); + var userContext; var catalogItems; - function catalog_getResponse(items) { - var catalog = ""; - for (var i=0; i<items.length; i++) { - var item = items[i].name + ' - ' + items[i].price; - catalog += '<input name="items" type="checkbox" value="' + - item + '">' + item + ' <br>'; + function showHeader() { + var userContextCallback = function(context) { + userContext = context; + //alert(userContext.userId + " --> " + userContext.loginUrl); + + var html=''; + if(! userContext.userId) { + html = "<a href='" + userContext.loginUrl +"'>Login</a>"; + } else { + html = userContext.email + " | <a href='" + userContext.logoutUrl +"'> Logout</a>"; + } + + document.getElementById('appHeader').innerHTML = html; + } + + userServices.getUserContext(document.URL, "").addCallback(userContextCallback); + } + + function showCatalogs() { + var catalogCallback = function(items) { + var catalog = ""; + for (var i=0; i<items.length; i++) { + var item = items[i].name + ' - ' + items[i].price; + catalog += '<input name="items" type="checkbox" value="' + + item + '">' + item + ' <br>'; + } + document.getElementById('catalog').innerHTML=catalog; + catalogItems = items; } - document.getElementById('catalog').innerHTML=catalog; - catalogItems = items; + + catalog.get().addCallback(catalogCallback); } + // This handles the response from shoppingCart.getAll // which is a collection of Entry<K,D> function shoppingCart_getResponse(items) { @@ -112,12 +141,16 @@ document.getElementById('shoppingCart').innerHTML = ""; document.getElementById('total').innerHTML = ""; } + function init() { try { - catalog.get().addCallback(catalog_getResponse); - shoppingCart.get("").addCallback(shoppingCart_getResponse); + showHeader(); + + showCatalogs(); + + shoppingCart.getAll().addCallback(shoppingCart_getResponse); } catch (e) { alert(e); } @@ -129,7 +162,13 @@ </head> <body onload="init()"> -<h1>Store</h1> + <div id="appHeader" class="header"> + </div> + + <h1>Store</h1> + + + <div id="store"> <h2>Catalog</h2> <form name="catalogForm"> @@ -152,4 +191,5 @@ </form> </div> </body> -</html> + +</html>
\ No newline at end of file |