Index: arms/js/reqAddTable.js =================================================================== diff -u -r0b7ca0bf4a08b408c5fb5648adece9232f47e654 -rf5d9e52ee45fb56148562f13e00654ae83740e96 --- arms/js/reqAddTable.js (.../reqAddTable.js) (revision 0b7ca0bf4a08b408c5fb5648adece9232f47e654) +++ arms/js/reqAddTable.js (.../reqAddTable.js) (revision f5d9e52ee45fb56148562f13e00654ae83740e96) @@ -383,7 +383,10 @@ .forEach((row) => row.remove()); } - getElement(target, tag, id) { + getElement(target, tag, className) { + if (className) { + return target.tagName === tag && target.classList.contains(className) && target; + } return target.tagName !== tag ? this.getElement(target.parentElement, tag) : target; } @@ -433,9 +436,6 @@ if (cur[key]) { $col.innerHTML = cur[key]; - cur.id && - ["manager", "content"].includes(key) && - ($col.innerHTML = `${cur[key]}`); } if (tag === "th") { @@ -479,17 +479,14 @@ $col.className = key; if (tag === "td") { - if (cur[key]) { - $col.innerHTML = cur[key]; - ["status", "priority", "difficulty"].includes(key) && - ($col.innerHTML = ` - `); - - ["manager", "content"].includes(key) && ($col.innerHTML = `${cur[key]}`); - } } else { $col.innerHTML = cur[key]; } @@ -526,15 +523,14 @@ }); } - addInput(node) { + addInput(node, updateKey) { const uuid = createUUID(); const text = node.textContent; const $input = this.makeElement("input"); $input.id = uuid; $input.addEventListener("blur", () => { - console.log("###", this.getElement(node, "TR")); - this.updateData(this.getElement(node, "TR").dataset.id, "content", $input.value); + this.updateData(this.getElement(node, "TR").dataset.id, updateKey, $input.value); node.textContent = $input.value; }); @@ -599,11 +595,20 @@ bindBodyEvent($el) { $el.addEventListener("click", (e) => { const { tagName, classList, parentElement } = e.target; - // input - if (tagName === "SPAN" && classList.contains("col-input")) { - this.addInput(e.target); + + const $manager = this.getElement(e.target, "TD", "manager"); + const $content = this.getElement(e.target, "TD", "content"); + + if ($manager) { + this.addInput($manager, "manager"); + return; } + if ($content) { + this.addInput($content, "content"); + return; + } + // select if (["A", "I"].includes(tagName)) { classList.contains("dropdown-toggle") && this.addSelect(e.target);