blob: ea7ad421268cd740ebb9bfe1fcdfd1c5a5013b8b [file] [log] [blame]
<?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="ActivityStreams Gadget!">
<Require feature="opensocial-0.9"/>
<Require feature="osapi"/>
<Require feature="dynamic-height"/>
</ModulePrefs>
<Content type="html">
<![CDATA[
<script type="text/javascript" src="ActivityStreams.js"></script>
<script type="text/javascript">
// Stores the HTML for rendering
var htmlWelcome = "";
var htmlActivities = "";
var htmlActivityEntries = "";
var htmlCreateActivityEntry = "";
var htmlDeleteActivityEntry = "";
var htmlGetActivityEntryId = "";
// ================= PEOPLE =================
// Composes a list of friends
function displayWelcome() {
// Load the viewer, owner, and friends
ActivityStreams.loadPeople();
alert("Loading friends...");
// Compose HTML
htmlWelcome = "Hi, " + viewer.getDisplayName() + "! You are viewing " + owner.getDisplayName() + "'s data. <br><br>";
htmlWelcome += "Here is a list of your friends: <br>";
htmlWelcome += "<lu>";
viewerFriends.each(function(friend) {
htmlWelcome += "<li>" + friend.getDisplayName() + "</li>";
});
htmlWelcome += "</lu>";
}
// ================= ACTIVITY STREAMS =================
// Form to input ActivityEntry
function displayCreateActivityEntry() {
htmlCreateActivityEntry = "<br><form name='form_postActivityEntry'>"
htmlCreateActivityEntry += "Post an ActivityEntry comment:<br>"
htmlCreateActivityEntry += "<input type='text' size=100 name ='activityEntryComment'>"
htmlCreateActivityEntry += "<input type='button' value='Post!' onclick='createActivityEntry(document.form_postActivityEntry.activityEntryComment.value)'>"
htmlCreateActivityEntry += "</form>"
}
function createActivityEntry(comment) {
ActivityStreams.postActivityEntry(comment);
displayActivityEntries();
refreshHTML();
}
function displayDeleteActivityEntry() {
htmlDeleteActivityEntry = "<br><form name='form_deleteActivityEntry'>"
htmlDeleteActivityEntry += "Delete an ActivityEntry by ID:<br>"
htmlDeleteActivityEntry += "<input type='text' size=100 name ='activityEntryId'>"
htmlDeleteActivityEntry += "<input type='button' value='Delete!' onclick='deleteActivityEntry(document.form_deleteActivityEntry.activityEntryId.value)'>"
htmlDeleteActivityEntry += "</form>"
}
function deleteActivityEntry(activityEntryId) {
alert('Deleting Id: ' + activityEntryId);
ActivityStreams.deleteActivityEntry(activityEntryId);
displayActivityEntries();
refreshHTML();
}
function displayGetActivityEntryId() {
htmlGetActivityEntryId = "<br><form name='form_getActivityEntryId'>"
htmlGetActivityEntryId += "Get an ActivityEntry by ID:<br>"
htmlGetActivityEntryId += "<input type='text' size=100 name ='activityEntryId'>"
htmlGetActivityEntryId += "<input type='button' value='Get!' onclick='getActivityEntryId(document.form_getActivityEntryId.activityEntryId.value)'>"
htmlGetActivityEntryId += "</form>"
}
function getActivityEntryId(activityEntryId) {
alert('Getting Id: ' + activityEntryId);
ActivityStreams.loadActivityEntryId(activityEntryId);
displayActivities();
refreshHTML();
}
function displayActivityEntries() {
// Load recent activityentries
ActivityStreams.loadActivityEntriesFriends();
ActivityStreams.loadActivityEntriesViewer();
alert('Loading ActivityEntries...');
// Compose HTML
htmlActivityEntries = "<br><br>All ActivityEntries: <br>";
htmlActivityEntries += "<table border='1'>";
htmlActivityEntries += "<tr>";
htmlActivityEntries += "<td>Title</td>";
htmlActivityEntries += "<td>Body</td>";
htmlActivityEntries += "<td>Actor</td>";
htmlActivityEntries += "<td>ID</td>";
htmlActivityEntries += "<td>Posted</td>";
htmlActivityEntries += "<td>Text</td>";
htmlActivityEntries += "</tr>"
processActivityEntries(viewerActivityEntries);
processActivityEntries(friendActivityEntries);
htmlActivityEntries += "</table>";
}
function processActivityEntries(activityentries) {
for(idx = 0; idx < activityentries.list.length; idx++) {
htmlActivityEntries += "<tr>";
htmlActivityEntries += "<td>" + activityentries.list[idx].title + "</td>";
htmlActivityEntries += "<td>" + activityentries.list[idx].body + "</td>";
htmlActivityEntries += "<td>" + activityentries.list[idx].actor.displayName + "</td>";
htmlActivityEntries += "<td>" + activityentries.list[idx].id + "</td>";
htmlActivityEntries += "<td>" + activityentries.list[idx].postedTime + "</td>";
htmlActivityEntries += "<td><textarea>" + JSON.stringify(activityentries.list[idx]) + "</textarea></td>";
htmlActivityEntries += "</tr>";
}
}
// ================= ACTIVITIES =================
// Composes the list of activities by the viewer and friends
function displayActivities() {
// Load recent activities
ActivityStreams.loadActivitiesFriends();
ActivityStreams.loadActivitiesViewer();
alert('Loading Activities...');
// Compose HTML
htmlActivities = "<br><br>All Activities: <br>";
htmlActivities += "<table border='1'>";
htmlActivities += "<tr>";
htmlActivities += "<td>Name</td>";
htmlActivities += "<td>Title</td>";
htmlActivities += "<td>Body</td>";
htmlActivities += "<td>Images</td>";
htmlActivities += "</tr>"
processActivities(viewerActivities);
processActivities(friendActivities);
htmlActivities += "</table>";
}
function processActivities(activities) {
for(idx = 0; idx < activities.list.length; idx++) {
htmlActivities += "<tr>";
htmlActivities += "<td>" + activities.list[idx].userId + "</td>";
htmlActivities += "<td>" + activities.list[idx].title + "</td>";
htmlActivities += "<td>" + activities.list[idx].body + "</td>";
var mediaItems = activities.list[idx].mediaItems;
if(mediaItems != null) {
for(itemIdx = 0; itemIdx < mediaItems.length; itemIdx++) {
if(mediaItems[itemIdx].type == "image") {
htmlActivities += "<td><img src='" + mediaItems[itemIdx].url + "' width=150 height=150/></td>";
}
}
}
htmlActivities += "</tr>";
}
}
// =================== GADGET SET UP ================
// Refreshes the HTML content
function refreshHTML() {
document.getElementById('message').innerHTML = htmlWelcome + htmlActivities + htmlActivityEntries + htmlCreateActivityEntry + htmlDeleteActivityEntry + htmlGetActivityEntryId;
gadgets.window.adjustHeight();
}
// Initializes the gadget
function init() {
displayWelcome();
displayActivities();
displayActivityEntries();
displayCreateActivityEntry();
displayDeleteActivityEntry();
displayGetActivityEntryId();
refreshHTML();
}
gadgets.util.registerOnLoadHandler(init);
</script>
<div id='message'></div>
]]>
</Content>
</Module>