function byId(x) { return document.getElementById(x); } function SimpleTable() { var html = "
"; this.addRow = function(row) { html += "
" + row + "
"; }; this.addPersonRow = function(person, row) { this.addRow( "" + "

" + person.getDisplayName() + "

" + "
" + row + "
" ); }; this.getHtml = function() { return html + "
"; }; } function getSurface() { return opensocial.getEnvironment().getSurface().getName(); } var MyApp = {}; MyApp.render = function(data) { Gadgets[gadgetToLoad](data); } function myInit() { var mode = (gadgetToLoad == "profile") ? opensocial.DataRequest.PersonId.OWNER : opensocial.DataRequest.PersonId.VIEWER ; SocialNorms.createSocialAppOnLoad(MyApp, mode, ["gifts"]); } myInit(); Gadgets = {}; Gadgets.hello = function(data) { byId("main").innerHTML = "Welcome, " + data.getViewer().getDisplayName(); } Gadgets.friends = function(data) { var html = "Welcome, " + data.getViewer().getDisplayName(); var table = new SimpleTable(); var friends = data.getViewerFriends().asArray(); for (var i=0; i"; for (var i=0; i"; } html += ""; return html; } var globalGiftsGiven = {}; function handleChange1(id, name, sel) { var item = sel.options[sel.selectedIndex].value; globalGiftsGiven[id] = item; var json = globalGiftsGiven.toJSONString(); var req = opensocial.newDataRequest(); req.add(req.newUpdatePersonAppDataRequest(opensocial.DataRequest.PersonId.VIEWER , 'gifts', json)); console.log("setting: " + json); req.send(); } function safeParseJSON(str) { if (!str) { return {}; } try { return str.parseJSON(); } catch (e) { console.log("error parsing JSON: " + e); return {}; } } Gadgets.gifts = function(data) { var html = "Welcome, " + data.getViewer().getDisplayName(); var table = new SimpleTable(); var friends = data.getViewerFriends().asArray(); globalGiftsGiven = safeParseJSON(data.getDataFor(opensocial.DataRequest.PersonId.VIEWER )['gifts']); for (var i=0; i " + data.getDataFor(person).toJSONString()); var friendGiftsGiven = safeParseJSON(data.getDataFor(person)['gifts']); var giftToOwner = friendGiftsGiven[data.getOwner().getId()]; if (!giftToOwner) { continue; } var row = person.getDisplayName() + " gave you a " + giftToOwner; table.addPersonRow(person, row); } html += table.getHtml(); byId("main").innerHTML = html; } }