VIVO-1022 Load ORNG sample gadgets from the local server, not from UCSF

This commit is contained in:
Jim Blake 2015-04-21 16:18:15 -04:00
parent c623e32cff
commit b26d824cb2
11 changed files with 1925 additions and 13 deletions

View file

@ -44,6 +44,7 @@ deploy - Configure the application and deploy directly into the Tomcat webapps
<fail unless="tomcat.home" message="${build.properties.file} must contain a value for tomcat.home" />
<fail unless="vitro.home" message="${build.properties.file} must contain a value for vitro.home" />
<fail unless="webapp.name" message="${build.properties.file} must contain a value for webapp.name" />
<property name="runtime.properties.file" location="${vitro.home}/runtime.properties" />
@ -110,6 +111,11 @@ deploy - Configure the application and deploy directly into the Tomcat webapps
<property name="shindig.properties.modified.file" location="${build.shindig.dir}/shindigorng.properties" />
<property name="shindig.properties.deployed.file" location="${shindig.config.dir}/shindigorng.properties" />
<!-- sample-gadgets webapp -->
<property name="sample.webapp.original.dir" location="./sample-gadgets" />
<property name="sample.webapp.deployed.dir" location="${tomcat.webapps.dir}/sample-gadgets" />
</target>
<!-- =================================
@ -118,9 +124,9 @@ deploy - Configure the application and deploy directly into the Tomcat webapps
<target name="clean" depends="properties" description="--> Delete all artifacts">
<delete includeemptydirs="true" failonerror="false">
<fileset dir="${build.shindig.dir}" />
</delete>
<delete includeemptydirs="true" failonerror="false">
<fileset file="${shindig.war.deployed.file}" />
<fileset dir="${shindig.war.deployed.dir}" />
<fileset dir="${sample.webapp.deployed.dir}" />
</delete>
</target>
@ -146,6 +152,7 @@ deploy - Configure the application and deploy directly into the Tomcat webapps
<filter token="DATA_SOURCE_USERNAME" value="${VitroConnection.DataSource.username}" />
<filter token="DATA_SOURCE_PASSWORD" value="${VitroConnection.DataSource.password}" />
<filter token="DATA_SOURCE_DRIVER" value="${VitroConnection.DataSource.driver}" />
<filter token="WEBAPP_NAME" value="${webapp.name}" />
</filterset>
</copy>
</target>
@ -156,6 +163,9 @@ deploy - Configure the application and deploy directly into the Tomcat webapps
<target name="deploy" depends="modifyPropertiesFile" description="--> Deploy the application directly into the Tomcat webapps directory.">
<copy file="${shindig.properties.modified.file}" tofile="${shindig.properties.deployed.file}" />
<copy file="${shindig.war.original.file}" tofile="${shindig.war.deployed.file}" overwrite="true" />
<copy todir="${sample.webapp.deployed.dir}" overwrite="true" >
<fileset dir = "${sample.webapp.original.dir}" />
</copy>
</target>
</project>

View file

@ -0,0 +1,295 @@
<?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs title="Websites"
description="Websites">
<Require feature="opensocial-0.9" />
<Require feature="views" />
<Require feature="dynamic-height" />
<Require feature="pubsub" />
<Require feature="osapi" />
</ModulePrefs>
<!-- ==================== START COMBINED VIEWS ==================== -->
<Content type="html" view="default, home, profile">
<![CDATA[<!--HTML-->
<!DOCTYPE html>
<!-- #includes -->
<link rel="stylesheet" href="css/gadget.css" type="text/css" media="screen, projection" >
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script>
<script type="text/javascript" src="js/os.js" ></script>
<style>
.links_title { font-family:Verdana, Arial; font-size: 14px; }
.links_body { font-family:Arial; font-size: 12px; }
.links_credit { font-family:Arial; font-size:10px; }
.links_save_button { height:20px; font-size:11px; }
a, a:visited { color: #0088CC; text-decoration: none; }
a:hover { color: #005580; text-decoration: underline; }
</style>
<script type="text/javascript">
var g_max_links = 5;
var g_oLinks = []; // declare it like this to make json work
// ========================================
function sort_by (field, reverse, primer) {
reverse = (reverse) ? -1 : 1;
return function(a,b) {
a = a[field];
b = b[field];
if (typeof(primer) != 'undefined') {
a = primer(a);
b = primer(b);
}
if (a<b) return reverse * -1;
if (a>b) return reverse * 1;
return 0;
}
}
// ========================================
// ========================================
function deleteArrayItem (array_index) {
g_oLinks.splice(array_index,1);
// write links data to gadget database
osapi.appdata.update({'userId': '@viewer', 'appId': '@app', 'data': {'links' : gadgets.json.stringify(g_oLinks)} }).execute(function(result) {
if (result.error) {
alert("Error " + result.error.code + " writing application data: " + result.error.message + ". Your edited link list was not saved.");
}
});
// show links w/o deleted item even if data write fails - array already spliced
displayData();
}
// ========================================
// ========================================
function readData(callback) {
osapi.appdata.get({'userId': '@owner', 'appId':'@app', 'fields' : ['links']} ).execute(function(result){
// get incoming link data (in json string format)
var viewer = os.osapi.getViewerFromResult(result);
// convert to json object format
g_oLinks = gadgets.json.parse(viewer.links) || [];
// execute the callback;
callback();
}); /* end osapi.appdata.get */
}
// ========================================
// ========================================
function displayData() {
// if links data exists
if (g_oLinks) {
// sort object by link name, case-insensitive, A-Z
g_oLinks.sort(sort_by('link_name', false, function(a){return a.toUpperCase()}));
if (document.getElementById("edit_links_table")){
// EDIT MODE - build table to hold retrieved app data
var links_table_data = "<table cellspacing='10' cellpadding='0' border='0'><tr>";
var favicon_path_array;
for (i in g_oLinks) {
cell_name = g_oLinks[i].link_name;
cell_url = g_oLinks[i].link_url;
cell_url2 = g_oLinks[i].link_url;
favicon_path_array = cell_url.split("//");
cell_url2 = favicon_path_array[1];
favicon_path_array = cell_url2.split("/");
cell_url2 = favicon_path_array[0];
cell_favicon="<img height='16' width=16' src='http://www.google.com/s2/favicons?domain=" + cell_url2 + "' />";
// build and add table row
links_table_data = links_table_data
+ "<tr>" + "<td>" + cell_favicon + "</td>"
+ "<td>" + "<a href='" + cell_url + "' target='_blank'>" + cell_name + "</a></td>"
+ "<td>" + cell_url + "</td>"
+ "<td><input type='button' class='links_save_button' value='Delete' onClick='deleteArrayItem("
+ i + ")'" + "></td>" + "</tr>";
}
// close the table
links_table_data = links_table_data + "</tr></table>";
// put appdata table markup in designated div
// and set height based on which view view this is
document.getElementById("edit_links_table").innerHTML=links_table_data;
gadgets.window.adjustHeight(250 + ((g_oLinks.length - 1) * 28 * 2) + 10 );
}
if(document.getElementById("view_links_table")){
// VIEW MODE - build table to hold retrieved app data
links_table_data = "<table cellspacing='10' cellpadding='0' border='0'><tr>";
for (i in g_oLinks) {
cell_name = g_oLinks[i].link_name;
cell_url = g_oLinks[i].link_url;
cell_url2 = g_oLinks[i].link_url;
favicon_path_array = cell_url.split("//");
cell_url2 = favicon_path_array[1];
favicon_path_array = cell_url2.split("/");
cell_url2 = favicon_path_array[0];
cell_favicon="<img height='16' width=16' src='http://www.google.com/s2/favicons?domain=" + cell_url2 + "' />";
// build and add table row
links_table_data = links_table_data
+ "<tr>" + "<td>" + cell_favicon + "</td>"
+ "<td onClick=\"gadgetEventTrack('go_to_website', cell_name)\">" + "<a href='" + cell_url + "' target='_blank'>" + cell_name + "</a></td>" + "</tr>";
}
// close the table
links_table_data = links_table_data + "</tr></table>";
// put appdata table markup in designated div
document.getElementById("view_links_table").innerHTML=links_table_data;
if (g_oLinks.length > 0) {
gadgets.window.adjustHeight( 12 + ((g_oLinks.length - 1) * 30) + 34 );
}
else {
gadgets.pubsub.publish("hide");
}
}
} /* end if link data exists */
}
// ========================================
// ========================================
function saveData() {
// get link name and url from form
var new_link_name=document.getElementById("linkname").value;
var new_link_url=document.getElementById("linkurl").value;
if (g_oLinks.length < g_max_links || !g_oLinks) {
// check for empty input boxes
if(new_link_name=="" || new_link_url==""){
alert("Please provide both a Link Name and a URL");
return;
}
// prepend http header if missing
if(new_link_url.indexOf("://") == -1){new_link_url = "http://" + new_link_url;}
var newLinkNdx = g_oLinks.length;
g_oLinks[newLinkNdx] = {};
g_oLinks[newLinkNdx].link_name = new_link_name;
g_oLinks[newLinkNdx].link_url = new_link_url;
// write links data to gadget database
osapi.appdata.update({'userId': '@viewer', 'appId': '@app', 'data': {'links' : gadgets.json.stringify(g_oLinks)} }).execute(function(result) {
if (result.error) {
alert("Error " + result.error.code + " writing application data: " + result.error.message);
} else {
// refresh after update, clear input fields - don't need to reset g_oLinks as displayData does this
displayData();
document.getElementById("linkname").value = "";
document.getElementById("linkurl").value = "http://";
alert("Your links information is saved. Don't forget to use the Hide / Show links to make this section visible or hidden on your profile page.");
}
});
} else {
alert("You already have the maximum number of links.");
}
}
// ==============================================================
function gadgetEventTrack(action, label, value) {
var message = {'action' : action};
if (label) {message.label = label;}
if (value) {message.value = value;}
gadgets.pubsub.publish("analytics", message);
}
// ==============================================================
</script>
]]></Content>
<!-- ==================== END COMBINED VIEWS ==================== -->
<!-- ==================== START HOME/EDIT VIEW ==================== -->
<Content type="html" view="home" preferred_height="300" preferred_width="700">
<![CDATA[<!--HTML-->
<h3 style="padding-left:10px; padding-top: 0px;">Manage Links to Other Websites</h3>
<div style="padding:5px 0px 0px 25px;">
Add up to five websites to your profile.
Enter the website name, as you want it to appear on your profile, and its URL.
Some samples include a link to your lab web site, your research program or your research blog.<br /><br />
</div>
<!-- display the new link input fields -->
<div class='question' style="padding:0px 0px 5px 12px;">
<table cellpadding="0" cellspacing="0">
<tr>
<td class="links_body" valign="top"><b>Website Name</b><br />
e.g. My Lab Site<br />
<input id="linkname" type="linkname" name="linkname" style="width:280px; margin-top:4px;"><br />
(60 characters max)
</td>
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td class="links_body" valign="top"><b>Website URL</b> (not displayed in profile)<br />
e.g. mylabsite.ucsf.edu<br />
<input id="linkurl" type="linkurl" name="linkurl" style="width:250px; margin-top:4px;" value="http://">
</td>
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td><br /><br /><input type="button" style="margin-bottom: 8px;" value="Save" onClick="saveData();"></td>
</tr>
</table>
</div>
<h4 style="padding-left:10px; padding-top: 0px;">Your Current Websites:</h4>
<div id="edit_links_table" style="padding:0px 0px 10px 25px;"></div>
<script type="text/javascript">
gadgets.util.registerOnLoadHandler(function() {
readData(displayData)
});
</script>
]]></Content>
<!-- ==================== END HOME/EDIT VIEW ==================== -->
<!-- ==================== START PROFILE VIEW ==================== -->
<Content type="html" view="profile" preferred_height="100" preferred_width="670">
<![CDATA[<!--HTML-->
<div id="view_links_table" style="padding:0px 0px 10px 20px;"></div>
<script type="text/javascript">
gadgets.util.registerOnLoadHandler(function() {
readData(displayData)
});
</script>
]]></Content>
<!-- ==================== END PROFILE VIEW ==================== -->
</Module>

View file

@ -0,0 +1,478 @@
<?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs title="Faculty Mentoring"
description="Faculty Mentoring details">
<Require feature="opensocial-0.9" />
<Require feature="views" />
<Require feature="dynamic-height" />
<Require feature="pubsub" />
<Require feature="osapi" />
</ModulePrefs>
<!-- ==================== START COMBINED VIEWS ==================== -->
<Content type="html" view="default, home, profile"><![CDATA[<!--HTML-->
<!DOCTYPE html>
<!-- #includes -->
<link rel="stylesheet" href="css/gadget.css" type="text/css" media="screen, projection" >
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script>
<script type="text/javascript" src="js/os.js" ></script>
<style>
.mentor_title {
font-family: Verdana, Arial;
font-size: 14px;
}
.mentor_body {
font-family: Arial;
font-size: 11px;
}
.mentor_credit {
font-family: Arial;
font-size: 10px;
}
.mentor_list {
font-family: Arial;
font-size: 11px;
}
.mentor_message {
font-family: Arial;
font-size: 12px;
font-weight: normal;
}
a, a:visited { color: #0088CC; text-decoration: none; }
a:hover { color: #005580; text-decoration: underline; }
</style>
<script type="text/javascript">
var g_chars_allowed=2000;
var g_textarea_content="";
function limit_chars(){
num_chars = document.getElementById("facultyNarrative").value.length;
if (num_chars > g_chars_allowed) {
alert("Your narrative exceeds the maximum number of characters.");
document.getElementById("facultyNarrative").value = g_textarea_content;
}
else {
g_textarea_content = document.getElementById("facultyNarrative").value;
}
}
// ==============================================================
function gadgetEventTrack(action, label, value) {
var message = {'action' : action};
if (label) {message.label = label;}
if (value) {message.value = value;}
gadgets.pubsub.publish("analytics", message);
}
// ==============================================================
function displayMentorAppData() {
var fields = ["careerMentor", "coMentor", "leadResearch", "projectMentor",
"contactEmail", "contactPhone", "contactAssistant",
"assistantName", "assistantEmail", "assistantPhone",
"narrative", "lastUpdate"];
osapi.appdata.get( {'userId': '@owner', 'appId':'@app', 'fields': fields } ).execute(function(result) {
if (result.error) {
alert("Error " + result.error.code + " reading application data: " + result.error.message);
} else {
// get incoming mentor data
var viewer = os.osapi.getViewerFromResult(result);
if (viewer.careerMentor == "T" && document.getElementById("edit_career_mentor") )
document.getElementById("edit_career_mentor").checked = true;
if (viewer.coMentor == "T" && document.getElementById("edit_co_mentor") )
document.getElementById("edit_co_mentor").checked = true;
if (viewer.leadResearch == "T" && document.getElementById("edit_lead_research") )
document.getElementById("edit_lead_research").checked = true;
if (viewer.projectMentor == "T" && document.getElementById("edit_project_mentor") )
document.getElementById("edit_project_mentor").checked = true;
if (viewer.contactEmail == "T" && document.getElementById("edit_email"))
document.getElementById("edit_email").checked = true;
if (viewer.contactPhone == "T" && document.getElementById("edit_phone"))
document.getElementById("edit_phone").checked = true;
if (viewer.contactAssistant == "T" && document.getElementById("edit_assistant"))
document.getElementById("edit_assistant").checked = true;
if (viewer.assistantName && document.getElementById("edit_assistant_name") )
document.getElementById("edit_assistant_name").value = viewer.assistantName;
if (viewer.assistantEmail && document.getElementById("edit_assistant_email") )
document.getElementById("edit_assistant_email").value = viewer.assistantEmail;
if (viewer.assistantPhone && document.getElementById("edit_assistant_phone") )
document.getElementById("edit_assistant_phone").value = viewer.assistantPhone;
if (viewer.narrative)
document.getElementById("facultyNarrative").value = viewer.narrative;
if (viewer.lastUpdate)
document.getElementById("last_updated").innerHTML = viewer.lastUpdate;
// VIEW MODE - build table to hold retrieved app data
var view_window_height=80;
var mentor_as = "hidden";
var mentor_contact = "hidden";
if (viewer.careerMentor == "T" && document.getElementById("mentor_as_career_mentor") && document.getElementById("mentor_as") ) {
document.getElementById("mentor_as").style.display = "block";
document.getElementById("mentor_as_career_mentor").style.display = "block";
view_window_height += 20;
mentor_as = "visible";
}
if (viewer.coMentor == "T" && document.getElementById("mentor_as_co_mentor") && document.getElementById("mentor_as") ) {
document.getElementById("mentor_as").style.display = "block";
document.getElementById("mentor_as_co_mentor").style.display = "block";
view_window_height += 20;
mentor_as = "visible";
}
if (viewer.leadResearch == "T" && document.getElementById("mentor_as_lead_research") && document.getElementById("mentor_as") ) {
document.getElementById("mentor_as").style.display = "block";
document.getElementById("mentor_as_lead_research").style.display = "block";
view_window_height += 20;
mentor_as = "visible";
}
if (viewer.projectMentor == "T" && document.getElementById("mentor_as_project_mentor") && document.getElementById("mentor_as") ) {
document.getElementById("mentor_as").style.display = "block";
document.getElementById("mentor_as_project_mentor").style.display = "block";
view_window_height += 20;
mentor_as = "visible";
}
if (viewer.contactEmail == "T" && document.getElementById("mentor_contact_email") && document.getElementById("mentor_contact") ) {
document.getElementById("mentor_contact").style.display = "block";
document.getElementById("mentor_contact_email").style.display = "block";
view_window_height += 20;
mentor_contact = "visible";
}
if (viewer.contactPhone == "T" && document.getElementById("mentor_contact_phone") && document.getElementById("mentor_contact") ) {
document.getElementById("mentor_contact").style.display = "block";
document.getElementById("mentor_contact_phone").style.display = "block";
view_window_height += 20;
mentor_contact = "visible";
}
if (viewer.contactAssistant == "T" && document.getElementById("mentor_contact_assistant") && document.getElementById("mentor_contact") ) {
document.getElementById("mentor_contact").style.display = "block";
document.getElementById("mentor_contact_assistant").style.display = "block";
document.getElementById("mentor_assistant").style.display = "block";
view_window_height += 20;
mentor_contact = "visible";
}
if (viewer.assistantName && document.getElementById("mentor_assistant") && document.getElementById("mentor_assistant_name") ) {
document.getElementById("mentor_assistant_name").style.display = "block";
document.getElementById("mentor_assistant_name").innerHTML += viewer.assistantName;
view_window_height += 20;
}
if (viewer.assistantEmail && document.getElementById("mentor_assistant") && document.getElementById("mentor_assistant_email") ) {
document.getElementById("mentor_assistant_email").style.display = "block";
document.getElementById("mentor_assistant_email").innerHTML += viewer.assistantEmail;
view_window_height += 20;
}
if (viewer.assistantPhone && document.getElementById("mentor_assistant") && document.getElementById("mentor_assistant_phone") ) {
document.getElementById("mentor_assistant_phone").style.display = "block";
document.getElementById("mentor_assistant_phone").innerHTML += viewer.assistantPhone;
view_window_height += 20;
}
if (viewer.narrative) {
document.getElementById("facultyNarrative").style.display = "block";
var p_chars = viewer.narrative;
// count the characters and calculate number of rows
p_num_chars = p_chars.length;
document.getElementById("facultyNarrative").innerHTML = p_chars;
p_lines = Math.round(p_num_chars / 100);
if (p_lines < 1) {p_lines = 1}
view_window_height += (p_lines * 15);
// note works in FF but not IE:
// view_window_height += document.getElementById('facultyNarrative').offsetHeight;
}
if (viewer.lastUpdated)
document.getElementById("last_updated").innerHTML = viewer.lastUpdated;
if (mentor_as == "visible") {view_window_height += 20};
if (mentor_contact == "visible") {view_window_height += 20};
// adjust the window height - only do this here if in profile VIEW (not in EDIT)
if (document.getElementById("mentor_as")) {
gadgets.window.adjustHeight(view_window_height);
}
} /* end else */
}); /*osapi.appdata.get*/
}
function saveMentorAppData() {
var mentor_today = new Date();
var weekday=new Array(7);
weekday[0]="Sunday";
weekday[1]="Monday";
weekday[2]="Tuesday";
weekday[3]="Wednesday";
weekday[4]="Thursday";
weekday[5]="Friday";
weekday[6]="Saturday";
var month=new Array(12);
month[0]="January";
month[1]="February";
month[2]="March";
month[3]="April";
month[4]="May";
month[5]="June";
month[6]="July";
month[7]="August";
month[8]="September";
month[9]="October";
month[10]="November";
month[11]="December";
var mentor_day = weekday[mentor_today.getDay()]
var mentor_month = month[mentor_today.getMonth()]
var mentor_date = mentor_today.getDate();
var mentor_year = mentor_today.getFullYear();
var current_date = mentor_day + " " + mentor_month + " " + mentor_date + ", " + mentor_year;
// pack the data into an Object (md for mentor data)
// with property names that match the values in the "fields" array
// used by osapi.appdate.get in displayMentorAppData
var md = {};
md.careerMentor = document.getElementById("edit_career_mentor").checked ? "T" : "F";
md.coMentor = document.getElementById("edit_co_mentor").checked ? "T" : "F";
md.leadResearch = document.getElementById("edit_lead_research").checked ? "T" : "F";
md.projectMentor = document.getElementById("edit_project_mentor").checked ? "T" : "F";
md.contactEmail = document.getElementById("edit_email").checked ? "T" : "F";
md.contactPhone = document.getElementById("edit_phone").checked ? "T" : "F";
md.contactAssistant = document.getElementById("edit_assistant").checked ? "T" : "F";
md.assistantName = document.getElementById("edit_assistant_name").value;
md.assistantEmail = document.getElementById("edit_assistant_email").value;
md.assistantPhone = document.getElementById("edit_assistant_phone").value;
md.narrative = document.getElementById("facultyNarrative").value;
md.lastUpdate = current_date;
osapi.appdata.update({'userId': '@viewer', 'appId':'@app', 'data':md }).execute(function(result) {
if (result.error) {
alert("Error " + result.error.code + " writing application data: " + result.error.message);
}
});
}
</script>
]]></Content>
<!-- ==================== END COMBINED VIEWS ==================== -->
<!-- ==================== START HOME/EDIT VIEW ==================== -->
<Content type="html" view="default, home" preferred_width="700"><![CDATA[<!--HTML-->
<h4 style="padding-left:12px;">Add Faculty Mentoring to Your Profile</h4>
<div id='AddEdit' style="padding:15px 0px 0px 12px;">
Add details about your availability to mentor UCSF faculty.
Learn about the <a href="http://academicaffairs.ucsf.edu/ccfl/faculty_mentoring_program.php" target="_blank" title="Go to the UCSF Faculty Mentoring Website">Faculty Mentoring Program</a>
and the <a href="http://ctsi.ucsf.edu/training/mdp-announcement" target="_blank" title="Go to the CTSI MDP Web page">CTSI&nbsp;Mentor&nbsp;Development&nbsp;Program</a>
<br /><br />
</div>
<div>
<div style="float:left;">
<span class="mentor_message">&nbsp;&nbsp;&nbsp;
Be sure to <b>SAVE</b> your work below.</span>
</div>
<div class="updated" style="float:right; display:block; text-align:left; padding-right:10px; font-size: 10px;">
Last Updated: <span id="last_updated" style="font-size: 10px;"></span>
</div>
</div>
<div class='question' style="padding: 0px; width:500px;">
<br>
<h4>Available to Mentor Faculty as:</h4> <span>(check all that apply)</span> &nbsp;&nbsp;&mdash;&nbsp;&nbsp; <a href="http://ctsi.ucsf.edu/training/mdp-seminar1-definitions" target="_blank" title="Go to the Mentor Role Definitions Web page">Review Mentor Role Definitions</a>
<table cellspacing="0" cellpadding="15">
<tr>
<td valign="middle" width="220" class="mentor_list">
<input id="edit_career_mentor" type="checkbox">Career Mentor</td>
<td valign="middle" class="mentor_list">
<input id="edit_co_mentor" type="checkbox">Co-Mentor</td>
</tr>
<tr>
<td valign="middle" class="mentor_list">
<input id="edit_lead_research" type="checkbox">Lead Research / Scholarly Mentor&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td valign="middle" class="mentor_list">
<input id="edit_project_mentor" type="checkbox">Project Mentor</td>
</tr>
</table>
</div>
<div class='question'>
<h4>My Contact Preference:</h4>
<table cellspacing="0" cellpadding="15">
<tr>
<td valign="middle" width="220" class="mentor_list">
<input id="edit_email" type="checkbox">Email</td>
<td valign="middle" class="mentor_list">
<input id="edit_phone" type="checkbox">Phone</td>
</tr>
<tr>
<td valign="middle" class="mentor_list">
<input id="edit_assistant" type="checkbox">Assistant</td>
<td></td>
</tr>
</table>
</div>
<div class='question' style="padding:0px 0px 0px 10px;">
<span class="mentor_list"><b>Assistant Details</b></span><br>
<fieldset class='details roundbox'>
<table cellpadding="0" cellspacing="0">
<tr>
<td>
<label class='textlabel'>Name</label>
<input id="edit_assistant_name" type="text" style="width:420px;">
</td>
</tr>
</table>
<br>
<table cellpadding="0" cellspacing="0">
<tr>
<td><label class='textlabel'>Email</label>
<input id="edit_assistant_email"></td>
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td><label class='textlabel'>Phone</label>
<input id="edit_assistant_phone"></td>
</tr>
</table>
</fieldset>
</div>
<div class='question'>
<h4>Mentoring Narrative:&nbsp;<img src="images/hovertiptarget.png" border="0" onClick="document.getElementById('sample').style.display='block';">
<span class="mentor_message">&nbsp;&nbsp;Be sure to <b>SAVE</b> your work below.</span></h4>
<div id="sample" style="display:none; border:1px solid #383838; padding:10px 10px 10px 10px; margin:10px; height:160px;">
<div style="padding-bottom: 5px;">
<button style="float:right;" onClick="document.getElementById('sample').style.display='none';">Close</button><br>
<center><b>Sample Mentor Narratives</b> (cut and paste to create your own)</center><br>
</div>
<div style="height:110px; padding: 0px 0px 0 5px;overflow:auto;">
EXAMPLE 1:<br />
Dr. Brown is willing to mentor faculty, fellows, residents and students interested in an academic research career. Most often her mentees have had training in clinical research methods or will obtain training through the CTSI CTST. For students, it is expected they will have dedicated time for research. Through email or meeting, if there is a “match” for research interest, time, and training, further discussions as to project, goals, and access to resources (space, databases, and statistical support) will be discussed to provide a productive experience.
<br><br>
EXAMPLE 2:<br />
I am highly qualified to participate as a lead mentor or co-mentor at UCSF. My program of research is focused on health outcomes associated with disturbed sleep in various populations of healthy women and women with chronic illnesses like HIV/AIDS and cancer. I have completed cross-sectional studies, longitudinal studies, and most recently, randomized clinical trials to improve sleep. I have mentored doctoral students and postdoctoral fellows studying various patient populations, from the very young to very old. During my tenure at UCSF, I have directly supervised over 30 doctoral students, mentored 14 postdoctoral trainees, and served as a lead mentor for 6 pre-tenured faculty. I have been the Director for a T32 Nurse Research Training Grant since 1996, and I have been honored with being voted mentor of the year by doctoral students on two occasions. I play a significant role in the clinical and translational (CTSI) research mentoring and career development programs at UCSF. I am the seminar leader for the first session in the CTSI Mentor Development program on “Rewards and Challenges of Mentoring” and I have co-mentored two KL2 scholars. I have published over 50 peer-reviewed research articles with trainees as first-author, and serve as a consultant on two external K awards as well as three external R01 awards with former mentees. Finally, I have served on many different NIH study section review panels, and I served as the Chair of an NIH study section (2008-2010), which allows me to be particularly effective in mentoring early career principal investigators who are writing their first NIH applications.
<br><br>
I can provide mentees a cubicle space with my research team, tangible resources such as access to large datasets for secondary analysis as needed, and intangible resources such as attending our formal research team meetings and our informal spontaneous group discussions as well as networking at national sleep research conferences.
</div>
</div>
<fieldset>
<textarea id="facultyNarrative" rows='9' cols='72' class='roundbox' style="margin-left:12px;" name="facultyNarrative" onKeyDown="limit_chars()" onKeyUp="limit_chars()" onMouseout="limit_chars()"></textarea>
<span style="margin-left:12px;white-space:nowrap">(2000 characters max)</span>
</fieldset>
</div>
<div>
<center>
<input type="button" onClick="saveMentorAppData();" value="Save">
&nbsp;&nbsp;&nbsp;
<input type="button" onClick="displayMentorAppData()" value="Cancel">
</center>
</div>
<script type="text/javascript" >
// retrieve last-saved data and map it to the fields in the markup
displayMentorAppData();
gadgets.window.adjustHeight(700);
</script>
]]></Content>
<!-- ==================== END HOME/EDIT VIEW ==================== -->
<!-- ==================== START PROFILE VIEW ==================== -->
<Content type="html" view="default, profile" preferred_width="670"><![CDATA[<!--HTML-->
<div class="updated" style="display:block; text-align:left; padding: 5px 10px 10px 0; font-size: 10px;">
Last Updated: <span id="last_updated" style="font-size: 10px;"></span>
</div>
<br>
<div>
<p id="facultyNarrative" style="margin-left:20px; margin-right:20px; font-family:Arial; font-size:12px; display:none;"></p>
</div>
<div id="mentor_as" style="display:none; margin-left:20px;">
<span class='detailtitle'>Available to Mentor as: </span> (<a href="http://ctsi.ucsf.edu/training/mdp-seminar1-definitions" target="_blank" title="Go to the Mentor Role Definitions Web page" onClick="gadgetEventTrack('view_mentor_roles', 'http://ctsi.ucsf.edu/training/mdp-seminar1-definitions'); return true">Review Mentor Role Definitions</a>):
<span id="mentor_as_career_mentor" style="display:none; padding-botom:3px;"><span style="font-size:18px;">&nbsp;&nbsp;&nbsp;<b>&middot;</b>&nbsp;</span>Career Mentor</span>
<span id="mentor_as_co_mentor" style="display:none; padding-botom:3px;"><span style="font-size:18px;">&nbsp;&nbsp;&nbsp;<b>&middot;</b>&nbsp;</span>Co-Mentor</span>
<span id="mentor_as_lead_research" style="display:none; padding-botom:3px;"><span style="font-size:18px;">&nbsp;&nbsp;&nbsp;<b>&middot;</b>&nbsp;</span>Lead Research / Scholarly Mentor</span>
<span id="mentor_as_project_mentor" style="display:none; padding-botom:3px;"><span style="font-size:18px;">&nbsp;&nbsp;&nbsp;<b>&middot;</b>&nbsp;</span>Project Mentor</span>
</div>
<div id="mentor_contact" style="padding:10px 0 0 0; display:none; margin-left: 20px;">
<span class='detailtitle'>Contact for Mentoring:</span>
<ul style="width:400px;">
<li id="mentor_contact_email" style="display:none; padding-botom:3px;"><span style="font-size:18px;">&nbsp;&nbsp;&nbsp;<b>&middot;</b>&nbsp;</span>Email (see above)</li>
<li id="mentor_contact_phone" style="display:none; padding-botom:3px;"><span style="font-size:18px;">&nbsp;&nbsp;&nbsp;<b>&middot;</b>&nbsp;</span>Phone (see above)</li>
<li id="mentor_contact_assistant" style="display:none; padding-botom:3px;"><span style="font-size:18px;">&nbsp;&nbsp;&nbsp;<b>&middot;</b>&nbsp;</span>Assistant</li>
</ul>
</div>
<div id="mentor_assistant" style="padding:5px 0 0 0; display:none; margin-left: 55px;">
<div id="mentor_assistant_name" style="display:none; height:20px;">Name:&nbsp;</div>
<div id="mentor_assistant_email" style="display:none; height:20px;">Email:&nbsp;</div>
<div id="mentor_assistant_phone" style="display:none; height:20px;">Phone:&nbsp;</div>
</div>
<div style="padding:10px 0px 0px 20px;">
Learn about the <a href="http://academicaffairs.ucsf.edu/ccfl/faculty_mentoring_program.php" target="_blank" title="Go to the UCSF Faculty Mentoring Website" onClick="gadgetEventTrack('go_to_program', 'http://academicaffairs.ucsf.edu/ccfl/faculty_mentoring_program.php'); return true">Faculty Mentoring Program</a>
and the <a href="http://ctsi.ucsf.edu/training/mdp-announcement" target="_blank" title="Go to the CTSI | MDP Web page" onClick="gadgetEventTrack('go_to_development', 'http://ctsi.ucsf.edu/training/mdp-announcement'); return true">CTSI Mentor Development Program</a>
<br /><br />
</div>
<script type="text/javascript">
displayMentorAppData();
</script>
]]></Content>
<!-- ==================== END PROFILE VIEW ==================== -->
</Module>

View file

@ -0,0 +1,624 @@
<?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs title="Create a Group" author="Eric Meeks">
<Require feature="opensocial-0.9" />
<Require feature="pubsub" />
<Require feature="views" />
<Require feature="osapi" />
<Require feature="rdf" />
</ModulePrefs>
<Content type="html" view="canvas, small"><![CDATA[<!--HTML-->
<!DOCTYPE html>
<!-- #includes -->
<link rel="stylesheet" href="css/gadget.css" type="text/css" media="screen, projection" >
<script type="text/javascript" src="js/os.js" ></script>
<script type="text/javascript" src="js/jquery-1.4.4.js"></script>
<script type="text/javascript" src="js/environment.js"></script>
<style>
.tool_title {font-family:Arial,Helvetica; font-size:14px;}
.tool_title_orange {font-weight:bold; font-family:Arial,Helvetica; font-size:14px; color:#CA7C29;margin-top:-1px;}
.tool_body {font-family:Arial; font-size:12px;}
.tool_credit {font-family:Arial; font-size:10px;}
.tool_table_cell {font-family:Arial,Helvetica; font-size:12px; padding:0 20px 0 0;}
.tool_table_cell_small {font-family:Arial,Helvetica;font-size:11px;}
.tool_table_cell_small span a {font-size:11px;}
.tool_table_cell_small span {font-size:11px;display:inline-block;margin-right: -15px; }
.tool_toggle_button {font-size: 13px;padding:0 5px;}
a, a:visited { color: #0088CC; text-decoration: none; }
a:hover { color: #005580; text-decoration: underline; }
</style>
<script type="text/javascript">
// ==============================================================
function gadgetEventTrack(action, label, value) {
var message = {'action' : action};
if (label) {message.label = label;}
if (value) {message.value = value;}
gadgets.pubsub.publish("analytics", message);
}
// ==============================================================
function showHelp() {
var pop = window.open('Create a Group Help','','top=200,left=200,width=450,height=340,scrollbars=0,status=0,menubar=0,location=0,resizable=0');
pop.document.title = "Create a Group Help";
pop.document.write("<html><head></head><body><div style='margin:10px; font-family:Arial; font-size:12px;'>");
pop.document.write("Create a list of profiles and start a UCSF Chatter group or email list from here. "
+ "Here's how:<br><ol>"
+ "<li>Click the 'Create Now!' button</li>"
+ "<li>Start compiling a list of profiles for your group. "
+ "You can add one profile at a time, add a set of search results, "
+ "or add a set of co-authors.</li>"
+ "<li>Review your list and create your group</li>"
+ "<li>Name your group and add a description</li></ol>"
+ "<strong>Tips:</strong><br><br>"
+ "You are automatically added to the UCSF Chatter group if you create it. "
+ "You don't need to add yourself to the list of group members. "
+ "This works best if your group is 25 people or less. "
+ "If you want to add or remove members after the group is created, "
+ "go to UCSF Chatter directly.<br><br>"
+ "To learn more about UCSF Chatter, go to "
+ "<a href='http://it.ucsf.edu/services/chatter' target='_blank'>"
+ "http://it.ucsf.edu/services/chatter</a>");
pop.document.write("<br><br><center>"
+ "<input type = 'button' value = 'Close' onclick = 'window.close();'>"
+ "</center>");
pop.document.write("</body></html>");
}
// ==============================================================
function getNewProfilesStats(sender, message) {
var stats = gadgets.json.parse(message);
// display the action item table and update it
$("#actions").show();
if (message === 0) {
document.getElementById("add_profiles").innerHTML = "No Profiles found";
}
else {
document.getElementById("add_profiles").innerHTML = "<a style='font-size:11px;' href='javascript:addNewProfiles();'>Add " + message + " to list</a>";
}
}
function addNewProfiles() {
document.getElementById("add_profiles").innerHTML = "Adding profiles...";
document.getElementById("list_profiles").innerHTML = "Merging into list...";
readIdsFromDB(function(existingIds) {
gadgets.pubsub.subscribe("JSONPersonIds", getNewIdsCallback(existingIds));
});
}
function getNewIdsCallback(existingIds) {
return function(sender, message) {
// extract the array of incoming person IDs
var newIds = gadgets.json.parse(message).personIds;
var addedListSize = getListSize(newIds);
var priorListSize = getListSize(existingIds);
// merge the incoming and existing person ID arrays
// existing array already populated
for (var baseURI in newIds) {
if (!existingIds.hasOwnProperty(baseURI)) {
existingIds[baseURI] = [];
}
existingIds[baseURI] = dedupeArray(existingIds[baseURI].concat(newIds[baseURI]));
}
var newListSize = getListSize(existingIds);
showCurrentListSize(newListSize);
if (newListSize > priorListSize) {
saveData(existingIds, function() {
document.getElementById("add_profiles").innerHTML = ((newListSize - priorListSize) === 1 ? "1 new Profile added" : "" + (newListSize - priorListSize) + " new Profiles added");
showCurrentListSize(newListSize);
});
}
else {
document.getElementById("add_profiles").innerHTML = (addedListSize == 1 ? "Profile already in list" : "Profiles already in list");
}
};
}
// ==============================================================
function getListSize(ids) {
var cnt = 0;
for (var baseURI in ids) {
cnt += ids[baseURI].length;
}
return cnt;
}
// ==============================================================
function showCurrentListSize(count) {
if (count > 0) {
document.getElementById("list_profiles").innerHTML = "<a href='javascript:gadgets.views.requestNavigateTo(\"canvas\");'>" + count + " Profiles in list</a>";
}
else {
document.getElementById("list_profiles").innerHTML = "List is currently empty";
}
}
function showToolVersion(canvasMode) {
// fetch the extended state
osapi.appdata.get({'userId':'@viewer', 'appId':'@app', 'fields':['extended']} )
.execute(function(result) {
if (os.osapi.getViewerFromResult(result).extended == "True") {
if (canvasMode) {
document.getElementById("extended_functions").style.display = "inline-block";
document.getElementById("extended_functions").style.padding = "0 0 0 20px";
document.getElementById("canvas_help").innerHTML =
'Create a UCSF Chatter group or email list that includes the people below. '
+ 'To manage your UCSF Chatter group after you create it, such as adding or '
+ 'removing members, go to UCSF Chatter directly.' ;
}
}
else {
// this is what people who have limited functionality (only chatter group) see
if (canvasMode) {
document.getElementById("basic_functions").style.display = "inline-block";
document.getElementById("basic_functions").style.padding = "0 0 0 20px";
document.getElementById("canvas_help").innerHTML =
'Create a UCSF Chatter group that includes the people below. '
+ 'To manage your group after you create it, such as adding or '
+ 'removing members, go to UCSF Chatter directly.' ;
}
}
// if we are not in canvas mode, show the On/Off state correctly
if (!canvasMode) {
readCountFromDB( function(count) {
showCurrentListSize(count);
});
gadgets.pubsub.subscribe("PersonResultCount", getNewProfilesStats);
}
});
}
// ==============================================================
function toURIList(existingIds) {
var uriList = [];
for (var baseURI in existingIds) {
for (var i = 0; i < existingIds[baseURI].length; i++) {
uriList.push(baseURI + existingIds[baseURI][i]);
}
}
return uriList;
}
// first argument is an map of data,
// second argument is the callback function to execute after updating the data
function saveData(ids, callback) {
osapi.appdata.update({'userId': '@viewer', 'appId':'@app', 'data': {'count' : '' + getListSize(ids), 'ids' : gadgets.json.stringify(ids)}}).execute(callback);
}
// ==============================================================
function readCountFromDB(callback) {
osapi.appdata.get({'userId':'@viewer', 'appId':'@app', 'fields':'count'}).execute(function(result) {
// a map of {baseURI1 : ["string", "string"], baseURI2 : ["string", "string"]}
var count = os.osapi.getViewerFromResult(result).count || 0;
callback(count);
});
}
function readIdsFromDB(callback) {
osapi.appdata.get({'userId':'@viewer', 'appId':'@app', 'fields':'ids'}).execute(function(result) {
// a map of {baseURI1 : ["string", "string"], baseURI2 : ["string", "string"]}
var existingIds = os.osapi.getViewerFromResult(result).ids || "{}";
callback(gadgets.json.parse(existingIds));
});
}
// ==============================================================
function deleteList() {
osapi.appdata['delete']({'userId':'@viewer', 'appId':'@app', 'fields': ['ids', 'count']} )
.execute(function(result){
if (result.error) {
alert("Error " + result.error.code + " deleting application data: " + result.error.message);
} else {
document.getElementById("canvas_email_list_textarea").value = "";
document.getElementById("canvas_full_list_textarea").value = "";
document.getElementById("canvas_profile_list").innerHTML = "";
document.getElementById("number_selected").innerHTML = "Select Profiles";
}
}); /* end osapi.appdata.delete */
}
// ==============================================================
function dedupeArray(arrHasDupes) {
var deduped = [];
$.each(arrHasDupes, function(i, el){
if($.inArray(el, deduped) === -1) deduped.push(el);
});
return deduped;
}
// ==============================================================
function displayProfileList(existingIds) {
var uris = toURIList(existingIds);
// put these as individual fields in an ontology.js file
// pass in as options to getRdf call
var fullName = 'http://profiles.catalyst.harvard.edu/ontology/prns#fullName';
var preferredTitle = 'http://vivoweb.org/ontology/core#preferredTitle';
var email = 'http://vivoweb.org/ontology/core#email';
var strTable="<table cellspacing='0' cellpadding='0' width='640'><tr>";
// build the table header row
strTable += "<td align='left' valign='top' class='tool_table_cell'>" + "<u><b>Name</b></u></td>";
strTable += "<td align='left' valign='top' class='tool_table_cell'>" + "<u><b>Title</b></u></td>";
strTable += "<td align='left' valign='top' class='tool_table_cell'>" + "<u><b>Email&nbsp;Address</b></u></td>";
strTable += "</tr>";
for (i in uris) {
//strTable += "<tr id='" + uris[i] + "'><div id='displayPerson_" + i + "'></div></tr>";
strTable += "<tr id='" + uris[i] + "'></tr>";
}
strTable += "</table>";
// dispay the empty table in canvas view
document.getElementById("canvas_profile_list").innerHTML = strTable;
document.getElementById("number_selected").innerHTML = "Your list includes (" + uris.length + ")" + " selected profiles";
// initialize the export divs
document.getElementById("canvas_email_list_textarea").value = "";
document.getElementById("canvas_full_list_textarea").value = "";
// load in groups of ten
var batchSize = 10;
var batchCount = Math.floor(uris.length/batchSize) + (uris.length % batchSize == 0 ? 0 : 1);
for (i = 0; i < uris.length; i += batchSize) {
var ids = '';
for (j = 0; j < batchSize && i+j < uris.length; j++) {
ids += (j > 0 ? ',' : '') + uris[i + j];
}
osapi.rdf.getRDF(ids).execute(function(data) {
var people = data.list;
if(!people) {
people = [data];
}
for (var j = 0; j < people.length; j++) {
var base = people[j].base;
people[j] = jsonldHelper.getItem(people[j]);
// put in div now so people can see progress
var table_row = "<td align='left' valign='top' class='tool_table_cell'>" + people[j][fullName] + "</td>";
table_row += "<td align='left' valign='top' class='tool_table_cell'>" + people[j][preferredTitle] + "</td>";
table_row += "<td align='left' valign='top' class='tool_table_cell email'>" + (people[j][email] ? people[j][email] : "") + "</td>";
document.getElementById(base + people[j]['@id']).innerHTML = table_row;
}
// see if we are done and if so turn off progress bar and
// add to export lists
if (--batchCount == 0) {
var full_list = "";
var email_list = "";
$("#canvas_profile_list tr").each(function(index, tr){
if(!$(tr).attr("id")) {
return true;
}
var row = "";
$("td", tr).each(function(fld_index, td){
var txt = $(td).text();
row += txt + ";";
if(fld_index == 2 && txt != "") {
email_list += txt + "\n";
}
});
full_list += row + "\n";
});
document.getElementById("canvas_full_list_textarea").value = full_list;
document.getElementById("canvas_email_list_textarea").value = email_list;
document.getElementById("progress").style.display="none";
}
});
}
} /* end displayProfileList */
// ==============================================================
function copyEmailDivToClipboard() {
$("#canvas_email_list").show();
$("#canvas_email_list_text").show();
$("#canvas_full_list").hide();
$("#canvas_full_list_text").hide();
$("#canvas_profile_list").hide();
}
// ==============================================================
function copyFullDivToClipboard() {
$("#canvas_full_list").show();
$("#canvas_full_list_text").show();
$("#canvas_email_list").hide();
$("#canvas_email_list_text").hide();
$("#canvas_profile_list").hide();
}
// ==============================================================
var root = (typeof ENV_LOCAL_URL === 'undefined')? "": ENV_LOCAL_URL;
var chatterProxyURL = root + "/chatter/ChatterProxyService.svc";
function getNodeIdFromURI(uri) {
if (typeof uri === 'string') {
var c = uri.split('/');
return c[c.length-1];
}
else {
var retval = [];
for ( i = 0; i < uri.length; i++) {
retval[i] = getNodeIdFromURI(uri[i]);
}
return retval;
}
}
function createGroup(name, description, ownerId, users) {
document.getElementById("progress").style.display="block";
var params = {
"name": name,
"description": description,
"ownerId": ownerId,
"users": users};
sendRequest(false, false, chatterProxyURL + "/group/new", params, function(data) {
document.getElementById("progress").style.display="none";
if(data.Success) {
showMessage("<strong>Success! Your UCSF Chatter group '" + name + "' has been created.</strong><br> "
+ "<a target='_blank' href='" + data.URL + "'>Go to UCSF Chatter to start working with your group.</a>");
$("input#goup_name").val("");
}
else {
showMessage("Cannot create a group. " + data.ErrorMessage, true);
}
},
function(obj) {
showMessage("Server error " + obj.rc + " : " + obj.errors, true);
});
}
// ==============================================================
function sendRequest(cache, signed, url, post_params, success, error) {
var params = {};
if (signed) {
params[gadgets.io.RequestParameters.AUTHORIZATION] = gadgets.io.AuthorizationType.SIGNED;
}
params[gadgets.io.RequestParameters.POST_DATA] = gadgets.io.encodeValues(post_params);
params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
if(cache == false) {
params[gadgets.io.RequestParameters.REFRESH_INTERVAL] = 0;
}
gadgets.io.makeRequest(url, function(obj) {
if(obj.data != null) {
success(obj.data);
}
else if(obj.errors != null) {
if(error) {
error(obj);
}
}
}
, params);
}
// ==============================================================
function showMessage(msg, isError) {
$("div.message").html(msg);
if(isError == true) {
$("div.message").removeClass("info");
$("div.message").addClass("error");
}
else {
$("div.message").removeClass("error");
$("div.message").addClass("info");
}
$("div.message").removeClass("hidden");
}
// ==============================================================
function getUserList() {
var items = [];
$("div#canvas_profile_list tr").each( function(index, elem) {
var id = $(elem).attr("id");
if(id != null && id != "") {
items.push(getNodeIdFromURI(id));
}
});
return items.join(',');
}
// ==============================================================
</script>]]></Content>
<Content type="html" view="small" preferred_height="75" preferred_width="190"><![CDATA[<!--HTML-->
<!DOCTYPE html>
<table id="button_and_help" cellspacing="6" cellpadding="5" style="display:block;">
<tr>
<td class="tool_table_cell_small" style="width:145px">Add profiles to your list</td>
<td><img src="images/hovertiptarget.png" border="0" onClick="gadgetEventTrack('help');showHelp()"></td>
</tr>
</table>
<table id="actions" style="display:none;clear:right;" cellspacing="2" cellpadding="0">
<tr>
<td class="tool_table_cell_small">&nbsp;1.&nbsp;</td>
<td class="tool_table_cell_small"><span id="add_profiles" onClick="gadgetEventTrack('add_profiles')"></span></td>
</tr>
<tr>
<td class="tool_table_cell_small" valign="top" style="padding-top:4px">&nbsp;2.&nbsp;</td>
<td class="tool_table_cell_small" valign="top" style="padding-top:4px"><span id="list_profiles" onClick="gadgetEventTrack('list_profiles')">Loading...</span></td>
</tr>
</table>
<script type="text/javascript">
function init() {
showToolVersion(false);
}
gadgets.util.registerOnLoadHandler(init);
</script>]]></Content>
<Content type="html" view="canvas" preferred_height="600" preferred_width="700"><![CDATA[<!--HTML-->
<!DOCTYPE html>
<style type="text/css">
div#create_group {
margin-left: 20px;
margin-top:10px;
margin-bottom:10px;
padding-top:10px;
padding-bottom:10px;
padding-left:10px;
padding-right:10px;
border:solid gray 1px;
width:470px;
border-radius: 0;
}
input#close {
margin-left:10px;
}
div.message {
margin-bottom:10px;
}
div.info {
color:green;
}
div.error {
color:red;
}
.hidden {
display:none;
}
a, a:visited { color: #0088CC; text-decoration: none; }
a:hover { color: #005580; text-decoration: underline; }
p { width: 640px; }
</style>
<!-- top menu links -->
<div style="width:640px;">
<p id="number_selected" class="tool_title_orange" style="margin-left:20px;margin-top:20px\9;">
Selected Profiles<p>
<p id="canvas_help" style="padding-left:20px"></p>
<p class="tool_body" style="margin-left:20px; margin-bottom:10px;">
<div id="extended_functions" style="display:none;">
<a href="" id="create_group">Create UCSF Chatter Group</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="javascript:gadgetEventTrack('export_email');copyEmailDivToClipboard();">Export email addresses only</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="javascript:gadgetEventTrack('export_all_data');copyFullDivToClipboard();">Export all data</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="" id="compose-email">Compose email to list</a><p>
</div>
<div id="basic_functions" style="display:none;">
<a href="" id="create_group">Create UCSF Chatter Group</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|
</div>
<a href="javascript:gadgetEventTrack('delete_list');deleteList();" style="margin-left:20px;">Delete list</a>
</p>
<p id="progress" style="margin-left:20px;">
<br><br>
<img src="images/waiting.gif">
<br><br>
<b>This may take a minute or two, based on the size of your selected Profiles list.</b></p>
</div>
<div id="create_group" class="hidden">
<div class="message hidden"><strong>Success! Your UCSF Chatter group has been created.</strong><br>
Go to UCSF Chatter to start working with your group.</div>
<table><tr>
<td nowrap valign="top">UCSF Chatter Group Name:</td>
<td><input id="group_name" type="text" style="width:218px"></input><br><br></td></tr><tr>
<td nowrap valign="top" align="right">Group Description:</td>
<td><textarea id="group_description" rows="4" cols="25"></textarea><br><br></td></tr><tr><td>&nbsp;</td>
<td><input id="create" type="button" value="Create"></input>
<input id="close" type="button" value="Cancel/Close"></input></td></tr></table>
</div>
<div id="canvas_email_list" style="display:none; background:#FFF; width:670px; height:50px; margin-left:20px;">
Copy and paste the email addresses below into an Excel spreadsheet or email client "To" field.
<input type="button" style="height:22px; font-size:10; margin-left:40px; margin-top: 6px;" value="Close" onClick="document.getElementById('canvas_email_list').style.display='none';document.getElementById('canvas_email_list_text').style.display='none';document.getElementById('canvas_profile_list').style.display='block';"></button>
</div>
<!-- holds the email address list to be copied to the clipboard -->
<div id="canvas_email_list_text" style="display:none; width:658px; height:450px; color:#000; margin:0px 5px 0px 5px;">
<textarea id="canvas_email_list_textarea" rows="27" cols="78" style="border:1px solid #000; margin: 0px 8px 0px 8px;">
</textarea>
</div>
<div id="canvas_full_list" style="display:none; background:#FFF; width:640px; height:50px; margin-left: 20px;">
Copy and paste the profile data below into an Excel spreadsheet or external text editor.
<input type="button" style="height:22px; font-size:10; margin-left:40px; margin-top: 6px;" value="Close" onClick="document.getElementById('canvas_full_list').style.display='none';document.getElementById('canvas_full_list_text').style.display='none';document.getElementById('canvas_profile_list').style.display='block';"></button>
</div>
<!-- holds the full profile list to be copied to the clipboard -->
<div id="canvas_full_list_text" style="display:none; width:640px; height:450px; color:#000; margin:0px 5px 0px 5px;">
<textarea id="canvas_full_list_textarea" rows="27" cols="78" style="border:1px solid #000; margin: 0px 8px 0px 8px;">
</textarea>
</div>
<!-- holds the visible profile details list -->
<div id="canvas_profile_list" style="display:none; margin-left:20px; height:463px; height:443px\9; width: 660px; overflow:auto;"></div>
<script type="text/javascript">
function init() {
// update UI
showToolVersion(true);
readIdsFromDB(displayProfileList);
document.getElementById("canvas_profile_list").style.display="block";
$("a#create_group").click(function(event){
event.preventDefault();
$("div.message").addClass("hidden");
$("div#create_group").removeClass("hidden");
});
$("input#close").click(function(event){
$("div#create_group").addClass("hidden");
});
$("input#create").click(function(event){
$("div.message").addClass("hidden");
var name = $("div#create_group input#group_name").val();
var description = $("div#create_group #group_description").val();
if(name == null || name == '') {
showMessage("Please enter a group name.", true);
}
else {
osapi.people.getViewer({ fields: ['id'] }).execute(function(result) {
var users = getUserList();
createGroup(name, description, getNodeIdFromURI(result.id), users);
});
}
});
$("#compose-email").click(function(event){
var emails = [];
var emailElem = $("td.email");
if(emailElem.size() > 50) {
if(!confirm("Only the first 50 email addresses can be used. If your list has more, please use the Export function and paste them into email. Do you want to proceed?")) {
event.preventDefault();
return false;
}
}
emailElem.each(function(index, elem) {
var email = $.trim($(elem).text());
if(email != '') {
emails.push(email);
}
if(emails.length >= 50) {
return false;
}
});
if(emails.length > 0) {
$(this).attr("href", "mailto:" + emails.join(';'));
}
});
}
gadgets.util.registerOnLoadHandler(init);
</script>]]></Content>
</Module>

View file

@ -0,0 +1,110 @@
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="Hello RDF!" height="800" width="700" scrolling="true">
<Require feature="opensocial-0.8" />
<Require feature="rdf"/>
<Require feature="dynamic-height"/>
</ModulePrefs>
<Content type="html">
<![CDATA[<!--HTML-->
<!DOCTYPE html>
<script type="text/javascript" src="js/jquery-1.4.4.js"></script>
<script type="text/javascript" src="js/prettyprint.js" ></script>
<script type="text/javascript">
// use pretty print!
function loadPeople() {
osapi.people.getViewer().execute(function(result) {
onLoadPeopleOsapi(result, 'viewer');
});
// load RDF version, Alexei, please follow this pattern
osapi.rdf.getViewer().execute(function(result) {
var person = jsonldHelper.getItem(result);
onLoadPeopleRdf(person, 'viewer_rdf');
});
osapi.people.getOwner().execute(function(result) {
onLoadPeopleOsapi(result, 'owner');
document.getElementById('rdfurl').value = result.id;
});
// load RDF version, Alexei, please follow this pattern
var options = {};
options.output = 'full';
osapi.rdf.getOwner(options).execute(function(result) {
var person = jsonldHelper.getItem(result);
onLoadPeopleRdf(person, 'owner_rdf');
});
osapi.rdf.getOwner().execute(function(result) {
var foo = result;
var person = jsonldHelper.getItem(result);
});
}
function onLoadPeopleOsapi(person, divId) {
html = new Array();
html.push('<ul>');
html.push('<li>You are looking at ' + person.displayName + '</li>');
html.push('<li>Their URI is ' + person.profileUrl + '</li>');
html.push('</ul>');
document.getElementById(divId).innerHTML = html.join('');
}
function onLoadPeopleRdf(person, divId) {
html = new Array();
html.push('<ul>');
html.push('<li>You are looking at ' + person.label + '</li>');
html.push('<li>Their URI is ' + (person.uri || person._about) + '</li>');
html.push('<li>Their email is ' + person.primaryEmail + '</li>');
html.push('</ul>');
var ppTable = prettyPrint(person);
$('#' + divId).html(ppTable);
gadgets.window.adjustHeight();
}
var priorurl = [];
var ndx = 0;
priorurl[ndx++] = "http://vivo.ufl.edu/individual/n25562";
priorurl[ndx++] = "http://connects.catalyst.harvard.edu/profiles/profile/person/32213/viewas/rdf";
function submitform() {
var rdfurl = document.getElementById('rdfurl');
if (ndx == 0 || priorurl[ndx] != rdfurl.value) {
priorurl[ndx++] = rdfurl.value;
}
document.getElementById('rdf').innerHTML = '...fetching content...';
osapi.rdf.getRDF(rdfurl.value).execute(function(result) {
onLoadPeopleRdf(result, 'rdf');
});
}
function goback() {
if (ndx > 0 && priorurl[ndx - 1] == document.getElementById('rdfurl').value) {
ndx--;
}
if (ndx > 0) {
ndx--
}
document.getElementById('rdfurl').value = priorurl[ndx];
}
gadgets.util.registerOnLoadHandler(loadPeople);
</script>
<div id='main'>
<h4>Viewer</h4>
<div id='viewer'></div>
<div id='viewer_rdf'></div>
<h4>Owner</h4>
<div id='owner'></div>
<div id='owner_rdf'></div>
<form>
RDF: <input type="text" id="rdfurl" name="rdfurl" size="80">
<p>
<div id="query"></div>
<p>
<a href="javascript: submitform()">Submit</a>&nbsp;<a href="javascript: goback()">Back</a>
</form>
<div id='rdf'></div>
</div> ]]>
</Content>
</Module>

View file

@ -0,0 +1,75 @@
<?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs title="Google site search: full text search results XX" width="600">
<Require feature="pubsub" />
<Require feature="dynamic-height" />
</ModulePrefs>
<Content type="html"><![CDATA[<!--HTML-->
<!-- #includes -->
<!DOCTYPE html>
<style>
.gadget_text {
font-family: Verdana, Arial;
font-size: 11px;
}
.gadgets-gadget-chrome {
margin-left: 8px;
}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script>
<pre><div id="content" class="gadget_text"></div></pre>
<script>
function parseXml(xml) {
if (jQuery.browser.msie) {
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.loadXML(xml);
xml = xmlDoc;
}
return xml;
}
function handleResponse(obj) {
var ids = [];
var theXML = obj.text;
// IE hack
theXML = parseXml(theXML);
// JB hack
$("#content").append( "Additional search results for " + gadgets.util.getUrlParameters()['keyword'] )
gadgets.window.adjustHeight();
};
function makeRequest(url, postdata) {
var params = {};
postdata = gadgets.io.encodeValues(postdata);
params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.GET;
gadgets.io.makeRequest(url + "?" + postdata, handleResponse, params);
};
var data = {
start : "0",
num : "30",
q: gadgets.util.getUrlParameters()['keyword'],
// q: "cat",
client : "google-csbe",
output : "xml_no_dtd",
cx : "016654132415451954564:o_v7w23054u"
};
makeRequest("http://www.google.com/search", data);
</script>
]]>
</Content>
</Module>

View file

@ -0,0 +1,182 @@
<?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs
title="Featured Presentations"
author="Nels Johnson"
author_email="njohnson@downrecs.com"
description="Featured Presentations">
<Require feature="opensocial-0.9" />
<Require feature="pubsub" />
<Require feature="views" />
<Require feature="flash" />
<!-- Require feature="dynamic-height" / -->
<Require feature="osapi" />
</ModulePrefs>
<Content type="html" view="default, home, profile" preferred_height="470" preferred_width="670"><![CDATA[<!--HTML-->
<!DOCTYPE html>
<base target="_blank"/>
<!-- TODO: Fix height for OSDE. Should be removed -->
<!--script type="text/javascript">
gadgets.window.adjustHeight(700);
</script-->
<!-- #includes -->
<link rel="stylesheet" href="css/gadget.css" type="text/css" media="screen, projection">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script>
<script type="text/javascript" src="js/os.js" ></script>
<!-- Styles -->
<style type="text/css">
.slideshare_title { font-family: Arial, helvetica; font-size: 14px;}
.slideshare_body { font-family: Arial, helvetica; font-size: 11px;}
.slideshare_credit { font-family: Arial, helvetica; font-size: 10px;}
.ss-link{ margin:10px 0px 10px 0px; }
a, a:visited { color: #0088CC; text-decoration: none; }
a:hover { color: #005580; text-decoration: underline; }
</style>
<script type="text/javascript">
function gotoSlideshare() {
var action = 'go_to_slideshare';
var href = $('div.ss-link a').attr('href');
gadgets.pubsub.subscribe("analytics", function(sender, message){
if(message.action = action) {
window.top.location.href = href;
}
});
gadgetEventTrack(action, href);
}
function gadgetEventTrack(action, label, value) {
var message = {'action' : action};
if (label) {message.label = label;}
if (value) {message.value = value;}
gadgets.pubsub.publish("analytics", message);
}
// ========================================
function getUserNameAndPreview(userId){
osapi.appdata.get({'userId': userId, 'groupId': '@self', 'appId':'@app', 'fields': ['username']})
.execute(function(response){
var viewer = os.osapi.getViewerFromResult(response);
var username = viewer.username;
$('input[name=username]').val(username);
if(username != null && username != "") { // only render flash if there's a username
preview(username);
}
});
}
// ========================================
// ========================================
function preview(username){
var url = "http://static.slidesharecdn.com/swf/multiwidget.swf";
$('#preview').html(
'<div style="width:577px;margin:auto;">' +
'<object style="margin:0px" width="600" height="428" ' +
' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' +
' codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"' +
' id="slideshow"' +
'>' +
'<param name="movie" value="http://static.slidesharecdn.com/swf/multiwidget.swf"/>' +
'<param name="allowFullScreen" value="true"/>' +
'<param name="allowScriptAccess" value="always"/>' +
'<param name="flashVars" value="feedurl=user/'+ username + '&widgettitle=Slides%20by%20'+ username +'"/>' +
'<embed src="http://static.slidesharecdn.com/swf/multiwidget.swf" ' +
' name="slideshow" ' +
' flashVars="feedurl=user/'+ username + '&widgettitle=Slides%20by%20'+ username +'"' +
' type="application/x-shockwave-flash"' +
' pluginspage="http://www.adobe.com/go/getflashplayer"' +
' allowscriptaccess="always"' +
' allowfullscreen="true"' +
' width="600" ' +
' height="428">' +
'</embed>' +
'</object>' +
'<div class="ss-link">Having trouble seeing this? <a href="http://www.slideshare.net/'+ username + '" target="_top">View at SlideShare</a><div/>' +
'</div>'
);
$('div.ss-link a').click(function(event){
event.preventDefault();
gotoSlideshare();
}); //click
}
// ========================================
// ========================================
gadgets.util.registerOnLoadHandler(function(){
var viewName=gadgets.views.getCurrentView().getName();
if(viewName=='home'){
var innerDiv=$('#inner_home_settings').html();
$('#settings').html(innerDiv);
$('#secondHeader').show();
getUserNameAndPreview('@viewer');
$('span.save').click(function(){
var username = $('input[name=username]').val();
osapi.appdata.update({'userId': '@viewer', 'groupId': '@self', 'appId':'@app', 'data':{'username':username} })
.execute(function(response){
});
$('#preview').html('');
if(username != null && username != "") {
preview(username);
}
}); //click
}
else{
getUserNameAndPreview('@owner');
}
}); // registerOnLoadHandler
// ========================================
</script>
<div id="secondHeader" style="display:none; margin:0px 10px 0px 10px;">
<span class="slideshare_title"><b>SlideShare: A great way to share presentations</b></span>
</div>
<div id="settings" style="clear:both; margin:0px 10px 0px 10px;">
</div>
<br>
<div id="preview">
</div>
<br><br>
]]>
</Content>
<Content type="html" view="home" preferred_height="670" preferred_width="700"><![CDATA[<!--HTML-->
<div id="inner_home_settings" style="display:none;">
<p class="slideshare_body">
If you already have a SlideShare account and have uploaded presentations, simply follow these steps:<br>
</p>
<p class="slideshare_body" style="padding-left:20px;">
<ol>
<li class="slideshare_body">Enter your SlideShare Username below and click Save/Preview.
Any public presentations that you've uploaded to SlideShare will be shown in the preview below.</li>
<li class="slideshare_body">Make sure these presentations are the ones you want to share on your profile.</li>
<li class="slideshare_body">Click the "Show" link (above, upper right) to make the presentations publicly available within your profile.</li>
<li class="slideshare_body">To remove the presentations, delete your SlideShare Username and click Save/Preview.
Make sure to "Hide" your presentations from the public if you delete your SlideShare Username.</li>
</ol>
</p>
<div class="question">
<span class="slideshare_body">SlideShare Username:&nbsp;</span><input type="text" name="username" style="display:inline;width:20em;">
&nbsp;&nbsp;&nbsp;</span>
<span class="save slideshare_body" style="text-decoration:underline;cursor:pointer;color:#44F; display:inline;" title="Save this Username and preview the presentations.">Save/Preview</span>
<br><br>
<span class="slideshare_body">Don't have a SlideShare account yet?
Go to <a href="http://www.slideshare.net" target="_blank" style="font-size:12px;text-decoration:none; cursor:pointer;color:#44F;" title="Go to the SlideShare Web site">
SlideShare</a> now to create an account and upload presentations.</span>
</div>
</div>
]]>
</Content>
</Module>

View file

@ -0,0 +1,133 @@
<?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs
title="Tweets"
author="Alexei Vassiliev"
author_email="alexnv@sbcglobal.com"
description="Twitter">
<Require feature="opensocial-0.9" />
<Require feature="pubsub" />
<Require feature="views" />
<Require feature="osapi" />
<Require feature="dynamic-height" />
</ModulePrefs>
<Content type="html" view="default, home, profile"><![CDATA[<!--HTML-->
<!DOCTYPE html>
<!-- #includes -->
<link rel="stylesheet" href="css/gadget.css" type="text/css" media="screen, projection">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script>
<script type="text/javascript" src="js/jquery.blockUI.js"></script>
<script charset="utf-8" src="http://widgets.twimg.com/j/2/widget.js"></script>
<script type="text/javascript" src="js/os.js" ></script>
<script type="text/javascript">
var ucsf = ucsf || {};
ucsf.twitter = {};
ucsf.gadgetEventTrack=function(action, label, value) {
var message = {'action' : action};
if (label) {message.label = label;}
if (value) {message.value = value;}
gadgets.pubsub.publish("analytics", message);
};
ucsf.twitter.getUsername=function(callback) {
osapi.appdata.get({'userId': '@owner', 'groupId': '@self', 'appId':'@app', 'fields': ['twitter_username']})
.execute(function(response){
var viewer = os.osapi.getViewerFromResult(response);
var username = viewer.twitter_username;
if(username != null && username != '' && callback) {
callback(username);
}
});
}
ucsf.twitter.render=function(username) {
$("#twitter-wjs").remove();
$(".twitter-gadget .content").empty();
$(".twitter-gadget .content").append('<a width="520" height="300" class="twitter-timeline" href="https://twitter.com/'+username+'" data-screen-name="'+username+'" data-widget-id="320982656688996353">Tweets by @'+username+'</a>')
var fjs=document.getElementsByTagName("script")[0];
var p=/^http:/.test(document.location)?'http':'https';
js=document.createElement("script");
js.id="twitter-wjs";
js.src=p+"://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js,fjs);
}
ucsf.twitter.preview=function(widget_id) {
if(widget_id) {
ucsf.twitter.render(widget_id);
}
}
</script>
]]></Content>
<Content type="html" view="profile" preferred_width="670"><![CDATA[<!--HTML-->
<script type="text/javascript">
ucsf.twitter.profilePageInit = function() {
gadgets.window.adjustHeight(300);
ucsf.twitter.getUsername(ucsf.twitter.preview);
}
gadgets.util.registerOnLoadHandler(ucsf.twitter.profilePageInit);
</script>
<!-- Styles -->
<style type="text/css">
.twitter-gadget .content {text-align: center;}
</style>
<div class="twitter-gadget">
<div class="content">
</div>
</div>
]]></Content>
<Content type="html" view="home" preferred_width="700"><![CDATA[<!--HTML-->
<script type="text/javascript">
$(document).ready(function () {
$(".twitter-gadget .save").click(function() {
$(".twitter-gadget").block({ message: "Saving..." });
osapi.appdata.update({'userId': '@owner', 'groupId': '@self', 'appId':'@app', 'data':{'twitter_username':$('.twitter-gadget input').val()} }).execute(function(response){
$(".twitter-gadget").unblock();
});
});
$(".twitter-gadget .preview").click(function() {
var username = $('.twitter-gadget input').val();
if(username != null && username != '') {
$('.twitter-gadget .content').show();
gadgets.window.adjustHeight(350);
ucsf.twitter.preview(username);
}
else {
$('.twitter-gadget .content').hide();
gadgets.window.adjustHeight(50);
}
});
});
ucsf.twitter.homePageInit = function() {
gadgets.window.adjustHeight(50);
ucsf.twitter.getUsername(function(username) {
$('.twitter-gadget input').val(username);
$('.twitter-gadget .content').show();
gadgets.window.adjustHeight(350);
ucsf.twitter.preview(username);
});
}
gadgets.util.registerOnLoadHandler(ucsf.twitter.homePageInit);
</script>
<!-- Styles -->
<style type="text/css">
.twitter-gadget {margin-top: 10px;}
.twitter-gadget input {width: 400px;}
.twitter-gadget .label {margin-right: 10px;font-weight: bold;}
.twitter-gadget .preview, .twitter-gadget .save {margin-left: 10px;color: #3B6394; cursor:pointer;}
.twitter-gadget .content {margin-top: 10px; margin-left: 20px;}
</style>
<div class="twitter-gadget">
<span class="label">Widget Id:</span><input type="text" name="keywords"></input><span class="preview">Preview</span><span class="save">Save</span>
<div class="content" style="display:none">
</div>
</div>
]]></Content>
</Module>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app
version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
>
</web-app>

View file

@ -4,13 +4,13 @@
DELETE FROM `orng_apps`;
INSERT INTO `orng_apps` (`appid`, `name`, `url`, `PersonFilterID`, `enabled`, `channels`) VALUES
(100, 'Google Search', 'http://stage-profiles.ucsf.edu/apps/ucsfsearch.xml', NULL, 1, NULL),
(101, 'Featured Presentations', 'http://stage-profiles.ucsf.edu/apps/SlideShare.xml', NULL, 1, NULL),
(102, 'Faculty Mentor', 'http://stage-profiles.ucsf.edu/apps/Mentor.xml', NULL, 0, NULL),
(103, 'Websites', 'http://stage-profiles.ucsf.edu/apps/Links.xml', NULL, 1, NULL),
(104, 'Profile List', 'http://stage-profiles.ucsf.edu/apps/ProfileListTool.xml', NULL, 1, 'JSONPersonIds'),
(106, 'RDF Test Gadget', 'http://stage-profiles.ucsf.edu/apps/RDFTest.xml', NULL, 1, NULL),
(112, 'Twitter', 'http://stage-profiles.ucsf.edu/apps/Twitter.xml', NULL, 1, NULL);
(100, 'Search Example', 'http://localhost:8080/sample-gadgets/SearchExample.xml', NULL, 1, NULL),
(101, 'Featured Presentations', 'http://localhost:8080/sample-gadgets/SlideShare.xml', NULL, 1, NULL),
(102, 'Faculty Mentor', 'http://localhost:8080/sample-gadgets/Mentor.xml', NULL, 0, NULL),
(103, 'Websites', 'http://localhost:8080/sample-gadgets/Links.xml', NULL, 1, NULL),
(104, 'Profile List', 'http://localhost:8080/sample-gadgets/ProfileListTool.xml', NULL, 1, 'JSONPersonIds'),
(106, 'RDF Test Gadget', 'http://localhost:8080/sample-gadgets/RDFTest.xml', NULL, 1, NULL),
(112, 'Twitter', 'http://localhost:8080/sample-gadgets/Twitter.xml', NULL, 1, NULL);
DELETE FROM `orng_app_views`;

View file

@ -190,8 +190,5 @@ orng.dbDriver = @DATA_SOURCE_DRIVER@
orng.dbURL = @DATA_SOURCE_URL@
orng.dbUser = @DATA_SOURCE_USERNAME@
orng.dbPassword = @DATA_SOURCE_PASSWORD@
orng.systemDomain = NOT_USED
orng.systemDomain = http://localhost:8080/vivo