1
0
mirror of https://github.com/SuperBFG7/ympd synced 2025-06-08 17:34:11 +00:00

Fix: don't add redundant eventhandler on popovers

This commit is contained in:
jcorporation 2018-09-19 00:01:37 +01:00
parent 355b4000b3
commit 4dec20a578
2 changed files with 59 additions and 9 deletions

File diff suppressed because one or more lines are too long

View File

@ -514,9 +514,9 @@ function appInit() {
}, false); }, false);
document.getElementsByTagName('body')[0].addEventListener('click', function(event) { document.getElementsByTagName('body')[0].addEventListener('click', function(event) {
var oldPopover = document.getElementsByClassName('popover')[0]; var oldPopover = document.getElementsByClassName('popover');
if (oldPopover) for (var i = 0; i < oldPopover.length; i++)
oldPopover.remove(); oldPopover[i].remove();
}, false); }, false);
dragAndDropTable('QueueList'); dragAndDropTable('QueueList');
@ -1679,9 +1679,11 @@ function addMenuItem(href, text) {
function showMenu(el, event) { function showMenu(el, event) {
event.preventDefault(); event.preventDefault();
event.stopPropagation(); event.stopPropagation();
var oldPopover = document.getElementsByClassName('popover')[0];
if (oldPopover) var oldPopover = document.getElementsByClassName('popover');
oldPopover.remove(); for (var i = 0; i < oldPopover.length; i++)
oldPopover[i].remove();
var type = el.getAttribute('data-type'); var type = el.getAttribute('data-type');
var uri = decodeURI(el.getAttribute('data-uri')); var uri = decodeURI(el.getAttribute('data-uri'));
var name = el.getAttribute('data-name'); var name = el.getAttribute('data-name');
@ -1736,12 +1738,20 @@ function showMenu(el, event) {
addMenuItem({"cmd": "delQueueSong", "options": ["range", 0, el.parentNode.parentNode.getAttribute('data-songpos')]}, 'Remove all upwards') + addMenuItem({"cmd": "delQueueSong", "options": ["range", 0, el.parentNode.parentNode.getAttribute('data-songpos')]}, 'Remove all upwards') +
addMenuItem({"cmd": "delQueueSong", "options": ["range", (parseInt(el.parentNode.parentNode.getAttribute('data-songpos'))-1), -1]}, 'Remove all downwards') + addMenuItem({"cmd": "delQueueSong", "options": ["range", (parseInt(el.parentNode.parentNode.getAttribute('data-songpos'))-1), -1]}, 'Remove all downwards') +
(uri.indexOf('http') == -1 ? addMenuItem({"cmd": "songDetails", "options": [uri]}, 'Songdetails') : ''); (uri.indexOf('http') == -1 ? addMenuItem({"cmd": "songDetails", "options": [uri]}, 'Songdetails') : '');
} }
new Popover(el, { trigger: 'click', delay: 0, dismissible: true, template: '<div class="popover" role="tooltip">' + new Popover(el, { trigger: 'click', delay: 0, dismissible: true, template: '<div class="popover" role="tooltip">' +
'<div class="arrow"></div>' + '<div class="arrow"></div>' +
'<div class="popover-content">' + menu + '</div>' + '<div class="popover-content">' + menu + '</div>' +
'</div>'}); '</div>'});
var popoverInit = el.Popover; var popoverInit = el.Popover;
if (el.getAttribute('data-init')) {
popoverInit.show();
return;
}
el.setAttribute('data-init', 'true');
el.addEventListener('shown.bs.popover', function(event) { el.addEventListener('shown.bs.popover', function(event) {
document.getElementsByClassName('popover-content')[0].addEventListener('click', function(event) { document.getElementsByClassName('popover-content')[0].addEventListener('click', function(event) {
event.preventDefault(); event.preventDefault();