diff --git a/nodes/xilica-listen.html b/nodes/xilica-listen.html index 58f364f..8c66b64 100644 --- a/nodes/xilica-listen.html +++ b/nodes/xilica-listen.html @@ -5,7 +5,10 @@ RED.nodes.registerType('xilica-listen', { defaults: { name: { value: "" }, connection: { value: "", type: "xilica-connection" }, - rules: { value: [] } + mode: { value: "list" }, + targets: { value: "" }, + startIndex: { value: 1 }, + endIndex: { value: 1 } }, inputs: 1, outputs: 1, @@ -15,110 +18,6 @@ RED.nodes.registerType('xilica-listen', { return this.name; } return "xilica listen"; - }, - oneditprepare: function () { - var node = this; - var rules = node.rules || []; - if (typeof rules === "string") { - try { - rules = JSON.parse(rules); - } catch (e) { - rules = []; - } - } - if (!Array.isArray(rules)) { - rules = []; - } - - $("#node-input-rules").editableList({ - addItem: function (container, index, rule) { - rule = rule || {}; - - var row = $('
').appendTo(container); - - var typeField = $('', { - class: "node-input-rule-type", - style: "width: 120px; margin-right: 5px;" - }).appendTo(row); - $('', { value: "eq", text: "==" }).appendTo(typeField); - $('', { value: "idx", text: "Indexed" }).appendTo(typeField); - - var valueField = $('', { - class: "node-input-rule-value", - type: "text", - style: "width: 180px; margin-right: 5px;" - }).appendTo(row); - - var fromField = $('', { - class: "node-input-rule-from", - type: "number", - style: "width: 80px; margin-right: 5px;", - placeholder: "From" - }).appendTo(row); - - var toField = $('', { - class: "node-input-rule-to", - type: "number", - style: "width: 80px;", - placeholder: "To" - }).appendTo(row); - - function updateVisibility() { - var t = typeField.val(); - if (t === "idx") { - fromField.show(); - toField.show(); - } else { - fromField.hide(); - toField.hide(); - } - } - - typeField.on("change", updateVisibility); - - typeField.val(rule.t || "eq"); - valueField.val(rule.v || ""); - if (rule.from !== undefined) { - fromField.val(rule.from); - } - if (rule.to !== undefined) { - toField.val(rule.to); - } - - updateVisibility(); - }, - removable: true, - sortable: true - }); - - (rules || []).forEach(function (r) { - $("#node-input-rules").editableList('addItem', r); - }); - }, - oneditsave: function () { - var rules = []; - $("#node-input-rules").editableList('items').each(function () { - var row = $(this); - var type = $(".node-input-rule-type", row).val() || "eq"; - var value = $(".node-input-rule-value", row).val() || ""; - var from = $(".node-input-rule-from", row).val(); - var to = $(".node-input-rule-to", row).val(); - - var rule = { t: type, v: value }; - - if (type === "idx") { - if (from !== "") { - rule.from = parseInt(from, 10); - } - if (to !== "") { - rule.to = parseInt(to, 10); - } - } - - rules.push(rule); - }); - - this.rules = rules; } }); @@ -133,20 +32,39 @@ RED.nodes.registerType('xilica-listen', {