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 @@ -481,6 +481,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 @@ -42,6 +43,24 @@
<link rel="stylesheet" type="text/css" href="{% static "webgateway/css/ome.iehacks.css"|add:url_suffix %}" media="all" />
<![endif]-->

{% 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
34 changes: 34 additions & 0 deletions components/tools/OmeroWeb/omeroweb/webgateway/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
from omero.util.decorators import timeit, TimeIt
from omeroweb.http import HttpJavascriptResponse, HttpJsonResponse, \
HttpJavascriptResponseServerError
from connector import Server

import glob

Expand Down Expand Up @@ -1873,6 +1874,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)
interpolate = request.session['server_settings']['interpolate_pixels']

Expand All @@ -1881,6 +1885,31 @@ 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', twitter)

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')

def urlprefix(iid):
return reverse(prefix, args=(iid,))

image_preview = request.build_absolute_uri(urlprefix(iid))
page_url = request.build_absolute_uri(reverse(
'webgateway.views.full_viewer', args=(iid,)))

d = {'blitzcon': conn,
'image': image,
'opts': rid,
Expand All @@ -1891,6 +1920,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