Node-Red configuration
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

ui_text_input.js 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. module.exports = function(RED) {
  2. var ui = require('../ui')(RED);
  3. function TextInputNode(config) {
  4. RED.nodes.createNode(this, config);
  5. var node = this;
  6. var group = RED.nodes.getNode(config.group);
  7. if (!group) { return; }
  8. var tab = RED.nodes.getNode(group.config.tab);
  9. if (!tab) { return; }
  10. node.on("input", function(msg) {
  11. node.topi = msg.topic;
  12. });
  13. var done = ui.add({
  14. node: node,
  15. tab: tab,
  16. group: group,
  17. forwardInputMessages: config.passthru,
  18. control: {
  19. type: (config.delay <= 0 ? 'text-input-CR' : 'text-input'),
  20. label: config.label,
  21. tooltip: config.tooltip,
  22. mode: config.mode,
  23. delay: config.delay,
  24. order: config.order,
  25. className: config.className || '',
  26. value: '',
  27. width: config.width || group.config.width || 6,
  28. height: config.height || 1,
  29. sendOnBlur: config.sendOnBlur
  30. },
  31. beforeSend: function (msg) {
  32. if (config.mode.indexOf("time") != -1) {
  33. if (typeof msg.payload === "string") {
  34. msg.payload = Date.parse(msg.payload);
  35. }
  36. }
  37. // if (config.mode === "week") { msg.payload = Date.parse(msg.payload); }
  38. // if (config.mode === "month") { msg.payload = Date.parse(msg.payload); }
  39. var t = RED.util.evaluateNodeProperty(config.topic,config.topicType || "str",node,msg) || node.topi;
  40. if (t) { msg.topic = t; }
  41. }
  42. });
  43. node.on("close", done);
  44. }
  45. RED.nodes.registerType("ui_text_input", TextInputNode);
  46. };