close other add forms when opening a new one
introduce closeAllAddForms which strips every add-child and bulk-add input/button from the tree, and call it at the start of toggleAddForm and toggleBulkAddForm (after the same-li toggle-off short-circuit, so clicking the same trigger still closes its own form). enforces a single open add form across the whole tree.
This commit is contained in:
parent
d61d68571d
commit
a1bfe4f7c1
1 changed files with 19 additions and 0 deletions
|
|
@ -101,6 +101,21 @@ function renderTree(nodes, textId, depth = 0) {
|
|||
return ul;
|
||||
}
|
||||
|
||||
function closeAllAddForms() {
|
||||
const selectors = [
|
||||
'input.child-title',
|
||||
'button.save-child',
|
||||
'input.bulk-title',
|
||||
'input.bulk-count',
|
||||
'button.save-bulk',
|
||||
];
|
||||
selectors.forEach((selector) => {
|
||||
document
|
||||
.querySelectorAll('#text-detail ' + selector)
|
||||
.forEach((element) => element.remove());
|
||||
});
|
||||
}
|
||||
|
||||
function toggleAddForm(li, parentNodeId, textId) {
|
||||
const existing = li.querySelector('input.child-title');
|
||||
if (existing) {
|
||||
|
|
@ -109,6 +124,8 @@ function toggleAddForm(li, parentNodeId, textId) {
|
|||
return;
|
||||
}
|
||||
|
||||
closeAllAddForms();
|
||||
|
||||
const input = document.createElement('input');
|
||||
input.type = 'text';
|
||||
input.className = 'child-title';
|
||||
|
|
@ -158,6 +175,8 @@ function toggleBulkAddForm(li, parentNodeId, textId) {
|
|||
return;
|
||||
}
|
||||
|
||||
closeAllAddForms();
|
||||
|
||||
const titleInput = document.createElement('input');
|
||||
titleInput.type = 'text';
|
||||
titleInput.className = 'bulk-title';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue