diff options
author | Andrew Dolgov <[email protected]> | 2021-03-03 19:07:39 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2021-03-03 19:07:39 +0300 |
commit | cb7f322f09fb8ed9be95978db82f99a2e8a4661b (patch) | |
tree | 7c84b6ba264fd07a3a5105ce946390a5c5554dad /js/common.js | |
parent | 06cb181f7315b709d9d8ab926f7607f3227ad168 (diff) |
add basic plugin installer (uses tt-rss.org)
Diffstat (limited to 'js/common.js')
-rwxr-xr-x | js/common.js | 59 |
1 files changed, 49 insertions, 10 deletions
diff --git a/js/common.js b/js/common.js index 194fdcd9d..9c748f9c5 100755 --- a/js/common.js +++ b/js/common.js @@ -262,8 +262,11 @@ const Lists = { if (row) checked ? row.addClassName("Selected") : row.removeClassName("Selected"); }, - select: function(elemId, selected) { - $(elemId).querySelectorAll("li").forEach((row) => { + select: function(elem, selected) { + if (typeof elem == "string") + elem = document.getElementById(elem); + + elem.querySelectorAll("li").forEach((row) => { const checkNode = row.querySelector(".dijitCheckBox,input[type=checkbox]"); if (checkNode) { const widget = dijit.getEnclosingWidget(checkNode); @@ -278,6 +281,30 @@ const Lists = { } }); }, + getSelected: function(elem) { + const rv = []; + + if (typeof elem == "string") + elem = document.getElementById(elem); + + elem.querySelectorAll("li").forEach((row) => { + if (row.hasClassName("Selected")) { + const rowVal = row.getAttribute("data-row-value"); + + if (rowVal) { + rv.push(rowVal); + } else { + // either older prefix-XXX notation or separate attribute + const rowId = row.getAttribute("data-row-id") || row.id.replace(/^[A-Z]*?-/, ""); + + if (!isNaN(rowId)) + rv.push(parseInt(rowId)); + } + } + }); + + return rv; + } }; /* exported Tables */ @@ -293,8 +320,11 @@ const Tables = { checked ? row.addClassName("Selected") : row.removeClassName("Selected"); }, - select: function(elemId, selected) { - $(elemId).querySelectorAll("tr").forEach((row) => { + select: function(elem, selected) { + if (typeof elem == "string") + elem = document.getElementById(elem); + + elem.querySelectorAll("tr").forEach((row) => { const checkNode = row.querySelector(".dijitCheckBox,input[type=checkbox]"); if (checkNode) { const widget = dijit.getEnclosingWidget(checkNode); @@ -309,16 +339,25 @@ const Tables = { } }); }, - getSelected: function(elemId) { + getSelected: function(elem) { const rv = []; - $(elemId).querySelectorAll("tr").forEach((row) => { + if (typeof elem == "string") + elem = document.getElementById(elem); + + elem.querySelectorAll("tr").forEach((row) => { if (row.hasClassName("Selected")) { - // either older prefix-XXX notation or separate attribute - const rowId = row.getAttribute("data-row-id") || row.id.replace(/^[A-Z]*?-/, ""); + const rowVal = row.getAttribute("data-row-value"); + + if (rowVal) { + rv.push(rowVal); + } else { + // either older prefix-XXX notation or separate attribute + const rowId = row.getAttribute("data-row-id") || row.id.replace(/^[A-Z]*?-/, ""); - if (!isNaN(rowId)) - rv.push(parseInt(rowId)); + if (!isNaN(rowId)) + rv.push(parseInt(rowId)); + } } }); |