files.samplecontainer.examples.SocialHelloWorld.xml Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of shindig-gadgets Show documentation
Show all versions of shindig-gadgets Show documentation
Renders gadgets, provides the gadget metadata service, and serves
all javascript required by the OpenSocial specification.
<?xml version="1.0" encoding="UTF-8"?> <!-- * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. --> <Module> <ModulePrefs title="Social Hello World" description="The Social Hello World Application Displays multilingual hello messages" thumbnail="http://localhost:8080/" icon="http://localhost:8080/gadgets/files/samplecontainer/examples/icon.png"> <Require feature="osapi"></Require> <Require feature="dynamic-height"></Require> </ModulePrefs> <Content type="html"> <![CDATA[ <style type="text/css"> #helloworlds { margin: 20px; font-family: arial, sans-serif; width: 310px; } div.person img { margin-bottom: 10px; } div.bubble { background-image: url(/gadgets/files/samplecontainer/examples/bubble.gif); background-repeat: no-repeat; width: 202px; height: 66px; padding: 12px 0px 0px 12px; font-weight: bold; font-size: 18px; float: right; } .c0 { color: #008000; } .c1 { color: #FF8A00; } .c2 { color: #7777CC; } .c3 { color: #008000; } .c4 { color: #CC0000; } .c5 { color: #73A6FF; } div.name { width: 150px; text-align: right; font-weight: normal; font-size: 12px; color: #999; position:relative; top: 10px; right: -35px; } </style> <script type="text/javascript"> var hellos = new Array('Hello World', 'Hallo Welt', 'Ciao a tutti', 'Hola mundo', 'Появление на свет', 'こんにちは世界', '你好世界', '여러분, 안녕하세요'); var numberOfStyles = 6; var viewerCount; var allPeople, viewerFriendData; function render(data) { var viewer = data.viewer; allPeople = data.viewerFriends.list; if (viewer) { allPeople.push(viewer); } var viewerData = data.viewerData; viewerCount = getCount(viewerData[viewer.id]); viewerFriendData = data.viewerFriendData; viewerFriendData[viewer.id] = viewerData[viewer.id]; var html = ''; for (var i = 0; i < allPeople.length; i++) { var count = getCount(viewerFriendData[allPeople[i].id]); if (count == 0) { //continue; } html += '<div class="person">'; html += '<div class="bubble c' + count % numberOfStyles + '">' + hellos[count % hellos.length]; html += '<div class="name">' + allPeople[i].name.formatted + ' (' + count + ') ' + allPeople[i].gender; html += '</div></div>'; if (allPeople[i].thumbnailUrl && allPeople[i].thumbnailUrl.indexOf('null') == -1) { html += '<img src="' + allPeople[i].thumbnailUrl + '"/>'; } else { html += '<img src="/gadgets/files/samplecontainer/examples/nophoto.gif"/>'; } html += '<br style="clear:both"></div>'; } document.getElementById('helloworlds').innerHTML = html; gadgets.window.adjustHeight(); } function getCount(data) { return data && data['count'] ? Number(data['count']) : 0; } function sayHelloWorld() { viewerCount++; osapi.appdata.update({data:{count:viewerCount}}).execute(initData); } function initData() { var fields = ['id','age','name','gender','profileUrl','thumbnailUrl']; var batch = osapi.newBatch(); batch.add('viewer', osapi.people.getViewer({sortBy:'name',fields:fields})); batch.add('viewerFriends', osapi.people.getViewerFriends({sortBy:'name',fields:fields})); batch.add('viewerData', osapi.appdata.get({keys:['count']})); batch.add('viewerFriendData', osapi.appdata.get({groupId:'@friends',keys:['count']})); batch.execute(render); } gadgets.util.registerOnLoadHandler(initData); </script> <div style="margin-bottom: 1em"> <input type="button" value="Say hello" onclick="sayHelloWorld(); return false;"/> </div> <div id="helloworlds" style="margin: 4px"> </div> ]]> </Content> </Module>
© 2015 - 2024 Weber Informatics LLC | Privacy Policy