GiftGiverNo3336

From OpenSocial Directory

Jump to: navigation, search
Application Details
Description Just a gift giver app.
Code http://hosting.gmodules.com/ig/gadgets/file/101774835574226898257/myapp1.xml
Genre Test
Supports OpenSocial

Image:Example.jpg==Reviews== Add a Review
Template:GiftGiverNo3336 Reviews

[edit] Comments

Leave a comment

Your Name:
Heading:
Comment:


[edit] Code

View Code

<?xml version="1.0" encoding="UTF-8"?>
<Module>
  <ModulePrefs title="Gifter">
    <Require feature="opensocial-0.7"/>    
  <Require feature="views" />
  </ModulePrefs>

  <Content type="html">

    <![CDATA[
<style type="text/css">
  div.main{
	background-color: #FFFFFF;
}
div.giftSelector{
	border: solid 1px black;
}
  
  </style>
    
  <div id="main">
     <div id='give'>
          <form id='gift_form'>
            Give <span id='gifts'></span> to <span id='friends'></span>. <a href="javascript:void(0);" onclick='giveGift();'>Give!</a>
          </form>
   </div>
   <div id="given">
     </div>
   <div id="received"></div>
  </div>
  
    <script>  
      /**
* @author spradeep
*/
_IG_RegisterOnloadHandler(init);
//var mode = opensocial.getEnvironment().getSurface();
//var modes = { canvas : 1, profile : 2 };
var imagesListLocation = 'http://pr-gadget.googlecode.com/svn/trunk/pr-gadget/images/paths.xml';
function getView() {
return gadgets.views.getCurrentView().getName();
}
function hideUnwantedViews(){
if (getView() == 'canvas') {
/* Do some canvas specific stuff here */

}

if (getView() == 'profile') {
_gel('give').style.display ='none';
}
}
function init() {
if (getView() == 'canvas') {
	_IG_FetchContent(imagesListLocation, function loadImages(responseText){
             
        var xmlobject = (new DOMParser()).parseFromString(responseText.replace('\r','').replace('\n',''), "text/xml");

	if (xmlobject == null || typeof(xmlobject ) != "object") {
              _gel("main").innerHTML = "<i> Invalid data.</i>";
              return;
           }
                         
			var docRoot = xmlobject.getElementsByTagName("imageLocations")[0];
			var images = docRoot.getElementsByTagName("image");
					if(!(images == null || images.length==0)){
				      				
				      				for(var i=0; i< images.length; ++i){
				      						var image = images[i];
											var url=image.firstChild.data;
												      						
				      						imgs[i]=_IG_GetImage(url);
											imgs[i].style.height='100';
											imgs[i].style.width='100';
				      				}		      				
								}
			hideUnwantedViews();
			loadFriends();
			makeOptionsMenu();
},{ refreshInterval: 0 });
}else
{
	loadFriends();
}

}
var imgs = new Array();

function loadFriends() {
var req = opensocial.newDataRequest();
req.add(req.newFetchPersonRequest('VIEWER'), 'viewer');
req.add(req.newFetchPeopleRequest('VIEWER_FRIENDS'), 'viewerFriends');
req.add(req.newFetchPersonAppDataRequest('VIEWER', 'gifts'), 'data');
req.add(req.newFetchPersonAppDataRequest('VIEWER_FRIENDS', 'gifts'), 'viewerFriendData');
req.send(onLoadFriends);
}

function onLoadFriends(data) {
var viewer = data.get('viewer').getData();
var viewerFriends = data.get('viewerFriends').getData();
var giftData = data.get('data').getData();
var viewerfriendData = data.get('viewerFriendData').getData();
var friends = new Array();
var html='<select id="person">';
viewerFriends.each(function(person) {

var thumb = person.getField(opensocial.Person.Field.THUMBNAIL_URL);
// var profile = gadgets.util.getUrlParameters()["parent"] +
// person.getField(opensocial.Person.Field.PROFILE_URL);
html += '<option value="' + person.getId() + '">' + person.getDisplayName() +'<img src="' + thumb + '"/>'+ '</option>';
friends[person.getId()] = person.getDisplayName(); });
html+='</select>';
_gel('friends').innerHTML = html;
updateGiftList(viewer, giftData, friends);
updateReceivedList(viewer,viewerfriendData,viewerFriends);
}

function makeOptionsMenu() {
//var options = ['Balloon', 'Chocolate', 'Cookie', 'Shake -hand'];

var html = new Array();
/*html.push('<select id="nut">');
for (var i = 0; i<options.length; i++) {
html.push('<option value="' + i + '">' + options[i] + '</option>');
}
html.push('</select>');
*/
html.push('<div id="giftSelector" style="border: solid 1px black;width: 505px;height: 505px;">');
var k=0;
for(var i=0;i<5;++i){
html.push('<div id="row'+i+'">');
for(var j=0;j<5;++j,k++){
html.push('<div class="gift" id="col'+k+'" style="float: left;width: 100px;text-align: center;">');
//html.push(i*j+'');
//html.push('<img src="http://www.hscripts.com/freeimages/icons/vehicle/bike/motor-bike-clipart8.gif"/>');
html.push(imgs[k].innerHMTL);
html.push('</div>');
}
html.push('</div><br/>');
}

html.push('</div>');


_gel('gifts').innerHTML = html.join('');
decorateDivs();
}
function decorateDivs(){
for(var i=0;i<25;++i){

if(_gel('col'+i).addEventListener){
// FF
_gel('col'+i).setAttribute('onmouseover',"this.style.backgroundColor = 'gray';");
_gel('col'+i).setAttribute('onmouseout',"this.style.backgroundColor = '';");
// _gel('col'+i).setAttribute('onmousedown',"toggleBold(this);");
}
else{

// IE
_gel('col'+i).onmouseover = function(){

this.style.backgroundColor = 'gray';
}
_gel('col'+i).onmouseout = function(){
this.style.backgroundColor = '';
}
/* _gel('col'+i).onmousedown =function(){
toggleBold(this);
}*/
}
/*
_gel('col'+i).onmouseover=function(){highlight(this)};
_gel('col'+i).onmouseout= function(){ unhighlight(this)};
}
function highlight(obj){
obj.style.bgcolor='green';
}

function unhighlight(obj){
obj.style.bgcolor='none';
}*/

}}


var givenGifts = {};

function giveGift() {
var nut = _gel('nut').value;
var friend = _gel('person').value;

givenGifts[friend] = nut;
var json = gadgets.json.stringify(givenGifts);

var req = opensocial.newDataRequest();
req.add(req.newUpdatePersonAppDataRequest(opensocial.DataRequest.PersonId.VIEWER, 'gifts', json));
req.add(req.newFetchPersonRequest('VIEWER'), 'viewer');
req.add(req.newFetchPeopleRequest('VIEWER_FRIENDS'), 'viewerFriends');
req.add(req.newFetchPersonAppDataRequest('VIEWER', 'gifts'), 'data');
req.add(req.newFetchPersonAppDataRequest('VIEWER_FRIENDS', 'gifts'), 'viewerFriendData');
req.send(onLoadFriends);
}

function updateGiftList(viewer, data, friends) {
var json = data[viewer.getId()]['gifts'];

if (!json) {
givenGifts = {};
}
try {
givenGifts = gadgets.json.parse(json);
} catch (e) {
givenGifts = {};
}

var options = ['Balloon', 'Chocolate', 'Cookie', 'Shake -hand'];

var html = new Array();
html.push('You have given:');
html.push('<ul>');
for (i in givenGifts) {
if (+(i) > 0) {
html.push('<li>' + friends[i] + ' received ' + options[givenGifts[i]] + '</li>');
}
}
html.push('</ul>');
_gel('given').innerHTML = html.join('');
}

function updateReceivedList(viewer, data, friends) {
if(data==null || data.length==null){
_gel('received').innerHTML = 'You have not yet received any gifts';
return;
}
var viewerId = viewer.getId();
var options = ['Balloon', 'Chocolate', 'Cookie', 'Shake hand'];

var html = new Array();
html.push('You have received : <ul>');
friends.each(function(person) {
var personData = data[person.getId()];
if (personData) {
var json = data[person.getId()]['gifts'];

var gifts = {}
if (!json) {
gifts = {};
}
try {
gifts = gadgets.json.parse(json);
} catch (e) {
gifts = {};
}

for (i in gifts) {
if (+(i) > 0 && i == viewerId) {
html.push('<li>' + options[gifts[i]] + ' from ' + person.getDisplayName() + '</li>');
}
}
}
});
html.push('</ul>');
_gel('received').innerHTML = html.join('');
}
      
       

</script>



    ]]>

  </Content>

</Module>  

Page Rating

Rating: 3.5/5 (6 votes cast)

Personal tools
communication