NIHVIVO-3772 NIHVIVO-3721 Incorporate the OpenSocial integration from Eric Meeks at CTSI, UCSF. Add instructions on how to install and configure ORNG Shindig.
This commit is contained in:
parent
182b4e7226
commit
2e69f0379b
16 changed files with 684 additions and 7 deletions
|
@ -100,7 +100,7 @@ blockquote {
|
||||||
/* BRANDING ------> */
|
/* BRANDING ------> */
|
||||||
h1.vivo-logo {
|
h1.vivo-logo {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 386px;
|
width: 442px;
|
||||||
height: 59px;
|
height: 59px;
|
||||||
top: 28px;
|
top: 28px;
|
||||||
left: 0;
|
left: 0;
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 6.6 KiB |
|
@ -49,7 +49,7 @@
|
||||||
<p>
|
<p>
|
||||||
This is created when you unpack the VIVO distribution file (see <a href="#download_code">Step III</a>, below). This is where you will
|
This is created when you unpack the VIVO distribution file (see <a href="#download_code">Step III</a>, below). This is where you will
|
||||||
create your deploy.properties file (see <a href="#deploy_properties">Step
|
create your deploy.properties file (see <a href="#deploy_properties">Step
|
||||||
V</a>, below), and where you will make any modifications to the VIVO
|
IV</a>, below), and where you will make any modifications to the VIVO
|
||||||
theme or code. You can create this wherever you choose.
|
theme or code. You can create this wherever you choose.
|
||||||
</p>
|
</p>
|
||||||
<h4>VIVO inside Tomcat</h4>
|
<h4>VIVO inside Tomcat</h4>
|
||||||
|
@ -59,7 +59,7 @@
|
||||||
but you won’t need to look at it or change it. If you need to change
|
but you won’t need to look at it or change it. If you need to change
|
||||||
VIVO, make the changes in the distribution directory, and run the build
|
VIVO, make the changes in the distribution directory, and run the build
|
||||||
script again. Tell the build script where to find Tomcat by setting <code>tomcat.home</code>
|
script again. Tell the build script where to find Tomcat by setting <code>tomcat.home</code>
|
||||||
in the deploy.properties file (see <a href="#deploy_properties">Step V</a>,
|
in the deploy.properties file (see <a href="#deploy_properties">Step IV</a>,
|
||||||
below).
|
below).
|
||||||
</p>
|
</p>
|
||||||
<h4>The VIVO home directory</h4>
|
<h4>The VIVO home directory</h4>
|
||||||
|
@ -68,7 +68,7 @@
|
||||||
image files are stored here, and the Solr home directory is stored here also.
|
image files are stored here, and the Solr home directory is stored here also.
|
||||||
You can create this wherever you choose. Tell VIVO where to find the
|
You can create this wherever you choose. Tell VIVO where to find the
|
||||||
home directory by setting <code>vitro.home.directory</code>
|
home directory by setting <code>vitro.home.directory</code>
|
||||||
in the deploy.properties file (see <a href="#deploy_properties">Step V</a>,
|
in the deploy.properties file (see <a href="#deploy_properties">Step IV</a>,
|
||||||
below). You must create this directory before starting VIVO, and you
|
below). You must create this directory before starting VIVO, and you
|
||||||
must ensure that Tomcat has permission to read and write to this
|
must ensure that Tomcat has permission to read and write to this
|
||||||
directory when it runs.
|
directory when it runs.
|
||||||
|
@ -119,6 +119,9 @@
|
||||||
<a href="#external_auth">Using an External Authentication
|
<a href="#external_auth">Using an External Authentication
|
||||||
System with VIVO</a>
|
System with VIVO</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#external_auth">Using VIVO as an OpenSocial platform</a>
|
||||||
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="#installation_check">Was the installation successful?</a>
|
<a href="#installation_check">Was the installation successful?</a>
|
||||||
</li>
|
</li>
|
||||||
|
@ -981,7 +984,25 @@
|
||||||
<pre>selfEditing.idMatchingProperty = http://vivo.mydomain.edu/ns#networkId</pre>
|
<pre>selfEditing.idMatchingProperty = http://vivo.mydomain.edu/ns#networkId</pre>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<h3 id="installation_check">XII. Was the installation successful? </h3>
|
|
||||||
|
<h3 id="external_auth">XII. Using VIVO as an OpenSocial platform </h3>
|
||||||
|
<p>
|
||||||
|
VIVO now supports an extension of the OpenSocial API,
|
||||||
|
known as Open Research Networking Gadgets, or ORNG (pronounced "ORNG")
|
||||||
|
(see http://www.opengadgets.org/index.html).
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Configuring VIVO to support ORNG requires several steps, including
|
||||||
|
additions to the VIVO properties, modifications to Tomcat configuration
|
||||||
|
creation of an ORNG-compatible version of Apache Shindig, and use of a
|
||||||
|
security certificate for safe network operations.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
For instructions, consult the file
|
||||||
|
<a href="setting_up_orng.html">setting_up_orng.html</a> in this directory.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3 id="installation_check">XIII. Was the installation successful? </h3>
|
||||||
<p>
|
<p>
|
||||||
If you have completed the previous steps, you have good indications
|
If you have completed the previous steps, you have good indications
|
||||||
that the installation was successful.
|
that the installation was successful.
|
||||||
|
|
410
doc/setting_up_orng.html
Normal file
410
doc/setting_up_orng.html
Normal file
|
@ -0,0 +1,410 @@
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Setting up VIVO to use OpenSocial Gadgets</title>
|
||||||
|
<link rel="stylesheet" href="./css/doc.css" media="screen">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="branding" role="banner">
|
||||||
|
<h1 class="vivo-logo"><a href="/"><span class="displace">VIVO</span></a></h1>
|
||||||
|
</div>
|
||||||
|
<!-- Start of content -->
|
||||||
|
<div id="wrapper-content" role="main">
|
||||||
|
<h1>Setting up VIVO to use OpenSocial Gadgets</h1>
|
||||||
|
<small>
|
||||||
|
Instructions for connecting VIVO and Open Research Networking Gadgets
|
||||||
|
</small>
|
||||||
|
<p>
|
||||||
|
This document contains instructions on how to configure your VIVO
|
||||||
|
installation to use OpenSocial gadgets.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
VIVO uses an extension of the OpenSocial protocols called
|
||||||
|
Open Research Networking Gadgets, or ORNG.
|
||||||
|
ORNG is a project of the Clinical & Translational Science Institute at the
|
||||||
|
University of California, San Francisco.
|
||||||
|
You can find out more about the ORNG project at their web site,
|
||||||
|
<a href="http://www.opengadgets.org/index.html">http://www.opengadgets.org/index.html</a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
ORNG supports gadgets using a modified version of Apache Shindig.
|
||||||
|
These instructions tell you how to install the ORNG Shindig web application,
|
||||||
|
and how to configure it to work with VIVO.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<hr/>
|
||||||
|
<h3 id="tableofcontents">Table of Contents</h3>
|
||||||
|
<toc>
|
||||||
|
<ol class="roman2">
|
||||||
|
<li><a href="#config_files">Create configuration files</a></li>
|
||||||
|
<li><a href="#database">Create database tables and procedures</a></li>
|
||||||
|
<li><a href="#tomcat_settings">Modify Tomcat settings</a></li>
|
||||||
|
<li><a href="#deploy">Deploy the web application</a> <br>
|
||||||
|
<li><a href="#vivo_settings">Configure VIVO</a></li>
|
||||||
|
<li><a href="#confirm">Does it work?</a></li>
|
||||||
|
</ol>
|
||||||
|
</toc>
|
||||||
|
<hr/>
|
||||||
|
<h3 id="config_files">I. Create configuration files</h3>
|
||||||
|
<p>
|
||||||
|
In your VIVO home directory, create a directory called <em>shindig</em>.
|
||||||
|
Under that, create directories called <em>conf</em> and <em>openssl</em>.
|
||||||
|
Your VIVO home directory will look something like this:
|
||||||
|
<pre> [VIVO home directory]
|
||||||
|
|
|
||||||
|
|--shindig
|
||||||
|
| |
|
||||||
|
| |--conf
|
||||||
|
| |
|
||||||
|
| |--openssl
|
||||||
|
|
|
||||||
|
|--solr
|
||||||
|
|
|
||||||
|
|--uploads</pre>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>A. Create a secure key file</h4>
|
||||||
|
<p>
|
||||||
|
Shindig uses an encryption key to insure that the communication
|
||||||
|
between the gadget and the server is secure.
|
||||||
|
You should create a file that contains the encryption key,
|
||||||
|
and store that file in the <em>shindig/openssl</em> directory that you created.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
On Unix-based systems (like Linux or Mac OS X), this command will create
|
||||||
|
an encryption key from a random seed:
|
||||||
|
<pre>dd if=/dev/random bs=32 count=1 | openssl base64 > <em>[key-file]</em></pre>
|
||||||
|
For example, if your VIVO home directory is <em>/usr/local/vivo/data</em>,
|
||||||
|
you might use the command this way:
|
||||||
|
<pre>dd if=/dev/random bs=32 count=1 | openssl base64 > /usr/local/vivo/data/shindig/openssl/securitytokenkey.txt</pre>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
If your VIVO installation is installed on a machine that runs Microsoft Windows,
|
||||||
|
you will need to find another way to create an encryption key.
|
||||||
|
The easiest way might be to find a Unix-based machine,
|
||||||
|
issue the command above, and copy the resulting file to your Windows machine.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>B. Create the Create configuration files</h4>
|
||||||
|
<p>
|
||||||
|
In your VIVO distribution directory, find the file called
|
||||||
|
<pre>vitro-core/opensocial/shindig.orng.properties</pre> and copy it to the
|
||||||
|
<em>shindig/conf</em> directory that you created.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Set these values in the <em>shindig.orng.properties</em> file
|
||||||
|
</p>
|
||||||
|
<table border='1' bordercolor="#CCCCCC" cellspacing="5">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
Property Name
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
Example Value
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="2">
|
||||||
|
Specify the location of the encryption key file.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd_row">
|
||||||
|
<td>
|
||||||
|
shindig.signing.key-file
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
/usr/local/vivo/data/shindig/openssl/securitytokenkey.txt
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="2">
|
||||||
|
Specify the JDBC URL of your database. Change
|
||||||
|
the end of the URL to reflect your database name (if it is not "vivo").
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd_row">
|
||||||
|
<td>
|
||||||
|
orng.dbURL
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
jdbc:mysql://localhost/vivo
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="2">
|
||||||
|
Change the username to match the authorized user
|
||||||
|
you created in MySQL when installing VIVO.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd_row">
|
||||||
|
<td>
|
||||||
|
orng.dbUser
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
username
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="2">
|
||||||
|
Change the password to match the password you
|
||||||
|
created in MySQL when installing VIVO.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd_row">
|
||||||
|
<td>
|
||||||
|
orng.dbPassword
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
password
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h3 id="database">II. Create database tables and procedures</h3>
|
||||||
|
<p>
|
||||||
|
Shindig uses several database tables in MySQL to store its data:
|
||||||
|
which gadgets appear on which pages, what size are the gadgets,
|
||||||
|
what information applies to each individual, and more.
|
||||||
|
Shindig also creates stored procedures in MySQL. These are small
|
||||||
|
pieces of code that simplify the use of the database tables.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
In the VIVO distribution directory, a file called
|
||||||
|
<em>vitro-core/opensocial/shindig_orng_tables.sql</em>
|
||||||
|
contains SQL commands that create the tables and
|
||||||
|
stored procedures for Shindig to use.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Tell MySQL to process this file with a command like this:
|
||||||
|
<pre>mysql -u <em>username</em> -p <em>database</em> < <em>sql_file</em></pre>
|
||||||
|
So, if your current directory is the VIVO distibution directory, and your
|
||||||
|
VIVO database is <em>vivoDb</em> and your MySQL user account is <em>vivoUser</em>,
|
||||||
|
then you might use the command this way:
|
||||||
|
<pre>mysql -u vivoUser -p vivoDb < vitro-core/opensocial/shindig_orng_tables.sql</pre>
|
||||||
|
MySQL will prompt you for the password for your MySQL user account, and then
|
||||||
|
process the file.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
You may want to start your gadget collection with some example gadgets
|
||||||
|
that have been developed by the ORNG group. The file called
|
||||||
|
<em>vitro-core/opensocial/shindig_example_gadgets.sql</em>
|
||||||
|
contains SQL commands that will add these gadgets to your system's configuration.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
If you want to load these example gadgets, you can use a command similar to the previous one:
|
||||||
|
<pre>mysql -u vivoUser -p vivoDb < vitro-core/opensocial/shindig_example_gadgets.sql</pre>
|
||||||
|
As before, MySQL will prompt you for the password for your MySQL user account, and then
|
||||||
|
process the file.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3 id="tomcat_settings">III. Modify Tomcat settings</h3>
|
||||||
|
<p>
|
||||||
|
The Shindig application must know where to find the configuration file that you created in
|
||||||
|
Step I.
|
||||||
|
It must also know its own URL, so that URL can be inserted into the gadgets.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This information is provided through startup parameters in Tomcat.
|
||||||
|
With most installations of Tomcat, the "setenv.sh" or
|
||||||
|
"setenv.bat" file in Tomcat's bin directory is a convenient place to
|
||||||
|
set these parameters.
|
||||||
|
<em>If this file does not exist in Tomcat's bin directory, you can create it.</em>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Here is an example of the setenv file, showing only the Shindig requirements:
|
||||||
|
<pre>export CLASSPATH=/usr/local/vivo/data/shindig/conf
|
||||||
|
export CATALINA_OPTS='-Dshindig.host=localhost -Dshindig.port=8080'</pre>
|
||||||
|
This assumes that your setenv file was empty before starting this process,
|
||||||
|
and that you used the default location for the Shindig configuration file in Step I.
|
||||||
|
In fact, it's more common for the setenv file to contain other parameters besides
|
||||||
|
those used for Shindig. In that case, it might look more like this:
|
||||||
|
<pre>export CLASSPATH=/usr/local/vivo/data/shindig/conf
|
||||||
|
export CATALINA_OPTS='-Dshindig.host=localhost -Dshindig.port=8080 -Djava.awt.headless=true -Xms1024m -Xmx1024m -XX:MaxPermSize=128m'</pre>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3 id="deploy">IV. Deploy the web application</h3>
|
||||||
|
<p>
|
||||||
|
In the VIVO distribution directory, a file called <em>vitro-core/opensocial/shindigorng.war</em>
|
||||||
|
contains the ORNG-Shindig web application.
|
||||||
|
Copy this file to the <em>webapps</em> directory of your Tomcat server.
|
||||||
|
For example, if your Tomcat server is located at <em>/usr/local/tomcat</em>,
|
||||||
|
then you should copy this file to <em>/usr/local/tomcat/webapps/shindigorng.war</em>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3 id="vivo_settings">V. Configure VIVO</h3>
|
||||||
|
<p>
|
||||||
|
In the VIVO distribution directory, the file called <em>deploy.properties</em>
|
||||||
|
contains configuration options for the VIVO application.
|
||||||
|
You must set some additional parameters so VIVO will be able to communicate with Shindig.
|
||||||
|
</p>
|
||||||
|
<table border='1' bordercolor="#CCCCCC" cellspacing="5">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
Property Name
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
Example Value
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="2">
|
||||||
|
The base URL that VIVO will use when contacting the ORNG Shindig application.
|
||||||
|
Usually, this is the same host and port number as VIVO itself,
|
||||||
|
with a context path of <em>shindigorng</em>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd_row">
|
||||||
|
<td>OpenSocial.shindigURL</td>
|
||||||
|
<td>http://localhost:8080/shindigorng</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="2">
|
||||||
|
The host name and port number of the Token Service that ORNG shindig creates.
|
||||||
|
For now, a value of <em>localhost</em> or <em>127.0.0.1</em> will not work.
|
||||||
|
You must provide the actual host name of your machine, followed by <em>:8777</em>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd_row">
|
||||||
|
<td>OpenSocial.tokenService</td>
|
||||||
|
<td>myhost.mydomain.edu:8777</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h3 id="confirm">VI. Does it work?</h3>
|
||||||
|
<p>
|
||||||
|
Start VIVO. Enter a search term in the search box, and view the results. Check the gadgets there.
|
||||||
|
Navigate to a person's profile page. Again, check for the expected gadgets.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
If the gadgets do not appear as you expect, look for these symptoms,
|
||||||
|
and check for the corresponding possible causes.
|
||||||
|
</p>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>Symptoms</th>
|
||||||
|
<th>Possible causes</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
Gadgets do not appear on Individual page or in search results.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Tomcat "localhost" log file contains an error message:
|
||||||
|
<pre>Unable to load properties: shindig.orng.properties</pre>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<ul>
|
||||||
|
<li>Configuration file is not correctly named.</li>
|
||||||
|
<li>Tomcat's setenv file does not specify the correct CLASSPATH</li>
|
||||||
|
</ul>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd_row"><td colspan="2"></td></tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
Dialog box appears in the browser with the message:
|
||||||
|
"Error 500 reading application data: internalError"
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Tomcat "catalina" log file contains an error message:
|
||||||
|
<pre>java.sql.SQLException: Access denied for user</pre>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
Configuration file contains incorrect value for one or more of these:
|
||||||
|
<ul>
|
||||||
|
<li>orng.dbURL</li>
|
||||||
|
<li>orng.dbUser</li>
|
||||||
|
<li>orng.dbPassword</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd_row"><td colspan="2"></td></tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
Gadgets appear to work as desired.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Tomcat "catalina" log file contains an error message:
|
||||||
|
<pre>org.apache.shindig.protocol.ProtocolException: java.net.UnknownHostException:</pre>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<b>What's up?
|
||||||
|
This is a result of not setting key-file, or pointing it to a file that doesn't exist.
|
||||||
|
Is there no better diagnostic?</b>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd_row"><td colspan="2"></td></tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
Gadgets do not appear on Individual page or in search results
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
vivo.all.log contains an error message:
|
||||||
|
<pre>MySQLSyntaxErrorException: Table 'vivo.shindig_apps' doesn't exist</pre>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
MySQL does not contain the shindig tables.
|
||||||
|
<pre>shindig_orng_tables.sql</pre> was not processed.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd_row"><td colspan="2"></td></tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
Gadgets do not appear on Individual page or in search results
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
vivo.all.log contains an error message:
|
||||||
|
<pre>java.net.ConnectException: Connection refused</pre>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
In <em>deploy.properties</em>, <em>OpenSocial.tokenService</em> is not set correctly.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd_row"><td colspan="2"></td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
|
@ -103,6 +103,13 @@
|
||||||
See J.Blake for details.
|
See J.Blake for details.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<h4 id="openSocial">Support for OpenSocial gadgets</h4>
|
||||||
|
<p>
|
||||||
|
You can now add OpenSocial support to your VIVO instance. Look at setting_up_orng.html for details.
|
||||||
|
See J.Blake for details.
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -180,4 +180,25 @@ Vitro.reconcile.defaultTypeList = http://vivoweb.org/ontology/core#Role, core:Ro
|
||||||
#
|
#
|
||||||
# Types of individual for which we can create proxy editors.
|
# Types of individual for which we can create proxy editors.
|
||||||
# If this is omitted, defaults to http://www.w3.org/2002/07/owl#Thing
|
# If this is omitted, defaults to http://www.w3.org/2002/07/owl#Thing
|
||||||
|
#
|
||||||
proxy.eligibleTypeList = http://xmlns.com/foaf/0.1/Person, http://xmlns.com/foaf/0.1/Organization
|
proxy.eligibleTypeList = http://xmlns.com/foaf/0.1/Person, http://xmlns.com/foaf/0.1/Organization
|
||||||
|
|
||||||
|
#
|
||||||
|
# For OpenSocial integration
|
||||||
|
# The base URL of the ORNG Shindig server. Usually, this is the same host and port
|
||||||
|
# number as VIVO iteself, with a context path of "shindigorng".
|
||||||
|
#
|
||||||
|
OpenSocial.shindigURL = http://localhost:8080/shindigorng
|
||||||
|
|
||||||
|
#
|
||||||
|
# For OpenSocial integration
|
||||||
|
# The host name and port number of the service that provides security tokens for VIVO and
|
||||||
|
# Shindig to share. For now, the host name must be the actual host, not "localhost" or "127.0.0.1"
|
||||||
|
# The port number must be 8777
|
||||||
|
#
|
||||||
|
OpenSocial.tokenService = myhost.mydomain.edu:8777
|
||||||
|
#
|
||||||
|
# For OpenSocial integration
|
||||||
|
# Only set sandbox to True for dev/test environments. Comment out or set to False in production
|
||||||
|
#
|
||||||
|
#OpenSocial.sandbox = True
|
||||||
|
|
|
@ -1356,6 +1356,20 @@
|
||||||
<url-pattern>/harvester/harvest</url-pattern>
|
<url-pattern>/harvester/harvest</url-pattern>
|
||||||
</servlet-mapping>
|
</servlet-mapping>
|
||||||
|
|
||||||
|
<!-- VIVO OpenSocial Extension by UCSF -->
|
||||||
|
<servlet>
|
||||||
|
<servlet-name>GadgetController</servlet-name>
|
||||||
|
<servlet-class>edu.ucsf.vitro.opensocial.GadgetController</servlet-class>
|
||||||
|
</servlet>
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>GadgetController</servlet-name>
|
||||||
|
<url-pattern>/gadget</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>GadgetController</servlet-name>
|
||||||
|
<url-pattern>/gadget/sandbox</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
|
|
||||||
|
|
||||||
<!-- ============================== servlet-mappings ======================== -->
|
<!-- ============================== servlet-mappings ======================== -->
|
||||||
<servlet-mapping>
|
<servlet-mapping>
|
||||||
|
|
|
@ -98,6 +98,20 @@
|
||||||
<#if researchAreas?has_content> <#-- true when the property is in the list, even if not populated (when editing) -->
|
<#if researchAreas?has_content> <#-- true when the property is in the list, even if not populated (when editing) -->
|
||||||
<@p.objectPropertyListing researchAreas editable />
|
<@p.objectPropertyListing researchAreas editable />
|
||||||
</#if>
|
</#if>
|
||||||
|
|
||||||
|
<#-- VIVO OpenSocial Extension by UCSF -->
|
||||||
|
<#if openSocial??>
|
||||||
|
<#if openSocial.visible>
|
||||||
|
<#-- It would likely make sense to remove the #if logic as it is safe and -->
|
||||||
|
<#-- arguably better to just have both divs in all conditions -->
|
||||||
|
<#if editable>
|
||||||
|
<div id="gadgets-edit" class="gadgets-gadget-parent"></div>
|
||||||
|
<#else>
|
||||||
|
<div id="gadgets-view" class="gadgets-gadget-parent"></div>
|
||||||
|
</#if>
|
||||||
|
</#if>
|
||||||
|
</#if>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
113
themes/wilma/css/openSocial/gadgets.css
Normal file
113
themes/wilma/css/openSocial/gadgets.css
Normal file
|
@ -0,0 +1,113 @@
|
||||||
|
/*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
.gadgets-gadget-chrome {
|
||||||
|
float: left;
|
||||||
|
margin: 4px 6px 4px 0;
|
||||||
|
border: 1px solid #7aa5d6;
|
||||||
|
border: 1px solid #CCC;
|
||||||
|
}
|
||||||
|
.col2 .gadgets-gadget-chrome {
|
||||||
|
margin-left: 9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gadgets-gadget
|
||||||
|
{
|
||||||
|
width: 100%;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gadgets-gadget-title-bar {
|
||||||
|
padding: 4px 4px 2px;
|
||||||
|
background-color: #e5ecf9;
|
||||||
|
background-color: #EEEBE5;
|
||||||
|
}
|
||||||
|
.gadgets-gadget-title-bar:hover { background-color: #e7e3db; }
|
||||||
|
.gadgets-gadget-title-bar img,
|
||||||
|
.gadgets-gadget-title-button {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gadgets-gadget-title a, .gadgets-gadget-title a:hover {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #CA7C29;
|
||||||
|
}
|
||||||
|
.EditBody .gadgets-gadget-title a {
|
||||||
|
color:#3B6394;
|
||||||
|
}
|
||||||
|
.EditBody .gadgets-gadget-title a:hover {
|
||||||
|
color:#1E416C;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gadgets-gadget-title-button-bar {
|
||||||
|
font-size: smaller;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gadgets-gadget-canvas-title {
|
||||||
|
color: #000;
|
||||||
|
padding-left: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gadgets-gadget-user-prefs-dialog {
|
||||||
|
background-color: #e5ecf9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gadgets-gadget-user-prefs-dialog-action-bar {
|
||||||
|
text-align: center;
|
||||||
|
padding-bottom: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gadgets-gadget-title-button img {
|
||||||
|
border: 2px solid #4F5CC7;
|
||||||
|
border: none;
|
||||||
|
float: right;
|
||||||
|
margin-right: 2px;
|
||||||
|
}
|
||||||
|
.EditBody .gadgets-gadget-title-button img {
|
||||||
|
float: left;
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gadgets-gadget-content {
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gadgets-log-entry {
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Used to style messages produced during rewriting by CajaContentRewriter */
|
||||||
|
.gadgets-messages {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.gadgets-gadget-status {
|
||||||
|
font-weight: bold;
|
||||||
|
float: right;
|
||||||
|
/* text-align: center; */
|
||||||
|
font-size: 12px;
|
||||||
|
padding-right: 6px;
|
||||||
|
}
|
||||||
|
* html .gadgets-gadget-status { margin-top: -18px; padding-right: 30px; } /* fudge line break for IE6 */
|
||||||
|
*+html .gadgets-gadget-status { margin-top: -18px; padding-right: 30px; } /* fudge line break for IE7 */
|
||||||
|
|
||||||
|
/* list tool fix ticket #135 */
|
||||||
|
* html #ctl00_ctl00_left_pnlOpenSocialTools { height: 130px; }
|
||||||
|
*+html #ctl00_ctl00_left_pnlOpenSocialTools { height: 130px; }
|
||||||
|
* html #ctl00_ctl00_left_pnlOpenSocialTools { margin-left: -8px; }
|
BIN
themes/wilma/images/openSocial/icon_squareArrow.gif
Normal file
BIN
themes/wilma/images/openSocial/icon_squareArrow.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 114 B |
BIN
themes/wilma/images/openSocial/icon_squareDownArrow.gif
Normal file
BIN
themes/wilma/images/openSocial/icon_squareDownArrow.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 105 B |
12
themes/wilma/templates/gadgetDetails.ftl
Normal file
12
themes/wilma/templates/gadgetDetails.ftl
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
|
||||||
|
|
||||||
|
<#-- Template for the body of the GadgetDetails page -->
|
||||||
|
|
||||||
|
<div class="pageTitle" id="gadgets-title"><h2>${title}</h2></div>
|
||||||
|
|
||||||
|
<#-- VIVO OpenSocial Extension by UCSF -->
|
||||||
|
<#if openSocial??>
|
||||||
|
<#if openSocial.visible>
|
||||||
|
<div id="gadgets-detail" class="gadgets-gadget-parent"></div>
|
||||||
|
</#if>
|
||||||
|
</#if>
|
47
themes/wilma/templates/gadgetLogin.ftl
Normal file
47
themes/wilma/templates/gadgetLogin.ftl
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
|
||||||
|
|
||||||
|
<#-- Template for the body of the GadgetDetails page -->
|
||||||
|
|
||||||
|
<div class="pageTitle" id="gadgets-title"><h2>${title}</h2></div>
|
||||||
|
|
||||||
|
<#-- VIVO OpenSocial Extension by UCSF -->
|
||||||
|
<#if openSocial??>
|
||||||
|
<#if openSocial.visible>
|
||||||
|
<form method="POST">
|
||||||
|
<table border="0" cellspacing="0" cellpadding="0">
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
Gadget URLs</br>
|
||||||
|
One Per Line
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<textarea name="gadgetURLS" rows="10" cols="160">${gadgetURLS}</textarea>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
Debug mode
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<input type="checkbox" name="debug" value="debug" checked="checked" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
Use Cache
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<input type="checkbox" name="useCache" value="useCache" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<input type="submit" value="Submit" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</form>
|
||||||
|
</#if>
|
||||||
|
</#if>
|
|
@ -6,6 +6,17 @@
|
||||||
|
|
||||||
<title>${title}</title>
|
<title>${title}</title>
|
||||||
|
|
||||||
|
<#-- VIVO OpenSocial Extension by UCSF -->
|
||||||
|
<#if openSocial??>
|
||||||
|
<#if openSocial.visible>
|
||||||
|
<#-- Required to add these BEFORE stylesheets.flt and headScripts.ftl are processed -->
|
||||||
|
${stylesheets.add('<link rel="stylesheet" href="${urls.theme}/css/openSocial/gadgets.css" />')}
|
||||||
|
${headScripts.add('<script type="text/javascript" src="${openSocial.containerJavascriptSrc}"></script>',
|
||||||
|
'<script type="text/javascript" language="javascript">${openSocial.gadgetJavascript}</script>',
|
||||||
|
'<script type="text/javascript" src="${urls.base}/js/openSocial/shindig.js"></script>')}
|
||||||
|
</#if>
|
||||||
|
</#if>
|
||||||
|
|
||||||
<#include "stylesheets.ftl">
|
<#include "stylesheets.ftl">
|
||||||
<link rel="stylesheet" href="${urls.theme}/css/screen.css" />
|
<link rel="stylesheet" href="${urls.theme}/css/screen.css" />
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<#include "head.ftl">
|
<#include "head.ftl">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="${bodyClasses!}">
|
<body class="${bodyClasses!}" onload="${bodyOnload!}">
|
||||||
<#include "identity.ftl">
|
<#include "identity.ftl">
|
||||||
|
|
||||||
<#include "menu.ftl">
|
<#include "menu.ftl">
|
||||||
|
|
|
@ -8,11 +8,18 @@
|
||||||
<#include "head.ftl">
|
<#include "head.ftl">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="${bodyClasses!}">
|
<body class="${bodyClasses!}" onload="${bodyOnload!}">
|
||||||
<#include "identity.ftl">
|
<#include "identity.ftl">
|
||||||
|
|
||||||
<#include "menu.ftl">
|
<#include "menu.ftl">
|
||||||
|
|
||||||
|
<#-- VIVO OpenSocial Extension by UCSF -->
|
||||||
|
<#if openSocial??>
|
||||||
|
<#if openSocial.visible>
|
||||||
|
<div id="gadgets-tools" class="gadgets-gadget-parent"></div>
|
||||||
|
</#if>
|
||||||
|
</#if>
|
||||||
|
|
||||||
${body}
|
${body}
|
||||||
|
|
||||||
<#include "footer.ftl">
|
<#include "footer.ftl">
|
||||||
|
|
Loading…
Add table
Reference in a new issue