diff --git a/misc/internal-docs/content-tracking.md b/misc/internal-docs/content-tracking.md
index 186d8345d104e2c696654eab40d6d66b79bb6a7a..f09a237aa17e44fabd3c8f3f599f81705b0ae428 100644
--- a/misc/internal-docs/content-tracking.md
+++ b/misc/internal-docs/content-tracking.md
@@ -432,7 +432,6 @@ Nothing special here I think. We would probably automatically detect the type of
 * Would content impressions be tracked in overlay session?
   * Overlay session should not trigger a content impression
 * Cache allowed site urls for redirects
-* Show images on hover in report
 * When a user clicks on an interaction, we should check whether we have already tracked the impression as the content is visible now. If not tracked before, we should track the impression as well
   * There can be a scroll or timer event that detects the same content became visible as well. This would not be a problem since we do not track same content block twice
   * Maybe v2
diff --git a/plugins/Contents/Contents.php b/plugins/Contents/Contents.php
index 0fd5993742e0212fcaa9199daae24fa6d82c4aca..d1272dead19f22e3e4e6dae60d9166e02a85509c 100644
--- a/plugins/Contents/Contents.php
+++ b/plugins/Contents/Contents.php
@@ -16,7 +16,8 @@ class Contents extends \Piwik\Plugin
     public function getListHooksRegistered()
     {
         return array(
-            'Metrics.getDefaultMetricTranslations' => 'addMetricTranslations'
+            'Metrics.getDefaultMetricTranslations' => 'addMetricTranslations',
+            'AssetManager.getJavaScriptFiles' => 'getJsFiles',
         );
     }
 
@@ -27,4 +28,9 @@ class Contents extends \Piwik\Plugin
         $translations['interaction_rate'] = 'Contents_InteractionRate';
     }
 
+    public function getJsFiles(&$jsFiles)
+    {
+        $jsFiles[] = "plugins/Contents/javascripts/contentsDataTable.js";
+    }
+
 }
diff --git a/plugins/Contents/Reports/Base.php b/plugins/Contents/Reports/Base.php
index f73fe6f2ab93b05e0bc6fb53ea15f644ded914c6..537fce049b456ac270a5595bb30906c4bdecc84a 100644
--- a/plugins/Contents/Reports/Base.php
+++ b/plugins/Contents/Reports/Base.php
@@ -30,6 +30,8 @@ abstract class Base extends Report
      */
     public function configureView(ViewDataTable $view)
     {
+        $view->config->datatable_js_type = 'ContentsDataTable';
+
         if (!empty($this->dimension)) {
             $view->config->addTranslations(array('label' => $this->dimension->getName()));
         }
diff --git a/plugins/Contents/javascripts/contentsDataTable.js b/plugins/Contents/javascripts/contentsDataTable.js
new file mode 100644
index 0000000000000000000000000000000000000000..8f208e1ca8a288d99c8a217dabc6d709f7721e73
--- /dev/null
+++ b/plugins/Contents/javascripts/contentsDataTable.js
@@ -0,0 +1,49 @@
+/*!
+ * Piwik - free/libre analytics platform
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+ (function ($, require) {
+
+    var exports = require('piwik/UI'),
+        DataTable = exports.DataTable,
+        dataTablePrototype = DataTable.prototype;
+
+    /**
+     * UI control that handles extra functionality for Actions datatables.
+     *
+     * @constructor
+     */
+    exports.ContentsDataTable = function (element) {
+        DataTable.call(this, element);
+    };
+
+    $.extend(exports.ContentsDataTable.prototype, dataTablePrototype, {
+
+        //see dataTable::bindEventsAndApplyStyle
+        _init: function (domElem) {
+            domElem.find('table > tbody > tr').each(function (index, tr) {
+                var $tr  = $(tr);
+                var $td  = $tr.find('.label .value');
+                var text = $td.text().trim();
+
+                if (text.search('^https?:\/\/[^\/]+') !== -1) {
+                    if (text.match(/(.jpg|.gif|.png|.svg)$/)) {
+                        $td.tooltip({
+                            track: true,
+                            items: 'span',
+                            content: '<p><img style="max-width: 150px;max-height:150px;" src="' + text + '"/></p>',
+                            tooltipClass: 'rowActionTooltip',
+                            show: true,
+                            hide: false
+                        });
+                    }
+                }
+            });
+
+        }
+    });
+
+})(jQuery, require);
\ No newline at end of file