Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions components/tools/OmeroWeb/omeroweb/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -539,6 +539,22 @@ def leave_none_unset_int(s):
"omero.web.public.cache.timeout":
["PUBLIC_CACHE_TIMEOUT", 60 * 60 * 24, int, None],

# Social media integration
"omero.web.sharing.twitter":
["SHARING_TWITTER",
'{}',
json.loads,
("Dictionary of `server-name: @twitter-site-username`, where "
"server-name matches a name from `omero.web.server_list`. "
"For example: ``'{\"omero\": \"@openmicroscopy\"}'``")],
"omero.web.sharing.opengraph":
["SHARING_OPENGRAPH",
'{}',
json.loads,
("Dictionary of `server-name: site-name`, where "
"server-name matches a name from `omero.web.server_list`. "
"For example: ``'{\"omero\": \"Open Microscopy\"}'``")],

# Application configuration
"omero.web.server_list":
["SERVER_LIST",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{% extends "webgateway/core_html.html" %}
{% load i18n %}
{% load common_filters %}

{% comment %}
<!--
Expand Down Expand Up @@ -38,6 +39,24 @@
<link rel="stylesheet" type="text/css" href="{% static "webgateway/css/omero_image.css"|add:url_suffix %}" media="all" />
<link rel="stylesheet" type="text/css" href="{% static "3rdparty/panojs-2.0.0/panojs.css" %}" media="all" />

{% if opengraph %}
<meta name="og:title" content="{{ image.getName|escape }}">
<meta name="og:type" content="website">
<meta name="og:site_name" content="{{ opengraph }}">
<meta name="og:description" content="{{ image.getDescription|default:image.getOwner.getName|escape }}">
<meta name="og:url" content="{{ page_url }}">
<meta name="og:image" content="{{ image_preview }}512/">
{% endif %}

{% if twitter %}
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="{{ twitter|escape }}">
<meta name="twitter:title" content="{{ image.getName|truncateafter:'67'|escape }}">
<meta name="twitter:description" content="{{ image.getDescription|default:image.getOwner.getName|truncateafter:'197'|escape }}">
<meta name="twitter:creator" content="{{ twitter|escape }}">
<meta name="twitter:image" content="{{ image_preview }}280/">
{% endif %}

{% endblock %}

{% block script %}
Expand Down
31 changes: 31 additions & 0 deletions components/tools/OmeroWeb/omeroweb/webgateway/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
from marshal import imageMarshal, shapeMarshal, rgb_int2rgba
from django.contrib.staticfiles.templatetags.staticfiles import static
from django.views.generic import View
from omeroweb.api.views import build_url
from omeroweb.webadmin.forms import LoginForm
from omeroweb.decorators import get_client_ip
from omeroweb.webadmin.webadmin_utils import upgradeCheck
Expand All @@ -52,6 +53,7 @@
from omero.util.decorators import timeit, TimeIt
from omeroweb.http import HttpJavascriptResponse, \
HttpJavascriptResponseServerError
from omeroweb.connector import Server

import glob

Expand Down Expand Up @@ -2250,6 +2252,9 @@ def full_viewer(request, iid, conn=None, **kwargs):
@return: html page of image and metadata
"""

server_id = request.session['connector'].server_id
server_name = Server.get(server_id).server

rid = getImgDetailsFromReq(request)
server_settings = request.session.get('server_settings', {}) \
.get('viewer', {})
Expand All @@ -2261,6 +2266,27 @@ def full_viewer(request, iid, conn=None, **kwargs):
if image is None:
logger.debug("(a)Image %s not found..." % (str(iid)))
raise Http404

opengraph = None
twitter = None
image_preview = None
page_url = None

if hasattr(settings, 'SHARING_OPENGRAPH'):
opengraph = settings.SHARING_OPENGRAPH.get(server_name)
logger.debug('Open Graph enabled: %s', opengraph)

if hasattr(settings, 'SHARING_TWITTER'):
twitter = settings.SHARING_TWITTER.get(server_name)
logger.debug('Twitter enabled: %s', twitter)

if opengraph or twitter:
prefix = kwargs.get(
'thumbprefix', 'webgateway.views.render_thumbnail')
image_preview = build_url(request, prefix, None, iid)
page_url = build_url(
request, 'webgateway.views.full_viewer', None, iid)

d = {'blitzcon': conn,
'image': image,
'opts': rid,
Expand All @@ -2272,6 +2298,11 @@ def full_viewer(request, iid, conn=None, **kwargs):
# remove any trailing slash
'viewport_server', reverse('webgateway')).rstrip('/'),

'opengraph': opengraph,
'twitter': twitter,
'image_preview': image_preview,
'page_url': page_url,

'object': 'image:%i' % int(iid)}

template = kwargs.get('template',
Expand Down