From f7ce5350304059a0e90593fe79b801f72c6677d0 Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Tue, 23 Dec 2014 17:00:35 +0000 Subject: [PATCH] Double-click sidebar plugin item to open its editor. Closes #255. The effect is slightly ruined by core-list bugs... --- resources/report/html/loot-plugin-card.html | 7 ++++++- resources/report/js/script.js | 5 +++++ resources/report/report.html | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/resources/report/html/loot-plugin-card.html b/resources/report/html/loot-plugin-card.html index e5771d98..943d0a64 100644 --- a/resources/report/html/loot-plugin-card.html +++ b/resources/report/html/loot-plugin-card.html @@ -286,7 +286,12 @@ loot-clear-metadata }, onShowEditor: function(evt) { - var card = evt.target.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentNode.host; + var card; + if (this.tagName == 'LOOT-PLUGIN-CARD') { + card = this; + } else { + card = this.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentNode.host; + } /* If the editor hasn't already been opened, its data is not yet set, so do that now. */ if (!card.data.isEditorOpen && !card.data.editor) { diff --git a/resources/report/js/script.js b/resources/report/js/script.js index 8bccdf5a..0e8333c4 100644 --- a/resources/report/js/script.js +++ b/resources/report/js/script.js @@ -991,6 +991,10 @@ function handleSidebarClick(evt) { document.getElementById('main').lastElementChild.scrollToItem(evt.target.getAttribute('data-index')); /* However, the scroll bar that the plugin card list uses is for the whole main content area, so the position is offset by the heights of the summary and general messages cards. Adjust to compensate. */ document.getElementById('main').scrollTop += document.getElementById('main').lastElementChild.offsetTop; + + if (evt.type == 'dblclick') { + document.getElementById(evt.target.getAttribute('data-id')).onShowEditor(); + } } } function handleQuit(evt) { @@ -1047,6 +1051,7 @@ function setupEventHandlers() { document.getElementById('drawerToggle').addEventListener('click', toggleDrawer, false); document.getElementById('cardsNav').addEventListener('click', handleSidebarClick, false); + document.getElementById('cardsNav').addEventListener('dblclick', handleSidebarClick, false); } function initVars() { loot.query('getVersion').then(function(result){ diff --git a/resources/report/report.html b/resources/report/report.html index b9502f5b..2793ea2e 100644 --- a/resources/report/report.html +++ b/resources/report/report.html @@ -59,7 +59,7 @@