mirror of
https://github.com/loot/libloot.git
synced 2026-07-27 14:16:01 -07:00
Toggle sidebar drag 'n' drop with edit mode
Only add and remove the drag 'n' drop functionality for sidebar plugin items when the first editor is opened and the last editor is closed respectively, instead of doing so every time an editor is opened or closed.
This commit is contained in:
+14
-14
@@ -413,13 +413,6 @@ function onShowSettingsDialog() {
|
||||
}
|
||||
|
||||
function onEditorOpen(evt) {
|
||||
/* Set up drag 'n' drop event handlers. */
|
||||
const elements = document.getElementById('cardsNav').getElementsByTagName('loot-plugin-item');
|
||||
for (let i = 0; i < elements.length; ++i) {
|
||||
elements[i].draggable = true;
|
||||
elements[i].addEventListener('dragstart', elements[i].onDragStart);
|
||||
}
|
||||
|
||||
/* Now show editor. */
|
||||
evt.target.classList.toggle('flip');
|
||||
|
||||
@@ -432,6 +425,13 @@ function onEditorOpen(evt) {
|
||||
++numEditors;
|
||||
|
||||
if (numEditors === 1) {
|
||||
/* Set up drag 'n' drop event handlers. */
|
||||
const elements = document.getElementById('cardsNav').getElementsByTagName('loot-plugin-item');
|
||||
for (let i = 0; i < elements.length; ++i) {
|
||||
elements[i].draggable = true;
|
||||
elements[i].addEventListener('dragstart', elements[i].onDragStart);
|
||||
}
|
||||
|
||||
/* Set the edit mode toggle attribute. */
|
||||
document.getElementById('cardsNav').setAttribute('data-editModeToggle', '');
|
||||
/* Disable the toolbar elements. */
|
||||
@@ -483,19 +483,19 @@ function onEditorClose(evt) {
|
||||
evt.target.classList.toggle('flip');
|
||||
evt.target.data.isEditorOpen = false;
|
||||
|
||||
/* Remove drag 'n' drop event handlers. */
|
||||
const elements = document.getElementById('cardsNav').getElementsByTagName('loot-plugin-item');
|
||||
for (let i = 0; i < elements.length; ++i) {
|
||||
elements[i].removeAttribute('draggable');
|
||||
elements[i].removeEventListener('dragstart', elements[i].onDragStart);
|
||||
}
|
||||
|
||||
/* Disable priority hover in plugins list and enable header
|
||||
buttons if this is the only editor instance. */
|
||||
let numEditors = parseInt(document.body.getAttribute('data-editors'), 10);
|
||||
--numEditors;
|
||||
|
||||
if (numEditors === 0) {
|
||||
/* Remove drag 'n' drop event handlers. */
|
||||
const elements = document.getElementById('cardsNav').getElementsByTagName('loot-plugin-item');
|
||||
for (let i = 0; i < elements.length; ++i) {
|
||||
elements[i].removeAttribute('draggable');
|
||||
elements[i].removeEventListener('dragstart', elements[i].onDragStart);
|
||||
}
|
||||
|
||||
document.body.removeAttribute('data-editors');
|
||||
/* Set the edit mode toggle attribute. */
|
||||
document.getElementById('cardsNav').setAttribute('data-editModeToggle', '');
|
||||
|
||||
Reference in New Issue
Block a user