diff --git a/client/src/components/Markdown/MarkdownVisualization.vue b/client/src/components/Markdown/MarkdownVisualization.vue
index e6f6e654d5d..5c0d3b99c35 100644
--- a/client/src/components/Markdown/MarkdownVisualization.vue
+++ b/client/src/components/Markdown/MarkdownVisualization.vue
@@ -19,7 +19,7 @@
@ok="onOk"
@cancel="onCancel"
>
-
+
diff --git a/config/plugins/visualizations/annotate_image/config/annotate_image.xml b/config/plugins/visualizations/annotate_image/config/annotate_image.xml
index 8b1a7973ad5..0e6781078cf 100644
--- a/config/plugins/visualizations/annotate_image/config/annotate_image.xml
+++ b/config/plugins/visualizations/annotate_image/config/annotate_image.xml
@@ -1,6 +1,6 @@
-
+
An image annotater built using PaperJS at https://github.com/paperjs/paper.js.
diff --git a/config/plugins/visualizations/editor/config/editor.xml b/config/plugins/visualizations/editor/config/editor.xml
index 48589917e99..26aacb9fbd6 100644
--- a/config/plugins/visualizations/editor/config/editor.xml
+++ b/config/plugins/visualizations/editor/config/editor.xml
@@ -1,6 +1,6 @@
-
+
Manually edit text
diff --git a/config/plugins/visualizations/example/config/example.xml b/config/plugins/visualizations/example/config/example.xml
index 0fecc2627e9..a3adfab8a30 100644
--- a/config/plugins/visualizations/example/config/example.xml
+++ b/config/plugins/visualizations/example/config/example.xml
@@ -1,6 +1,6 @@
-
+
This is a developer example which demonstrates how to implement and configure a basic d3-based plugin for charts.
diff --git a/config/plugins/visualizations/heatmap/heatmap_cluster/config/heatmap_cluster.xml b/config/plugins/visualizations/heatmap/heatmap_cluster/config/heatmap_cluster.xml
index 3ca7d59172b..6d4bcf7f47e 100644
--- a/config/plugins/visualizations/heatmap/heatmap_cluster/config/heatmap_cluster.xml
+++ b/config/plugins/visualizations/heatmap/heatmap_cluster/config/heatmap_cluster.xml
@@ -1,6 +1,6 @@
-
+
../../heatmap_default/config/heatmap_shared.xml
diff --git a/config/plugins/visualizations/heatmap/heatmap_default/config/heatmap_default.xml b/config/plugins/visualizations/heatmap/heatmap_default/config/heatmap_default.xml
index 589a7deecb2..8698dd73cef 100644
--- a/config/plugins/visualizations/heatmap/heatmap_default/config/heatmap_default.xml
+++ b/config/plugins/visualizations/heatmap/heatmap_default/config/heatmap_default.xml
@@ -1,6 +1,6 @@
-
+
heatmap_shared.xml
diff --git a/config/plugins/visualizations/jqplot/jqplot_box/config/jqplot_box.xml b/config/plugins/visualizations/jqplot/jqplot_box/config/jqplot_box.xml
index 10ffe9b1f40..93d55908905 100644
--- a/config/plugins/visualizations/jqplot/jqplot_box/config/jqplot_box.xml
+++ b/config/plugins/visualizations/jqplot/jqplot_box/config/jqplot_box.xml
@@ -1,6 +1,6 @@
-
+
../../jqplot_bar/config/jqplot_shared.xml
diff --git a/config/plugins/visualizations/jqplot/jqplot_histogram/config/jqplot_histogram.xml b/config/plugins/visualizations/jqplot/jqplot_histogram/config/jqplot_histogram.xml
index 2c508b443d1..e38ec98c0af 100644
--- a/config/plugins/visualizations/jqplot/jqplot_histogram/config/jqplot_histogram.xml
+++ b/config/plugins/visualizations/jqplot/jqplot_histogram/config/jqplot_histogram.xml
@@ -1,6 +1,6 @@
-
+
../../jqplot_bar/config/jqplot_shared.xml
diff --git a/config/plugins/visualizations/media_player/audio_player/config/audio_player.xml b/config/plugins/visualizations/media_player/audio_player/config/audio_player.xml
index 0002a4b9283..30e20ce2e3a 100644
--- a/config/plugins/visualizations/media_player/audio_player/config/audio_player.xml
+++ b/config/plugins/visualizations/media_player/audio_player/config/audio_player.xml
@@ -1,6 +1,6 @@
-
+
Audio player
diff --git a/config/plugins/visualizations/media_player/video_player/config/video_player.xml b/config/plugins/visualizations/media_player/video_player/config/video_player.xml
index 3cdbe300627..1a0bfbfca75 100644
--- a/config/plugins/visualizations/media_player/video_player/config/video_player.xml
+++ b/config/plugins/visualizations/media_player/video_player/config/video_player.xml
@@ -1,6 +1,6 @@
-
+
Video player
diff --git a/config/plugins/visualizations/nvd3/nvd3_histogram/config/nvd3_histogram.xml b/config/plugins/visualizations/nvd3/nvd3_histogram/config/nvd3_histogram.xml
index 70185676e77..159bd6bd90b 100644
--- a/config/plugins/visualizations/nvd3/nvd3_histogram/config/nvd3_histogram.xml
+++ b/config/plugins/visualizations/nvd3/nvd3_histogram/config/nvd3_histogram.xml
@@ -1,6 +1,6 @@
-
+
../../nvd3_bar/config/nvd3_shared.xml
diff --git a/config/plugins/visualizations/nvd3/nvd3_histogram_discrete/config/nvd3_histogram_discrete.xml b/config/plugins/visualizations/nvd3/nvd3_histogram_discrete/config/nvd3_histogram_discrete.xml
index c43b8fed16f..a32f52001ee 100644
--- a/config/plugins/visualizations/nvd3/nvd3_histogram_discrete/config/nvd3_histogram_discrete.xml
+++ b/config/plugins/visualizations/nvd3/nvd3_histogram_discrete/config/nvd3_histogram_discrete.xml
@@ -1,6 +1,6 @@
-
+
../../nvd3_bar/config/nvd3_shared.xml
diff --git a/config/plugins/visualizations/sweepster/config/sweepster.xml b/config/plugins/visualizations/sweepster/config/sweepster.xml
index 647e2bcf412..f9a15771b4a 100644
--- a/config/plugins/visualizations/sweepster/config/sweepster.xml
+++ b/config/plugins/visualizations/sweepster/config/sweepster.xml
@@ -1,6 +1,6 @@
-
+
HistoryDatasetAssociation
diff --git a/config/plugins/visualizations/trackster/config/trackster.xml b/config/plugins/visualizations/trackster/config/trackster.xml
index ac0cb8a41b9..585ce3f73be 100644
--- a/config/plugins/visualizations/trackster/config/trackster.xml
+++ b/config/plugins/visualizations/trackster/config/trackster.xml
@@ -1,6 +1,6 @@
-
+
Fast, interactive visualization for large, NGS/HTS datasets using only a web browser.
diff --git a/lib/galaxy/visualization/plugins/config_parser.py b/lib/galaxy/visualization/plugins/config_parser.py
index 1e998488cda..3ee7da3a473 100644
--- a/lib/galaxy/visualization/plugins/config_parser.py
+++ b/lib/galaxy/visualization/plugins/config_parser.py
@@ -2,6 +2,7 @@ import logging
import galaxy.model
+from galaxy.util import asbool
from galaxy.util.xml_macros import load
log = logging.getLogger(__name__)
@@ -67,13 +68,10 @@ class VisualizationsConfigParser:
log.info('Visualizations plugin disabled: %s. Skipping...', returned['name'])
return None
- # record the embeddable flag - defaults to false
- # this is a design by contract promise that the visualization can be rendered inside another page
- # often by rendering only a DOM fragment. Since this is an advanced feature that requires a bit more
- # work from the creator's side - it defaults to False
- returned['embeddable'] = False
+ # record the embeddable flag - defaults to true
+ returned['embeddable'] = True
if 'embeddable' in xml_tree.attrib:
- returned['embeddable'] = xml_tree.attrib.get('embeddable', False) == 'true'
+ returned['embeddable'] = asbool(xml_tree.attrib.get('embeddable'))
# a (for now) text description of what the visualization does
description = xml_tree.find('description')
diff --git a/lib/galaxy/visualization/plugins/plugin.py b/lib/galaxy/visualization/plugins/plugin.py
index 70e667e5a0b..0326df7b95d 100644
--- a/lib/galaxy/visualization/plugins/plugin.py
+++ b/lib/galaxy/visualization/plugins/plugin.py
@@ -114,7 +114,7 @@ class VisualizationPlugin(ServesTemplatesPluginMixin):
'logo' : self.config.get('logo'),
'title' : self.config.get('title'),
'target' : self.config.get('render_target', 'galaxy_main'),
- 'embeddable' : self.config.get('embeddable', False),
+ 'embeddable' : self.config.get('embeddable'),
'entry_point' : self.config.get('entry_point'),
'settings' : self.config.get('settings'),
'groups' : self.config.get('groups'),
diff --git a/lib/galaxy/visualization/plugins/registry.py b/lib/galaxy/visualization/plugins/registry.py
index 85d70b80a09..348e26b1d0c 100644
--- a/lib/galaxy/visualization/plugins/registry.py
+++ b/lib/galaxy/visualization/plugins/registry.py
@@ -224,9 +224,12 @@ class VisualizationsRegistry:
raise ObjectNotFound('Unknown or invalid visualization: ' + key)
return self.plugins[key]
- def get_plugins(self):
+ def get_plugins(self, embeddable=None):
result = []
for plugin in self.plugins.values():
+ if embeddable is not None:
+ if embeddable != plugin.config.get('embeddable'):
+ continue
result.append(plugin.to_dict())
return sorted(result, key=lambda k: k.get('html'))
diff --git a/lib/galaxy/webapps/galaxy/api/plugins.py b/lib/galaxy/webapps/galaxy/api/plugins.py
index 6b29ef8e6d2..daf9d6f81fb 100644
--- a/lib/galaxy/webapps/galaxy/api/plugins.py
+++ b/lib/galaxy/webapps/galaxy/api/plugins.py
@@ -32,7 +32,7 @@ class PluginsController(BaseAPIController):
hda = self.hda_manager.get_accessible(self.decode_id(dataset_id), trans.user)
return registry.get_visualizations(trans, hda)
else:
- return registry.get_plugins()
+ return registry.get_plugins(embeddable=True)
@expose_api
def show(self, trans, id, **kwargs):